67 double mass,
double sigma ) {
75 const string& searchList,
76 double mass,
double sigma ) {
77 const vector<const reco::Candidate*>& dL =
daughters();
78 switch ( dL.size() ) {
81 <<
"BPHPlusMinusCandidate::add: " 82 <<
"complete, add rejected";
85 if ( ( daug->
charge() * dL.front()->charge() ) > 0 ) {
87 <<
"BPHPlusMinusCandidate::add: " 88 <<
"already containing same sign particle, add rejected";
102 double mass,
double msig ) {
103 vector<BPHPlusMinusConstCandPtr>
cList;
106 ChargeSelect(
int c ):
charge ( c ) {}
107 ~ChargeSelect()
override {}
114 ChargeSelect tkPos( +1 );
115 ChargeSelect tkNeg( -1 );
116 builder.
filter( nPos, tkPos );
117 builder.
filter( nNeg, tkNeg );
118 fill<BPHPlusMinusCandidate>(
cList, builder,
mass, msig );
125 static const string msg =
126 "BPHPlusMinusCandidate incomplete, no composite available";
133 static const string msg =
134 "BPHPlusMinusCandidate incomplete, no cowboy/sailor classification";
140 static const string msg =
141 "BPHPlusMinusCandidate incomplete, no cowboy/sailor classification";
147 const vector<const reco::Candidate*>& dL =
daughters();
148 int idPos = ( dL.front()->charge() > 0 ? 0 : 1 );
150 dL[1 - idPos]->
phi() ) > 0;
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)
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
std::vector< BPHRecoConstCandPtr > cList
bool isCowboy() const
get cowboy/sailor classification
std::vector< Component > compList
virtual const pat::CompositeCandidate & composite() const
get a composite by the simple sum of simple particles
virtual int charge() const =0
electric charge
void filter(const std::string &name, const BPHRecoSelect &sel) const
pat::CompositeCandidate compCand