#include <CDPhoton.h>
Inheritance diagram for CDPhoton:
Public Types | |
typedef CDCandidate | CandidateClass |
typedef EvtRecTrack | VisibleEvidence |
typedef CDDecay | DecayEvidence |
typedef std::pair< vector< const EvtRecTrack * >, vector< const EvtRecTrack * > > | TracksAndShowers |
Public Member Functions | |
CDPhoton (const VisibleEvidence *aVisible) | |
CDPhoton (const CDPhoton &aOtherCDPhoton) | |
virtual | ~CDPhoton () |
virtual bool | builtFromCDPhoton () const |
virtual const EvtRecTrack * | photon () const |
virtual DBCandidate::Hypo | hypo () const |
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 bool | builtFromTrack () const |
virtual const EvtRecTrack * | track () 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 |
Static Public Member Functions | |
static bool | setIP (double x, double y, double z) |
Protected Member Functions | |
virtual DecayChain::KinematicData * | defaultKinematicData () const |
void | setKinematicData (const DecayChain::KinematicData &aKinematicData) |
void | setCDFootPrint (const CDFootPrint &aCDFootPrint) |
void | recurseNode (TracksAndShowers &final, const CDCandidate &cand) const |
Private Member Functions | |
CDPhoton () | |
const CDPhoton & | operator= (const CDPhoton &aOtherCDPhoton) |
Private Attributes | |
const VisibleEvidence * | m_visibleEvidence |
Static Private Attributes | |
static Hep3Vector | m_IPV |
Definition at line 76 of file CDPhoton.h.
typedef CDCandidate CDPhoton::CandidateClass |
Definition at line 82 of file CDPhoton.h.
typedef CDDecay CDCandidate::DecayEvidence [inherited] |
Definition at line 129 of file CDCandidate.h.
typedef std::pair< vector<const EvtRecTrack*>, vector<const EvtRecTrack*> > CDCandidate::TracksAndShowers [inherited] |
Definition at line 131 of file CDCandidate.h.
typedef EvtRecTrack CDPhoton::VisibleEvidence |
Definition at line 83 of file CDPhoton.h.
CDPhoton::CDPhoton | ( | const VisibleEvidence * | aVisible | ) |
Definition at line 110 of file CDPhoton.cxx.
00110 : 00111 CDCandidate( CDMud< VisibleEvidence >::get( aVisible ) ) , 00112 m_visibleEvidence( aVisible ) 00113 { 00114 }
CDPhoton::CDPhoton | ( | const CDPhoton & | aOtherCDPhoton | ) |
Definition at line 119 of file CDPhoton.cxx.
00119 : 00120 CDCandidate( aOtherCDPhoton ) , 00121 m_visibleEvidence( aOtherCDPhoton.m_visibleEvidence ) 00122 { 00123 }
CDPhoton::~CDPhoton | ( | ) | [virtual] |
CDPhoton::CDPhoton | ( | ) | [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, inherited] |
bool CDCandidate::builtFromCDEta | ( | ) | const [virtual, inherited] |
bool CDCandidate::builtFromCDKs | ( | ) | const [virtual, inherited] |
bool CDCandidate::builtFromCDLambda | ( | ) | const [virtual, inherited] |
bool CDPhoton::builtFromCDPhoton | ( | ) | const [virtual] |
Reimplemented from CDCandidate.
Definition at line 136 of file CDPhoton.cxx.
References m_visibleEvidence.
00137 { 00138 return ( 0 != m_visibleEvidence ) ; 00139 }
bool CDCandidate::builtFromCDPi0 | ( | ) | const [virtual, inherited] |
bool CDCandidate::builtFromTrack | ( | ) | const [virtual, inherited] |
Reimplemented in CDChargedVisible< H >.
Definition at line 227 of file CDCandidate.cxx.
Referenced by CDCandidate::recurseNode().
int CDCandidate::charge | ( | ) | const [inherited] |
Definition at line 154 of file CDCandidate.cxx.
References DecayChain::KinematicData::charge(), and CDCandidate::kinematicData().
Referenced by CDDecay::defaultKinematicData(), and CDChargedVisible< H >::defaultKinematicData().
00155 { 00156 return kinematicData()->charge(); 00157 }
const CDDecay & CDCandidate::decay | ( | ) | const [virtual, inherited] |
Reimplemented in CDDecay.
Definition at line 356 of file CDCandidate.cxx.
Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and CDCandidate::recurseNode().
00357 { 00358 std::cerr << "No CDDecay for this CDCandidate" << std::endl ; 00359 exit( 1 ) ; 00360 return ( *(CDDecay*)0 ) ; 00361 }
KinematicData * CDPhoton::defaultKinematicData | ( | ) | const [protected, virtual] |
Implements CDCandidate.
Definition at line 153 of file CDPhoton.cxx.
References cos(), DstEmcShower::energy(), m_IPV, m_visibleEvidence, DecayChain::KinematicData::setP4(), sin(), DstEmcShower::x(), DstEmcShower::y(), and DstEmcShower::z().
00154 { 00155 RecEmcShower* emcShower = (const_cast<VisibleEvidence*>(m_visibleEvidence))->emcShower(); 00156 00157 double eraw = emcShower->energy(); 00158 00159 //double phi = emcShower->phi(); 00160 //double the = emcShower->theta(); 00161 00162 Hep3Vector EmcV( emcShower->x(), emcShower->y(), emcShower->z() ); 00163 Hep3Vector PhotonV = EmcV - m_IPV; 00164 00165 double phi = PhotonV.phi(); 00166 double the = PhotonV.theta(); 00167 00168 double px = eraw*sin(the)*cos(phi); 00169 double py = eraw*sin(the)*sin(phi); 00170 double pz = eraw*cos(the); 00171 00172 KinematicData* tmp = new KinematicData(); 00173 00174 tmp->setP4( HepLorentzVector(px, py, pz, eraw) ); 00175 00176 return tmp; 00177 }
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 [inherited] |
Definition at line 163 of file CDCandidate.cxx.
References DecayChain::KinematicData::energy(), and CDCandidate::kinematicData().
Referenced by NeutralDSelector::operator()(), DsSelector::operator()(), and ChargedDSelector::operator()().
00164 { 00165 return kinematicData()->energy(); 00166 }
CDCandidate::TracksAndShowers CDCandidate::finalChildren | ( | ) | const [inherited] |
Definition at line 193 of file CDCandidate.cxx.
References CDCandidate::recurseNode().
00194 { 00195 TracksAndShowers blocks; 00196 recurseNode(blocks, *this); 00197 return blocks; 00198 }
const CDFootPrint & CDCandidate::footPrint | ( | ) | const [inherited] |
Definition at line 375 of file CDCandidate.cxx.
References CDCandidate::m_footPrint.
Referenced by CDDecay::addChild(), CDCandidate::operator=(), and CDCandidate::overlap().
00376 { 00377 return ( m_footPrint ) ; 00378 }
DBCandidate::Hypo CDPhoton::hypo | ( | ) | const [inline, virtual] |
Reimplemented from CDCandidate.
Definition at line 134 of file CDPhoton.h.
References DBCandidate::kPhoton.
00135 { 00136 return DBCandidate::kPhoton; 00137 }
const KinematicData * CDCandidate::kinematicData | ( | ) | const [inherited] |
Definition at line 185 of file CDCandidate.cxx.
References CDCandidate::modifiableKinematicData().
Referenced by CDCandidate::CDCandidate(), CDCandidate::charge(), CDCandidate::energy(), CDCandidate::mass(), CDCandidate::momentum(), CDCandidate::operator=(), CDCandidate::p4(), and CDCandidate::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 [inherited] |
Definition at line 145 of file CDCandidate.cxx.
References CDCandidate::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 }
const Hep3Vector & CDCandidate::momentum | ( | ) | const [inherited] |
Definition at line 172 of file CDCandidate.cxx.
References CDCandidate::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, inherited] |
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, inherited] |
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, inherited] |
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, inherited] |
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 }
bool CDCandidate::overlap | ( | const CDCandidate & | aOtherCDCandidate | ) | const [inherited] |
Definition at line 367 of file CDCandidate.cxx.
References CDCandidate::footPrint(), CDCandidate::m_footPrint, and CDFootPrint::overlap().
00368 { 00369 return ( m_footPrint.overlap( aOtherCDCandidate.footPrint() ) ) ; 00370 }
const HepLorentzVector & CDCandidate::p4 | ( | ) | const [inherited] |
Definition at line 177 of file CDCandidate.cxx.
References CDCandidate::kinematicData(), and DecayChain::KinematicData::p4().
Referenced by CDDecay::defaultKinematicData().
00178 { 00179 return kinematicData()->p4(); 00180 }
const EvtRecTrack * CDPhoton::photon | ( | ) | const [virtual] |
Reimplemented from CDCandidate.
Definition at line 145 of file CDPhoton.cxx.
References m_visibleEvidence.
Referenced by LocalPhotonSelector::operator()().
00146 { 00147 return m_visibleEvidence ; 00148 }
void CDCandidate::recurseNode | ( | TracksAndShowers & | final, | |
const CDCandidate & | cand | |||
) | const [protected, inherited] |
Definition at line 201 of file CDCandidate.cxx.
References CDCandidate::builtFromCDPhoton(), CDCandidate::builtFromTrack(), CDDecay::children(), CDCandidate::decay(), first, CDCandidate::photon(), EvtCyclic3::second(), and CDCandidate::track().
Referenced by CDCandidate::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, inherited] |
Definition at line 117 of file CDCandidate.cxx.
References CDCandidate::m_footPrint.
Referenced by CDDecay::addChild().
00118 { 00119 m_footPrint = aCDFootPrint ; 00120 }
static bool CDPhoton::setIP | ( | double | x, | |
double | y, | |||
double | z | |||
) | [inline, static] |
void CDCandidate::setKinematicData | ( | const DecayChain::KinematicData & | aKinematicData | ) | [protected, inherited] |
Reimplemented in CDDecay.
Definition at line 99 of file CDCandidate.cxx.
References CDCandidate::m_kinematicDataPtr, and CDCandidate::modifiableKinematicData().
Referenced by CDCandidate::CDCandidate(), 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 | ) | [inherited] |
Definition at line 88 of file CDCandidate.cxx.
References CDCandidate::modifiableKinematicData(), and DecayChain::KinematicData::setP4().
00089 { 00090 this->modifiableKinematicData()->setP4( aMomentum ) ; 00091 return( *this ) ; 00092 }
void CDCandidate::setUserTag | ( | int | tag | ) | [inherited] |
Definition at line 81 of file CDCandidate.cxx.
References CDCandidate::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, inherited] |
Reimplemented in CDChargedVisible< H >.
Definition at line 236 of file CDCandidate.cxx.
Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and CDCandidate::recurseNode().
00237 { 00238 std::cerr << "No navtrack for this CDCandidate" << std::endl ; 00239 exit( 1 ) ; 00240 return ( (EvtRecTrack*)0 ) ; 00241 }
int CDCandidate::userTag | ( | ) | const [inherited] |
Definition at line 137 of file CDCandidate.cxx.
References CDCandidate::kinematicData(), and DecayChain::KinematicData::userTag().
Referenced by CDDecay::defaultKinematicData(), LocalPionSelector::operator()(), and LocalKaonSelector::operator()().
00138 { 00139 return kinematicData()->userTag(); 00140 }
Hep3Vector CDPhoton::m_IPV [static, private] |
const VisibleEvidence* CDPhoton::m_visibleEvidence [private] |
Definition at line 123 of file CDPhoton.h.
Referenced by builtFromCDPhoton(), defaultKinematicData(), and photon().