1 |
#ifndef TRootTrack_h
|
2 |
#define TRootTrack_h
|
3 |
|
4 |
#include "../interface/TRootParticle.h"
|
5 |
|
6 |
using namespace std;
|
7 |
|
8 |
class TRootTrack : public TRootParticle
|
9 |
{
|
10 |
|
11 |
public:
|
12 |
|
13 |
TRootTrack() :
|
14 |
TRootParticle()
|
15 |
,pixelLayersWithMeasurement_(-1)
|
16 |
,stripLayersWithMeasurement_(-1)
|
17 |
,chi2_(-1.)
|
18 |
,d0_(-99999.)
|
19 |
,d0Error_(-99999.)
|
20 |
,dz_(-99999.)
|
21 |
,dzError_(-99999.)
|
22 |
{;}
|
23 |
|
24 |
TRootTrack(const TRootTrack& track) :
|
25 |
TRootParticle(track)
|
26 |
,pixelLayersWithMeasurement_(track.pixelLayersWithMeasurement_)
|
27 |
,stripLayersWithMeasurement_(track.stripLayersWithMeasurement_)
|
28 |
,chi2_(track.chi2_)
|
29 |
,d0_(track.d0_)
|
30 |
,d0Error_(track.d0Error_)
|
31 |
,dz_(track.dz_)
|
32 |
,dzError_(track.dzError_)
|
33 |
{;}
|
34 |
|
35 |
TRootTrack(Double_t px, Double_t py, Double_t pz, Double_t e) :
|
36 |
TRootParticle(px,py,pz,e)
|
37 |
,pixelLayersWithMeasurement_(-1)
|
38 |
,stripLayersWithMeasurement_(-1)
|
39 |
,chi2_(-1.)
|
40 |
,d0_(-99999.)
|
41 |
,d0Error_(-99999.)
|
42 |
,dz_(-99999.)
|
43 |
,dzError_(-99999.)
|
44 |
{;}
|
45 |
|
46 |
TRootTrack(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z) :
|
47 |
TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z)
|
48 |
,pixelLayersWithMeasurement_(-1)
|
49 |
,stripLayersWithMeasurement_(-1)
|
50 |
,chi2_(-1.)
|
51 |
,d0_(-99999.)
|
52 |
,d0Error_(-99999.)
|
53 |
,dz_(-99999.)
|
54 |
,dzError_(-99999.)
|
55 |
{;}
|
56 |
|
57 |
TRootTrack(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z, Int_t type, Float_t charge) :
|
58 |
TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z,type,charge)
|
59 |
,pixelLayersWithMeasurement_(-1)
|
60 |
,stripLayersWithMeasurement_(-1)
|
61 |
,chi2_(-1.)
|
62 |
,d0_(-99999.)
|
63 |
,d0Error_(-99999.)
|
64 |
,dz_(-99999.)
|
65 |
,dzError_(-99999.)
|
66 |
{;}
|
67 |
|
68 |
TRootTrack(const TLorentzVector &momentum) :
|
69 |
TRootParticle(momentum)
|
70 |
,pixelLayersWithMeasurement_(-1)
|
71 |
,stripLayersWithMeasurement_(-1)
|
72 |
,chi2_(-1.)
|
73 |
,d0_(-99999.)
|
74 |
,d0Error_(-99999.)
|
75 |
,dz_(-99999.)
|
76 |
,dzError_(-99999.)
|
77 |
{;}
|
78 |
|
79 |
TRootTrack(const TLorentzVector &momentum, const TVector3 &vertex, Int_t type, Float_t charge) :
|
80 |
TRootParticle(momentum, vertex, type, charge)
|
81 |
,pixelLayersWithMeasurement_(-1)
|
82 |
,stripLayersWithMeasurement_(-1)
|
83 |
,chi2_(-1.)
|
84 |
,d0_(-99999.)
|
85 |
,d0Error_(-99999.)
|
86 |
,dz_(-99999.)
|
87 |
,dzError_(-99999.)
|
88 |
{;}
|
89 |
|
90 |
TRootTrack(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z, Int_t type, Float_t charge,
|
91 |
Int_t pixelLayersWithMeasurement, Int_t stripLayersWithMeasurement, Float_t chi2, Float_t d0, Float_t d0Error, Float_t dz, Float_t dzError) :
|
92 |
TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z,type,charge)
|
93 |
,pixelLayersWithMeasurement_(pixelLayersWithMeasurement)
|
94 |
,stripLayersWithMeasurement_(stripLayersWithMeasurement)
|
95 |
,chi2_(chi2)
|
96 |
,d0_(d0)
|
97 |
,d0Error_(d0Error)
|
98 |
,dz_(dz)
|
99 |
,dzError_(dzError)
|
100 |
{;}
|
101 |
|
102 |
~TRootTrack() {;}
|
103 |
|
104 |
Int_t pixelLayersWithMeasurement() const { return pixelLayersWithMeasurement_; }
|
105 |
Int_t stripLayersWithMeasurement() const { return stripLayersWithMeasurement_; }
|
106 |
Float_t chi2() const { return chi2_; }
|
107 |
Float_t d0() const { return d0_; }
|
108 |
Float_t d0Error() const { return d0Error_; }
|
109 |
Float_t dz() const { return dz_; }
|
110 |
Float_t dzError() const { return dzError_; }
|
111 |
virtual TString typeName() const { return "TRootTrack"; }
|
112 |
|
113 |
void setPixelLayersWithMeasurement(Int_t pixelLayersWithMeasurement) { pixelLayersWithMeasurement_ = pixelLayersWithMeasurement; }
|
114 |
void setStripLayersWithMeasurement(Int_t stripLayersWithMeasurement) { stripLayersWithMeasurement_ = stripLayersWithMeasurement; }
|
115 |
void setChi2(Float_t chi2) { chi2_ = chi2; }
|
116 |
void setD0(Float_t d0) { d0_ = d0; }
|
117 |
void setD0Error(Float_t d0Error) { d0Error_ = d0Error; }
|
118 |
void setDz(Float_t dz) { dz_ = dz; }
|
119 |
void setDzError(Float_t dzError) { dzError_ = dzError; }
|
120 |
|
121 |
friend std::ostream& operator<< (std::ostream& stream, const TRootTrack& track) {
|
122 |
stream << "TRootTrack - Charge=" << setw(2) << track.charge() << " (Et,eta,phi)=("<< setw(10) << track.Et() <<","<< setw(10) << track.Eta() <<","<< setw(10) << track.Phi() << ")"
|
123 |
<< " vertex(x,y,z)=("<< setw(12) << track.vx() <<","<< setw(12) << track.vy() <<","<< setw(12) << track.vz() << ")"
|
124 |
<< " chi2="<< setw(8) << track.chi2() <<" nPixelLayers="<< setw(2) << track.pixelLayersWithMeasurement() <<" nStripLayers="<< setw(3) << track.stripLayersWithMeasurement()
|
125 |
<< " d0="<< setw(12) << track.d0() <<" +- "<< setw(12) << track.d0Error() <<" dz="<< setw(10) << track.dz() << " +- " << setw(10) << track.dzError();
|
126 |
return stream;
|
127 |
};
|
128 |
|
129 |
|
130 |
private:
|
131 |
|
132 |
Int_t pixelLayersWithMeasurement_; // Number of pixel layers with at least one valid hit
|
133 |
Int_t stripLayersWithMeasurement_; // Number of strip layers with at least one valid hit
|
134 |
Float_t chi2_;
|
135 |
Float_t d0_;
|
136 |
Float_t d0Error_;
|
137 |
Float_t dz_;
|
138 |
Float_t dzError_;
|
139 |
|
140 |
ClassDef (TRootTrack,2);
|
141 |
|
142 |
};
|
143 |
|
144 |
#endif
|