1 #ifndef TrackReco_TrackBase_h
2 #define TrackReco_TrackBase_h
82 iter1=5,
iter2=6,
iter3=7,
iter4=8,
iter5=9,
iter6=10,
iter7=11,
iter8=12,
iter9=13,
iter10=14,
122 double d0()
const {
return -
dxy(); }
158 double dxy(
const Point& myBeamSpot)
const {
159 return ( - (
vx()-myBeamSpot.x()) *
py() + (
vy()-myBeamSpot.y()) *
px() ) /
pt();
162 double dsz(
const Point& myBeamSpot)
const {
163 return (
vz()-myBeamSpot.z())*
pt()/
p() - ((
vx()-myBeamSpot.x())*
px()+(
vy()-myBeamSpot.y())*
py())/
pt() *
pz()/
p();
166 double dz(
const Point& myBeamSpot)
const {
167 return (
vz()-myBeamSpot.z()) - ((
vx()-myBeamSpot.x())*
px()+(
vy()-myBeamSpot.y())*
py())/
pt() *
pz()/
pt();
211 CovarianceMatrix &
fill( CovarianceMatrix &
v )
const;
299 int a = ( i <= j ? i :
j ),
b = ( i <= j ? j : i );
300 return b * (
b + 1 ) / 2 + a;
315 case ctf:
return "ctf";
316 case rs:
return "rs";
317 case cosmics:
return "cosmics";
319 case iter0:
return "iter0";
320 case iter1:
return "iter1";
321 case iter2:
return "iter2";
322 case iter3:
return "iter3";
323 case iter4:
return "iter4";
324 case iter5:
return "iter5";
325 case iter6:
return "iter6";
326 case iter7:
return "iter7";
327 case iter8:
return "iter8";
328 case iter9:
return "iter9";
329 case iter10:
return "iter10";
343 case gsf:
return "gsf";
345 return "undefAlgorithm";
379 return "undefQuality";
384 return "undefAlgorithm";
double qoverp() const
q/p
double p() const
momentum vector magnitude
void setQualityMask(int qualMask)
double d0Error() const
error on d0
double dxy(const Point &myBeamSpot) const
dxy parameter with respect to a user-given beamSpot (WARNING: this quantity can only be interpreted a...
static std::string qualityName(TrackQuality)
unsigned int index
index type
int numberOfValidHits() const
void setTrackerExpectedHitsInner(const C &c)
static index covIndex(index i, index j)
covariance matrix index in array
const Vector & momentum() const
track momentum vector
uint8_t quality_
track quality
double d0() const
dxy parameter in perigee convention (d0 = - dxy)
void setTrackerExpectedHitsOuter(const I &begin, const I &end)
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
TrackBase()
default constructor
TrackQuality
track quality
double theta() const
polar angle
double dxyError() const
error on dxy
char charge_
electric charge
Point vertex_
innermost (reference) point on track
void setTrackerExpectedHitsInner(const I &begin, const I &end)
void setHitPattern(const TrackingRecHit &hit, size_t i)
set hit pattern for specified hit
void setHitPattern(const HitPattern &hitP)
set hitPattern from pre-defined hitPattern
double etaError() const
error on eta
double phi() const
azimuthal angle of momentum vector
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
HitPattern trackerExpectedHitsInner_
hit pattern used for expected crossed layers after the last trajectory's hit
void set(const I &begin, const I &end)
math::Vector< dimension >::type ParameterVector
parameter vector
double px() const
x coordinate of momentum vector
const Point & referencePoint() const
Reference point on the track.
double dsz() const
dsz parameter (THIS IS NOT the SZ impact parameter to (0,0,0) if refPoint is far from (0...
CovarianceMatrix covariance() const
return track covariance matrix
TrackAlgorithm
track algorithm
TrackAlgorithm algo() const
void setTrackerExpectedHitsInner(const TrackingRecHit &hit, size_t i)
void setHitPattern(const I &begin, const I &end)
double dszError() const
error on dsz
const HitPattern & trackerExpectedHitsOuter() const
Access the hit pattern counting (in the Tracker) the number of expected crossed layers after the last...
double eta() const
pseudorapidity of momentum vector
void setQuality(const TrackQuality, bool set=true)
static const std::string qualityNames[]
double chi2() const
chi-squared of the fit
ParameterVector parameters() const
Track parameters with one-to-one correspondence to the covariance matrix.
double ndof() const
number of degrees of freedom of the fit
void setTrackerExpectedHitsOuter(const C &c)
double pt() const
track transverse momentum
int numberOfLostHits() const
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
double phiError() const
error on phi
void setTrackerExpectedHitsOuter(const TrackingRecHit &hit, size_t i)
double lambda() const
Lambda angle.
const std::complex< double > I
double error(int i) const
error on specified element
const HitPattern & trackerExpectedHitsInner() const
Access the hit pattern counting (in the Tracker) the number of expected crossed layers before the fir...
unsigned short numberOfValidHits() const
number of valid hits found
math::XYZPoint Point
point in the space
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
void setTrackerExpectedHitsOuter(const HitPattern &hitP)
double pz() const
z coordinate of momentum vector
double parameter(int i) const
i-th parameter ( i = 0, ... 4 )
double qoverpError() const
error on signed transverse curvature
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
double dzError() const
error on dz
const Point & vertex() const
reference point on the track. This method is DEPRECATED, please use referencePoint() instead ...
double vz() const
z coordinate of the reference point on track
void setHitPattern(const C &c)
set hit patterns from vector of hit references
static TrackQuality qualityByName(const std::string &name)
~TrackBase()
virtual destructor
XYZVectorD XYZVector
spatial vector with cartesian internal representation
XYZPointD XYZPoint
point in space with cartesian internal representation
std::string algoName() const
This class analyses the reconstruction quality for a given track.
float ndof_
number of degrees of freedom
static const std::string algoNames[]
bool quality(const TrackQuality) const
Track quality.
double dsz(const Point &myBeamSpot) const
dsz parameter with respect to a user-given beamSpot (WARNING: this quantity can only be interpreted a...
double lambdaError() const
error on lambda
double vy() const
y coordinate of the reference point on track
float covariance_[covarianceSize]
perigee 5x5 covariance matrix
HitPattern hitPattern_
hit pattern
void setAlgorithm(const TrackAlgorithm a, bool set=true)
position index
double covariance(int i, int j) const
(i,j)-th element of covarianve matrix ( i, j = 0, ... 4 )
CovarianceMatrix & fill(CovarianceMatrix &v) const
fill SMatrix
HitPattern trackerExpectedHitsOuter_
hit pattern used for expected crossed layers before the first trajectory's hit
static TrackAlgorithm algoByName(const std::string &name)
double dz(const Point &myBeamSpot) const
dz parameter with respect to a user-given beamSpot (WARNING: this quantity can only be interpreted as...
Vector momentum_
momentum vector at innermost point
int charge() const
track electric charge
uint8_t algorithm_
track algorithm
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
math::XYZVector Vector
spatial vector
void setTrackerExpectedHitsInner(const HitPattern &hitP)
double py() const
y coordinate of momentum vector
double vx() const
x coordinate of the reference point on track
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
double thetaError() const
error on theta