ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootMuon.h
Revision: 1.8
Committed: Thu Apr 9 16:55:08 2009 UTC (16 years ago) by lethuill
Content type: text/plain
Branch: MAIN
Changes since 1.7: +133 -1 lines
Log Message:
add infos on associated inner track (impact parameter, hits multiplicity)

File Contents

# User Rev Content
1 mlethuil 1.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 lethuill 1.6
11 mlethuil 1.1 public:
12 lethuill 1.6
13 lethuill 1.2 TRootMuon() :
14 lethuill 1.5 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 lethuill 1.8 ,numberOfValidPixelHits_(-1)
41     ,numberOfValidTrackerHits_(-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 lethuill 1.5 {;}
51 lethuill 1.6
52 lethuill 1.2 TRootMuon(const TRootMuon& muon) :
53 lethuill 1.5 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 lethuill 1.8 ,numberOfValidPixelHits_(muon.numberOfValidPixelHits_)
80     ,numberOfValidTrackerHits_(muon.numberOfValidTrackerHits_)
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 lethuill 1.5 {;}
90 lethuill 1.6
91 lethuill 1.2 TRootMuon(Double_t px, Double_t py, Double_t pz, Double_t e) :
92 lethuill 1.5 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 lethuill 1.8 ,numberOfValidPixelHits_(-1)
119     ,numberOfValidTrackerHits_(-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 lethuill 1.5 {;}
129 lethuill 1.6
130 lethuill 1.2 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 lethuill 1.5 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 lethuill 1.8 ,numberOfValidPixelHits_(-1)
158     ,numberOfValidTrackerHits_(-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 lethuill 1.5 {;}
168 lethuill 1.6
169 lethuill 1.2 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 lethuill 1.5 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 lethuill 1.8 ,numberOfValidPixelHits_(-1)
197     ,numberOfValidTrackerHits_(-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 lethuill 1.5 {;}
207 lethuill 1.6
208 lethuill 1.2 TRootMuon(const TLorentzVector &momentum) :
209 lethuill 1.5 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 lethuill 1.8 ,numberOfValidPixelHits_(-1)
236     ,numberOfValidTrackerHits_(-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 lethuill 1.5 {;}
246 lethuill 1.6
247 lethuill 1.2 TRootMuon(const TLorentzVector &momentum, const TVector3 &vertex, Int_t type, Float_t charge) :
248 lethuill 1.5 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 lethuill 1.8 ,numberOfValidPixelHits_(-1)
275     ,numberOfValidTrackerHits_(-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 lethuill 1.5 {;}
285 lethuill 1.6
286 mlethuil 1.1 ~TRootMuon() {;}
287 lethuill 1.6
288    
289 lethuill 1.2 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 mlethuil 1.1
315 lethuill 1.3 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 lethuill 1.8 Int_t numberOfValidPixelHits() const { return numberOfValidPixelHits_; }
333     Int_t numberOfValidTrackerHits() const { return numberOfValidTrackerHits_; }
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 lethuill 1.5 //TObject* genMuon() const { return genMuon_.GetObject() ;}
345     virtual TString typeName() const { return "TRootMuon"; }
346    
347 lethuill 1.4
348 mlethuil 1.1 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 lethuill 1.3 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 lethuill 1.8 void setNumberOfValidPixelHits(Int_t numberOfValidPixelHits) { numberOfValidPixelHits_ = numberOfValidPixelHits; }
401     void setNumberOfValidTrackerHits(Int_t numberOfValidTrackerHits) { numberOfValidTrackerHits_ = numberOfValidTrackerHits; }
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 lethuill 1.3
412 mlethuil 1.1 friend std::ostream& operator<< (std::ostream& stream, const TRootMuon& muon) {
413 lethuill 1.3 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 mlethuil 1.1 << " 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 lethuill 1.4 // Variables from reco::Muon
428 mlethuil 1.1 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 lethuill 1.3
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 lethuill 1.8
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 numberOfValidPixelHits_;
486     Int_t numberOfValidTrackerHits_;
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 mlethuil 1.1 };
501    
502     #endif
503    
504