21#ifndef CGEMHITONTRACK_H
22#define CGEMHITONTRACK_H
24#include "TrkBase/TrkHitOnTrk.h"
26#include "MdcGeom/Constants.h"
28#include "CLHEP/Matrix/Vector.h"
29#include "CLHEP/Geometry/Point3D.h"
30#include "CgemRecEvent/RecCgemCluster.h"
31#include "CgemGeomSvc/CgemGeomSvc.h"
32#include "CgemCalibFunSvc/CgemCalibFunSvc.h"
33#include "MdcUtilitySvc/MdcUtilitySvc.h"
35#ifndef ENABLE_BACKWARDS_COMPATIBILITY
40using CLHEP::Hep3Vector;
74 double fitTime()
const {
return _fitTime; }
80 double drift(
double dca)
const {
return _drift[dca<0?0:1]; }
88 virtual bool timeResid(
double&
t,
double& tErr)
const;
94 unsigned status()
const {
return -999;}
108 void setT0(
double t0);
118 void print(std::ostream& )
const;
122 TrkErrCode getFitStuff(HepVector& derivs, HepVector &derivs2,
double & sigma1,
double & sigma2,
double& deltaChi1,
double& deltaChi2)
const;
124 TrkErrCode getFitStuff(
double & sigma1,
double & sigma2,
double& deltaChi1,
double& deltaChi2)
const;
125 TrkErrCode getFitStuff(HepVector &Xderivs,
double &XdeltaChi, HepVector &Vderivs,
double &VdeltaChi)
const;
132 double fittime,
int layer,
int wire);
137 {
return (
hitLen() < _startLen ||
hitLen() > _endLen); }
150 void updateCorrections();
152 bool driftCurrent()
const {
return ambig()*_drift[
ambig()<0?0:1]>0; }
HepGeom::Point3D< double > HepPoint3D
void changeBase(RecCgemCluster *newBase)
double entranceAngleHit() const
double entranceAngle() const
void print(std::ostream &) const
virtual ~CgemHitOnTrack()
TrkEnums::TrkViewInfo whatView() const
TrkErrCode getFitStuff(HepVector &derivs, HepVector &derivs2, double &sigma1, double &sigma2, double &deltaChi1, double &deltaChi2) const
virtual bool timeAbsolute(double &t, double &tErr) const
double drift(double dca) const
void setCgemCalibFunSvc(const CgemCalibFunSvc *svc)
bool updateAmbiguity(double dca)
unsigned layerNumber() const
virtual bool timeResid(double &t, double &tErr) const
const RecCgemCluster * baseHit() const
virtual const Trajectory * hitTraj() const
virtual TrkHitOnTrk * clone(TrkRep *, const TrkDifTraj *trkTraj=0) const
void setCgemGeomSvc(const CgemGeomSvc *svc)
bool isBeyondEndflange() const
unsigned tdcIndex() const
CgemHitOnTrack(const TrkFundHit *baseHit, int ambig, double fittime, int layer, int wire)
int getlayerid(void) const
virtual int ambig() const
friend class TrkBase::Functors::updateMeasurement
const TrkDifTraj * trkTraj() const