21#ifndef MDCHITONTRACK_H
22#define MDCHITONTRACK_H
24#include "TrkBase/TrkHitOnTrk.h"
25#include "TrkBase/TrkEnums.h"
26#include "MdcGeom/Constants.h"
28#include "CLHEP/Matrix/Vector.h"
29#include "CLHEP/Geometry/Point3D.h"
30#ifndef ENABLE_BACKWARDS_COMPATIBILITY
35using CLHEP::Hep3Vector;
44 int ambig,
double fittime);
67 int ambig()
const {
return _ambig; }
71 double fitTime()
const {
return _fitTime; }
75 double drift()
const {
return _ambig!=0 ? _drift[_ambig<0 ? 0:1]
76 : (_drift[1]-_drift[0])*0.5; }
77 double drift(
double dca)
const {
return _drift[dca<0?0:1]; }
115 {
return (
hitLen() < _startLen ||
hitLen() > _endLen); }
129 void updateCorrections();
130 double driftVelocity()
const;
131 bool driftCurrent()
const {
return ambig()*_drift[
ambig()<0?0:1]>0; }
HepGeom::Point3D< double > HepPoint3D
void changeBase(MdcHit *newBase)
virtual const MdcHit * mdcHit() const
bool isBeyondEndflange() const
MdcHitOnTrack(const MdcHitOnTrack &hitToBeCopied, TrkRep *newRep, const TrkDifTraj *trkTraj, const MdcHit *hb=0)
unsigned layerNumber() const
double entranceAngleHit() const
virtual unsigned tdcIndex() const =0
virtual bool timeAbsolute(double &t, double &tErr) const
bool updateAmbiguity(double dca)
double drift(double dca) const
virtual const MdcHitOnTrack * mdcHitOnTrack() const
virtual unsigned status() const =0
TrkEnums::TrkViewInfo whatView() const
const MdcHit * baseHit() const
virtual TrkErrCode updateMeasurement(const TrkDifTraj *traj, bool maintainAmbiguity)
double entranceAngle() const
virtual bool timeResid(double &t, double &tErr) const
MdcHitOnTrack(const TrkFundHit *baseHit, int ambig, double fittime, int layer, int wire)
const MdcLayer * layer() const
MdcHitOnTrack(const TrkFundHit &fundHit, const MdcHit &baseHit, int ambig, double fittime)
double entranceAngle(const HepPoint3D pos, const Hep3Vector dir) const
virtual const Trajectory * hitTraj() const
const TrkDifTraj * trkTraj() const