CDPi0 Class Reference

#include <CleoDChain/CDPi0.h>

Inheritance diagram for CDPi0:

CDDecay CDCandidate dchain::ReferenceCount List of all members.

Public Types

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

Public Member Functions

 CDPi0 (const EvtRecPi0 *aVisible)
virtual ~CDPi0 ()
virtual bool builtFromCDPi0 () const
virtual const EvtRecPi0navPi0 () const
void addChild (const CDCandidate &aAdditionalProduct)
void setKinematicData (const DecayChain::KinematicData &aKinematicData)
virtual bool builtFromCDDecay (void) const
virtual const CDDecaydecay (void) const
uint32_t numberChildren () const
void iterateChildren (void(*analyze)(const CDCandidate &)) const
void iterateChildren (DCAnalysisFunction< CDCandidate > &analyze) const
const CDCandidatechild (unsigned int aPosition) const
const std::vector< dchain::ReferenceHolder<
CDCandidate > > & 
children () const
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 builtFromCDEta () const
virtual const EvtRecEtaToGGnavEta () const
virtual bool builtFromCDKs () const
virtual const EvtRecVeeVertexnavKshort () const
virtual bool builtFromCDLambda () const
virtual const EvtRecVeeVertexnavLambda () const
bool overlap (const CDCandidate &aOtherCDCandidate) const
const CDFootPrintfootPrint () const
void addLink () const
void dropLink () const

Protected Member Functions

virtual DecayChain::KinematicDatadefaultKinematicData () const
void setCDFootPrint (const CDFootPrint &aCDFootPrint)
void recurseNode (TracksAndShowers &final, const CDCandidate &cand) const

Private Member Functions

const CDPi0operator= (const CDPi0 &)

Private Attributes

const EvtRecPi0m_pi0

Detailed Description

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

Usage: <usage>

Definition at line 55 of file CDPi0.h.


Member Typedef Documentation

typedef CDCandidate CDDecay::CandidateClass [inherited]

Definition at line 116 of file CDDecay.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.


Constructor & Destructor Documentation

CDPi0::CDPi0 ( const EvtRecPi0 aVisible  ) 

Definition at line 68 of file CDPi0.cxx.

References CDDecay::addChild(), EvtRecPi0::hiEnGamma(), and EvtRecPi0::loEnGamma().

00068                                       :
00069   m_pi0(aVisible)
00070 {
00071   ReferenceHolder<CDPhoton> tmp = new CDPhoton(aVisible->hiEnGamma());
00072   addChild(*tmp);
00073   tmp = new CDPhoton(aVisible->loEnGamma());
00074   addChild(*tmp);
00075 }

CDPi0::~CDPi0 (  )  [virtual]

Definition at line 84 of file CDPi0.cxx.

00085 {
00086 }


Member Function Documentation

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

Definition at line 187 of file CDDecay.cxx.

References CDCandidate::footPrint(), CDDecay::m_children, and CDCandidate::setCDFootPrint().

Referenced by CDEta::CDEta(), CDKs::CDKs(), CDLambda::CDLambda(), and CDPi0().

00188 {
00189     setCDFootPrint( footPrint() + aAdditionalProduct.footPrint() );
00190     m_children.push_back( ReferenceHolder<CDCandidate>(&aAdditionalProduct) ) ;
00191 }

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 CDDecay::builtFromCDDecay ( void   )  const [virtual, inherited]

Reimplemented from CDCandidate.

Definition at line 203 of file CDDecay.cxx.

00204 {
00205     return ( !false ) ;
00206 }

bool CDCandidate::builtFromCDEta (  )  const [virtual, inherited]

Reimplemented in CDEta.

Definition at line 287 of file CDCandidate.cxx.

00288 {
00289    return ( false ) ;
00290 }

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

Reimplemented in CDKs.

Definition at line 307 of file CDCandidate.cxx.

00308 {
00309    return ( false ) ;
00310 }

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

Reimplemented in CDLambda.

Definition at line 327 of file CDCandidate.cxx.

00328 {
00329    return ( false ) ;
00330 }

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

Reimplemented in CDPhoton.

Definition at line 247 of file CDCandidate.cxx.

Referenced by CDCandidate::recurseNode().

00248 {
00249    return ( false ) ;
00250 }

bool CDPi0::builtFromCDPi0 (  )  const [virtual]

Reimplemented from CDCandidate.

Definition at line 94 of file CDPi0.cxx.

00095 {
00096    return true;
00097 }

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

Reimplemented in CDChargedVisible< H >.

Definition at line 227 of file CDCandidate.cxx.

Referenced by CDCandidate::recurseNode().

00228 {
00229    return ( false ) ;
00230 }

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 CDCandidate & CDDecay::child ( unsigned int  aPosition  )  const [inherited]

Definition at line 247 of file CDDecay.cxx.

References CDDecay::m_children.

Referenced by CDDecay::defaultKinematicData(), and CDDecay::iterateChildren().

00248 {
00249     if ( aPosition >= m_children.size() ) {
00250         std::cerr << "Trying to access an invalid Child" << std::endl ;
00251         return ( *(m_children[ 0 ]) ) ;
00252     }
00253     return ( *(m_children[ aPosition ]) ) ;
00254 }

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

Definition at line 256 of file CDDecay.cxx.

References CDDecay::m_children.

Referenced by CDCandidate::recurseNode().

00257 {
00258     return ( m_children ) ;
00259 }

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

Reimplemented from CDCandidate.

Definition at line 208 of file CDDecay.cxx.

00209 {
00210     return ( *this ) ;
00211 }

KinematicData * CDPi0::defaultKinematicData (  )  const [protected, virtual]

Reimplemented from CDDecay.

Definition at line 108 of file CDPi0.cxx.

References EvtRecPi0::hiPfit(), EvtRecPi0::loPfit(), and m_pi0.

00109 {
00110    return new KinematicData( m_pi0->hiPfit() + m_pi0->loPfit() );
00111 }

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 CDCandidate::hypo (  )  const [inline, virtual, inherited]

Reimplemented in CDChargedVisible< H >, and CDPhoton.

Definition at line 212 of file CDCandidate.h.

References DBCandidate::kMaxHypo.

00213 {
00214     return DBCandidate::kMaxHypo;
00215 }

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

Definition at line 237 of file CDDecay.cxx.

References CDDecay::child(), and CDDecay::m_children.

00238 {
00239     vector< ReferenceHolder<CDCandidate> >::const_iterator finished ( m_children.end() ) ;
00240     for ( vector< ReferenceHolder<CDCandidate> >::const_iterator child ( m_children.begin() ) ;
00241             child != finished ;
00242             ++child ) {
00243         analyze( (*(*child)) ) ;
00244     }
00245 }

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

Definition at line 224 of file CDDecay.cxx.

References CDDecay::child(), and CDDecay::m_children.

00225 {
00226     vector< ReferenceHolder<CDCandidate> >::const_iterator finished( m_children.end() ) ;
00227     for ( vector< ReferenceHolder<CDCandidate> >::const_iterator child( m_children.begin() ) ;
00228             child != finished ;
00229             ++child ) {
00230         analyze( (*(*child)) ) ;
00231     }
00232 }

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 * CDPi0::navPi0 (  )  const [virtual]

Reimplemented from CDCandidate.

Definition at line 103 of file CDPi0.cxx.

References m_pi0.

Referenced by UserPi0Cut::operator()(), and LocalPi0Selector::operator()().

00104 {
00105    return ( m_pi0 ) ;
00106 }

uint32_t CDDecay::numberChildren (  )  const [inherited]

Definition at line 216 of file CDDecay.cxx.

References CDDecay::m_children.

00217 {
00218     return ( m_children.size() ) ;
00219 }

const CDPi0& CDPi0::operator= ( const CDPi0  )  [private]

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 * CDCandidate::photon (  )  const [virtual, inherited]

Reimplemented in CDPhoton.

Definition at line 256 of file CDCandidate.cxx.

Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and CDCandidate::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, 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 }

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

Reimplemented from CDCandidate.

Definition at line 193 of file CDDecay.cxx.

References CDCandidate::setKinematicData().

00194 {
00195     // Call setKinematicData of my super-class
00196     CDCandidate::setKinematicData( aKinematicData );
00197 }

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 }


Member Data Documentation

const EvtRecPi0* CDPi0::m_pi0 [private]

Definition at line 92 of file CDPi0.h.

Referenced by defaultKinematicData(), and navPi0().


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