97#include "BesDChain/CDPhoton.h"
98#include "BesDChain/CDMud.h"
99#include "BesDChain/util/KinematicData.h"
100#include "EmcRecEventModel/RecEmcShower.h"
101#include "EvtRecEvent/EvtRecTrack.h"
105Hep3Vector CDPhoton::m_IPV( 0.0, 0.0, 0.0 );
117 :
CDCandidate( aOtherCDPhoton ), m_visibleEvidence( aOtherCDPhoton.m_visibleEvidence ) {}
139 double eraw = emcShower->
energy();
144 Hep3Vector EmcV( emcShower->
x(), emcShower->
y(), emcShower->
z() );
145 Hep3Vector PhotonV = EmcV - m_IPV;
147 double phi = PhotonV.phi();
148 double the = PhotonV.theta();
150 double px = eraw *
sin( the ) *
cos( phi );
151 double py = eraw *
sin( the ) *
sin( phi );
152 double pz = eraw *
cos( the );
156 tmp->
setP4( HepLorentzVector( px, py, pz, eraw ) );
double sin(const BesAngle a)
double cos(const BesAngle a)
CDCandidate(const CDCandidate &aOtherCDCandidate)
virtual const EvtRecTrack * photon() const
EvtRecTrack VisibleEvidence
virtual bool builtFromCDPhoton() const
CDPhoton(const VisibleEvidence *aVisible)
virtual DecayChain::KinematicData * defaultKinematicData() const
void setP4(const HepLorentzVector &aMomentum)