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

CDPhoton Class Reference

#include <CDPhoton.h>

Inheritance diagram for CDPhoton:

CDCandidate CDCandidate dchain::ReferenceCount dchain::ReferenceCount dchain::ReferenceCount dchain::ReferenceCount 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 EvtRecTrack VisibleEvidence
typedef EvtRecTrack VisibleEvidence

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
 CDPhoton (const CDPhoton &aOtherCDPhoton)
 CDPhoton (const VisibleEvidence *aVisible)
 CDPhoton (const CDPhoton &aOtherCDPhoton)
 CDPhoton (const VisibleEvidence *aVisible)
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
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 ~CDPhoton ()
virtual ~CDPhoton ()

Static Public Member Functions

bool setIP (double x, double y, double z)
bool setIP (double x, double y, double z)

Protected Member Functions

virtual DecayChain::KinematicDatadefaultKinematicData () const
virtual DecayChain::KinematicDatadefaultKinematicData () 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)
void setKinematicData (const DecayChain::KinematicData &aKinematicData)
void setKinematicData (const DecayChain::KinematicData &aKinematicData)

Private Member Functions

 CDPhoton ()
 CDPhoton ()
const CDPhotonoperator= (const CDPhoton &aOtherCDPhoton)
const CDPhotonoperator= (const CDPhoton &aOtherCDPhoton)

Private Attributes

const VisibleEvidencem_visibleEvidence
const VisibleEvidencem_visibleEvidence

Static Private Attributes

Hep3Vector m_IPV

Member Typedef Documentation

typedef CDCandidate CDPhoton::CandidateClass
 

typedef CDCandidate CDPhoton::CandidateClass
 

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 EvtRecTrack CDPhoton::VisibleEvidence
 

typedef EvtRecTrack CDPhoton::VisibleEvidence
 


Constructor & Destructor Documentation

CDPhoton::CDPhoton const VisibleEvidence aVisible  ) 
 

00110                                                     :
00111    CDCandidate( CDMud< VisibleEvidence >::get( aVisible ) ) ,
00112    m_visibleEvidence( aVisible )
00113 {
00114 }

CDPhoton::CDPhoton const CDPhoton aOtherCDPhoton  ) 
 

00119                                                    :
00120    CDCandidate( aOtherCDPhoton ) ,
00121    m_visibleEvidence( aOtherCDPhoton.m_visibleEvidence )
00122 {
00123 }

CDPhoton::~CDPhoton  )  [virtual]
 

00129 {
00130 }

CDPhoton::CDPhoton  )  [private]
 

CDPhoton::CDPhoton const VisibleEvidence aVisible  ) 
 

CDPhoton::CDPhoton const CDPhoton aOtherCDPhoton  ) 
 

virtual CDPhoton::~CDPhoton  )  [virtual]
 

CDPhoton::CDPhoton  )  [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, inherited]
 

Reimplemented in CDDecay, and CDDecay.

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

Reimplemented in CDDecay, and CDDecay.

00338 {
00339    return ( false ) ;
00340 }

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 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 CDPhoton::builtFromCDPhoton  )  const [virtual]
 

Reimplemented from CDCandidate.

bool CDPhoton::builtFromCDPhoton  )  const [virtual]
 

Reimplemented from CDCandidate.

00137 {
00138    return ( 0 != m_visibleEvidence ) ;
00139 }

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 }

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

Reimplemented in CDDecay, and CDDecay.

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

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

Implements CDCandidate.

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

Implements CDCandidate.

00154 {
00155    RecEmcShower* emcShower = (const_cast<VisibleEvidence*>(m_visibleEvidence))->emcShower();
00156 
00157    double eraw = emcShower->energy();
00158 
00159    //double phi  = emcShower->phi();
00160    //double the  = emcShower->theta();
00161 
00162    Hep3Vector EmcV( emcShower->x(), emcShower->y(), emcShower->z() );
00163    Hep3Vector PhotonV = EmcV - m_IPV;
00164 
00165    double phi = PhotonV.phi();
00166    double the = PhotonV.theta();
00167 
00168    double px = eraw*sin(the)*cos(phi);
00169    double py = eraw*sin(the)*sin(phi);
00170    double pz = eraw*cos(the);
00171 
00172    KinematicData* tmp = new KinematicData();
00173 
00174    tmp->setP4( HepLorentzVector(px, py, pz, eraw) );
00175 
00176    return tmp;
00177 }

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

Reimplemented from CDCandidate.

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

Reimplemented from CDCandidate.

00135 {
00136   return DBCandidate::kPhoton;
00137 }

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 }

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* 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 }

const CDPhoton& CDPhoton::operator= const CDPhoton aOtherCDPhoton  )  [private]
 

const CDPhoton& CDPhoton::operator= const CDPhoton aOtherCDPhoton  )  [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* CDPhoton::photon  )  const [virtual]
 

Reimplemented from CDCandidate.

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

Reimplemented from CDCandidate.

00146 {
00147    return m_visibleEvidence ;
00148 }

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 }

bool CDPhoton::setIP double  x,
double  y,
double  z
[inline, static]
 

00099                                                       {
00100          m_IPV.set(x, y, z);
00101       }

bool CDPhoton::setIP double  x,
double  y,
double  z
[inline, static]
 

00099                                                       {
00100          m_IPV.set(x, y, z);
00101       }

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

Reimplemented in CDDecay, and CDDecay.

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

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  )  [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

Hep3Vector CDPhoton::m_IPV [static, private]
 

const VisibleEvidence* CDPhoton::m_visibleEvidence [private]
 

const VisibleEvidence* CDPhoton::m_visibleEvidence [private]
 


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