ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootMuon.h
Revision: 1.9
Committed: Tue Apr 14 16:50:16 2009 UTC (16 years ago) by lethuill
Content type: text/plain
Branch: MAIN
CVS Tags: RecoPhoton_2_2_7_01, pat_2_2_5_03
Changes since 1.8: +20 -20 lines
Log Message:
Replace number of valid pixel and tracker hits with number of pixel and strip layers with measurements

File Contents

# Content
1 #ifndef TRootMuon_h
2 #define TRootMuon_h
3
4 #include "../interface/TRootParticle.h"
5
6 using namespace std;
7
8 class TRootMuon : public TRootParticle
9 {
10
11 public:
12
13 TRootMuon() :
14 TRootParticle()
15 ,et_em_(-9999.)
16 ,et_emS9_(-9999.)
17 ,et_had_(-9999.)
18 ,et_hadS9_(-9999.)
19 ,et_ho_(-9999.)
20 ,et_hoS9_(-9999.)
21 ,caloCompatibility_(-9999.)
22 ,isoR03_emEt_(-9999.)
23 ,isoR03_hadEt_(-9999.)
24 ,isoR03_hoEt_(-9999.)
25 ,isoR03_sumPt_(-9999.)
26 ,isoR03_nTracks_(-9999)
27 ,isoR03_nJets_(-9999)
28 ,isoR05_emEt_(-9999.)
29 ,isoR05_hadEt_(-9999.)
30 ,isoR05_hoEt_(-9999.)
31 ,isoR05_sumPt_(-9999.)
32 ,isoR05_nTracks_(-9999)
33 ,isoR05_nJets_(-9999)
34 ,energyValid_(false)
35 ,matchesValid_(false)
36 ,isolationValid_(false)
37 ,direction_(-9999)
38 ,algo_(-9999)
39 ,id_(-9999)
40 ,pixelLayersWithMeasurement_(-1)
41 ,stripLayersWithMeasurement_(-1)
42 ,d0_(-9999.)
43 ,d0Error_(-9999.)
44 ,dsz_(-9999.)
45 ,dszError_(-9999.)
46 ,normalizedChi2_(-9999.)
47 ,ptError_(-9999.)
48 ,etaError_(-9999.)
49 ,phiError_(-9999.)
50 {;}
51
52 TRootMuon(const TRootMuon& muon) :
53 TRootParticle(muon)
54 ,et_em_(muon.et_em_)
55 ,et_emS9_(muon.et_emS9_)
56 ,et_had_(muon.et_had_)
57 ,et_hadS9_(muon.et_hadS9_)
58 ,et_ho_(muon.et_ho_)
59 ,et_hoS9_(muon.et_hoS9_)
60 ,caloCompatibility_(muon.caloCompatibility_)
61 ,isoR03_emEt_(muon.isoR03_emEt_)
62 ,isoR03_hadEt_(muon.isoR03_hadEt_)
63 ,isoR03_hoEt_(muon.isoR03_hoEt_)
64 ,isoR03_sumPt_(muon.isoR03_sumPt_)
65 ,isoR03_nTracks_(muon.isoR03_nTracks_)
66 ,isoR03_nJets_(muon.isoR03_nJets_)
67 ,isoR05_emEt_(muon.isoR05_emEt_)
68 ,isoR05_hadEt_(muon.isoR05_hadEt_)
69 ,isoR05_hoEt_(muon.isoR05_hoEt_)
70 ,isoR05_sumPt_(muon.isoR05_sumPt_)
71 ,isoR05_nTracks_(muon.isoR05_nTracks_)
72 ,isoR05_nJets_(muon.isoR05_nJets_)
73 ,energyValid_(muon.energyValid_)
74 ,matchesValid_(muon.matchesValid_)
75 ,isolationValid_(muon.isolationValid_)
76 ,direction_(muon.direction_)
77 ,algo_(muon.algo_)
78 ,id_(muon.id_)
79 ,pixelLayersWithMeasurement_(muon.pixelLayersWithMeasurement_)
80 ,stripLayersWithMeasurement_(muon.stripLayersWithMeasurement_)
81 ,d0_(muon.d0_)
82 ,d0Error_(muon.d0Error_)
83 ,dsz_(muon.dsz_)
84 ,dszError_(muon.dszError_)
85 ,normalizedChi2_(muon.normalizedChi2_)
86 ,ptError_(muon.ptError_)
87 ,etaError_(muon.etaError_)
88 ,phiError_(muon.phiError_)
89 {;}
90
91 TRootMuon(Double_t px, Double_t py, Double_t pz, Double_t e) :
92 TRootParticle(px,py,pz,e)
93 ,et_em_(-9999.)
94 ,et_emS9_(-9999.)
95 ,et_had_(-9999.)
96 ,et_hadS9_(-9999.)
97 ,et_ho_(-9999.)
98 ,et_hoS9_(-9999.)
99 ,caloCompatibility_(-9999.)
100 ,isoR03_emEt_(-9999.)
101 ,isoR03_hadEt_(-9999.)
102 ,isoR03_hoEt_(-9999.)
103 ,isoR03_sumPt_(-9999.)
104 ,isoR03_nTracks_(-9999)
105 ,isoR03_nJets_(-9999)
106 ,isoR05_emEt_(-9999.)
107 ,isoR05_hadEt_(-9999.)
108 ,isoR05_hoEt_(-9999.)
109 ,isoR05_sumPt_(-9999.)
110 ,isoR05_nTracks_(-9999)
111 ,isoR05_nJets_(-9999)
112 ,energyValid_(false)
113 ,matchesValid_(false)
114 ,isolationValid_(false)
115 ,direction_(-9999)
116 ,algo_(-9999)
117 ,id_(-9999)
118 ,pixelLayersWithMeasurement_(-1)
119 ,stripLayersWithMeasurement_(-1)
120 ,d0_(-9999.)
121 ,d0Error_(-9999.)
122 ,dsz_(-9999.)
123 ,dszError_(-9999.)
124 ,normalizedChi2_(-9999.)
125 ,ptError_(-9999.)
126 ,etaError_(-9999.)
127 ,phiError_(-9999.)
128 {;}
129
130 TRootMuon(Double_t px, Double_t py, Double_t pz, Double_t e, Double_t vtx_x, Double_t vtx_y, Double_t vtx_z) :
131 TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z)
132 ,et_em_(-9999.)
133 ,et_emS9_(-9999.)
134 ,et_had_(-9999.)
135 ,et_hadS9_(-9999.)
136 ,et_ho_(-9999.)
137 ,et_hoS9_(-9999.)
138 ,caloCompatibility_(-9999.)
139 ,isoR03_emEt_(-9999.)
140 ,isoR03_hadEt_(-9999.)
141 ,isoR03_hoEt_(-9999.)
142 ,isoR03_sumPt_(-9999.)
143 ,isoR03_nTracks_(-9999)
144 ,isoR03_nJets_(-9999)
145 ,isoR05_emEt_(-9999.)
146 ,isoR05_hadEt_(-9999.)
147 ,isoR05_hoEt_(-9999.)
148 ,isoR05_sumPt_(-9999.)
149 ,isoR05_nTracks_(-9999)
150 ,isoR05_nJets_(-9999)
151 ,energyValid_(false)
152 ,matchesValid_(false)
153 ,isolationValid_(false)
154 ,direction_(-9999)
155 ,algo_(-9999)
156 ,id_(-9999)
157 ,pixelLayersWithMeasurement_(-1)
158 ,stripLayersWithMeasurement_(-1)
159 ,d0_(-9999.)
160 ,d0Error_(-9999.)
161 ,dsz_(-9999.)
162 ,dszError_(-9999.)
163 ,normalizedChi2_(-9999.)
164 ,ptError_(-9999.)
165 ,etaError_(-9999.)
166 ,phiError_(-9999.)
167 {;}
168
169 TRootMuon(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) :
170 TRootParticle(px,py,pz,e,vtx_x,vtx_y,vtx_z,type,charge)
171 ,et_em_(-9999.)
172 ,et_emS9_(-9999.)
173 ,et_had_(-9999.)
174 ,et_hadS9_(-9999.)
175 ,et_ho_(-9999.)
176 ,et_hoS9_(-9999.)
177 ,caloCompatibility_(-9999.)
178 ,isoR03_emEt_(-9999.)
179 ,isoR03_hadEt_(-9999.)
180 ,isoR03_hoEt_(-9999.)
181 ,isoR03_sumPt_(-9999.)
182 ,isoR03_nTracks_(-9999)
183 ,isoR03_nJets_(-9999)
184 ,isoR05_emEt_(-9999.)
185 ,isoR05_hadEt_(-9999.)
186 ,isoR05_hoEt_(-9999.)
187 ,isoR05_sumPt_(-9999.)
188 ,isoR05_nTracks_(-9999)
189 ,isoR05_nJets_(-9999)
190 ,energyValid_(false)
191 ,matchesValid_(false)
192 ,isolationValid_(false)
193 ,direction_(-9999)
194 ,algo_(-9999)
195 ,id_(-9999)
196 ,pixelLayersWithMeasurement_(-1)
197 ,stripLayersWithMeasurement_(-1)
198 ,d0_(-9999.)
199 ,d0Error_(-9999.)
200 ,dsz_(-9999.)
201 ,dszError_(-9999.)
202 ,normalizedChi2_(-9999.)
203 ,ptError_(-9999.)
204 ,etaError_(-9999.)
205 ,phiError_(-9999.)
206 {;}
207
208 TRootMuon(const TLorentzVector &momentum) :
209 TRootParticle(momentum)
210 ,et_em_(-9999.)
211 ,et_emS9_(-9999.)
212 ,et_had_(-9999.)
213 ,et_hadS9_(-9999.)
214 ,et_ho_(-9999.)
215 ,et_hoS9_(-9999.)
216 ,caloCompatibility_(-9999.)
217 ,isoR03_emEt_(-9999.)
218 ,isoR03_hadEt_(-9999.)
219 ,isoR03_hoEt_(-9999.)
220 ,isoR03_sumPt_(-9999.)
221 ,isoR03_nTracks_(-9999)
222 ,isoR03_nJets_(-9999)
223 ,isoR05_emEt_(-9999.)
224 ,isoR05_hadEt_(-9999.)
225 ,isoR05_hoEt_(-9999.)
226 ,isoR05_sumPt_(-9999.)
227 ,isoR05_nTracks_(-9999)
228 ,isoR05_nJets_(-9999)
229 ,energyValid_(false)
230 ,matchesValid_(false)
231 ,isolationValid_(false)
232 ,direction_(-9999)
233 ,algo_(-9999)
234 ,id_(-9999)
235 ,pixelLayersWithMeasurement_(-1)
236 ,stripLayersWithMeasurement_(-1)
237 ,d0_(-9999.)
238 ,d0Error_(-9999.)
239 ,dsz_(-9999.)
240 ,dszError_(-9999.)
241 ,normalizedChi2_(-9999.)
242 ,ptError_(-9999.)
243 ,etaError_(-9999.)
244 ,phiError_(-9999.)
245 {;}
246
247 TRootMuon(const TLorentzVector &momentum, const TVector3 &vertex, Int_t type, Float_t charge) :
248 TRootParticle(momentum, vertex, type, charge)
249 ,et_em_(-9999.)
250 ,et_emS9_(-9999.)
251 ,et_had_(-9999.)
252 ,et_hadS9_(-9999.)
253 ,et_ho_(-9999.)
254 ,et_hoS9_(-9999.)
255 ,caloCompatibility_(-9999.)
256 ,isoR03_emEt_(-9999.)
257 ,isoR03_hadEt_(-9999.)
258 ,isoR03_hoEt_(-9999.)
259 ,isoR03_sumPt_(-9999.)
260 ,isoR03_nTracks_(-9999)
261 ,isoR03_nJets_(-9999)
262 ,isoR05_emEt_(-9999.)
263 ,isoR05_hadEt_(-9999.)
264 ,isoR05_hoEt_(-9999.)
265 ,isoR05_sumPt_(-9999.)
266 ,isoR05_nTracks_(-9999)
267 ,isoR05_nJets_(-9999)
268 ,energyValid_(false)
269 ,matchesValid_(false)
270 ,isolationValid_(false)
271 ,direction_(-9999)
272 ,algo_(-9999)
273 ,id_(-9999)
274 ,pixelLayersWithMeasurement_(-1)
275 ,stripLayersWithMeasurement_(-1)
276 ,d0_(-9999.)
277 ,d0Error_(-9999.)
278 ,dsz_(-9999.)
279 ,dszError_(-9999.)
280 ,normalizedChi2_(-9999.)
281 ,ptError_(-9999.)
282 ,etaError_(-9999.)
283 ,phiError_(-9999.)
284 {;}
285
286 ~TRootMuon() {;}
287
288
289 Float_t et_em() const { return et_em_;}
290 Float_t et_emS9() const { return et_emS9_;}
291 Float_t et_had() const { return et_had_;}
292 Float_t et_hadS9() const { return et_hadS9_;}
293 Float_t et_ho() const { return et_ho_;}
294 Float_t et_hoS9() const { return et_hoS9_;}
295 Float_t caloCompatibility() const { return caloCompatibility_;}
296
297 Float_t isoR03_emEt() const { return isoR03_emEt_;}
298 Float_t isoR03_hadEt() const { return isoR03_hadEt_;}
299 Float_t isoR03_hoEt() const { return isoR03_hoEt_;}
300 Float_t isoR03_sumPt() const { return isoR03_sumPt_;}
301 Int_t isoR03_nTracks() const { return isoR03_nTracks_;}
302 Int_t isoR03_nJets() const { return isoR03_nJets_;}
303
304 Float_t isoR05_emEt() const { return isoR05_emEt_;}
305 Float_t isoR05_hadEt() const { return isoR05_hadEt_;}
306 Float_t isoR05_hoEt() const { return isoR05_hoEt_;}
307 Float_t isoR05_sumPt() const { return isoR05_sumPt_;}
308 Int_t isoR05_nTracks() const { return isoR05_nTracks_;}
309 Int_t isoR05_nJets() const { return isoR05_nJets_;}
310
311 Bool_t energyValid() const { return energyValid_;}
312 Bool_t matchesValid() const { return matchesValid_;}
313 Bool_t isolationValid() const { return isolationValid_;}
314
315 Int_t direction() const { return direction_;}
316 Int_t algo() const { return algo_;}
317
318 Bool_t isGlobalMuon() const { return algo_ & 2; }
319 Bool_t isTrackerMuon() const { return algo_ & 4; }
320 Bool_t isStandAloneMuon() const { return algo_ & 8; }
321 Bool_t isCaloMuon() const { return algo_ & 16; }
322
323 Int_t id() const { return id_;}
324 Bool_t idTrackerMuonArbitrated() const { return id_ & 1; }
325 Bool_t idAllArbitrated() const { return id_ & 2; }
326 Bool_t idGlobalMuonPromptTight() const { return id_ & 4; }
327 Bool_t idTMLastStationLoose() const { return id_ & 8; }
328 Bool_t idTMLastStationTight() const { return id_ & 16; }
329 Bool_t idTM2DCompatibilityLoose() const { return id_ & 32; }
330 Bool_t idTM2DCompatibilityTight() const { return id_ & 64; }
331
332 Int_t pixelLayersWithMeasurement() const { return pixelLayersWithMeasurement_; }
333 Int_t stripLayersWithMeasurement() const { return stripLayersWithMeasurement_; }
334 Float_t d0() const { return d0_ ;}
335 Float_t d0Error() const { return d0Error_ ;}
336 Float_t dsz() const { return dsz_ ;}
337 Float_t dszError() const { return dszError_ ;}
338 Float_t normalizedChi2() const { return normalizedChi2_ ;}
339 Float_t ptError() const { return ptError_ ;}
340 Float_t etaError() const { return etaError_ ;}
341 Float_t phiError() const { return phiError_ ;}
342
343
344 //TObject* genMuon() const { return genMuon_.GetObject() ;}
345 virtual TString typeName() const { return "TRootMuon"; }
346
347
348 void setCaloEnergy(Float_t et_em, Float_t et_emS9, Float_t et_had, Float_t et_hadS9, Float_t et_ho, Float_t et_hoS9, Float_t caloCompatibility)
349 {
350 et_em_ = et_em;
351 et_emS9_ = et_emS9;
352 et_had_ = et_had;
353 et_hadS9_ = et_hadS9;
354 et_ho_ = et_ho;
355 et_hoS9_ = et_hoS9;
356 caloCompatibility_ = caloCompatibility;
357 }
358
359 void setIsoR03(Float_t isoR03_emEt, Float_t isoR03_hadEt, Float_t isoR03_hoEt, Float_t isoR03_sumPt, Int_t isoR03_nTracks, Int_t isoR03_nJets)
360 {
361 isoR03_emEt_ = isoR03_emEt;
362 isoR03_hadEt_ = isoR03_hadEt;
363 isoR03_hoEt_ = isoR03_hoEt;
364 isoR03_sumPt_ = isoR03_sumPt;
365 isoR03_nTracks_ = isoR03_nTracks;
366 isoR03_nJets_ = isoR03_nJets;
367 }
368
369 void setIsoR05(Float_t isoR05_emEt, Float_t isoR05_hadEt, Float_t isoR05_hoEt, Float_t isoR05_sumPt, Int_t isoR05_nTracks, Int_t isoR05_nJets)
370 {
371 isoR05_emEt_ = isoR05_emEt;
372 isoR05_hadEt_ = isoR05_hadEt;
373 isoR05_hoEt_ = isoR05_hoEt;
374 isoR05_sumPt_ = isoR05_sumPt;
375 isoR05_nTracks_ = isoR05_nTracks;
376 isoR05_nJets_ = isoR05_nJets;
377 }
378
379 void setValidity(Bool_t energyValid, Bool_t matchesValid, Bool_t isolationValid)
380 {
381 energyValid_ = energyValid;
382 matchesValid_ = matchesValid;
383 isolationValid_ = isolationValid;
384 }
385
386 void setDirection(Int_t direction) { direction_ = direction; }
387 void setAlgo(Int_t algo) { algo_ = algo; }
388 void setID(Int_t id) { id_ = id; }
389 void setID(
390 Int_t trackerMuonArbitrated
391 ,Int_t allArbitrated
392 ,Int_t globalMuonPromptTight
393 ,Int_t tmLastStationLoose
394 ,Int_t tmLastStationTight
395 ,Int_t tm2DCompatibilityLoose
396 ,Int_t tm2DCompatibilityTight
397 )
398 { id_ = trackerMuonArbitrated*1 + allArbitrated*2 + globalMuonPromptTight*4 + tmLastStationLoose*8 + tmLastStationTight*16 + tm2DCompatibilityLoose*32 + tm2DCompatibilityTight*64; }
399
400 void setPixelLayersWithMeasurement(Int_t pixelLayersWithMeasurement) { pixelLayersWithMeasurement_ = pixelLayersWithMeasurement; }
401 void setStripLayersWithMeasurement(Int_t stripLayersWithMeasurement) { stripLayersWithMeasurement_ = stripLayersWithMeasurement; }
402 void setD0(Float_t d0) { d0_ = d0; }
403 void setD0Error(Float_t d0Error) { d0Error_ = d0Error; }
404 void setDsz(Float_t dsz) { dsz_ = dsz; }
405 void setDszError(Float_t dszError) { dszError_ = dszError; }
406 void setNormalizedChi2(Float_t normalizedChi2) { normalizedChi2_ = normalizedChi2; }
407 void setPtError(Float_t ptError) { ptError_ = ptError; }
408 void setEtaError(Float_t etaError) { etaError_ = etaError; }
409 void setPhiError(Float_t phiError) { phiError_ = phiError; }
410
411
412 friend std::ostream& operator<< (std::ostream& stream, const TRootMuon& muon) {
413 stream << "TRootMuon - Charge=" << muon.charge() << " (Et,eta,phi)=("<< muon.Et() <<","<< muon.Eta() <<","<< muon.Phi() << ") vertex(x,y,z)=("<< muon.vx() <<","<< muon.vy() <<","<< muon.vz() << ")" << endl
414 << " Type(G,T,S,C)=(" << muon.isGlobalMuon() << "," << muon.isTrackerMuon() << "," << muon.isStandAloneMuon() << "," << muon.isCaloMuon() << ") "
415 << " ID=(" << muon.idTrackerMuonArbitrated() << "," << muon.idAllArbitrated() << "," << muon.idGlobalMuonPromptTight() << "," << muon.idTMLastStationLoose()
416 << "," << muon.idTMLastStationTight() << "," << muon.idTM2DCompatibilityLoose() << "," << muon.idTM2DCompatibilityTight() << ")" << " Direction=" << muon.direction_
417 << " caloCompatibility="<< muon.caloCompatibility_ << " validity(energy,matches,isolation)=(" << muon.energyValid_ <<","<< muon.matchesValid_ <<","<< muon.isolationValid_ << ")" << endl
418 << " Et_em=" << muon.et_em_ << " Et_emS9=" << muon.et_emS9_ << " Et_had=" << muon.et_had_ << " Et_hadS9=" << muon.et_hadS9_ << " Et_ho=" << muon.et_ho_ << " Et_hoS9=" << muon.et_hoS9_ << endl
419 << " isolation cone 0.3: Et_em=" << muon.isoR03_emEt_ << " Et_had=" << muon.isoR03_hadEt_ <<" Et_ho=" << muon.isoR03_hoEt_ << " nTracks=" << muon.isoR03_nTracks_ <<" nJets=" << muon.isoR03_nJets_ << endl
420 << " isolation cone 0.5: Et_em=" << muon.isoR05_emEt_ << " Et_had=" << muon.isoR05_hadEt_ <<" Et_ho=" << muon.isoR05_hoEt_ << " nTracks=" << muon.isoR05_nTracks_ <<" nJets=" << muon.isoR05_nJets_;
421 return stream;
422 };
423
424
425 private:
426
427 // Variables from reco::Muon
428 Float_t et_em_;
429 Float_t et_emS9_;
430 Float_t et_had_;
431 Float_t et_hadS9_;
432 Float_t et_ho_;
433 Float_t et_hoS9_;
434 Float_t caloCompatibility_;
435
436 Float_t isoR03_emEt_;
437 Float_t isoR03_hadEt_;
438 Float_t isoR03_hoEt_;
439 Float_t isoR03_sumPt_;
440 Int_t isoR03_nTracks_;
441 Int_t isoR03_nJets_;
442
443 Float_t isoR05_emEt_;
444 Float_t isoR05_hadEt_;
445 Float_t isoR05_hoEt_;
446 Float_t isoR05_sumPt_;
447 Int_t isoR05_nTracks_;
448 Int_t isoR05_nJets_;
449
450 Bool_t energyValid_;
451 Bool_t matchesValid_;
452 Bool_t isolationValid_;
453
454 Int_t direction_; // OutsideIn = -1, Undefined = 0, InsideOut = 1
455 Int_t algo_; // binary => GlobalMuon=00010 , TrackerMuon=00100 , StandAloneMuon=01000 , CaloMuon=10000
456 // MuonId coded in binary word id_ ==> TrackerMuonArbitrated=0000001 , AllArbitrated=0000010 , GlobalMuonPromptTight=0000100 ,
457 // TMLastStationLoose=0001000 , TMLastStationTight=0010000 , TM2DCompatibilityLoose=0100000 , TM2DCompatibilityTight=1000000
458 Int_t id_;
459
460
461 // Variables from reco::GsfTrack
462
463 /* cf: http://cmslxr.fnal.gov/lxr/source/DataFormats/TrackReco/interface/TrackBase.h
464 For tracks reconstructed in the CMS Tracker, the reference position is the point of closest approach to the centre
465 of CMS. For muons, this is not necessarily true. Parameters associated to the 5D curvilinear covariance matrix:
466 qoverp = q / abs(p) = signed inverse of momentum [1/GeV]
467 lambda = pi/2 - polar angle at the given point
468 phi = azimuth angle at the given point
469 dxy = -vx*sin(phi) + vy*cos(phi) [cm]
470 dsz = vz*cos(lambda) - (vx*cos(phi)+vy*sin(phi))*sin(lambda) [cm]
471
472 Geometrically, dxy is the signed distance in the XY plane between the straight line passing through (vx,vy) with
473 azimuthal angle phi and the point (0,0). The dsz parameter is the signed distance in the SZ plane between the straight
474 line passing through (vx,vy,vz) with angles (phi, lambda) and the point (s=0,z=0). The S axis is defined by the projection
475 of the straight line onto the XY plane. The convention is to assign the S coordinate for (vx,vy) as the value
476 vx*cos(phi)+vy*sin(phi). This value is zero when (vx,vy) is the point of minimum transverse distance to (0,0).
477
478 Note that dxy and dsz provide sensible estimates of the distance from the true particle trajectory to (0,0,0) ONLY
479 in two cases:
480 - When (vx,vy,vz) already correspond to the point of minimum transverse distance to (0,0,0) or is close to it
481 (so that the differences between considering the exact trajectory or a straight line in this range are negligible).
482 This is usually true for Tracker tracks.
483 - When the track has infinite or extremely high momentum */
484
485 Int_t pixelLayersWithMeasurement_; // Number of pixel layers with at least one valid hit
486 Int_t stripLayersWithMeasurement_; // Number of strip layers with at least one valid hit
487
488 Float_t d0_; // d0=-dxy
489 Float_t d0Error_; // error on d0_
490 Float_t dsz_; // dsz parameter
491 Float_t dszError_; // error on dsz_
492 Float_t normalizedChi2_; // chi-squared divided by n.d.o.f. of track fit
493
494 Float_t ptError_; // needed ? ptError()
495 Float_t etaError_; // needed ? etaError()
496 Float_t phiError_; // needed ? phiError()
497
498
499 ClassDef (TRootMuon,2);
500 };
501
502 #endif
503
504