56 add(name, daug,
"cfhpmig", mass, sigma);
62 const vector<const reco::Candidate*>& dL =
daughters();
69 if ((daug->
charge() * dL.front()->charge()) > 0) {
70 edm::LogPrint(
"TooManyParticles") <<
"BPHPlusMinusCandidate::add: "
71 <<
"already containing same sign particle, add rejected";
77 edm::LogPrint(
"TooManyParticles") <<
"BPHPlusMinusCandidate::add: "
78 <<
"complete, add rejected";
82 addK(name, daug, searchList, mass, sigma);
87 const BPHRecoBuilder& builder,
const string& nPos,
const string& nNeg,
double mass,
double msig) {
88 vector<BPHPlusMinusConstCandPtr>
cList;
91 ChargeSelect(
int c) :
charge(c) {}
92 ~ChargeSelect()
override {}
98 ChargeSelect tkPos(+1);
99 ChargeSelect tkNeg(-1);
100 builder.
filter(nPos, tkPos);
101 builder.
filter(nNeg, tkNeg);
102 fill<BPHPlusMinusCandidate>(
cList, builder,
mass, msig);
116 static const string msg =
"BPHPlusMinusCandidate incomplete, no composite available";
123 static const string msg =
"BPHPlusMinusCandidate incomplete, no cowboy/sailor classification";
128 static const string msg =
"BPHPlusMinusCandidate incomplete, no cowboy/sailor classification";
133 const vector<const reco::Candidate*>& dL =
daughters();
134 int idPos = (dL.front()->charge() > 0 ? 0 : 1);
constexpr double deltaPhi(double phi1, double phi2)
Analysis-level particle class.
static std::vector< BPHPlusMinusConstCandPtr > build(const BPHRecoBuilder &builder, const std::string &nPos, const std::string &nNeg, double mass=-1, double msig=-1)
BPHPlusMinusCandidate(const edm::EventSetup *es)
std::vector< BPHRecoConstCandPtr > cList
const edm::EventSetup & c
const edm::EventSetup * getEventSetup() const
retrieve EventSetup
virtual void addK(const std::string &name, const reco::Candidate *daug, double mass=-1.0, double sigma=-1.0)
~BPHPlusMinusCandidate() override
static bool chkSize(const T &cont, const std::string &msg)
virtual ParticleMass mass() const
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
virtual const std::vector< const reco::Candidate * > & daughters() const
const pat::CompositeCandidate & composite() const override
get a composite by the simple sum of simple particles
void add(const std::string &name, const reco::Candidate *daug, double mass=-1.0, double sigma=-1.0) override
void fill(BPHRecoCandidate *ptr, int level) const override
bool isCowboy() const
get cowboy/sailor classification
virtual int charge() const =0
electric charge
BPHRecoCandidate * clone(int level=-1) const override
Log< level::Warning, true > LogPrint
virtual const pat::CompositeCandidate & composite() const
get a composite by the simple sum of simple particles
void filter(const std::string &name, const BPHRecoSelect &sel) const
pat::CompositeCandidate compCand