|
|
Go to the documentation of this file.
37 const std::vector<BPHPlusMinusConstCandPtr>& jpsiCollection,
41 pionPosName(
"PionPos"),
42 pionNegName(
"PionNeg"),
44 jCollection(&jpsiCollection),
45 pCollection(posCollection),
46 nCollection(negCollection) {
91 vector<Particle> pList;
92 vector<Particle> nList;
105 for (iPos = 0; iPos < nPos; ++iPos) {
107 if (
cand.charge() != +1)
120 double p2 = (
px *
px) + (
py *
py) + (pz * pz);
125 for (iNeg = 0; iNeg < nNeg; ++iNeg) {
127 if (
cand.charge() != -1)
140 double p2 = (
px *
px) + (
py *
py) + (pz * pz);
156 vector<const PionPair*> pionPairs;
157 pionPairs.reserve(nPos * nNeg);
159 for (iPos = 0; iPos < nPos; ++iPos) {
165 double pe = pc.ePion;
166 for (iNeg = 0; iNeg < nNeg; ++iNeg) {
169 if (fabs(
nt->dz() -
pt->dz()) > 1.0)
174 double ne = nc.ePion;
175 const float tx =
px + nx;
176 const float ty =
py + ny;
177 const float tz = pz + nz;
178 const float te = pe + ne;
179 float mass = (te * te) - ((tx * tx) + (ty * ty) + (tz * tz));
182 PionPair*
pp =
new PionPair;
183 pp->posPion = pc.cand;
184 pp->negPion = nc.cand;
185 pionPairs.push_back(
pp);
189 vector<BPHPlusMinusConstCandPtr> jPsi;
193 for (iJPsi = 0; iJPsi < nJPsi; ++iJPsi) {
196 jPsi.push_back(jpCand);
200 int nPair = pionPairs.size();
202 for (iPair = 0; iPair < nPair; ++iPair) {
203 const PionPair*
pp = pionPairs[iPair];
204 for (iJPsi = 0; iJPsi < nJPsi; ++iJPsi) {
double getPiEtaMax() const
double getJPsiMassMax() const
void setMassMax(double m)
static const double jPsiMass
const std::vector< BPHPlusMinusConstCandPtr > * jCollection
double getProbMin() const
get current prob min
BPHGenericPtr< BPHRecoCandidate >::type BPHRecoCandidatePtr
double getMassMin() const
get current mass cuts
virtual const reco::Candidate & get(int i) const =0
double getMassMax() const
std::vector< BPHRecoConstCandPtr > build()
build X3872 candidates
virtual ~BPHX3872ToJPsiPiPiBuilder()
void setMassFitMax(double m)
std::vector< BPHRecoConstCandPtr > x3872List
BPHMassFitSelect * mFitSel
static const reco::Track * getTrack(const reco::Candidate &rc, const char *modeList="cfhbpmnigset", char *modeFlag=nullptr)
double getMassFitMax() const
double getJPsiMassMin() const
get current cuts
void setMassFitMin(double m)
void setMassMin(double m)
set mass cuts
double getMassMin() const
void setPiPtMin(double pt)
set cuts
double getPiPtMin() const
get current cuts
const BPHRecoBuilder::BPHGenericCollection * pCollection
BPHX3872ToJPsiPiPiBuilder(const edm::EventSetup &es, const std::vector< BPHPlusMinusConstCandPtr > &jpsiCollection, const BPHRecoBuilder::BPHGenericCollection *posCollection, const BPHRecoBuilder::BPHGenericCollection *negCollection)
static const double pionMass
static const double pionMSigma
void setJPsiMassMin(double m)
set cuts
void setConstr(bool flag)
const BPHRecoBuilder::BPHGenericCollection * nCollection
virtual int size() const =0
double getMassMax() const
BPHGenericPtr< const BPHPlusMinusCandidate >::type BPHPlusMinusConstCandPtr
double getProbMin() const
void setMassMin(double m)
void setMassMax(double m)
const edm::EventSetup * evSetup
double getMassFitMin() const
void setProbMin(double p)
void setPiEtaMax(double eta)
virtual void add(const std::string &name, const reco::Candidate *daug, double mass=-1.0, double sigma=-1.0)
bool accept(const BPHDecayMomentum &cand) const override
select particle
bool accept(const BPHDecayVertex &cand) const override
select vertex
math::XYZTLorentzVector LorentzVector
Lorentz vector.
void setJPsiMassMax(double m)
bool accept(const BPHKinematicFit &cand) const override
select particle
static const double jPsiMWidth