#include <CDDecay.h>
Inheritance diagram for CDDecay:
Public Types | |
typedef CDCandidate | CandidateClass |
typedef CDCandidate | CandidateClass |
typedef CDDecay | DecayEvidence |
typedef CDDecay | DecayEvidence |
typedef std::pair< vector< const EvtRecTrack * >, vector< const EvtRecTrack * > > | TracksAndShowers |
typedef std::pair< vector< const EvtRecTrack * >, vector< const EvtRecTrack * > > | TracksAndShowers |
Public Member Functions | |
void | addChild (const CDCandidate &aAdditionalProduct) |
void | addChild (const CDCandidate &aAdditionalProduct) |
void | addLink () const |
void | addLink () const |
virtual bool | builtFromCDDecay (void) const |
virtual bool | builtFromCDDecay (void) const |
virtual bool | builtFromCDEta () const |
virtual bool | builtFromCDEta () const |
virtual bool | builtFromCDKs () const |
virtual bool | builtFromCDKs () const |
virtual bool | builtFromCDLambda () const |
virtual bool | builtFromCDLambda () const |
virtual bool | builtFromCDPhoton () const |
virtual bool | builtFromCDPhoton () const |
virtual bool | builtFromCDPi0 () const |
virtual bool | builtFromCDPi0 () const |
virtual bool | builtFromTrack () const |
virtual bool | builtFromTrack () const |
CDDecay (const CDDecay &aProducts, const CDCandidate &aAdditionalProduct) | |
CDDecay (const CDCandidate &aProduct) | |
CDDecay (const CDDecay &aOtherCDDecay) | |
CDDecay (const CDDecay &aProducts, const CDCandidate &aAdditionalProduct) | |
CDDecay (const CDCandidate &aProduct) | |
CDDecay (const CDDecay &aOtherCDDecay) | |
int | charge () const |
int | charge () const |
const CDCandidate & | child (unsigned int aPosition) const |
const CDCandidate & | child (unsigned int aPosition) const |
const std::vector< dchain::ReferenceHolder< CDCandidate > > & | children () const |
const std::vector< dchain::ReferenceHolder< CDCandidate > > & | children () const |
virtual const CDDecay & | decay (void) const |
virtual const CDDecay & | decay (void) const |
void | dropLink () const |
void | dropLink () const |
double | energy () const |
double | energy () const |
TracksAndShowers | finalChildren () const |
TracksAndShowers | finalChildren () const |
const CDFootPrint & | footPrint () const |
const CDFootPrint & | footPrint () const |
virtual DBCandidate::Hypo | hypo () const |
virtual DBCandidate::Hypo | hypo () const |
void | iterateChildren (DCAnalysisFunction< CDCandidate > &analyze) const |
void | iterateChildren (void(*analyze)(const CDCandidate &)) const |
void | iterateChildren (DCAnalysisFunction< CDCandidate > &analyze) const |
void | iterateChildren (void(*analyze)(const CDCandidate &)) const |
const DecayChain::KinematicData * | kinematicData () const |
const DecayChain::KinematicData * | kinematicData () const |
double | mass () const |
double | mass () const |
const Hep3Vector & | momentum () const |
const Hep3Vector & | momentum () const |
virtual const EvtRecEtaToGG * | navEta () const |
virtual const EvtRecEtaToGG * | navEta () const |
virtual const EvtRecVeeVertex * | navKshort () const |
virtual const EvtRecVeeVertex * | navKshort () const |
virtual const EvtRecVeeVertex * | navLambda () const |
virtual const EvtRecVeeVertex * | navLambda () const |
virtual const EvtRecPi0 * | navPi0 () const |
virtual const EvtRecPi0 * | navPi0 () const |
uint32_t | numberChildren () const |
uint32_t | numberChildren () const |
bool | overlap (const CDCandidate &aOtherCDCandidate) const |
bool | overlap (const CDCandidate &aOtherCDCandidate) const |
const HepLorentzVector & | p4 () const |
const HepLorentzVector & | p4 () const |
virtual const EvtRecTrack * | photon () const |
virtual const EvtRecTrack * | photon () const |
void | setKinematicData (const DecayChain::KinematicData &aKinematicData) |
void | setKinematicData (const DecayChain::KinematicData &aKinematicData) |
CDCandidate & | setP4 (const HepLorentzVector &aMomentum) |
CDCandidate & | setP4 (const HepLorentzVector &aMomentum) |
virtual const EvtRecTrack * | track () const |
virtual const EvtRecTrack * | track () const |
virtual | ~CDDecay () |
virtual | ~CDDecay () |
Protected Member Functions | |
CDDecay () | |
CDDecay () | |
virtual DecayChain::KinematicData * | defaultKinematicData () const |
virtual DecayChain::KinematicData * | defaultKinematicData () const |
void | recurseNode (TracksAndShowers &final, const CDCandidate &cand) const |
void | recurseNode (TracksAndShowers &final, const CDCandidate &cand) const |
void | setCDFootPrint (const CDFootPrint &aCDFootPrint) |
void | setCDFootPrint (const CDFootPrint &aCDFootPrint) |
Private Member Functions | |
const CDDecay & | operator= (const CDDecay &aOtherCDDecay) |
const CDDecay & | operator= (const CDDecay &aOtherCDDecay) |
Private Attributes | |
std::vector< dchain::ReferenceHolder< CDCandidate > > & | m_children |
std::vector< dchain::ReferenceHolder< CDCandidate > > & | m_children |
|
|
|
|
|
|
|
|
|
|
|
|
|
00120 : 00121 #ifdef EXTEND 00122 m_kmfit_chisq(aOtherCDDecay.chisq()), 00123 m_vxfit_chisq(aOtherCDDecay.vchisq()), 00124 #endif 00125 CDCandidate( aOtherCDDecay ) , 00126 m_children( *new vector< ReferenceHolder< CDCandidate > >( aOtherCDDecay.children() ) ) 00127 { 00128 }
|
|
00130 : 00131 #ifdef EXTEND 00132 m_kmfit_chisq(500000.), 00133 m_vxfit_chisq(500000.), 00134 #endif 00135 CDCandidate( aProduct.footPrint() ) , 00136 m_children( *new vector< ReferenceHolder<CDCandidate> > 00137 ( 1, ReferenceHolder<CDCandidate>(&aProduct ) ) ) 00138 { 00139 }
|
|
00141 : 00142 #ifdef EXTEND 00143 m_kmfit_chisq(500000.), 00144 m_vxfit_chisq(500000.), 00145 #endif 00146 CDCandidate( aProducts.footPrint() + aAdditionalProduct.footPrint() ) , 00147 m_children( *new vector< ReferenceHolder<CDCandidate> >( aProducts.children() ) ) 00148 { 00149 m_children.push_back( ReferenceHolder<CDCandidate>(&aAdditionalProduct) ) ; 00150 }
|
|
00153 {
00154 delete &m_children ;
00155 }
|
|
00157 : 00158 #ifdef EXTEND 00159 m_kmfit_chisq(500000.), 00160 m_vxfit_chisq(500000.), 00161 #endif 00162 CDCandidate( CDFootPrint() ), 00163 m_children( *new vector< ReferenceHolder<CDCandidate> > ) 00164 { 00165 } //
|
|
|
|
|
|
|
|
|
|
|
|
|
|
00182 { 00183 setCDFootPrint( footPrint() + aAdditionalProduct.footPrint() ); 00184 m_children.push_back( ReferenceHolder<CDCandidate>(&aAdditionalProduct) ) ; 00185 }
|
|
|
|
00108 { 00109 //if (m_linkCount==0xFFFFFFFF) { 00110 // throw TooManyReferencesException(); 00111 //} 00112 ++m_linkCount ; 00113 }
|
|
Reimplemented from CDCandidate. |
|
Reimplemented from CDCandidate. 00198 {
00199 return ( !false ) ;
00200 }
|
|
|
|
Reimplemented in CDEta, CDEta, CDEta, and CDEta. 00278 {
00279 return ( false ) ;
00280 }
|
|
|
|
Reimplemented in CDKs, and CDKs. 00298 {
00299 return ( false ) ;
00300 }
|
|
Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda. |
|
Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda. 00318 {
00319 return ( false ) ;
00320 }
|
|
|
|
Reimplemented in CDPhoton, and CDPhoton. 00238 {
00239 return ( false ) ;
00240 }
|
|
|
|
Reimplemented in CDPi0, and CDPi0. 00258 {
00259 return ( false ) ;
00260 }
|
|
Reimplemented in CDChargedVisible< H >, and CDChargedVisible< H >. |
|
Reimplemented in CDChargedVisible< H >, and CDChargedVisible< H >. 00218 {
00219 return ( false ) ;
00220 }
|
|
|
|
00145 { 00146 return kinematicData()->charge(); 00147 }
|
|
|
|
00242 { 00243 if ( aPosition >= m_children.size() ) { 00244 std::cerr << "Trying to access an invalid Child" << std::endl ; 00245 return ( *(m_children[ 0 ]) ) ; 00246 } 00247 return ( *(m_children[ aPosition ]) ) ; 00248 }
|
|
|
|
00251 {
00252 return ( m_children ) ;
00253 }
|
|
Reimplemented from CDCandidate. |
|
Reimplemented from CDCandidate. 00203 {
00204 return ( *this ) ;
00205 }
|
|
Implements CDCandidate. Reimplemented in CDEta, CDLambda, CDEta, CDKs, CDLambda, CDPi0, CDEta, CDLambda, CDEta, CDKs, CDLambda, and CDPi0. |
|
Implements CDCandidate. Reimplemented in CDEta, CDLambda, CDEta, CDKs, CDLambda, CDPi0, CDEta, CDLambda, CDEta, CDKs, CDLambda, and CDPi0. 00257 { 00258 double energySum = 0 ; 00259 int chargeSum = 0 ; 00260 HepLorentzVector p4( 0.0 , 0.0 , 0.0, 0.0 ) ; 00261 vector< ReferenceHolder<CDCandidate> >::const_iterator finished( m_children.end() ) ; 00262 for ( vector< ReferenceHolder<CDCandidate> >::const_iterator child( m_children.begin() ) ; 00263 child != finished ; 00264 ++child ) { 00265 chargeSum += (*(*child)).charge() ; 00266 p4 += (*(*child)).p4() ; 00267 } 00268 00269 KinematicData* tmp = new KinematicData(); 00270 00271 tmp->setCharge( chargeSum ); 00272 tmp->setP4( p4 ); 00273 00274 return tmp; 00275 }
|
|
|
|
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 }
|
|
|
|
00154 { 00155 return kinematicData()->energy(); 00156 }
|
|
|
|
00184 { 00185 TracksAndShowers blocks; 00186 recurseNode(blocks, *this); 00187 return blocks; 00188 }
|
|
|
|
00366 {
00367 return ( m_footPrint ) ;
00368 }
|
|
Reimplemented in CDChargedVisible< H >, CDPhoton, CDChargedVisible< H >, and CDPhoton. |
|
Reimplemented in CDChargedVisible< H >, CDPhoton, CDChargedVisible< H >, and CDPhoton. 00208 {
00209 return DBCandidate::kMaxHypo;
00210 }
|
|
|
|
|
|
00232 { 00233 vector< ReferenceHolder<CDCandidate> >::const_iterator finished ( m_children.end() ) ; 00234 for ( vector< ReferenceHolder<CDCandidate> >::const_iterator child ( m_children.begin() ) ; 00235 child != finished ; 00236 ++child ) { 00237 analyze( (*(*child)) ) ; 00238 } 00239 }
|
|
00219 { 00220 vector< ReferenceHolder<CDCandidate> >::const_iterator finished( m_children.end() ) ; 00221 for ( vector< ReferenceHolder<CDCandidate> >::const_iterator child( m_children.begin() ) ; 00222 child != finished ; 00223 ++child ) { 00224 analyze( (*(*child)) ) ; 00225 } 00226 }
|
|
|
|
00176 { 00177 // Cast away `const' to pick up the function. 00178 // This is safe as the result is being returned as a `const' 00179 return ( (*(CDCandidate*)this).modifiableKinematicData() ); 00180 }
|
|
|
|
00136 { 00137 return kinematicData()->mass(); 00138 }
|
|
|
|
00163 { 00164 return kinematicData()->p4(); 00165 }
|
|
|
|
Reimplemented in CDEta, CDEta, CDEta, and CDEta. 00287 { 00288 std::cerr << "No NavCDEta for this CDCandidate" << std::endl ; 00289 exit( 1 ) ; 00290 return ( (EvtRecEtaToGG*)0 ) ; 00291 }
|
|
|
|
Reimplemented in CDKs, and CDKs. 00307 { 00308 std::cerr << "No NavKs for this CDCandidate" << std::endl ; 00309 exit( 1 ) ; 00310 return ( (EvtRecVeeVertex*)0 ) ; 00311 }
|
|
Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda. |
|
Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda. 00327 { 00328 std::cerr << "No NavLambda for this CDCandidate" << std::endl ; 00329 exit( 1 ) ; 00330 return ( (EvtRecVeeVertex*)0 ) ; 00331 }
|
|
|
|
Reimplemented in CDPi0, and CDPi0. 00267 { 00268 std::cerr << "No NavCDPi0 for this CDCandidate" << std::endl ; 00269 exit( 1 ) ; 00270 return ( (EvtRecPi0*)0 ) ; 00271 }
|
|
|
|
00211 { 00212 return ( m_children.size() ) ; 00213 }
|
|
|
|
|
|
|
|
00358 { 00359 return ( m_footPrint.overlap( aOtherCDCandidate.footPrint() ) ) ; 00360 }
|
|
|
|
00168 { 00169 return kinematicData()->p4(); 00170 }
|
|
|
|
Reimplemented in CDPhoton, and CDPhoton. 00247 { 00248 std::cerr << "No NavShower for this CDCandidate" << std::endl ; 00249 exit( 1 ) ; 00250 return ( (EvtRecTrack*)0 ) ; 00251 }
|
|
|
|
00193 { 00194 if(cand.builtFromTrack()) 00195 { 00196 final.first.push_back( cand.track() ); 00197 return; 00198 } 00199 if(cand.builtFromCDPhoton()) 00200 { 00201 final.second.push_back( cand.photon() ); 00202 return; 00203 } 00204 const DecayEvidence& decay = cand.decay(); 00205 const vector< ReferenceHolder<CDCandidate> >& children = decay.children(); 00206 vector< ReferenceHolder<CDCandidate> >::const_iterator lastChild = children.end(); 00207 for(vector<ReferenceHolder<CDCandidate> >::const_iterator child = children.begin(); 00208 child != lastChild; ++child) 00209 { 00210 recurseNode(final, **child); 00211 } 00212 }
|
|
|
|
00113 { 00114 m_footPrint = aCDFootPrint ; 00115 }
|
|
Reimplemented from CDCandidate. |
|
Reimplemented from CDCandidate. 00188 { 00189 // Call setKinematicData of my super-class 00190 CDCandidate::setKinematicData( aKinematicData ); 00191 }
|
|
|
|
00084 { 00085 this->modifiableKinematicData()->setP4( aMomentum ) ; 00086 return( *this ) ; 00087 }
|
|
Reimplemented in CDChargedVisible< H >, and CDChargedVisible< H >. |
|
Reimplemented in CDChargedVisible< H >, and CDChargedVisible< H >. 00227 { 00228 std::cerr << "No navtrack for this CDCandidate" << std::endl ; 00229 exit( 1 ) ; 00230 return ( (EvtRecTrack*)0 ) ; 00231 }
|
|
|
|
|