ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/Morgan/interface/TRootMuon.h
Revision: 1.10
Committed: Fri Apr 17 15:17:38 2009 UTC (16 years ago) by lethuill
Content type: text/plain
Branch: MAIN
Changes since 1.9: +13 -2 lines
Log Message:
Add significance of the 3D impact parameter for leptons.
Calculation done in new LeptonAnalyzer class (Base for MuonAnalyzer and ElectronAnalyzer)

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