1 #ifndef HeavyFlavorAnalysis_RecoDecay_BPHTrackReference_h 2 #define HeavyFlavorAnalysis_RecoDecay_BPHTrackReference_h 69 const char* modeList =
"cfhbpmnigse",
70 char* modeFlag =
nullptr ) {
71 if ( rc.
charge() == 0 )
return nullptr;
72 const char* mptr = modeList;
74 if ( modeFlag ==
nullptr ) modeFlag = &
c;
75 char&
mode = *modeFlag;
77 while ( ( mode = *mptr++ ) ) {
109 if ( pf ==
nullptr )
return nullptr;
122 if ( gp ==
nullptr )
return nullptr;
145 if ( pp ==
nullptr )
return nullptr;
157 if ( mu ==
nullptr )
return nullptr;
175 if ( mu ==
nullptr )
return nullptr;
190 if ( mu ==
nullptr )
return nullptr;
206 if ( mu ==
nullptr )
return nullptr;
222 if ( mu ==
nullptr )
return nullptr;
238 if ( el ==
nullptr )
return nullptr;
static const reco::Track * getMuonPF(const reco::Candidate &rc)
static const reco::Track * getFromPF(const reco::Candidate &rc)
bool isNonnull() const
Checks for non-null.
static const reco::Track * getMuonSA(const reco::Candidate &rc)
bool isStandAloneMuon() const override
static const reco::Track * getMuonGT(const pat::Muon *mu)
virtual const Track * bestTrack() const
static const reco::Track * getMuonIT(const pat::Muon *mu)
pat::PackedCandidate candidate
bool isTrackerMuon() const override
reco::TrackRef trackRef() const
static const reco::Track * getFromRC(const reco::Candidate &rc)
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
virtual TrackRef muonBestTrack() const
reco::TrackRef innerTrack() const override
reference to Track reconstructed in the tracker only (reimplemented from reco::Muon) ...
static const reco::Track * getMuonPF(const pat::Muon *mu)
reco::PFCandidateRef pfCandidateRef() const
reference to the source PFCandidates; null if this has been built from a standard electron ...
static const reco::Track * getTrack(const reco::Candidate &rc, const char *modeList="cfhbpmnigse", char *modeFlag=0)
static const reco::Track * getMuonIT(const reco::Candidate &rc)
bool isGlobalMuon() const override
static const reco::Track * getMuonGT(const reco::Candidate &rc)
reco::PFCandidateRef pfCandidateRef() const
static const reco::Track * getMuonSA(const pat::Muon *mu)
virtual const reco::Track & pseudoTrack() const
T const * get() const
Returns C++ pointer to the item.
reco::TrackRef track() const override
reco::TrackRef globalTrack() const override
reference to Track reconstructed in both tracked and muon detector (reimplemented from reco::Muon) ...
reco::TrackRef standAloneMuon() const override
reference to Track reconstructed in the muon detector only (reimplemented from reco::Muon) ...
static const reco::Track * getMuonBT(const reco::Muon *mu)
Analysis-level electron class.
static const reco::Track * getElecPF(const reco::Candidate &rc)
virtual int charge() const =0
electric charge
BPHTrackReference & operator=(const BPHTrackReference &x)
Particle reconstructed by the particle flow algorithm.
T get() const
get a component
static const reco::Track * getFromPC(const reco::Candidate &rc)
static const reco::Track * getElecPF(const pat::Electron *el)
Analysis-level muon class.
static const reco::Track * getFromGP(const reco::Candidate &rc)
static const reco::Track * getMuonBT(const reco::Candidate &rc)
static const reco::Track * getFromBT(const reco::Candidate &rc)