#include <CDCandidate.h>
Inheritance diagram for CDCandidate:
Public Types | |
typedef CDDecay | DecayEvidence |
typedef std::pair< vector< const EvtRecTrack * >, vector< const EvtRecTrack * > > | TracksAndShowers |
Public Member Functions | |
virtual | ~CDCandidate () |
const CDCandidate & | operator= (const CDCandidate &aOtherCDCandidate) |
void | setUserTag (int tag) |
CDCandidate & | setP4 (const HepLorentzVector &aMomentum) |
int | userTag () const |
double | mass () const |
int | charge () const |
double | energy () const |
const Hep3Vector & | momentum () const |
const HepLorentzVector & | p4 () const |
const DecayChain::KinematicData * | kinematicData () const |
TracksAndShowers | finalChildren () const |
virtual DBCandidate::Hypo | hypo () const |
virtual bool | builtFromTrack () const |
virtual const EvtRecTrack * | track () const |
virtual bool | builtFromCDPhoton () const |
virtual const EvtRecTrack * | photon () const |
virtual bool | builtFromCDPi0 () const |
virtual const EvtRecPi0 * | navPi0 () const |
virtual bool | builtFromCDEta () const |
virtual const EvtRecEtaToGG * | navEta () const |
virtual bool | builtFromCDKs () const |
virtual const EvtRecVeeVertex * | navKshort () const |
virtual bool | builtFromCDLambda () const |
virtual const EvtRecVeeVertex * | navLambda () const |
virtual bool | builtFromCDDecay () const |
virtual const DecayEvidence & | decay () const |
bool | overlap (const CDCandidate &aOtherCDCandidate) const |
const CDFootPrint & | footPrint () const |
void | addLink () const |
void | dropLink () const |
Protected Member Functions | |
CDCandidate (const CDCandidate &aOtherCDCandidate) | |
CDCandidate (const CDFootPrint &aCDFootPrint) | |
void | setKinematicData (const DecayChain::KinematicData &aKinematicData) |
void | setCDFootPrint (const CDFootPrint &aCDFootPrint) |
virtual DecayChain::KinematicData * | defaultKinematicData () const =0 |
void | recurseNode (TracksAndShowers &final, const CDCandidate &cand) const |
Private Member Functions | |
CDCandidate () | |
DecayChain::KinematicData * | modifiableKinematicData () |
Private Attributes | |
DecayChain::KinematicData * | m_kinematicDataPtr |
CDFootPrint | m_footPrint |
Definition at line 123 of file CDCandidate.h.
typedef CDDecay CDCandidate::DecayEvidence |
Definition at line 129 of file CDCandidate.h.
typedef std::pair< vector<const EvtRecTrack*>, vector<const EvtRecTrack*> > CDCandidate::TracksAndShowers |
Definition at line 131 of file CDCandidate.h.
CDCandidate::~CDCandidate | ( | ) | [virtual] |
Definition at line 58 of file CDCandidate.cxx.
References m_kinematicDataPtr.
00059 { 00060 delete m_kinematicDataPtr ; 00061 }
CDCandidate::CDCandidate | ( | const CDCandidate & | aOtherCDCandidate | ) | [protected] |
Definition at line 36 of file CDCandidate.cxx.
References kinematicData(), m_kinematicDataPtr, and setKinematicData().
00036 : 00037 ReferenceCount(), 00038 m_kinematicDataPtr(0), 00039 m_footPrint( aOtherCDCandidate.footPrint() ) 00040 { 00041 if ( 0 != aOtherCDCandidate.m_kinematicDataPtr ) { 00042 setKinematicData( * (aOtherCDCandidate.kinematicData()) ) ; 00043 } 00044 }
CDCandidate::CDCandidate | ( | const CDFootPrint & | aCDFootPrint | ) | [protected] |
Definition at line 50 of file CDCandidate.cxx.
00050 : 00051 m_kinematicDataPtr( 0 ) , 00052 m_footPrint( aCDFootPrint ) 00053 { 00054 }
CDCandidate::CDCandidate | ( | ) | [private] |
void dchain::ReferenceCount::addLink | ( | ) | const [inline, inherited] |
Definition at line 107 of file ReferenceCount.h.
References dchain::ReferenceCount::m_linkCount.
00108 { 00109 //if (m_linkCount==0xFFFFFFFF) { 00110 // throw TooManyReferencesException(); 00111 //} 00112 ++m_linkCount ; 00113 }
bool CDCandidate::builtFromCDDecay | ( | ) | const [virtual] |
bool CDCandidate::builtFromCDEta | ( | ) | const [virtual] |
bool CDCandidate::builtFromCDKs | ( | ) | const [virtual] |
bool CDCandidate::builtFromCDLambda | ( | ) | const [virtual] |
bool CDCandidate::builtFromCDPhoton | ( | ) | const [virtual] |
Reimplemented in CDPhoton.
Definition at line 247 of file CDCandidate.cxx.
Referenced by recurseNode().
bool CDCandidate::builtFromCDPi0 | ( | ) | const [virtual] |
bool CDCandidate::builtFromTrack | ( | ) | const [virtual] |
Reimplemented in CDChargedVisible< H >.
Definition at line 227 of file CDCandidate.cxx.
Referenced by recurseNode().
int CDCandidate::charge | ( | ) | const |
Definition at line 154 of file CDCandidate.cxx.
References DecayChain::KinematicData::charge(), and kinematicData().
Referenced by CDDecay::defaultKinematicData(), and CDChargedVisible< H >::defaultKinematicData().
00155 { 00156 return kinematicData()->charge(); 00157 }
const CDDecay & CDCandidate::decay | ( | ) | const [virtual] |
Reimplemented in CDDecay.
Definition at line 356 of file CDCandidate.cxx.
Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and recurseNode().
00357 { 00358 std::cerr << "No CDDecay for this CDCandidate" << std::endl ; 00359 exit( 1 ) ; 00360 return ( *(CDDecay*)0 ) ; 00361 }
virtual DecayChain::KinematicData* CDCandidate::defaultKinematicData | ( | ) | const [protected, pure virtual] |
Implemented in CDChargedVisible< H >, CDDecay, CDEta, CDKs, CDLambda, CDPhoton, and CDPi0.
Referenced by modifiableKinematicData().
void dchain::ReferenceCount::dropLink | ( | ) | const [inline, inherited] |
Definition at line 115 of file ReferenceCount.h.
References dchain::ReferenceCount::m_linkCount.
00116 { 00117 --m_linkCount ; 00118 if ( 0 == m_linkCount ) { 00119 // It is necessary to throw away the 'const' so that the object 00120 // can be deleted 00121 delete const_cast<ReferenceCount*>(this) ; 00122 } 00123 }
double CDCandidate::energy | ( | ) | const |
Definition at line 163 of file CDCandidate.cxx.
References DecayChain::KinematicData::energy(), and kinematicData().
Referenced by NeutralDSelector::operator()(), DsSelector::operator()(), and ChargedDSelector::operator()().
00164 { 00165 return kinematicData()->energy(); 00166 }
CDCandidate::TracksAndShowers CDCandidate::finalChildren | ( | ) | const |
Definition at line 193 of file CDCandidate.cxx.
References recurseNode().
00194 { 00195 TracksAndShowers blocks; 00196 recurseNode(blocks, *this); 00197 return blocks; 00198 }
const CDFootPrint & CDCandidate::footPrint | ( | ) | const |
Definition at line 375 of file CDCandidate.cxx.
References m_footPrint.
Referenced by CDDecay::addChild(), operator=(), and overlap().
00376 { 00377 return ( m_footPrint ) ; 00378 }
DBCandidate::Hypo CDCandidate::hypo | ( | ) | const [inline, virtual] |
Reimplemented in CDChargedVisible< H >, and CDPhoton.
Definition at line 212 of file CDCandidate.h.
References DBCandidate::kMaxHypo.
00213 { 00214 return DBCandidate::kMaxHypo; 00215 }
const KinematicData * CDCandidate::kinematicData | ( | ) | const |
Definition at line 185 of file CDCandidate.cxx.
References modifiableKinematicData().
Referenced by CDCandidate(), charge(), energy(), mass(), momentum(), operator=(), p4(), and userTag().
00186 { 00187 // Cast away `const' to pick up the function. 00188 // This is safe as the result is being returned as a `const' 00189 return ( (*(CDCandidate*)this).modifiableKinematicData() ); 00190 }
double CDCandidate::mass | ( | ) | const |
Definition at line 145 of file CDCandidate.cxx.
References kinematicData(), and DecayChain::KinematicData::mass().
Referenced by CDKs::defaultKinematicData(), CDChargedVisible< H >::defaultKinematicData(), NeutralDSelector::operator()(), LocalRhotoPiPiSelector::operator()(), LocalEtatoPiPiPi0Selector::operator()(), LocalEptoRhoGamSelector::operator()(), LocalEptoPiPiEtaSelector::operator()(), LocalEptoPiPiEta3PiSelector::operator()(), DsSelector::operator()(), and ChargedDSelector::operator()().
00146 { 00147 return kinematicData()->mass(); 00148 }
KinematicData * CDCandidate::modifiableKinematicData | ( | ) | [private] |
Definition at line 125 of file CDCandidate.cxx.
References defaultKinematicData(), and m_kinematicDataPtr.
Referenced by kinematicData(), setKinematicData(), setP4(), and setUserTag().
00126 { 00127 if ( 0 == m_kinematicDataPtr ) { 00128 m_kinematicDataPtr = defaultKinematicData() ; 00129 if ( 0 == m_kinematicDataPtr ) { 00130 std::cerr << "No memory to allocate another kinematicData" << std::endl ; 00131 exit( 1 ) ; 00132 } 00133 } 00134 return m_kinematicDataPtr ; 00135 }
const Hep3Vector & CDCandidate::momentum | ( | ) | const |
Definition at line 172 of file CDCandidate.cxx.
References kinematicData(), and DecayChain::KinematicData::p4().
Referenced by NeutralDSelector::operator()(), DsSelector::operator()(), and ChargedDSelector::operator()().
00173 { 00174 return kinematicData()->p4(); 00175 }
const EvtRecEtaToGG * CDCandidate::navEta | ( | ) | const [virtual] |
Reimplemented in CDEta.
Definition at line 296 of file CDCandidate.cxx.
Referenced by NeutralDReconstruction::execute(), and DsReconstruction::execute().
00297 { 00298 std::cerr << "No NavCDEta for this CDCandidate" << std::endl ; 00299 exit( 1 ) ; 00300 return ( (EvtRecEtaToGG*)0 ) ; 00301 }
const EvtRecVeeVertex * CDCandidate::navKshort | ( | ) | const [virtual] |
Reimplemented in CDKs.
Definition at line 316 of file CDCandidate.cxx.
00317 { 00318 std::cerr << "No NavKs for this CDCandidate" << std::endl ; 00319 exit( 1 ) ; 00320 return ( (EvtRecVeeVertex*)0 ) ; 00321 }
const EvtRecVeeVertex * CDCandidate::navLambda | ( | ) | const [virtual] |
Reimplemented in CDLambda.
Definition at line 336 of file CDCandidate.cxx.
00337 { 00338 std::cerr << "No NavLambda for this CDCandidate" << std::endl ; 00339 exit( 1 ) ; 00340 return ( (EvtRecVeeVertex*)0 ) ; 00341 }
const EvtRecPi0 * CDCandidate::navPi0 | ( | ) | const [virtual] |
Reimplemented in CDPi0.
Definition at line 276 of file CDCandidate.cxx.
Referenced by DsReconstruction::execute().
00277 { 00278 std::cerr << "No NavCDPi0 for this CDCandidate" << std::endl ; 00279 exit( 1 ) ; 00280 return ( (EvtRecPi0*)0 ) ; 00281 }
const CDCandidate & CDCandidate::operator= | ( | const CDCandidate & | aOtherCDCandidate | ) |
Definition at line 67 of file CDCandidate.cxx.
References footPrint(), kinematicData(), m_footPrint, m_kinematicDataPtr, and setKinematicData().
00068 { 00069 if ( 0 == aOtherCDCandidate.m_kinematicDataPtr ) { 00070 delete m_kinematicDataPtr ; 00071 m_kinematicDataPtr = 0 ; 00072 } 00073 else { 00074 setKinematicData( * (aOtherCDCandidate.kinematicData()) ) ; 00075 } 00076 m_footPrint = aOtherCDCandidate.footPrint() ; 00077 return ( *this ) ; 00078 }
bool CDCandidate::overlap | ( | const CDCandidate & | aOtherCDCandidate | ) | const |
Definition at line 367 of file CDCandidate.cxx.
References footPrint(), m_footPrint, and CDFootPrint::overlap().
00368 { 00369 return ( m_footPrint.overlap( aOtherCDCandidate.footPrint() ) ) ; 00370 }
const HepLorentzVector & CDCandidate::p4 | ( | ) | const |
Definition at line 177 of file CDCandidate.cxx.
References kinematicData(), and DecayChain::KinematicData::p4().
Referenced by CDDecay::defaultKinematicData().
00178 { 00179 return kinematicData()->p4(); 00180 }
const EvtRecTrack * CDCandidate::photon | ( | ) | const [virtual] |
Reimplemented in CDPhoton.
Definition at line 256 of file CDCandidate.cxx.
Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and recurseNode().
00257 { 00258 std::cerr << "No NavShower for this CDCandidate" << std::endl ; 00259 exit( 1 ) ; 00260 return ( (EvtRecTrack*)0 ) ; 00261 }
void CDCandidate::recurseNode | ( | TracksAndShowers & | final, | |
const CDCandidate & | cand | |||
) | const [protected] |
Definition at line 201 of file CDCandidate.cxx.
References builtFromCDPhoton(), builtFromTrack(), CDDecay::children(), decay(), first, photon(), EvtCyclic3::second(), and track().
Referenced by finalChildren().
00203 { 00204 if(cand.builtFromTrack()) 00205 { 00206 final.first.push_back( cand.track() ); 00207 return; 00208 } 00209 if(cand.builtFromCDPhoton()) 00210 { 00211 final.second.push_back( cand.photon() ); 00212 return; 00213 } 00214 const DecayEvidence& decay = cand.decay(); 00215 const vector< ReferenceHolder<CDCandidate> >& children = decay.children(); 00216 vector< ReferenceHolder<CDCandidate> >::const_iterator lastChild = children.end(); 00217 for(vector<ReferenceHolder<CDCandidate> >::const_iterator child = children.begin(); 00218 child != lastChild; ++child) 00219 { 00220 recurseNode(final, **child); 00221 } 00222 }
void CDCandidate::setCDFootPrint | ( | const CDFootPrint & | aCDFootPrint | ) | [protected] |
Definition at line 117 of file CDCandidate.cxx.
References m_footPrint.
Referenced by CDDecay::addChild().
00118 { 00119 m_footPrint = aCDFootPrint ; 00120 }
void CDCandidate::setKinematicData | ( | const DecayChain::KinematicData & | aKinematicData | ) | [protected] |
Reimplemented in CDDecay.
Definition at line 99 of file CDCandidate.cxx.
References m_kinematicDataPtr, and modifiableKinematicData().
Referenced by CDCandidate(), operator=(), and CDDecay::setKinematicData().
00100 { 00101 if ( 0 == m_kinematicDataPtr ) { 00102 m_kinematicDataPtr = new KinematicData( aKinematicData ) ; 00103 if ( 0 == m_kinematicDataPtr ) { 00104 std::cerr << "No memory to allocate another kinematicData" << std::endl ; 00105 exit( 1 ) ; 00106 } 00107 return ; 00108 } 00109 (*(this->modifiableKinematicData())) = aKinematicData ; 00110 return ; 00111 }
CDCandidate & CDCandidate::setP4 | ( | const HepLorentzVector & | aMomentum | ) |
Definition at line 88 of file CDCandidate.cxx.
References modifiableKinematicData(), and DecayChain::KinematicData::setP4().
00089 { 00090 this->modifiableKinematicData()->setP4( aMomentum ) ; 00091 return( *this ) ; 00092 }
void CDCandidate::setUserTag | ( | int | tag | ) |
Definition at line 81 of file CDCandidate.cxx.
References modifiableKinematicData(), and DecayChain::KinematicData::setUserTag().
Referenced by LocalRhotoPiPiSelector::operator()(), LocalPionSelector::operator()(), LocalPi0Selector::operator()(), LocalPhotonSelector::operator()(), LocalKsSelector::operator()(), LocalKaonSelector::operator()(), LocalEtatoPiPiPi0Selector::operator()(), LocalEtatoGGSelector::operator()(), LocalEptoRhoGamSelector::operator()(), LocalEptoPiPiEtaSelector::operator()(), and LocalEptoPiPiEta3PiSelector::operator()().
00082 { 00083 this->modifiableKinematicData()->setUserTag( tag ); 00084 }
const EvtRecTrack * CDCandidate::track | ( | ) | const [virtual] |
Reimplemented in CDChargedVisible< H >.
Definition at line 236 of file CDCandidate.cxx.
Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and recurseNode().
00237 { 00238 std::cerr << "No navtrack for this CDCandidate" << std::endl ; 00239 exit( 1 ) ; 00240 return ( (EvtRecTrack*)0 ) ; 00241 }
int CDCandidate::userTag | ( | ) | const |
Definition at line 137 of file CDCandidate.cxx.
References kinematicData(), and DecayChain::KinematicData::userTag().
Referenced by CDDecay::defaultKinematicData(), LocalPionSelector::operator()(), and LocalKaonSelector::operator()().
00138 { 00139 return kinematicData()->userTag(); 00140 }
CDFootPrint CDCandidate::m_footPrint [private] |
Definition at line 205 of file CDCandidate.h.
Referenced by footPrint(), operator=(), overlap(), and setCDFootPrint().
Definition at line 203 of file CDCandidate.h.
Referenced by CDCandidate(), modifiableKinematicData(), operator=(), setKinematicData(), and ~CDCandidate().