CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackBase.h
Go to the documentation of this file.
1 #ifndef TrackReco_TrackBase_h
2 #define TrackReco_TrackBase_h
3 
58 #include <bitset>
59 
60 namespace reco
61 {
62 
63 class TrackBase
64 {
65 
66 public:
68  enum { dimension = 5 };
69 
71  enum { covarianceSize = dimension * (dimension + 1) / 2 };
72 
75 
78 
81 
84 
86  enum {
87  i_qoverp = 0,
92  };
93 
95  typedef unsigned int index;
96 
97 
100  undefAlgorithm = 0, ctf = 1, rs = 2, cosmics = 3,
113  nuclInter = 17,
117  beamhalo = 28,
118  gsf = 29,
119  // HLT algo name
120  hltPixel = 30,
121  // steps used by PF
122  hltIter0 = 31,
123  hltIter1 = 32,
124  hltIter2 = 33,
125  hltIter3 = 34,
126  hltIter4 = 35,
127  // steps used by all other objects @HLT
128  hltIterX = 36,
129  // steps used by HI muon regional iterative tracking
139  algoSize = 46
140  };
141 
143  typedef std::bitset<algoSize> AlgoMask;
144 
145 
146  static const std::string algoNames[];
147 
151  loose = 0,
152  tight = 1,
154  confirmed = 3, // means found by more than one iteration
155  goodIterative = 4, // meaningless
158  discarded = 7, // because a better track found. kept in the collection for reference....
160  };
161 
162  static const std::string qualityNames[];
163 
165  TrackBase();
166 
168  TrackBase(double chi2, double ndof, const Point &vertex,
169  const Vector &momentum, int charge, const CovarianceMatrix &cov,
171  signed char nloops = 0);
172 
174  virtual ~TrackBase();
175 
177  double chi2() const;
178 
180  double ndof() const;
181 
183  double normalizedChi2() const;
184 
186  int charge() const;
187 
189  double qoverp() const;
190 
192  double theta() const;
193 
195  double lambda() const;
196 
198  double dxy() const;
199 
201  double d0() const;
202 
204  double dsz() const;
205 
207  double dz() const;
208 
210  double p() const;
211 
213  double pt() const;
214 
216  double px() const;
217 
219  double py() const;
220 
222  double pz() const;
223 
225  double phi() const;
226 
228  double eta() const;
229 
231  double vx() const;
232 
234  double vy() const;
235 
237  double vz() const;
238 
240  const Vector &momentum() const;
241 
243  const Point &referencePoint() const;
244 
246  const Point &vertex() const ;
247  //__attribute__((deprecated("This method is DEPRECATED, please use referencePoint() instead.")));
248 
250  double dxy(const Point &myBeamSpot) const;
251 
253  double dxy(const BeamSpot &theBeamSpot) const;
254 
256  double dsz(const Point &myBeamSpot) const;
257 
259  double dz(const Point &myBeamSpot) const;
260 
262  ParameterVector parameters() const;
263 
265  CovarianceMatrix covariance() const;
266 
268  double parameter(int i) const;
269 
271  double covariance(int i, int j) const;
272 
274  double error(int i) const;
275 
277  double qoverpError() const;
278 
280  double ptError() const;
281 
283  double thetaError() const;
284 
286  double lambdaError() const;
287 
289  double etaError() const;
290 
292  double phiError() const;
293 
295  double dxyError() const;
296 
298  double d0Error() const;
299 
301  double dszError() const;
302 
304  double dzError() const;
305 
307  CovarianceMatrix &fill(CovarianceMatrix &v) const;
308 
310  static index covIndex(index i, index j);
311 
313  const HitPattern &hitPattern() const;
314 
316  unsigned short numberOfValidHits() const;
317 
319  unsigned short numberOfLostHits() const;
320 
322  double validFraction() const;
323 
325  template<typename C>
326  bool appendHits(const C &c, const TrackerTopology& ttopo);
327 
328  template<typename I>
329  bool appendHits(const I &begin, const I &end, const TrackerTopology& ttopo);
330 
332  bool appendHitPattern(const TrackingRecHit &hit, const TrackerTopology& ttopo);
333  bool appendHitPattern(const DetId &id, TrackingRecHit::Type hitType, const TrackerTopology& ttopo);
334 
341  bool appendTrackerHitPattern(uint16_t subdet, uint16_t layer, uint16_t stereo, TrackingRecHit::Type hitType);
342 
349  bool appendMuonHitPattern(const DetId& id, TrackingRecHit::Type hitType);
350 
352  void resetHitPattern();
353 
355  void setAlgorithm(const TrackAlgorithm a);
356 
358 
359  void setAlgoMask(AlgoMask a) { algoMask_ = a;}
360 
361  AlgoMask algoMask() const { return algoMask_;}
362 #if ( !defined(__CINT__) && !defined(__MAKECINT__) && !defined(__REFLEX__) ) || defined(__ROOTCLING__)
363  unsigned long long algoMaskUL() const { return algoMask().to_ullong();}
364 #endif
365  bool isAlgoInMask(TrackAlgorithm a) const {return algoMask()[a];}
366 
367 
368  TrackAlgorithm algo() const ;
369  TrackAlgorithm originalAlgo() const ;
370 
371 
372  std::string algoName() const;
373 
375 
376  static TrackAlgorithm algoByName(const std::string &name);
377 
379  bool quality(const TrackQuality) const;
380 
381  void setQuality(const TrackQuality);
382 
384 
386 
387  int qualityMask() const;
388 
389  void setQualityMask(int qualMask);
390 
391  void setNLoops(signed char value);
392 
393  bool isLooper() const;
394 
395  signed char nLoops() const;
396 
397 private:
400 
403 
405  float chi2_;
406 
408  Point vertex_;
409 
411  Vector momentum_;
412 
414  std::bitset<algoSize> algoMask_;
415 
417  float ndof_;
418 
420  char charge_;
421 
423  uint8_t algorithm_;
424 
427 
428 
430  uint8_t quality_;
431 
433  signed char nLoops_; // I use signed char because I don't expect more than 128 loops and I could use a negative value for a special purpose.
434 };
435 
436 // Access the hit pattern, indicating in which Tracker layers the track has hits.
437 inline const HitPattern & TrackBase::hitPattern() const
438 {
439  return hitPattern_;
440 }
441 
442 inline bool TrackBase::appendHitPattern(const DetId &id, TrackingRecHit::Type hitType, const TrackerTopology& ttopo)
443 {
444  return hitPattern_.appendHit(id, hitType, ttopo);
445 }
446 
448 {
449  return hitPattern_.appendHit(hit, ttopo);
450 }
451 
452 inline bool TrackBase::appendTrackerHitPattern(uint16_t subdet, uint16_t layer, uint16_t stereo, TrackingRecHit::Type hitType) {
453  return hitPattern_.appendTrackerHit(subdet, layer, stereo, hitType);
454 }
455 
457  return hitPattern_.appendMuonHit(id, hitType);
458 }
459 
461 {
462  hitPattern_.clear();
463 }
464 
465 template<typename I>
466 bool TrackBase::appendHits(const I &begin, const I &end, const TrackerTopology& ttopo)
467 {
468  return hitPattern_.appendHits(begin, end, ttopo);
469 }
470 
471 template<typename C>
472 bool TrackBase::appendHits(const C &c, const TrackerTopology& ttopo)
473 {
474  return hitPattern_.appendHits(c.begin(), c.end(), ttopo);
475 }
476 
478 {
479  int a = (i <= j ? i : j);
480  int b = (i <= j ? j : i);
481  return b * (b + 1) / 2 + a;
482 }
483 
485 {
486  return (TrackAlgorithm) (algorithm_);
487 }
489 {
491 }
492 
493 
494 
496 
498 {
499  switch (q) {
500  case undefQuality:
501  return quality_ == 0;
502  case goodIterative:
504  default:
505  return (quality_ & (1 << q)) >> q;
506  }
507  return false;
508 }
509 
511 {
512  if (q == undefQuality) {
513  quality_ = 0;
514  } else {
515  quality_ |= (1 << q);
516  }
517 }
518 
520 {
521  if (int(q) < int(qualitySize) && int(q) >= 0) {
522  return qualityNames[int(q)];
523  }
524  return "undefQuality";
525 }
526 
528 {
529  if (int(a) < int(algoSize) && int(a) > 0) {
530  return algoNames[int(a)];
531  }
532  return "undefAlgorithm";
533 }
534 
535 // chi-squared of the fit
536 inline double TrackBase::chi2() const
537 {
538  return chi2_;
539 }
540 
541 // number of degrees of freedom of the fit
542 inline double TrackBase::ndof() const
543 {
544  return ndof_;
545 }
546 
547 // chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
548 inline double TrackBase::normalizedChi2() const
549 {
550  return ndof_ != 0 ? chi2_ / ndof_ : chi2_ * 1e6;
551 }
552 
553 // track electric charge
554 inline int TrackBase::charge() const
555 {
556  return charge_;
557 }
558 
559 // q / p
560 inline double TrackBase::qoverp() const
561 {
562  return charge() / p();
563 }
564 
565 // polar angle
566 inline double TrackBase::theta() const
567 {
568  return momentum_.theta();
569 }
570 
571 // Lambda angle
572 inline double TrackBase::lambda() const
573 {
574  return M_PI_2 - momentum_.theta();
575 }
576 
577 // dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close to (0,0,0): see parametrization definition above for details). See also function dxy(myBeamSpot) below.
578 inline double TrackBase::dxy() const
579 {
580  return (-vx() * py() + vy() * px()) / pt();
581 }
582 
583 // dxy parameter in perigee convention (d0 = -dxy)
584 inline double TrackBase::d0() const
585 {
586  return -dxy();
587 }
588 
589 // dsz parameter (THIS IS NOT the SZ impact parameter to (0,0,0) if refPoint is far from (0,0,0): see parametrization definition above for details)
590 inline double TrackBase::dsz() const
591 {
592  return vz() * pt() / p() - (vx() * px() + vy() * py()) / pt() * pz() / p();
593 }
594 
595 // dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to (0,0,0). See also function dz(myBeamSpot) below.
596 inline double TrackBase::dz() const
597 {
598  return vz() - (vx() * px() + vy() * py()) / pt() * (pz() / pt());
599 }
600 
601 // momentum vector magnitude
602 inline double TrackBase::p() const
603 {
604  return momentum_.R();
605 }
606 
607 // track transverse momentum
608 inline double TrackBase::pt() const
609 {
610  return sqrt(momentum_.Perp2());
611 }
612 
613 // x coordinate of momentum vector
614 inline double TrackBase::px() const
615 {
616  return momentum_.x();
617 }
618 
619 // y coordinate of momentum vector
620 inline double TrackBase::py() const
621 {
622  return momentum_.y();
623 }
624 
625 // z coordinate of momentum vector
626 inline double TrackBase::pz() const
627 {
628  return momentum_.z();
629 }
630 
631 // azimuthal angle of momentum vector
632 inline double TrackBase::phi() const
633 {
634  return momentum_.Phi();
635 }
636 
637 // pseudorapidity of momentum vector
638 inline double TrackBase::eta() const
639 {
640  return momentum_.Eta();
641 }
642 
643 // x coordinate of the reference point on track
644 inline double TrackBase::vx() const
645 {
646  return vertex_.x();
647 }
648 
649 // y coordinate of the reference point on track
650 inline double TrackBase::vy() const
651 {
652  return vertex_.y();
653 }
654 
655 // z coordinate of the reference point on track
656 inline double TrackBase::vz() const
657 {
658  return vertex_.z();
659 }
660 
661 // track momentum vector
663 {
664  return momentum_;
665 }
666 
667 // Reference point on the track
669 {
670  return vertex_;
671 }
672 
673 // reference point on the track. This method is DEPRECATED, please use referencePoint() instead
674 inline const TrackBase::Point & TrackBase::vertex() const
675 {
676  return vertex_;
677 }
678 
679 // dxy parameter with respect to a user-given beamSpot
680 // (WARNING: this quantity can only be interpreted as a minimum transverse distance if beamSpot, if the beam spot is reasonably close to the refPoint, since linear approximations are involved).
681 // This is a good approximation for Tracker tracks.
682 inline double TrackBase::dxy(const Point &myBeamSpot) const
683 {
684  return (-(vx() - myBeamSpot.x()) * py() + (vy() - myBeamSpot.y()) * px()) / pt();
685 }
686 
687 // dxy parameter with respect to the beamSpot taking into account the beamspot slopes
688 // (WARNING: this quantity can only be interpreted as a minimum transverse distance if beamSpot, if the beam spot is reasonably close to the refPoint, since linear approximations are involved).
689 // This is a good approximation for Tracker tracks.
690 inline double TrackBase::dxy(const BeamSpot &theBeamSpot) const
691 {
692  return dxy(theBeamSpot.position(vz()));
693 }
694 
695 // dsz parameter with respect to a user-given beamSpot
696 // (WARNING: this quantity can only be interpreted as the distance in the S-Z plane to the beamSpot, if the beam spot is reasonably close to the refPoint, since linear approximations are involved).
697 // This is a good approximation for Tracker tracks.
698 inline double TrackBase::dsz(const Point &myBeamSpot) const
699 {
700  return (vz() - myBeamSpot.z()) * pt() / p() - ((vx() - myBeamSpot.x()) * px() + (vy() - myBeamSpot.y()) * py()) / pt() * pz() / p();
701 }
702 
703 // dz parameter with respect to a user-given beamSpot
704 // (WARNING: this quantity can only be interpreted as the track z0, if the beamSpot is reasonably close to the refPoint, since linear approximations are involved).
705 // This is a good approximation for Tracker tracks.
706 inline double TrackBase::dz(const Point &myBeamSpot) const
707 {
708  return (vz() - myBeamSpot.z()) - ((vx() - myBeamSpot.x()) * px() + (vy() - myBeamSpot.y()) * py()) / pt() * pz() / pt();
709 }
710 
711 // Track parameters with one-to-one correspondence to the covariance matrix
713 {
714  return TrackBase::ParameterVector(qoverp(), lambda(), phi(), dxy(), dsz());
715 }
716 
717 // return track covariance matrix
719 {
721  fill(m);
722  return m;
723 }
724 
725 // i-th parameter ( i = 0, ... 4 )
726 inline double TrackBase::parameter(int i) const
727 {
728  return parameters()[i];
729 }
730 
731 // (i,j)-th element of covariance matrix (i, j = 0, ... 4)
732 inline double TrackBase::covariance(int i, int j) const
733 {
734  return covariance_[covIndex(i, j)];
735 }
736 
737 // error on specified element
738 inline double TrackBase::error(int i) const
739 {
740  return sqrt(covariance_[covIndex(i, i)]);
741 }
742 
743 // error on signed transverse curvature
744 inline double TrackBase::qoverpError() const
745 {
746  return error(i_qoverp);
747 }
748 
749 // error on Pt (set to 1000 TeV if charge==0 for safety)
750 inline double TrackBase::ptError() const
751 {
752  return (charge() != 0) ? sqrt(
753  pt() * pt() * p() * p() / charge() / charge() * covariance(i_qoverp, i_qoverp)
754  + 2 * pt() * p() / charge() * pz() * covariance(i_qoverp, i_lambda)
755  + pz() * pz() * covariance(i_lambda, i_lambda)) : 1.e6;
756 }
757 
758 // error on theta
759 inline double TrackBase::thetaError() const
760 {
761  return error(i_lambda);
762 }
763 
764 // error on lambda
765 inline double TrackBase::lambdaError() const
766 {
767  return error(i_lambda);
768 }
769 
770 // error on eta
771 inline double TrackBase::etaError() const
772 {
773  return error(i_lambda) * p() / pt();
774 }
775 
776 // error on phi
777 inline double TrackBase::phiError() const
778 {
779  return error(i_phi);
780 }
781 
782 // error on dxy
783 inline double TrackBase::dxyError() const
784 {
785  return error(i_dxy);
786 }
787 
788 // error on d0
789 inline double TrackBase::d0Error() const
790 {
791  return error(i_dxy);
792 }
793 
794 // error on dsz
795 inline double TrackBase::dszError() const
796 {
797  return error(i_dsz);
798 }
799 
800 // error on dz
801 inline double TrackBase::dzError() const
802 {
803  return error(i_dsz) * p() / pt();
804 }
805 
806 // number of valid hits found
807 inline unsigned short TrackBase::numberOfValidHits() const
808 {
810 }
811 
812 // number of cases where track crossed a layer without getting a hit.
813 inline unsigned short TrackBase::numberOfLostHits() const
814 {
816 }
817 
818 // fraction of valid hits on the track
819 inline double TrackBase::validFraction() const
820 {
825 
826  if ((valid + lost + lostIn + lostOut) == 0) {
827  return -1;
828  }
829 
830  return valid / (double)(valid + lost + lostIn + lostOut);
831 }
832 
833 //Track algorithm
835 {
836  algorithm_ = a;
837  algoMask_.reset();
839 }
840 
842 {
844  algoMask_.set(a);
845 }
846 
847 
848 
849 inline int TrackBase::qualityMask() const
850 {
851  return quality_;
852 }
853 
854 inline void TrackBase::setQualityMask(int qualMask)
855 {
856  quality_ = qualMask;
857 }
858 
859 inline void TrackBase::setNLoops(signed char value)
860 {
861  nLoops_ = value;
862 }
863 
864 inline bool TrackBase::isLooper() const
865 {
866  return (nLoops_ > 0);
867 }
868 
869 inline signed char TrackBase::nLoops() const
870 {
871  return nLoops_;
872 }
873 
874 } // namespace reco
875 
876 #endif
877 
double qoverp() const
q / p
Definition: TrackBase.h:560
bool appendMuonHitPattern(const DetId &id, TrackingRecHit::Type hitType)
Definition: TrackBase.h:456
double p() const
momentum vector magnitude
Definition: TrackBase.h:602
float chi2_
chi-squared
Definition: TrackBase.h:405
void setQualityMask(int qualMask)
Definition: TrackBase.h:854
const Point & referencePoint() const
Reference point on the track.
Definition: TrackBase.h:668
int i
Definition: DBlmapReader.cc:9
double d0Error() const
error on d0
Definition: TrackBase.h:789
void setQuality(const TrackQuality)
Definition: TrackBase.h:510
static std::string qualityName(TrackQuality)
Definition: TrackBase.h:519
unsigned int index
index type
Definition: TrackBase.h:95
bool isLooper() const
Definition: TrackBase.h:864
bool appendHits(const I &begin, const I &end, const TrackerTopology &ttopo)
Definition: HitPattern.h:492
static index covIndex(index i, index j)
covariance matrix index in array
Definition: TrackBase.h:477
uint8_t quality_
track quality
Definition: TrackBase.h:430
double validFraction() const
fraction of valid hits on the track
Definition: TrackBase.h:819
uint8_t originalAlgorithm_
track algorithm
Definition: TrackBase.h:426
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:584
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:548
TrackBase()
default constructor
Definition: TrackBase.cc:69
TrackQuality
track quality
Definition: TrackBase.h:149
double theta() const
polar angle
Definition: TrackBase.h:566
double dxyError() const
error on dxy
Definition: TrackBase.h:783
char charge_
electric charge
Definition: TrackBase.h:420
int numberOfValidHits() const
Definition: HitPattern.h:801
Point vertex_
innermost (reference) point on track
Definition: TrackBase.h:408
double etaError() const
error on eta
Definition: TrackBase.h:771
#define M_PI_2
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:632
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
Definition: TrackBase.h:813
ErrorD< N >::type type
Definition: Error.h:39
math::Vector< dimension >::type ParameterVector
parameter vector
Definition: TrackBase.h:74
double px() const
x coordinate of momentum vector
Definition: TrackBase.h:614
const Vector & momentum() const
track momentum vector
Definition: TrackBase.h:662
double dsz() const
dsz parameter (THIS IS NOT the SZ impact parameter to (0,0,0) if refPoint is far from (0...
Definition: TrackBase.h:590
signed char nLoops_
number of loops made during the building of the trajectory of a looper particle
Definition: TrackBase.h:433
TrackAlgorithm
track algorithm
Definition: TrackBase.h:99
int numberOfLostTrackerHits(HitCategory category) const
Definition: HitPattern.h:881
TrackAlgorithm algo() const
Definition: TrackBase.h:484
void setNLoops(signed char value)
Definition: TrackBase.h:859
void setOriginalAlgorithm(const TrackAlgorithm a)
Definition: TrackBase.h:841
const Point & vertex() const
reference point on the track. This method is DEPRECATED, please use referencePoint() instead ...
Definition: TrackBase.h:674
double dszError() const
error on dsz
Definition: TrackBase.h:795
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:638
static const std::string qualityNames[]
Definition: TrackBase.h:162
fixed size vector
Definition: Vector.h:31
bool appendTrackerHitPattern(uint16_t subdet, uint16_t layer, uint16_t stereo, TrackingRecHit::Type hitType)
Definition: TrackBase.h:452
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:536
std::bitset< algoSize > algoMask_
algo mask, bit set for the algo where it was reconstructed + each algo a track was found overlapping ...
Definition: TrackBase.h:414
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:542
CovarianceMatrix covariance() const
return track covariance matrix
Definition: TrackBase.h:718
T sqrt(T t)
Definition: SSEVec.h:48
double pt() const
track transverse momentum
Definition: TrackBase.h:608
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
Definition: TrackBase.h:750
double phiError() const
error on phi
Definition: TrackBase.h:777
int qualityMask() const
Definition: TrackBase.h:849
int j
Definition: DBlmapReader.cc:9
bool appendHit(const TrackingRecHit &hit, const TrackerTopology &ttopo)
Definition: HitPattern.cc:178
double lambda() const
Lambda angle.
Definition: TrackBase.h:572
const std::complex< double > I
Definition: I.h:8
double error(int i) const
error on specified element
Definition: TrackBase.h:738
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:807
void resetHitPattern()
Sets HitPattern as empty.
Definition: TrackBase.h:460
#define end
Definition: vmac.h:37
math::XYZPoint Point
point in the space
Definition: TrackBase.h:83
void setAlgoMask(AlgoMask a)
Definition: TrackBase.h:359
bool appendTrackerHit(uint16_t subdet, uint16_t layer, uint16_t stereo, TrackingRecHit::Type hitType)
Definition: HitPattern.cc:254
double pz() const
z coordinate of momentum vector
Definition: TrackBase.h:626
double parameter(int i) const
i-th parameter ( i = 0, ... 4 )
Definition: TrackBase.h:726
double qoverpError() const
error on signed transverse curvature
Definition: TrackBase.h:744
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...
Definition: TrackBase.h:596
double dzError() const
error on dz
Definition: TrackBase.h:801
bool isAlgoInMask(TrackAlgorithm a) const
Definition: TrackBase.h:365
double vz() const
z coordinate of the reference point on track
Definition: TrackBase.h:656
Definition: DetId.h:18
TrackAlgorithm originalAlgo() const
Definition: TrackBase.h:488
std::bitset< algoSize > AlgoMask
algo mask
Definition: TrackBase.h:143
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:123
AlgoMask algoMask() const
Definition: TrackBase.h:361
virtual ~TrackBase()
virtual destructor
Definition: TrackBase.cc:113
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:437
signed char nLoops() const
Definition: TrackBase.h:869
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::string algoName() const
Definition: TrackBase.h:495
This class analyses the reconstruction quality for a given track.
Definition: TrackQuality.h:28
double b
Definition: hdecay.h:120
float ndof_
number of degrees of freedom
Definition: TrackBase.h:417
bool appendHitPattern(const TrackingRecHit &hit, const TrackerTopology &ttopo)
append a single hit to the HitPattern
Definition: TrackBase.h:447
static const std::string algoNames[]
Definition: TrackBase.h:146
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:497
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:876
int numberOfValidTrackerHits() const
Definition: HitPattern.h:806
void setAlgorithm(const TrackAlgorithm a)
Track algorithm.
Definition: TrackBase.h:834
ParameterVector parameters() const
Track parameters with one-to-one correspondence to the covariance matrix.
Definition: TrackBase.h:712
double lambdaError() const
error on lambda
Definition: TrackBase.h:765
double vy() const
y coordinate of the reference point on track
Definition: TrackBase.h:650
float covariance_[covarianceSize]
perigee 5x5 covariance matrix
Definition: TrackBase.h:402
#define begin
Definition: vmac.h:30
HitPattern hitPattern_
hit pattern
Definition: TrackBase.h:399
double a
Definition: hdecay.h:121
CovarianceMatrix & fill(CovarianceMatrix &v) const
fill SMatrix
Definition: TrackBase.cc:118
static TrackAlgorithm algoByName(const std::string &name)
Definition: TrackBase.cc:135
Vector momentum_
momentum vector at innermost point
Definition: TrackBase.h:411
int charge() const
track electric charge
Definition: TrackBase.h:554
const Point & position() const
position
Definition: BeamSpot.h:62
unsigned long long algoMaskUL() const
Definition: TrackBase.h:363
uint8_t algorithm_
track algorithm
Definition: TrackBase.h:423
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
Definition: TrackBase.h:578
math::XYZVector Vector
spatial vector
Definition: TrackBase.h:80
bool appendHits(const C &c, const TrackerTopology &ttopo)
append hit patterns from vector of hit references
Definition: TrackBase.h:472
double py() const
y coordinate of momentum vector
Definition: TrackBase.h:620
double vx() const
x coordinate of the reference point on track
Definition: TrackBase.h:644
math::Error< dimension >::type CovarianceMatrix
5 parameter covariance matrix
Definition: TrackBase.h:77
double thetaError() const
error on theta
Definition: TrackBase.h:759
bool appendMuonHit(const DetId &id, TrackingRecHit::Type hitType)
Definition: HitPattern.cc:258