21#ifndef MDCHITONTRACK_H
22#define MDCHITONTRACK_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]; }
85 virtual bool timeResid(
double&
t,
double& tErr)
const;
105 void setT0(
double t0);
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
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
virtual unsigned tdcIndex() const =0
bool updateAmbiguity(double dca)
virtual bool timeResid(double &t, double &tErr) const
virtual const MdcHitOnTrack * mdcHitOnTrack() const
double drift(double dca) const
virtual unsigned status() const =0
TrkEnums::TrkViewInfo whatView() const
const MdcHit * baseHit() const
double entranceAngle() 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)
friend class TrkBase::Functors::updateMeasurement
const TrkDifTraj * trkTraj() const