1#ifndef CLEODCHAIN_CDCHARGEDVISIBLE_CC
2#define CLEODCHAIN_CDCHARGEDVISIBLE_CC
106template < DBCand
idate::Hypo H >
109 m_visibleEvidence( aVisible )
133template < DBCand
idate::Hypo H >
136 m_visibleEvidence( aOtherCDChargedHypo.m_visibleEvidence )
143template < DBCand
idate::Hypo H >
160template < DBCand
idate::Hypo H >
163 return ( 0 != m_visibleEvidence ) ;
166template < DBCand
idate::Hypo H >
169 return m_visibleEvidence;
177template < DBCand
idate::Hypo H >
199 if ( (
const_cast<EvtRecTrack*
>(m_visibleEvidence))->isMdcKalTrackValid() ) {
220 double dr(0),phi0(0),kappa(0),dz(0),tanl(0);
229 if (kappa > 0.0000000001)
231 else if (kappa < -0.0000000001)
235 if(kappa!=0) pxy = 1.0/fabs(kappa);
237 double px = pxy * (-
sin(phi0));
238 double py = pxy *
cos(phi0);
239 double pz = pxy * tanl;
241 double e = sqrt( pxy*pxy + pz*pz +
mass*
mass );
245 tmp->
setP4( HepLorentzVector(px, py, pz, e));
251 double e = sqrt(
mass*
mass + mdcTrack->
p3().mag2() );
252 tmp->
setP4( HepLorentzVector(mdcTrack->
p3(), e) );
double sin(const BesAngle a)
double cos(const BesAngle a)
virtual ~CDChargedVisible()
virtual bool builtFromTrack() const
virtual const EvtRecTrack * track() const
virtual DecayChain::KinematicData * defaultKinematicData() const
static double mass(DBCandidate::Hypo aHypo)
void setCharge(const int aCharge)
void setP4(const HepLorentzVector &aMomentum)
static void setPidType(PidType pidType)
const Hep3Vector p3() const
const HepVector & getZHelix() const
HepVector & getZHelixMu()