CDCandidate Class Reference

#include <CDCandidate.h>

Inheritance diagram for CDCandidate:

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

Public Types

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

Public Member Functions

virtual ~CDCandidate ()
const CDCandidateoperator= (const CDCandidate &aOtherCDCandidate)
void setUserTag (int tag)
CDCandidatesetP4 (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::KinematicDatakinematicData () const
TracksAndShowers finalChildren () const
virtual DBCandidate::Hypo hypo () const
virtual bool builtFromTrack () const
virtual const EvtRecTracktrack () const
virtual bool builtFromCDPhoton () const
virtual const EvtRecTrackphoton () const
virtual bool builtFromCDPi0 () const
virtual const EvtRecPi0navPi0 () const
virtual bool builtFromCDEta () const
virtual const EvtRecEtaToGGnavEta () const
virtual bool builtFromCDKs () const
virtual const EvtRecVeeVertexnavKshort () const
virtual bool builtFromCDLambda () const
virtual const EvtRecVeeVertexnavLambda () const
virtual bool builtFromCDDecay () const
virtual const DecayEvidencedecay () const
bool overlap (const CDCandidate &aOtherCDCandidate) const
const CDFootPrintfootPrint () 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::KinematicDatadefaultKinematicData () const =0
void recurseNode (TracksAndShowers &final, const CDCandidate &cand) const

Private Member Functions

 CDCandidate ()
DecayChain::KinematicDatamodifiableKinematicData ()

Private Attributes

DecayChain::KinematicDatam_kinematicDataPtr
CDFootPrint m_footPrint

Detailed Description

Definition at line 123 of file CDCandidate.h.


Member Typedef Documentation

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.


Constructor & Destructor Documentation

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]


Member Function Documentation

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]

Reimplemented in CDDecay.

Definition at line 347 of file CDCandidate.cxx.

00348 {
00349    return ( false ) ;
00350 }

bool CDCandidate::builtFromCDEta (  )  const [virtual]

Reimplemented in CDEta.

Definition at line 287 of file CDCandidate.cxx.

00288 {
00289    return ( false ) ;
00290 }

bool CDCandidate::builtFromCDKs (  )  const [virtual]

Reimplemented in CDKs.

Definition at line 307 of file CDCandidate.cxx.

00308 {
00309    return ( false ) ;
00310 }

bool CDCandidate::builtFromCDLambda (  )  const [virtual]

Reimplemented in CDLambda.

Definition at line 327 of file CDCandidate.cxx.

00328 {
00329    return ( false ) ;
00330 }

bool CDCandidate::builtFromCDPhoton (  )  const [virtual]

Reimplemented in CDPhoton.

Definition at line 247 of file CDCandidate.cxx.

Referenced by recurseNode().

00248 {
00249    return ( false ) ;
00250 }

bool CDCandidate::builtFromCDPi0 (  )  const [virtual]

Reimplemented in CDPi0.

Definition at line 267 of file CDCandidate.cxx.

00268 {
00269    return ( false ) ;
00270 }

bool CDCandidate::builtFromTrack (  )  const [virtual]

Reimplemented in CDChargedVisible< H >.

Definition at line 227 of file CDCandidate.cxx.

Referenced by recurseNode().

00228 {
00229    return ( false ) ;
00230 }

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 }


Member Data Documentation

CDFootPrint CDCandidate::m_footPrint [private]

Definition at line 205 of file CDCandidate.h.

Referenced by footPrint(), operator=(), overlap(), and setCDFootPrint().

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

Definition at line 203 of file CDCandidate.h.

Referenced by CDCandidate(), modifiableKinematicData(), operator=(), setKinematicData(), and ~CDCandidate().


Generated on Tue Nov 29 23:18:02 2016 for BOSS_7.0.2 by  doxygen 1.4.7