1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
|
/*
* See header file for a description of this class.
*
* \author Paolo Ronchese INFN Padova
*
*/
//-----------------------
// This Class' Header --
//-----------------------
#include "HeavyFlavorAnalysis/SpecificDecay/interface/BPHDecayConstrainedBuilderBase.h"
//-------------------------------
// Collaborating Class Headers --
//-------------------------------
#include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoBuilder.h"
#include "HeavyFlavorAnalysis/RecoDecay/interface/BPHPlusMinusCandidate.h"
#include "HeavyFlavorAnalysis/RecoDecay/interface/BPHRecoCandidate.h"
#include "HeavyFlavorAnalysis/RecoDecay/interface/BPHAnalyzerTokenWrapper.h"
//---------------
// C++ Headers --
//---------------
#include <iostream>
using namespace std;
//-------------------
// Initializations --
//-------------------
//----------------
// Constructors --
//----------------
BPHDecayConstrainedBuilderBase::BPHDecayConstrainedBuilderBase(const BPHEventSetupWrapper& es,
const string& resName,
double resMass,
double resWidth)
: BPHDecayConstrainedBuilderBase(resName, resMass, resWidth) {
if (evSetup == nullptr)
evSetup = new BPHEventSetupWrapper(es);
}
BPHDecayConstrainedBuilderBase::BPHDecayConstrainedBuilderBase(const string& resName,
double resMass,
double resWidth,
bool createFitSelObject)
: rName(resName),
rMass(resMass),
rWidth(resWidth),
resoSel(new BPHMassSelect(-2.0e+06, -1.0e+06)),
massConstr(true),
mfSelForce(false) {
mFitSel = (createFitSelObject ? massFitSelector(-2.0e+06, -1.0e+06) : nullptr);
}
BPHDecayConstrainedBuilderBase::BPHDecayConstrainedBuilderBase() {}
//--------------
// Destructor --
//--------------
BPHDecayConstrainedBuilderBase::~BPHDecayConstrainedBuilderBase() { delete resoSel; }
//--------------
// Operations --
//--------------
/// set cuts
void BPHDecayConstrainedBuilderBase::setResMassMin(double m) {
outdated = true;
resoSel->setMassMin(m);
return;
}
void BPHDecayConstrainedBuilderBase::setResMassMax(double m) {
outdated = true;
resoSel->setMassMax(m);
return;
}
void BPHDecayConstrainedBuilderBase::setResMassRange(double mMin, double mMax) {
outdated = true;
resoSel->setMassMin(mMin);
resoSel->setMassMax(mMax);
return;
}
void BPHDecayConstrainedBuilderBase::setConstr(bool flag) {
if ((flag == massConstr) && !mfSelForce)
return;
outdated = true;
massConstr = flag;
BPHMassFitSelect* mfs = massFitSelector(mFitSel->getMassMin(), mFitSel->getMassMax());
delete mFitSel;
mFitSel = mfs;
mfSelForce = false;
return;
}
void BPHDecayConstrainedBuilderBase::setMassFitSelect(BPHMassFitSelect* mfs) {
if (mFitSel == mfs)
return;
outdated = true;
mfSelForce = true;
mFitSel = mfs;
return;
}
BPHMassFitSelect* BPHDecayConstrainedBuilderBase::massFitSelector(double mMin, double mMax) {
if (massConstr)
return new BPHMassFitSelect(rName, rMass, rWidth, mMin, mMax);
else
return new BPHMassFitSelect(mMin, mMax);
}
|