41 const string& dPosName,
42 const string& dNegName,
55 pCollection(posCollection),
56 nCollection(negCollection) {}
85 vector<Particle*> pList;
86 vector<Particle*> nList;
92 int nPos = pList.size();
93 int nNeg = nList.size();
101 for (iPos = 0; iPos < nPos; ++iPos) {
108 for (iNeg = 0; iNeg < nNeg; ++iNeg) {
111 if (fabs(
nt->dz() -
pt->dz()) > 1.0)
117 const float tx =
px + nx;
118 const float ty =
py + ny;
119 const float tz = pz + nz;
120 const float te = pe +
ne;
121 const float m2 = (te * te) - ((tx * tx) + (ty * ty) + (tz * tz));
129 double mass = rc->composite().mass();
140 for (iPos = 0; iPos < nPos; ++iPos)
142 for (iNeg = 0; iNeg < nNeg; ++iNeg)
150 vector<Particle*>& list) {
154 for (
i = 0;
i <
n; ++
i) {
156 int q =
cand.charge();
void fillRecList() override
build candidates
void setEtaMax(double eta)
const reco::Track * track
bool accept(const BPHDecayVertex &cand) const override
select vertex
const reco::Candidate * cand
const BPHEventSetupWrapper * evSetup
double getMassMin() const
get current cuts
BPHGenericPtr< BPHPlusMinusCandidate >::type BPHPlusMinusCandidatePtr
static const reco::Track * getTrack(const reco::Candidate &rc, const char *modeList="cfhbpmnigset", char *modeFlag=nullptr)
const BPHRecoBuilder::BPHGenericCollection * pCollection
BPHDecayToChargedXXbarBuilder(const BPHEventSetupWrapper &es, const std::string &dPosName, const std::string &dNegName, double daugMass, double daugSigma, const BPHRecoBuilder::BPHGenericCollection *posCollection, const BPHRecoBuilder::BPHGenericCollection *negCollection)
static type create(Args &&... args)
math::XYZTLorentzVector LorentzVector
Lorentz vector.
common object to interface with edm collections
std::vector< prod_ptr > recList
void addParticle(const BPHRecoBuilder::BPHGenericCollection *collection, int charge, std::vector< Particle *> &list)
const BPHRecoBuilder::BPHGenericCollection * nCollection
double getMassMax() const
void setPtMin(double pt)
set cuts