test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions
BPHTrackReference Class Reference

#include <BPHTrackReference.h>

Public Types

typedef pat::PackedCandidate candidate
 

Public Member Functions

 BPHTrackReference ()
 
 ~BPHTrackReference ()
 

Static Public Member Functions

static const reco::TrackgetElecPF (const reco::Candidate &rc)
 
static const reco::TrackgetElecPF (const pat::Electron *el)
 
static const reco::TrackgetFromBT (const reco::Candidate &rc)
 
static const reco::TrackgetFromGP (const reco::Candidate &rc)
 
static const reco::TrackgetFromPC (const reco::Candidate &rc)
 
static const reco::TrackgetFromPF (const reco::Candidate &rc)
 
static const reco::TrackgetFromRC (const reco::Candidate &rc)
 
static const reco::TrackgetMuonBT (const reco::Candidate &rc)
 
static const reco::TrackgetMuonBT (const reco::Muon *mu)
 
static const reco::TrackgetMuonGT (const reco::Candidate &rc)
 
static const reco::TrackgetMuonGT (const pat::Muon *mu)
 
static const reco::TrackgetMuonIT (const reco::Candidate &rc)
 
static const reco::TrackgetMuonIT (const pat::Muon *mu)
 
static const reco::TrackgetMuonPF (const reco::Candidate &rc)
 
static const reco::TrackgetMuonPF (const pat::Muon *mu)
 
static const reco::TrackgetMuonSA (const reco::Candidate &rc)
 
static const reco::TrackgetMuonSA (const pat::Muon *mu)
 
static const reco::TrackgetTrack (const reco::Candidate &rc, const char *modeList="cfhbpmnigse")
 

Private Member Functions

 BPHTrackReference (const BPHTrackReference &x)
 
BPHTrackReferenceoperator= (const BPHTrackReference &x)
 

Detailed Description

Description: class to have uniform access to reco::Track for different particle objects

Author
Paolo Ronchese INFN Padova

Definition at line 38 of file BPHTrackReference.h.

Member Typedef Documentation

Definition at line 42 of file BPHTrackReference.h.

Constructor & Destructor Documentation

BPHTrackReference::BPHTrackReference ( )

Constructor

BPHTrackReference::~BPHTrackReference ( )

Destructor

BPHTrackReference::BPHTrackReference ( const BPHTrackReference x)
private

Member Function Documentation

static const reco::Track* BPHTrackReference::getElecPF ( const reco::Candidate rc)
inlinestatic

Definition at line 232 of file BPHTrackReference.h.

232  {
233 // std::cout << "getElecPF" << std::endl;
234  const pat::Electron* el = dynamic_cast<const pat::Electron*>( &rc );
235  if ( el == 0 ) return 0;
236  return getElecPF( el );
237  }
Analysis-level electron class.
Definition: Electron.h:52
static const reco::Track * getElecPF(const reco::Candidate &rc)
static const reco::Track* BPHTrackReference::getElecPF ( const pat::Electron el)
inlinestatic

Definition at line 238 of file BPHTrackReference.h.

References alignCSCRings::e, edm::Ref< C, T, F >::get(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), and pat::Electron::pfCandidateRef().

238  {
239  try {
240  const reco::PFCandidateRef& pcr = el->pfCandidateRef();
241  if ( pcr.isNonnull() && pcr.isAvailable() ) {
242  const reco::TrackRef& tkr = pcr->trackRef();
243  if ( tkr.isNonnull() && tkr.isAvailable() ) return tkr.get();
244  }
245  }
246  catch ( edm::Exception e ) {
247  }
248  return 0;
249  }
bool isAvailable() const
Definition: Ref.h:576
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
reco::PFCandidateRef pfCandidateRef() const
reference to the source PFCandidates; null if this has been built from a standard electron ...
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
static const reco::Track* BPHTrackReference::getFromBT ( const reco::Candidate rc)
inlinestatic

Definition at line 128 of file BPHTrackReference.h.

References reco::Candidate::bestTrack(), and alignCSCRings::e.

128  {
129 // std::cout << "getFromBT" << std::endl;
130  try {
131  const reco::Track* trk = rc.bestTrack();
132  return trk;
133  }
134  catch ( edm::Exception e ) {
135  }
136  return 0;
137  }
virtual const Track * bestTrack() const
Definition: Candidate.h:247
static const reco::Track* BPHTrackReference::getFromGP ( const reco::Candidate rc)
inlinestatic

Definition at line 115 of file BPHTrackReference.h.

References alignCSCRings::e, edm::Ref< C, T, F >::get(), runTauDisplay::gp, edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), and pat::GenericParticle::track().

115  {
116 // std::cout << "getFromGC" << std::endl;
117  const pat::GenericParticle* gp =
118  dynamic_cast<const pat::GenericParticle*>( &rc );
119  if ( gp == 0 ) return 0;
120  try {
121  const reco::TrackRef& tkr = gp->track();
122  if ( tkr.isNonnull() && tkr.isAvailable() ) return tkr.get();
123  }
124  catch ( edm::Exception e ) {
125  }
126  return 0;
127  }
bool isAvailable() const
Definition: Ref.h:576
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
Analysis-level Generic Particle class (e.g. for hadron or muon not fully reconstructed) ...
virtual reco::TrackRef track() const
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
static const reco::Track* BPHTrackReference::getFromPC ( const reco::Candidate rc)
inlinestatic

Definition at line 138 of file BPHTrackReference.h.

References alignCSCRings::e, createTree::pp, and pat::PackedCandidate::pseudoTrack().

138  {
139 // std::cout << "getFromPC" << std::endl;
140  const pat::PackedCandidate* pp =
141  dynamic_cast<const pat::PackedCandidate*>( &rc );
142  if ( pp == 0 ) return 0;
143  try {
144  const reco::Track* trk = &pp->pseudoTrack();
145  return trk;
146  }
147  catch ( edm::Exception e ) {
148  }
149  return 0;
150  }
tuple pp
Definition: createTree.py:15
virtual const reco::Track & pseudoTrack() const
Return reference to a pseudo track made with candidate kinematics, parameterized error for eta...
static const reco::Track* BPHTrackReference::getFromPF ( const reco::Candidate rc)
inlinestatic

Definition at line 102 of file BPHTrackReference.h.

References alignCSCRings::e, edm::Ref< C, T, F >::get(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), and reco::PFCandidate::trackRef().

Referenced by BPHRecoBuilder::sameTrack().

102  {
103 // std::cout << "getFromPF" << std::endl;
104  const reco::PFCandidate* pf =
105  dynamic_cast<const reco::PFCandidate*>( &rc );
106  if ( pf == 0 ) return 0;
107  try {
108  const reco::TrackRef& tkr = pf->trackRef();
109  if ( tkr.isNonnull() && tkr.isAvailable() ) return tkr.get();
110  }
111  catch ( edm::Exception e ) {
112  }
113  return 0;
114  }
bool isAvailable() const
Definition: Ref.h:576
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
reco::TrackRef trackRef() const
Definition: PFCandidate.cc:438
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
Particle reconstructed by the particle flow algorithm.
Definition: PFCandidate.h:39
static const reco::Track* BPHTrackReference::getFromRC ( const reco::Candidate rc)
inlinestatic

Definition at line 92 of file BPHTrackReference.h.

References alignCSCRings::e, reco::Candidate::get(), edm::Ref< C, T, F >::get(), edm::Ref< C, T, F >::isAvailable(), and edm::Ref< C, T, F >::isNonnull().

Referenced by BPHRecoBuilder::sameTrack().

92  {
93 // std::cout << "getFromRC" << std::endl;
94  try {
95  const reco::TrackRef& tkr = rc.get<reco::TrackRef>();
96  if ( tkr.isNonnull() && tkr.isAvailable() ) return tkr.get();
97  }
98  catch ( edm::Exception e ) {
99  }
100  return 0;
101  }
bool isAvailable() const
Definition: Ref.h:576
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
T get() const
get a component
Definition: Candidate.h:217
static const reco::Track* BPHTrackReference::getMuonBT ( const reco::Candidate rc)
inlinestatic

Definition at line 169 of file BPHTrackReference.h.

References RPCpg::mu.

169  {
170 // std::cout << "getMuonBT" << std::endl;
171  const reco::Muon* mu = dynamic_cast<const reco::Muon*>( &rc );
172  if ( mu == 0 ) return 0;
173  return getMuonBT( mu );
174  }
const int mu
Definition: Constants.h:22
static const reco::Track * getMuonBT(const reco::Candidate &rc)
static const reco::Track* BPHTrackReference::getMuonBT ( const reco::Muon mu)
inlinestatic

Definition at line 175 of file BPHTrackReference.h.

References alignCSCRings::e, edm::Ref< C, T, F >::get(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), and reco::Muon::muonBestTrack().

175  {
176  try {
177  const reco::TrackRef& tkr = mu->muonBestTrack();
178  if ( tkr.isNonnull() && tkr.isAvailable() ) return tkr.get();
179  }
180  catch ( edm::Exception e ) {
181  }
182  return 0;
183  }
bool isAvailable() const
Definition: Ref.h:576
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
virtual TrackRef muonBestTrack() const
Definition: Muon.h:63
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
static const reco::Track* BPHTrackReference::getMuonGT ( const reco::Candidate rc)
inlinestatic

Definition at line 200 of file BPHTrackReference.h.

References RPCpg::mu.

200  {
201 // std::cout << "getMuonGT" << std::endl;
202  const pat::Muon* mu = dynamic_cast<const pat::Muon*>( &rc );
203  if ( mu == 0 ) return 0;
204  return getMuonGT( mu );
205  }
static const reco::Track * getMuonGT(const reco::Candidate &rc)
const int mu
Definition: Constants.h:22
Analysis-level muon class.
Definition: Muon.h:49
static const reco::Track* BPHTrackReference::getMuonGT ( const pat::Muon mu)
inlinestatic

Definition at line 206 of file BPHTrackReference.h.

References alignCSCRings::e, edm::Ref< C, T, F >::get(), pat::Muon::globalTrack(), edm::Ref< C, T, F >::isAvailable(), reco::Muon::isGlobalMuon(), and edm::Ref< C, T, F >::isNonnull().

206  {
207  if ( !mu->isGlobalMuon() ) return 0;
208  try {
209  const reco::TrackRef& mgt = mu->globalTrack();
210  if ( mgt.isNonnull() && mgt.isAvailable() ) return mgt.get();
211  }
212  catch ( edm::Exception e ) {
213  }
214  return 0;
215  }
bool isAvailable() const
Definition: Ref.h:576
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
bool isGlobalMuon() const
Definition: Muon.h:225
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
reco::TrackRef globalTrack() const
reference to Track reconstructed in both tracked and muon detector (reimplemented from reco::Muon) ...
Definition: Muon.h:80
static const reco::Track* BPHTrackReference::getMuonIT ( const reco::Candidate rc)
inlinestatic

Definition at line 184 of file BPHTrackReference.h.

References RPCpg::mu.

184  {
185 // std::cout << "getMuonIT" << std::endl;
186  const pat::Muon* mu = dynamic_cast<const pat::Muon*>( &rc );
187  if ( mu == 0 ) return 0;
188  return getMuonIT( mu );
189  }
static const reco::Track * getMuonIT(const reco::Candidate &rc)
const int mu
Definition: Constants.h:22
Analysis-level muon class.
Definition: Muon.h:49
static const reco::Track* BPHTrackReference::getMuonIT ( const pat::Muon mu)
inlinestatic

Definition at line 190 of file BPHTrackReference.h.

References alignCSCRings::e, edm::Ref< C, T, F >::get(), pat::Muon::innerTrack(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), and reco::Muon::isTrackerMuon().

190  {
191  if ( !mu->isTrackerMuon() ) return 0;
192  try {
193  const reco::TrackRef& mit = mu->innerTrack();
194  if ( mit.isNonnull() && mit.isAvailable() ) return mit.get();
195  }
196  catch ( edm::Exception e ) {
197  }
198  return 0;
199  }
bool isAvailable() const
Definition: Ref.h:576
reco::TrackRef innerTrack() const
reference to Track reconstructed in the tracker only (reimplemented from reco::Muon) ...
Definition: Muon.h:72
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
bool isTrackerMuon() const
Definition: Muon.h:226
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
static const reco::Track* BPHTrackReference::getMuonPF ( const reco::Candidate rc)
inlinestatic

Definition at line 151 of file BPHTrackReference.h.

References RPCpg::mu.

151  {
152 // std::cout << "getMuonPF" << std::endl;
153  const pat::Muon* mu = dynamic_cast<const pat::Muon*>( &rc );
154  if ( mu == 0 ) return 0;
155  return getMuonPF( mu );
156  }
static const reco::Track * getMuonPF(const reco::Candidate &rc)
const int mu
Definition: Constants.h:22
Analysis-level muon class.
Definition: Muon.h:49
static const reco::Track* BPHTrackReference::getMuonPF ( const pat::Muon mu)
inlinestatic

Definition at line 157 of file BPHTrackReference.h.

References alignCSCRings::e, edm::Ref< C, T, F >::get(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), and pat::Muon::pfCandidateRef().

157  {
158  try {
159  const reco::PFCandidateRef& pcr = mu->pfCandidateRef();
160  if ( pcr.isNonnull() && pcr.isAvailable() ) {
161  const reco::TrackRef& tkr = pcr->trackRef();
162  if ( tkr.isNonnull() && tkr.isAvailable() ) return tkr.get();
163  }
164  }
165  catch ( edm::Exception e ) {
166  }
167  return 0;
168  }
bool isAvailable() const
Definition: Ref.h:576
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
reco::PFCandidateRef pfCandidateRef() const
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
static const reco::Track* BPHTrackReference::getMuonSA ( const reco::Candidate rc)
inlinestatic

Definition at line 216 of file BPHTrackReference.h.

References RPCpg::mu.

216  {
217 // std::cout << "getMuonGT" << std::endl;
218  const pat::Muon* mu = dynamic_cast<const pat::Muon*>( &rc );
219  if ( mu == 0 ) return 0;
220  return getMuonSA( mu );
221  }
static const reco::Track * getMuonSA(const reco::Candidate &rc)
const int mu
Definition: Constants.h:22
Analysis-level muon class.
Definition: Muon.h:49
static const reco::Track* BPHTrackReference::getMuonSA ( const pat::Muon mu)
inlinestatic

Definition at line 222 of file BPHTrackReference.h.

References alignCSCRings::e, edm::Ref< C, T, F >::get(), edm::Ref< C, T, F >::isAvailable(), edm::Ref< C, T, F >::isNonnull(), reco::Muon::isStandAloneMuon(), and pat::Muon::standAloneMuon().

222  {
223  if ( !mu->isStandAloneMuon() ) return 0;
224  try {
225  const reco::TrackRef& msa = mu->standAloneMuon();
226  if ( msa.isNonnull() && msa.isAvailable() ) return msa.get();
227  }
228  catch ( edm::Exception e ) {
229  }
230  return 0;
231  }
bool isAvailable() const
Definition: Ref.h:576
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
bool isStandAloneMuon() const
Definition: Muon.h:227
reco::TrackRef standAloneMuon() const
reference to Track reconstructed in the muon detector only (reimplemented from reco::Muon) ...
T const * get() const
Returns C++ pointer to the item.
Definition: Ref.h:244
static const reco::Track* BPHTrackReference::getTrack ( const reco::Candidate rc,
const char *  modeList = "cfhbpmnigse" 
)
inlinestatic

Operationsget associated reco::Track calling a sequence of functions until a track is found; the list of functions to call is given as a string where each character identify a function: c : reco :: Candidate :: get<reco::TrackRef> () f : reco :: PFCandidate :: trackRef () h : pat :: GenericParticle :: track () b : reco :: Candidate :: bestTrack () p : pat :: PackedCandidate :: pseudoTrack () m : pat :: Muon :: pfCandidateRef () n : pat :: Muon :: muonBestTrack () i : pat :: Muon :: innerTrack () g : pat :: Muon :: globalTrack () s : pat :: Muon :: standAloneMuon () e : pat :: Electron :: pfCandidateRef ()

Definition at line 68 of file BPHTrackReference.h.

Referenced by BPHDecayVertex::tTracks().

69  {
70  if ( rc.charge() == 0 ) return 0;
71  const char* mptr = modeList;
72  char mode;
73  const reco::Track* tkp = 0;
74  while ( ( mode = *mptr++ ) ) {
75  switch ( mode ) {
76  case 'c': if ( ( tkp = getFromRC( rc ) ) != 0 ) return tkp; break;
77  case 'f': if ( ( tkp = getFromPF( rc ) ) != 0 ) return tkp; break;
78  case 'h': if ( ( tkp = getFromGP( rc ) ) != 0 ) return tkp; break;
79  case 'b': if ( ( tkp = getFromBT( rc ) ) != 0 ) return tkp; break;
80  case 'p': if ( ( tkp = getFromPC( rc ) ) != 0 ) return tkp; break;
81  case 'm': if ( ( tkp = getMuonPF( rc ) ) != 0 ) return tkp; break;
82  case 'n': if ( ( tkp = getMuonBT( rc ) ) != 0 ) return tkp; break;
83  case 'i': if ( ( tkp = getMuonIT( rc ) ) != 0 ) return tkp; break;
84  case 'g': if ( ( tkp = getMuonGT( rc ) ) != 0 ) return tkp; break;
85  case 's': if ( ( tkp = getMuonSA( rc ) ) != 0 ) return tkp; break;
86  case 'e': if ( ( tkp = getElecPF( rc ) ) != 0 ) return tkp; break;
87  }
88  }
89  return 0;
90  }
static const reco::Track * getMuonPF(const reco::Candidate &rc)
static const reco::Track * getFromPF(const reco::Candidate &rc)
static const reco::Track * getMuonSA(const reco::Candidate &rc)
static const reco::Track * getFromRC(const reco::Candidate &rc)
static const reco::Track * getMuonIT(const reco::Candidate &rc)
static const reco::Track * getMuonGT(const reco::Candidate &rc)
virtual int charge() const =0
electric charge
static const reco::Track * getElecPF(const reco::Candidate &rc)
static const reco::Track * getFromPC(const reco::Candidate &rc)
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)
BPHTrackReference& BPHTrackReference::operator= ( const BPHTrackReference x)
private