21#ifndef MDCHITONTRACK_H
22#define MDCHITONTRACK_H
24#include "CLHEP/Geometry/Point3D.h"
25#include "CLHEP/Matrix/Vector.h"
26#include "MdcGeom/Constants.h"
27#include "TrkBase/TrkEnums.h"
28#include "TrkBase/TrkHitOnTrk.h"
30#ifndef ENABLE_BACKWARDS_COMPATIBILITY
35using CLHEP::Hep3Vector;
65 int ambig()
const {
return _ambig; }
69 double fitTime()
const {
return _fitTime; }
74 return _ambig != 0 ? _drift[_ambig < 0 ? 0 : 1] : ( _drift[1] - _drift[0] ) * 0.5;
76 double drift(
double dca )
const {
return _drift[dca < 0 ? 0 : 1]; }
103 void setAmbig(
int a ) { _ambig = a < 0 ? -1 : a > 0 ? 1 : 0; }
126 void updateCorrections();
127 double driftVelocity()
const;
128 bool driftCurrent()
const {
return ambig() * _drift[
ambig() < 0 ? 0 : 1] > 0; }
HepGeom::Point3D< double > HepPoint3D
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