3#include "MdcData/MdcHitOnTrack.h"
4#include "MdcData/MdcHit.h"
5#include "MdcGeom/Constants.h"
6#include "MdcGeom/BesAngle.h"
9#include "MdcGeom/MdcLayer.h"
10#include "MdcGeom/MdcSWire.h"
11#include "TrkBase/TrkPoca.h"
12#include "TrkBase/TrkDifTraj.h"
13#include "TrkBase/TrkRep.h"
14#include "TrkBase/TrkSimpTraj.h"
15#include "TrkBase/TrkRecoTrk.h"
16#include "MdcGeom/EntranceAngle.h"
52 _hitTraj(baseHit.hitTraj()),
53 _fitTime(baseHit.rawTime()-t0*1e-9),
104 _hitTraj = hot._hitTraj;
105 _fitTime = hot._fitTime;
106 _drift[0] = hot._drift[0];
107 _drift[1] = hot._drift[1];
108 _startLen = hot._startLen;
109 _endLen = hot._endLen;
110 _dHit = (hb==0?hot._dHit:hb);
119 _fitTime= _dHit->
rawTime()-t0*1e-9;
145 if (dca < 0 &&
ambig() >= 0) {
147 }
else if (dca > 0 &&
ambig() <= 0) {
163 static Hep3Vector dir;
168 return BesAngle(dir.phi() - pos.phi());
174 static Hep3Vector dir;
237#ifdef MDCPATREC_DEBUG
238 std::cout<<
" ErrMsg(warning) " <<
"MdcHitOnTrack::updateMeasurement failed " <<
status << std::endl;
251 if (forceIteration || !driftCurrent() ) {
256 return !forceIteration?
status:
261MdcHitOnTrack::updateCorrections()
283 double dist = _dHit->
driftDist(tof, wireAmb, eAngle, dAngle, z);
289 assert( driftCurrent() );
291 double newSig = _dHit->
sigma(dist, wireAmb, eAngle, dAngle, z);
298MdcHitOnTrack::driftVelocity()
const
312 static const double epsilon = 0.5e-9;
316 return (dist2-dist1)/(2*
epsilon);
322 double v = driftVelocity();
323 if (
v <= 0)
return false;
356 return _dHit->
layer();
420 static Hep3Vector dir;
425 double wireAmb =
ambig();
426 if (
mdcHit()->isCosmicFit()){
428 if ( pos.y() > poca.y()){
429 wireAmb = -1.*_ambig;
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
virtual const MdcHit * mdcHit() const
void changeBase(MdcHit *newBase)
bool isBeyondEndflange() const
virtual bool timeAbsolute(double &t, double &tErr) const
virtual const Trajectory * hitTraj() const
unsigned layerNumber() const
double entranceAngleHit() const
bool updateAmbiguity(double dca)
virtual bool timeResid(double &t, double &tErr) const
virtual const MdcHitOnTrack * mdcHitOnTrack() const
virtual unsigned status() const =0
TrkEnums::TrkViewInfo whatView() const
const MdcHit * baseHit() const
double entranceAngle() const
const MdcLayer * layer() const
MdcHitOnTrack(const TrkFundHit &fundHit, const MdcHit &baseHit, int ambig, double fittime)
unsigned layernumber() const
unsigned wirenumber() const
TrkEnums::TrkViewInfo whatView() const
double driftTime(double tof, double z) const
double sigma(double, int, double, double, double) const
double driftDist(double, int, double, double, double) const
const MdcLayer * layer() const
double zLength(void) const
virtual void getInfo(double fltLen, HepPoint3D &pos, Hep3Vector &direction) const =0
virtual Hep3Vector direction(double) const =0
virtual const TrkDifTraj & traj() const =0
void setHitResid(double newResid)
TrkErrCode updatePoca(const TrkDifTraj *trkTraj, bool maintainAmbiguity)
void setHitRms(double newRms)
void setUsability(int usability)
double resid(bool exclude=false) const
const TrkRep * getParentRep() const
friend class TrkBase::Functors::updateMeasurement
const TrkDifTraj * _trkTraj
const TrkErrCode & status() const
virtual HepPoint3D position(double fltL) const
virtual double arrivalTime(double fltL) const
TrkRecoTrk * parentTrack()