Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

CDEta Class Reference

#include <CleoDChain/CDEta.h>

Inheritance diagram for CDEta:

CDDecay CDDecay CDDecay CDDecay CDCandidate CDCandidate CDCandidate CDCandidate CDCandidate CDCandidate CDCandidate CDCandidate List of all members.

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
typedef NavEtaToGG VisibleEvidence
typedef NavEtaToGG VisibleEvidence

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 DABoolean builtFromCDEta () const
virtual bool builtFromCDEta () const
virtual DABoolean 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
 CDEta (const EvtRecEtaToGG *aVisible)
 CDEta (const NavEtaToGG &aVisible)
 CDEta (const EvtRecEtaToGG *aVisible)
 CDEta (const NavEtaToGG &aVisible)
int charge () const
int charge () const
const CDCandidatechild (unsigned int aPosition) const
const CDCandidatechild (unsigned int aPosition) const
const std::vector< dchain::ReferenceHolder<
CDCandidate > > & 
children () const
const std::vector< dchain::ReferenceHolder<
CDCandidate > > & 
children () const
virtual const CDDecaydecay (void) const
virtual const CDDecaydecay (void) const
void dropLink () const
void dropLink () const
double energy () const
double energy () const
const PhdEtaToGG & eta () const
const PhdEtaToGG & eta () const
TracksAndShowers finalChildren () const
TracksAndShowers finalChildren () const
const CDFootPrintfootPrint () const
const CDFootPrintfootPrint () 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::KinematicDatakinematicData () const
const DecayChain::KinematicDatakinematicData () const
double mass () const
double mass () const
const Hep3Vector & momentum () const
const Hep3Vector & momentum () const
virtual const EvtRecEtaToGGnavEta () const
virtual const NavEtaToGG & navEta () const
virtual const EvtRecEtaToGGnavEta () const
virtual const NavEtaToGG & navEta () const
virtual const EvtRecVeeVertexnavKshort () const
virtual const EvtRecVeeVertexnavKshort () const
virtual const EvtRecVeeVertexnavLambda () const
virtual const EvtRecVeeVertexnavLambda () const
virtual const EvtRecPi0navPi0 () const
virtual const EvtRecPi0navPi0 () 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 EvtRecTrackphoton () const
virtual const EvtRecTrackphoton () const
void setKinematicData (const DecayChain::KinematicData &aKinematicData)
void setKinematicData (const DecayChain::KinematicData &aKinematicData)
CDCandidatesetP4 (const HepLorentzVector &aMomentum)
CDCandidatesetP4 (const HepLorentzVector &aMomentum)
virtual const EvtRecTracktrack () const
virtual const EvtRecTracktrack () const
virtual ~CDEta ()
virtual ~CDEta ()
virtual ~CDEta ()
virtual ~CDEta ()

Protected Member Functions

virtual DecayChain::KinematicDatadefaultKinematicData () const
virtual KTKinematicData * defaultKinematicData () const
virtual DecayChain::KinematicDatadefaultKinematicData () const
virtual KTKinematicData * defaultKinematicData () const
virtual const MCParticle * mcParticle () const
virtual const MCParticle * mcParticle () 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 CDEtaoperator= (const CDEta &)
const CDEtaoperator= (const CDEta &)
const CDEtaoperator= (const CDEta &)
const CDEtaoperator= (const CDEta &)

Private Attributes

const EvtRecEtaToGGm_eta
const NavEtaToGG & m_eta
const EvtRecEtaToGGm_eta
const NavEtaToGG & m_eta

Detailed Description

Description: <one line="" class="" summary="">

Usage: <usage>


Member Typedef Documentation

typedef CDCandidate CDDecay::CandidateClass [inherited]
 

typedef CDCandidate CDDecay::CandidateClass [inherited]
 

typedef CDDecay CDCandidate::DecayEvidence [inherited]
 

typedef CDDecay CDCandidate::DecayEvidence [inherited]
 

typedef std::pair< vector<const EvtRecTrack*>, vector<const EvtRecTrack*> > CDCandidate::TracksAndShowers [inherited]
 

typedef std::pair< vector<const EvtRecTrack*>, vector<const EvtRecTrack*> > CDCandidate::TracksAndShowers [inherited]
 

typedef NavEtaToGG CDEta::VisibleEvidence
 

typedef NavEtaToGG CDEta::VisibleEvidence
 


Constructor & Destructor Documentation

CDEta::CDEta const NavEtaToGG &  aVisible  ) 
 

00083                                       :
00084 //  CDDecay(*(new CDPhoton(aVisible.hiEnShower()))),
00085   m_eta(aVisible)
00086 {
00087   ReferenceHolder<CDPhoton> tmp = new CDPhoton(aVisible.hiEnShower());
00088   addChild(*tmp);
00089   tmp = new CDPhoton(aVisible.loEnShower());
00090   addChild(*tmp);
00091 }

CDEta::~CDEta  )  [virtual]
 

00101 {
00102 }

CDEta::CDEta const EvtRecEtaToGG aVisible  ) 
 

00031                                           :
00032   m_eta(aVisible)
00033 {
00034   ReferenceHolder<CDPhoton> tmp = new CDPhoton(aVisible->hiEnGamma());
00035   addChild(*tmp);
00036   tmp = new CDPhoton(aVisible->loEnGamma());
00037   addChild(*tmp);
00038 }

virtual CDEta::~CDEta  )  [virtual]
 

CDEta::CDEta const NavEtaToGG &  aVisible  ) 
 

virtual CDEta::~CDEta  )  [virtual]
 

CDEta::CDEta const EvtRecEtaToGG aVisible  ) 
 

virtual CDEta::~CDEta  )  [virtual]
 


Member Function Documentation

void CDDecay::addChild const CDCandidate aAdditionalProduct  )  [inherited]
 

void CDDecay::addChild const CDCandidate aAdditionalProduct  )  [inherited]
 

00182 {
00183     setCDFootPrint( footPrint() + aAdditionalProduct.footPrint() );
00184     m_children.push_back( ReferenceHolder<CDCandidate>(&aAdditionalProduct) ) ;
00185 }

void dchain::ReferenceCount::addLink  )  const [inherited]
 

void dchain::ReferenceCount::addLink  )  const [inline, inherited]
 

00108 {
00109    //if (m_linkCount==0xFFFFFFFF) {
00110    //   throw TooManyReferencesException();
00111    //}
00112    ++m_linkCount ;
00113 }

virtual bool CDDecay::builtFromCDDecay void   )  const [virtual, inherited]
 

Reimplemented from CDCandidate.

bool CDDecay::builtFromCDDecay void   )  const [virtual, inherited]
 

Reimplemented from CDCandidate.

00198 {
00199     return ( !false ) ;
00200 }

virtual bool CDEta::builtFromCDEta  )  const [virtual]
 

Reimplemented from CDCandidate.

virtual DABoolean CDEta::builtFromCDEta  )  const [virtual]
 

Reimplemented from CDCandidate.

virtual bool CDEta::builtFromCDEta  )  const [virtual]
 

Reimplemented from CDCandidate.

bool CDEta::builtFromCDEta  )  const [virtual]
 

Reimplemented from CDCandidate.

00108 {
00109    return true;
00110 }

virtual bool CDCandidate::builtFromCDKs  )  const [virtual, inherited]
 

Reimplemented in CDKs, and CDKs.

bool CDCandidate::builtFromCDKs  )  const [virtual, inherited]
 

Reimplemented in CDKs, and CDKs.

00298 {
00299    return ( false ) ;
00300 }

virtual bool CDCandidate::builtFromCDLambda  )  const [virtual, inherited]
 

Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda.

bool CDCandidate::builtFromCDLambda  )  const [virtual, inherited]
 

Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda.

00318 {
00319    return ( false ) ;
00320 }

virtual bool CDCandidate::builtFromCDPhoton  )  const [virtual, inherited]
 

Reimplemented in CDPhoton, and CDPhoton.

bool CDCandidate::builtFromCDPhoton  )  const [virtual, inherited]
 

Reimplemented in CDPhoton, and CDPhoton.

00238 {
00239    return ( false ) ;
00240 }

virtual bool CDCandidate::builtFromCDPi0  )  const [virtual, inherited]
 

Reimplemented in CDPi0, and CDPi0.

bool CDCandidate::builtFromCDPi0  )  const [virtual, inherited]
 

Reimplemented in CDPi0, and CDPi0.

00258 {
00259    return ( false ) ;
00260 }

virtual bool CDCandidate::builtFromTrack  )  const [virtual, inherited]
 

Reimplemented in CDChargedVisible< H >, and CDChargedVisible< H >.

bool CDCandidate::builtFromTrack  )  const [virtual, inherited]
 

Reimplemented in CDChargedVisible< H >, and CDChargedVisible< H >.

00218 {
00219    return ( false ) ;
00220 }

int CDCandidate::charge  )  const [inherited]
 

int CDCandidate::charge  )  const [inherited]
 

00145 {
00146    return kinematicData()->charge();
00147 }

const CDCandidate& CDDecay::child unsigned int  aPosition  )  const [inherited]
 

const CDCandidate & CDDecay::child unsigned int  aPosition  )  const [inherited]
 

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 }

const std::vector<dchain::ReferenceHolder<CDCandidate> >& CDDecay::children  )  const [inherited]
 

const vector< ReferenceHolder< CDCandidate > > & CDDecay::children  )  const [inherited]
 

00251 {
00252     return ( m_children ) ;
00253 }

virtual const CDDecay& CDDecay::decay void   )  const [virtual, inherited]
 

Reimplemented from CDCandidate.

const CDDecay & CDDecay::decay void   )  const [virtual, inherited]
 

Reimplemented from CDCandidate.

00203 {
00204     return ( *this ) ;
00205 }

virtual DecayChain::KinematicData* CDEta::defaultKinematicData  )  const [protected, virtual]
 

Reimplemented from CDDecay.

virtual KTKinematicData* CDEta::defaultKinematicData  )  const [protected, virtual]
 

Reimplemented from CDDecay.

virtual DecayChain::KinematicData* CDEta::defaultKinematicData  )  const [protected, virtual]
 

Reimplemented from CDDecay.

KinematicData * CDEta::defaultKinematicData  )  const [protected, virtual]
 

Reimplemented from CDDecay.

00123 {
00124    return new KTKinematicData(m_eta.eta());
00125 }

void dchain::ReferenceCount::dropLink  )  const [inherited]
 

void dchain::ReferenceCount::dropLink  )  const [inline, inherited]
 

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]
 

double CDCandidate::energy  )  const [inherited]
 

00154 {
00155    return kinematicData()->energy();
00156 }

const PhdEtaToGG& CDEta::eta  )  const [inline]
 

00070 {return m_eta.eta();}

const PhdEtaToGG& CDEta::eta  )  const [inline]
 

00070 {return m_eta.eta();}

TracksAndShowers CDCandidate::finalChildren  )  const [inherited]
 

CDCandidate::TracksAndShowers CDCandidate::finalChildren  )  const [inherited]
 

00184 {
00185    TracksAndShowers blocks;
00186    recurseNode(blocks, *this);
00187    return blocks;
00188 }

const CDFootPrint& CDCandidate::footPrint  )  const [inherited]
 

const CDFootPrint & CDCandidate::footPrint  )  const [inherited]
 

00366 {
00367    return ( m_footPrint ) ;
00368 }

virtual DBCandidate::Hypo CDCandidate::hypo  )  const [inline, virtual, inherited]
 

Reimplemented in CDChargedVisible< H >, CDPhoton, CDChargedVisible< H >, and CDPhoton.

DBCandidate::Hypo CDCandidate::hypo  )  const [inline, virtual, inherited]
 

Reimplemented in CDChargedVisible< H >, CDPhoton, CDChargedVisible< H >, and CDPhoton.

00208 {
00209     return DBCandidate::kMaxHypo;
00210 }

void CDDecay::iterateChildren DCAnalysisFunction< CDCandidate > &  analyze  )  const [inherited]
 

void CDDecay::iterateChildren void(*)(const CDCandidate &)  analyze  )  const [inherited]
 

void CDDecay::iterateChildren DCAnalysisFunction< CDCandidate > &  analyze  )  const [inherited]
 

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 }

void CDDecay::iterateChildren void(*)(const CDCandidate &)  analyze  )  const [inherited]
 

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 }

const DecayChain::KinematicData* CDCandidate::kinematicData  )  const [inherited]
 

const KinematicData * CDCandidate::kinematicData  )  const [inherited]
 

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 }

double CDCandidate::mass  )  const [inherited]
 

double CDCandidate::mass  )  const [inherited]
 

00136 {
00137    return kinematicData()->mass();
00138 }

virtual const MCParticle* CDEta::mcParticle  )  const [protected, virtual]
 

const MCParticle * CDEta::mcParticle  )  const [protected, virtual]
 

00151 {
00152   if (builtFromCDTruth()) {
00153     const CDTruthEvidence& iCDTruth = truthEvidence();
00154     return &iCDTruth;
00155   }
00156 
00157   // Get the match
00158   FAItem<MCParticle> mcParticleItem;
00159   try {
00160     mcParticleItem = m_eta.mcTag();
00161   } catch (DANoDataException<FAItem<MCDecayTree>::contents>& iException){
00162     return 0;
00163   }
00164   if (!mcParticleItem.valid()) return 0;
00165   return &*mcParticleItem;
00166 }

const Hep3Vector& CDCandidate::momentum  )  const [inherited]
 

const Hep3Vector & CDCandidate::momentum  )  const [inherited]
 

00163 {
00164    return kinematicData()->p4();
00165 }

virtual const EvtRecEtaToGG* CDEta::navEta  )  const [virtual]
 

Reimplemented from CDCandidate.

virtual const NavEtaToGG& CDEta::navEta  )  const [virtual]
 

Reimplemented from CDCandidate.

virtual const EvtRecEtaToGG* CDEta::navEta  )  const [virtual]
 

Reimplemented from CDCandidate.

const EvtRecEtaToGG * CDEta::navEta  )  const [virtual]
 

Reimplemented from CDCandidate.

00117 {
00118    return m_eta;
00119 }

virtual const EvtRecVeeVertex* CDCandidate::navKshort  )  const [virtual, inherited]
 

Reimplemented in CDKs, and CDKs.

const EvtRecVeeVertex * CDCandidate::navKshort  )  const [virtual, inherited]
 

Reimplemented in CDKs, and CDKs.

00307 {
00308    std::cerr << "No NavKs for this CDCandidate" << std::endl ;
00309    exit( 1 ) ;
00310    return ( (EvtRecVeeVertex*)0 ) ;
00311 }

virtual const EvtRecVeeVertex* CDCandidate::navLambda  )  const [virtual, inherited]
 

Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda.

const EvtRecVeeVertex * CDCandidate::navLambda  )  const [virtual, inherited]
 

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 }

virtual const EvtRecPi0* CDCandidate::navPi0  )  const [virtual, inherited]
 

Reimplemented in CDPi0, and CDPi0.

const EvtRecPi0 * CDCandidate::navPi0  )  const [virtual, inherited]
 

Reimplemented in CDPi0, and CDPi0.

00267 {
00268    std::cerr << "No NavCDPi0 for this CDCandidate" << std::endl ;
00269    exit( 1 ) ;
00270    return ( (EvtRecPi0*)0 ) ;
00271 }

uint32_t CDDecay::numberChildren  )  const [inherited]
 

uint32_t CDDecay::numberChildren  )  const [inherited]
 

00211 {
00212     return ( m_children.size() ) ;
00213 }

const CDEta& CDEta::operator= const CDEta  )  [private]
 

const CDEta& CDEta::operator= const CDEta  )  [private]
 

const CDEta& CDEta::operator= const CDEta  )  [private]
 

const CDEta& CDEta::operator= const CDEta  )  [private]
 

bool CDCandidate::overlap const CDCandidate aOtherCDCandidate  )  const [inherited]
 

bool CDCandidate::overlap const CDCandidate aOtherCDCandidate  )  const [inherited]
 

00358 {
00359    return ( m_footPrint.overlap( aOtherCDCandidate.footPrint() ) ) ;
00360 }

const HepLorentzVector& CDCandidate::p4  )  const [inherited]
 

const HepLorentzVector & CDCandidate::p4  )  const [inherited]
 

00168 {
00169    return kinematicData()->p4();
00170 }

virtual const EvtRecTrack* CDCandidate::photon  )  const [virtual, inherited]
 

Reimplemented in CDPhoton, and CDPhoton.

const EvtRecTrack * CDCandidate::photon  )  const [virtual, inherited]
 

Reimplemented in CDPhoton, and CDPhoton.

00247 {
00248    std::cerr << "No NavShower for this CDCandidate" << std::endl ;
00249    exit( 1 ) ;
00250    return ( (EvtRecTrack*)0 ) ;
00251 }

void CDCandidate::recurseNode TracksAndShowers final,
const CDCandidate cand
const [protected, inherited]
 

void CDCandidate::recurseNode TracksAndShowers final,
const CDCandidate cand
const [protected, inherited]
 

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 }

void CDCandidate::setCDFootPrint const CDFootPrint aCDFootPrint  )  [protected, inherited]
 

void CDCandidate::setCDFootPrint const CDFootPrint aCDFootPrint  )  [protected, inherited]
 

00113 {
00114    m_footPrint = aCDFootPrint ;
00115 }

void CDDecay::setKinematicData const DecayChain::KinematicData aKinematicData  )  [inherited]
 

Reimplemented from CDCandidate.

void CDDecay::setKinematicData const DecayChain::KinematicData aKinematicData  )  [inherited]
 

Reimplemented from CDCandidate.

00188 {
00189     // Call setKinematicData of my super-class
00190     CDCandidate::setKinematicData( aKinematicData );
00191 }

CDCandidate& CDCandidate::setP4 const HepLorentzVector &  aMomentum  )  [inherited]
 

CDCandidate & CDCandidate::setP4 const HepLorentzVector &  aMomentum  )  [inherited]
 

00084 {
00085    this->modifiableKinematicData()->setP4( aMomentum ) ;
00086    return( *this ) ;
00087 }

virtual const EvtRecTrack* CDCandidate::track  )  const [virtual, inherited]
 

Reimplemented in CDChargedVisible< H >, and CDChargedVisible< H >.

const EvtRecTrack * CDCandidate::track  )  const [virtual, inherited]
 

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 }


Member Data Documentation

const EvtRecEtaToGG* CDEta::m_eta [private]
 

const NavEtaToGG& CDEta::m_eta [private]
 

const EvtRecEtaToGG* CDEta::m_eta [private]
 

const NavEtaToGG& CDEta::m_eta [private]
 


The documentation for this class was generated from the following files:
Generated on Wed Feb 2 15:56:02 2011 for BOSS6.5.5 by  doxygen 1.3.9.1