CDPhoton Class Reference

#include <CDPhoton.h>

Inheritance diagram for CDPhoton:

CDCandidate dchain::ReferenceCount List of all members.

Public Types

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

Public Member Functions

 CDPhoton (const VisibleEvidence *aVisible)
 CDPhoton (const CDPhoton &aOtherCDPhoton)
virtual ~CDPhoton ()
virtual bool builtFromCDPhoton () const
virtual const EvtRecTrackphoton () const
virtual DBCandidate::Hypo hypo () 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 bool builtFromTrack () const
virtual const EvtRecTracktrack () 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

Static Public Member Functions

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

Protected Member Functions

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

Private Member Functions

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

Private Attributes

const VisibleEvidencem_visibleEvidence

Static Private Attributes

static Hep3Vector m_IPV

Detailed Description

Definition at line 76 of file CDPhoton.h.


Member Typedef Documentation

typedef CDCandidate CDPhoton::CandidateClass

Definition at line 82 of file CDPhoton.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.

typedef EvtRecTrack CDPhoton::VisibleEvidence

Definition at line 83 of file CDPhoton.h.


Constructor & Destructor Documentation

CDPhoton::CDPhoton ( const VisibleEvidence aVisible  ) 

Definition at line 110 of file CDPhoton.cxx.

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

CDPhoton::CDPhoton ( const CDPhoton aOtherCDPhoton  ) 

Definition at line 119 of file CDPhoton.cxx.

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

CDPhoton::~CDPhoton (  )  [virtual]

Definition at line 128 of file CDPhoton.cxx.

00129 {
00130 }

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

Reimplemented in CDDecay.

Definition at line 347 of file CDCandidate.cxx.

00348 {
00349    return ( false ) ;
00350 }

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

Reimplemented from CDCandidate.

Definition at line 136 of file CDPhoton.cxx.

References m_visibleEvidence.

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

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

Reimplemented in CDPi0.

Definition at line 267 of file CDCandidate.cxx.

00268 {
00269    return ( false ) ;
00270 }

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 CDDecay & CDCandidate::decay (  )  const [virtual, inherited]

Reimplemented in CDDecay.

Definition at line 356 of file CDCandidate.cxx.

Referenced by NeutralDReconstruction::execute(), DsReconstruction::execute(), and CDCandidate::recurseNode().

00357 {
00358    std::cerr << "No CDDecay for this CDCandidate" << std::endl ;
00359    exit( 1 ) ;
00360    return ( *(CDDecay*)0 ) ;
00361 }

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

Implements CDCandidate.

Definition at line 153 of file CDPhoton.cxx.

References cos(), DstEmcShower::energy(), m_IPV, m_visibleEvidence, DecayChain::KinematicData::setP4(), sin(), DstEmcShower::x(), DstEmcShower::y(), and DstEmcShower::z().

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

Reimplemented from CDCandidate.

Definition at line 134 of file CDPhoton.h.

References DBCandidate::kPhoton.

00135 {
00136   return DBCandidate::kPhoton;
00137 }

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

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

Reimplemented from CDCandidate.

Definition at line 145 of file CDPhoton.cxx.

References m_visibleEvidence.

Referenced by LocalPhotonSelector::operator()().

00146 {
00147    return m_visibleEvidence ;
00148 }

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 }

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

Definition at line 99 of file CDPhoton.h.

References m_IPV.

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

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

Reimplemented in CDDecay.

Definition at line 99 of file CDCandidate.cxx.

References CDCandidate::m_kinematicDataPtr, and CDCandidate::modifiableKinematicData().

Referenced by CDCandidate::CDCandidate(), 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  )  [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

Hep3Vector CDPhoton::m_IPV [static, private]

Definition at line 126 of file CDPhoton.h.

Referenced by defaultKinematicData(), and setIP().

const VisibleEvidence* CDPhoton::m_visibleEvidence [private]

Definition at line 123 of file CDPhoton.h.

Referenced by builtFromCDPhoton(), defaultKinematicData(), and photon().


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