1 #ifndef TrackReco_TrackBase_h
2 #define TrackReco_TrackBase_h
81 iter1=5,
iter2=6,
iter3=7,
iter4=8,
iter5=9,
iter6=10,
iter7=11,
iter8=12,
iter9=13,
iter10=14,
121 double d0()
const {
return -
dxy(); }
157 double dxy(
const Point& myBeamSpot)
const {
158 return ( - (
vx()-myBeamSpot.x()) *
py() + (
vy()-myBeamSpot.y()) *
px() ) /
pt();
167 double dsz(
const Point& myBeamSpot)
const {
168 return (
vz()-myBeamSpot.z())*
pt()/
p() - ((
vx()-myBeamSpot.x())*
px()+(
vy()-myBeamSpot.y())*
py())/
pt() *
pz()/
p();
171 double dz(
const Point& myBeamSpot)
const {
172 return (
vz()-myBeamSpot.z()) - ((
vx()-myBeamSpot.x())*
px()+(
vy()-myBeamSpot.y())*
py())/
pt() *
pz()/
pt();
216 CovarianceMatrix &
fill( CovarianceMatrix &
v )
const;
239 if ((valid+lost+lostIn+lostOut)==0)
return -1;
240 return valid/(1.0*(valid+lost+lostIn+lostOut));
326 int a = ( i <= j ? i :
j ),
b = ( i <= j ? j : i );
327 return b * (
b + 1 ) / 2 + a;
342 case ctf:
return "ctf";
343 case rs:
return "rs";
344 case cosmics:
return "cosmics";
346 case iter0:
return "iter0";
347 case iter1:
return "iter1";
348 case iter2:
return "iter2";
349 case iter3:
return "iter3";
350 case iter4:
return "iter4";
351 case iter5:
return "iter5";
352 case iter6:
return "iter6";
353 case iter7:
return "iter7";
354 case iter8:
return "iter8";
355 case iter9:
return "iter9";
356 case iter10:
return "iter10";
370 case gsf:
return "gsf";
372 return "undefAlgorithm";
406 return "undefQuality";
411 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
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 validFraction() const
fraction of valid hits on the track
double d0() const
dxy parameter in perigee convention (d0 = - dxy)
void setTrackerExpectedHitsOuter(const I &begin, const I &end)
void appendHit(const TrackingRecHit &hit)
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
double dxy(const BeamSpot &theBeamSpot) const
dxy parameter with respect to the beamSpot taking into account the beamspot slopes WARNING: this quan...
int numberOfLostTrackerHits() const
TrackQuality
track quality
double theta() const
polar angle
double dxyError() const
error on dxy
char charge_
electric charge
int numberOfValidHits() const
Point vertex_
innermost (reference) point on track
void setTrackerExpectedHitsInner(const I &begin, const I &end)
int numberOfLostHits() const
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...
signed char nLoops_
number of loops made during the building of the trajectory of a looper particle
CovarianceMatrix covariance() const
return track covariance matrix
TrackAlgorithm
track algorithm
TrackAlgorithm algo() const
void setTrackerExpectedHitsInner(const TrackingRecHit &hit, size_t i)
void setNLoops(signed char value)
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
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)
virtual ~TrackBase()
virtual destructor
signed char nLoops() const
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...
int numberOfValidTrackerHits() const
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
void appendHitPattern(const TrackingRecHit &hit)
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
const Point & position() const
position
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