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

CDCandidate Class Reference

#include <CDCandidate.h>

Inheritance diagram for CDCandidate:

dchain::ReferenceCount dchain::ReferenceCount CDChargedVisible< H > CDChargedVisible< H > CDDecay CDDecay CDPhoton CDPhoton CDEta CDEta CDEta CDEta CDKs CDKs CDLambda CDLambda CDLambda CDLambda CDPi0 CDPi0 StorableDecay StorableDecay CDEta CDEta CDEta CDEta CDKs CDKs CDLambda CDLambda CDLambda CDLambda CDPi0 CDPi0 StorableDecay StorableDecay List of all members.

Public Types

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 addLink () const
void addLink () const
virtual bool builtFromCDDecay () const
virtual bool builtFromCDDecay () 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
int charge () const
int charge () const
virtual const DecayEvidencedecay () const
virtual const DecayEvidencedecay () const
void dropLink () const
void dropLink () const
double energy () const
double energy () const
TracksAndShowers finalChildren () const
TracksAndShowers finalChildren () const
const CDFootPrintfootPrint () const
const CDFootPrintfootPrint () const
virtual DBCandidate::Hypo hypo () const
virtual DBCandidate::Hypo hypo () 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 EvtRecEtaToGGnavEta () 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
const CDCandidateoperator= (const CDCandidate &aOtherCDCandidate)
const CDCandidateoperator= (const CDCandidate &aOtherCDCandidate)
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
CDCandidatesetP4 (const HepLorentzVector &aMomentum)
CDCandidatesetP4 (const HepLorentzVector &aMomentum)
virtual const EvtRecTracktrack () const
virtual const EvtRecTracktrack () const
virtual ~CDCandidate ()
virtual ~CDCandidate ()

Protected Member Functions

 CDCandidate (const CDFootPrint &aCDFootPrint)
 CDCandidate (const CDCandidate &aOtherCDCandidate)
 CDCandidate (const CDFootPrint &aCDFootPrint)
 CDCandidate (const CDCandidate &aOtherCDCandidate)
virtual DecayChain::KinematicDatadefaultKinematicData () const =0
virtual DecayChain::KinematicDatadefaultKinematicData () const =0
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)
void setKinematicData (const DecayChain::KinematicData &aKinematicData)
void setKinematicData (const DecayChain::KinematicData &aKinematicData)

Private Member Functions

 CDCandidate ()
 CDCandidate ()
DecayChain::KinematicDatamodifiableKinematicData ()
DecayChain::KinematicDatamodifiableKinematicData ()

Private Attributes

CDFootPrint m_footPrint
DecayChain::KinematicDatam_kinematicDataPtr
DecayChain::KinematicDatam_kinematicDataPtr

Member Typedef Documentation

typedef CDDecay CDCandidate::DecayEvidence
 

typedef CDDecay CDCandidate::DecayEvidence
 

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

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


Constructor & Destructor Documentation

CDCandidate::~CDCandidate  )  [virtual]
 

00059 {
00060    delete m_kinematicDataPtr ;
00061 }

CDCandidate::CDCandidate const CDCandidate aOtherCDCandidate  )  [protected]
 

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]
 

00050                                                           :
00051    m_kinematicDataPtr( 0 ) ,
00052    m_footPrint( aCDFootPrint )
00053 {
00054 }

CDCandidate::CDCandidate  )  [private]
 

virtual CDCandidate::~CDCandidate  )  [virtual]
 

CDCandidate::CDCandidate const CDCandidate aOtherCDCandidate  )  [protected]
 

CDCandidate::CDCandidate const CDFootPrint aCDFootPrint  )  [protected]
 

CDCandidate::CDCandidate  )  [private]
 


Member Function Documentation

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 CDCandidate::builtFromCDDecay  )  const [virtual]
 

Reimplemented in CDDecay, and CDDecay.

bool CDCandidate::builtFromCDDecay  )  const [virtual]
 

Reimplemented in CDDecay, and CDDecay.

00338 {
00339    return ( false ) ;
00340 }

virtual bool CDCandidate::builtFromCDEta  )  const [virtual]
 

Reimplemented in CDEta, CDEta, CDEta, and CDEta.

bool CDCandidate::builtFromCDEta  )  const [virtual]
 

Reimplemented in CDEta, CDEta, CDEta, and CDEta.

00278 {
00279    return ( false ) ;
00280 }

virtual bool CDCandidate::builtFromCDKs  )  const [virtual]
 

Reimplemented in CDKs, and CDKs.

bool CDCandidate::builtFromCDKs  )  const [virtual]
 

Reimplemented in CDKs, and CDKs.

00298 {
00299    return ( false ) ;
00300 }

virtual bool CDCandidate::builtFromCDLambda  )  const [virtual]
 

Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda.

bool CDCandidate::builtFromCDLambda  )  const [virtual]
 

Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda.

00318 {
00319    return ( false ) ;
00320 }

virtual bool CDCandidate::builtFromCDPhoton  )  const [virtual]
 

Reimplemented in CDPhoton, and CDPhoton.

bool CDCandidate::builtFromCDPhoton  )  const [virtual]
 

Reimplemented in CDPhoton, and CDPhoton.

00238 {
00239    return ( false ) ;
00240 }

virtual bool CDCandidate::builtFromCDPi0  )  const [virtual]
 

Reimplemented in CDPi0, and CDPi0.

bool CDCandidate::builtFromCDPi0  )  const [virtual]
 

Reimplemented in CDPi0, and CDPi0.

00258 {
00259    return ( false ) ;
00260 }

virtual bool CDCandidate::builtFromTrack  )  const [virtual]
 

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

bool CDCandidate::builtFromTrack  )  const [virtual]
 

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

00218 {
00219    return ( false ) ;
00220 }

int CDCandidate::charge  )  const
 

int CDCandidate::charge  )  const
 

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

virtual const DecayEvidence& CDCandidate::decay  )  const [virtual]
 

Reimplemented in CDDecay, and CDDecay.

const CDDecay & CDCandidate::decay  )  const [virtual]
 

Reimplemented in CDDecay, and CDDecay.

00347 {
00348    std::cerr << "No CDDecay for this CDCandidate" << std::endl ;
00349    exit( 1 ) ;
00350    return ( *(CDDecay*)0 ) ;
00351 }

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

Implemented in CDEta, CDLambda, CDChargedVisible< H >, CDDecay, CDEta, CDKs, CDLambda, CDPhoton, CDPi0, CDEta, CDLambda, CDChargedVisible< H >, CDDecay, CDEta, CDKs, CDLambda, CDPhoton, and CDPi0.

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

Implemented in CDEta, CDLambda, CDChargedVisible< H >, CDDecay, CDEta, CDKs, CDLambda, CDPhoton, CDPi0, CDEta, CDLambda, CDChargedVisible< H >, CDDecay, CDEta, CDKs, CDLambda, CDPhoton, and CDPi0.

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
 

double CDCandidate::energy  )  const
 

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

TracksAndShowers CDCandidate::finalChildren  )  const
 

CDCandidate::TracksAndShowers CDCandidate::finalChildren  )  const
 

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

const CDFootPrint& CDCandidate::footPrint  )  const
 

const CDFootPrint & CDCandidate::footPrint  )  const
 

00366 {
00367    return ( m_footPrint ) ;
00368 }

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

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

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

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

00208 {
00209     return DBCandidate::kMaxHypo;
00210 }

const DecayChain::KinematicData* CDCandidate::kinematicData  )  const
 

const KinematicData * CDCandidate::kinematicData  )  const
 

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
 

double CDCandidate::mass  )  const
 

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

DecayChain::KinematicData* CDCandidate::modifiableKinematicData  )  [private]
 

KinematicData * CDCandidate::modifiableKinematicData  )  [private]
 

00121 {
00122    if ( 0 == m_kinematicDataPtr ) {
00123       m_kinematicDataPtr = defaultKinematicData() ;
00124       if ( 0 == m_kinematicDataPtr ) {
00125          std::cerr << "No memory to allocate another kinematicData" << std::endl ;
00126          exit( 1 ) ;
00127       }
00128    }
00129    return m_kinematicDataPtr ;
00130 }

const Hep3Vector& CDCandidate::momentum  )  const
 

const Hep3Vector & CDCandidate::momentum  )  const
 

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

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

Reimplemented in CDEta, CDEta, CDEta, and CDEta.

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

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 }

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

Reimplemented in CDKs, and CDKs.

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

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]
 

Reimplemented in CDLambda, CDLambda, CDLambda, and CDLambda.

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

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]
 

Reimplemented in CDPi0, and CDPi0.

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

Reimplemented in CDPi0, and CDPi0.

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

const CDCandidate& CDCandidate::operator= const CDCandidate aOtherCDCandidate  ) 
 

const CDCandidate & CDCandidate::operator= const CDCandidate aOtherCDCandidate  ) 
 

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
 

bool CDCandidate::overlap const CDCandidate aOtherCDCandidate  )  const
 

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

const HepLorentzVector& CDCandidate::p4  )  const
 

const HepLorentzVector & CDCandidate::p4  )  const
 

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

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

Reimplemented in CDPhoton, and CDPhoton.

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

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]
 

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

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]
 

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

00113 {
00114    m_footPrint = aCDFootPrint ;
00115 }

void CDCandidate::setKinematicData const DecayChain::KinematicData aKinematicData  )  [protected]
 

Reimplemented in CDDecay, and CDDecay.

void CDCandidate::setKinematicData const DecayChain::KinematicData aKinematicData  )  [protected]
 

Reimplemented in CDDecay, and CDDecay.

00095 {
00096    if ( 0 == m_kinematicDataPtr ) {
00097       m_kinematicDataPtr = new KinematicData( aKinematicData ) ;
00098       if ( 0 == m_kinematicDataPtr ) {
00099          std::cerr << "No memory to allocate another kinematicData" << std::endl ;
00100          exit( 1 ) ;
00101       }
00102       return ;
00103    }
00104    (*(this->modifiableKinematicData())) = aKinematicData ;
00105    return ;
00106 }

CDCandidate& CDCandidate::setP4 const HepLorentzVector &  aMomentum  ) 
 

CDCandidate & CDCandidate::setP4 const HepLorentzVector &  aMomentum  ) 
 

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

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

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

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

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

CDFootPrint CDCandidate::m_footPrint [private]
 

DecayChain::KinematicData* CDCandidate::m_kinematicDataPtr [private]
 

DecayChain::KinematicData* CDCandidate::m_kinematicDataPtr [private]
 


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