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

CDLambda Class Reference

#include <CleoDChain/CDLambda.h>

Inheritance diagram for CDLambda:

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 NavLambda VisibleEvidence
typedef NavLambda 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 bool builtFromCDEta () const
virtual bool builtFromCDKs () const
virtual bool builtFromCDKs () const
virtual bool builtFromCDLambda () const
virtual DABoolean builtFromCDLambda () const
virtual bool builtFromCDLambda () const
virtual DABoolean 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
 CDLambda (const EvtRecVeeVertex *aVisible)
 CDLambda (const NavLambda &aVisible)
 CDLambda (const EvtRecVeeVertex *aVisible)
 CDLambda (const NavLambda &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
TracksAndShowers finalChildren () const
TracksAndShowers finalChildren () const
const CDFootPrintfootPrint () const
const CDFootPrintfootPrint () const
virtual DBCandidate::Hypo hypo () const
virtual DBCandidate::Hypo hypo () const
bool isBar () const
DABoolean isBar () const
bool isBar () const
DABoolean isBar () 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
const VXFitVeeLambda & lambda () const
const VXFitVeeLambda & lambda () 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 NavLambda & navLambda () const
virtual const EvtRecVeeVertexnavLambda () const
virtual const NavLambda & navLambda () 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 ~CDLambda ()
virtual ~CDLambda ()
virtual ~CDLambda ()
virtual ~CDLambda ()

Protected Member Functions

virtual DecayChain::KinematicDatadefaultKinematicData () const
virtual KTKinematicData * defaultKinematicData () const
virtual DecayChain::KinematicDatadefaultKinematicData () const
virtual KTKinematicData * 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 CDLambdaoperator= (const CDLambda &)
const CDLambdaoperator= (const CDLambda &)
const CDLambdaoperator= (const CDLambda &)
const CDLambdaoperator= (const CDLambda &)

Private Attributes

const EvtRecVeeVertexm_lambda
const NavLambda & m_lambda
const EvtRecVeeVertexm_lambda
const NavLambda & m_lambda

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 NavLambda CDLambda::VisibleEvidence
 

typedef NavLambda CDLambda::VisibleEvidence
 


Constructor & Destructor Documentation

CDLambda::CDLambda const NavLambda &  aVisible  ) 
 

00081                                            :
00082 //  CDDecay(*(new CDChargedPion(aVisible.piPlus()))),
00083   m_lambda(aVisible)
00084 {
00085   ReferenceHolder<CDChargedPion> tmp = new CDChargedPion(aVisible.pion());
00086   addChild(*tmp);
00087   ReferenceHolder<CDProton> tmp2 = new CDProton(aVisible.proton());
00088   addChild(*tmp2);
00089 }

CDLambda::~CDLambda  )  [virtual]
 

00100 {
00101 }

CDLambda::CDLambda const EvtRecVeeVertex aVisible  ) 
 

00073                                                  :
00074 //  CDDecay(*(new CDChargedPion(aVisible.piPlus()))),
00075   m_lambda(aVisible)
00076 {
00077    EvtRecVeeVertex* lambda = const_cast<EvtRecVeeVertex*>(aVisible);
00078 
00079    int index[2]  = {0, 1};
00080    if (aVisible->vertexId() < 0) {
00081       index[0] = 1;
00082       index[1] = 0;
00083    }
00084 
00085    ReferenceHolder<CDProton> tmp = new CDProton(lambda->daughter(index[0]));
00086    addChild(*tmp);
00087    ReferenceHolder<CDChargedPion> tmp2 = new CDChargedPion(lambda->daughter(index[1]));
00088    addChild(*tmp2);
00089 }

virtual CDLambda::~CDLambda  )  [virtual]
 

CDLambda::CDLambda const NavLambda &  aVisible  ) 
 

virtual CDLambda::~CDLambda  )  [virtual]
 

CDLambda::CDLambda const EvtRecVeeVertex aVisible  ) 
 

virtual CDLambda::~CDLambda  )  [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 CDCandidate::builtFromCDEta  )  const [virtual, inherited]
 

Reimplemented in CDEta, CDEta, CDEta, and CDEta.

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

Reimplemented in CDEta, CDEta, CDEta, and CDEta.

00278 {
00279    return ( false ) ;
00280 }

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 CDLambda::builtFromCDLambda  )  const [virtual]
 

Reimplemented from CDCandidate.

virtual DABoolean CDLambda::builtFromCDLambda  )  const [virtual]
 

Reimplemented from CDCandidate.

virtual bool CDLambda::builtFromCDLambda  )  const [virtual]
 

Reimplemented from CDCandidate.

bool CDLambda::builtFromCDLambda  )  const [virtual]
 

Reimplemented from CDCandidate.

00108 {
00109    return true;
00110 }

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* CDLambda::defaultKinematicData  )  const [protected, virtual]
 

Reimplemented from CDDecay.

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

Reimplemented from CDDecay.

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

Reimplemented from CDDecay.

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

Reimplemented from CDDecay.

00123 {
00124    return new KTKinematicData(m_lambda.lambda());
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 }

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 }

bool CDLambda::isBar  )  const [inline]
 

00078 { return (m_lambda->vertexId() < 0); }

DABoolean CDLambda::isBar  )  const [inline]
 

00076 { return m_lambda.isbar(); }

bool CDLambda::isBar  )  const [inline]
 

00078 { return (m_lambda->vertexId() < 0); }

DABoolean CDLambda::isBar  )  const [inline]
 

00076 { return m_lambda.isbar(); }

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 }

const VXFitVeeLambda& CDLambda::lambda  )  const [inline]
 

00071 {return m_lambda.lambda();}

const VXFitVeeLambda& CDLambda::lambda  )  const [inline]
 

00071 {return m_lambda.lambda();}

double CDCandidate::mass  )  const [inherited]
 

double CDCandidate::mass  )  const [inherited]
 

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

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

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

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

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

Reimplemented in CDEta, CDEta, CDEta, and CDEta.

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

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, 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* CDLambda::navLambda  )  const [virtual]
 

Reimplemented from CDCandidate.

virtual const NavLambda& CDLambda::navLambda  )  const [virtual]
 

Reimplemented from CDCandidate.

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

Reimplemented from CDCandidate.

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

Reimplemented from CDCandidate.

00117 {
00118    return m_lambda ;
00119 }

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 CDLambda& CDLambda::operator= const CDLambda  )  [private]
 

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

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

const CDLambda& CDLambda::operator= const CDLambda  )  [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 EvtRecVeeVertex* CDLambda::m_lambda [private]
 

const NavLambda& CDLambda::m_lambda [private]
 

const EvtRecVeeVertex* CDLambda::m_lambda [private]
 

const NavLambda& CDLambda::m_lambda [private]
 


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