ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/CITCommon/CommonData/interface/MuonTree.h
Revision: 1.1
Committed: Wed Jul 18 19:29:54 2012 UTC (12 years, 9 months ago) by sixie
Content type: text/plain
Branch: MAIN
Log Message:
common data formats

File Contents

# Content
1 #ifndef MuonTree_H
2 #define MuonTree_H
3
4 #include "TFile.h"
5 #include "TTree.h"
6 #include "TError.h"
7 #include <cmath>
8 #include "assert.h"
9
10 class MuonTree {
11
12 public:
13
14 /// variables
15 Float_t fWeight;
16 UInt_t fRunNumber;
17 UInt_t fLumiSectionNumber;
18 UInt_t fEventNumber;
19 Bool_t fMuEventNumberParity;
20 Float_t fRho;
21 UInt_t fNVertices;
22
23 Float_t fMuPt;
24 Float_t fMuEta;
25 Float_t fMuPhi;
26
27 UInt_t fMuTypeBits;
28 Bool_t fIsAllArbitrated;
29 Float_t fMuTkNchi2;
30 Float_t fMuGlobalNchi2;
31 Float_t fMuNValidHits;
32 Float_t fMuNTrackerHits;
33 Float_t fMuNPixelHits;
34 Float_t fMuNMatches;
35 Float_t fMuD0;
36
37 //Additional Vars used in Likelihood
38 Float_t fMuIP3d;
39 Float_t fMuIP3dSig;
40 Float_t fMuTrkKink;
41 Float_t fMuGlobalKink;
42 Float_t fMuSegmentCompatibility;
43 Float_t fMuCaloCompatibility;
44 Float_t fMuHadEnergy;
45 Float_t fMuHoEnergy;
46 Float_t fMuEmEnergy;
47 Float_t fMuHadS9Energy;
48 Float_t fMuHoS9Energy;
49 Float_t fMuEmS9Energy;
50
51 //Isolation Variables
52 Float_t fMuTrkIso03;
53 Float_t fMuEMIso03;
54 Float_t fMuHadIso03;
55 Float_t fMuTrkIso05;
56 Float_t fMuEMIso05;
57 Float_t fMuHadIso05;
58 Float_t fMuPFIso04;
59 Float_t fChargedIso_DR0p0To0p1;
60 Float_t fChargedIso_DR0p1To0p2;
61 Float_t fChargedIso_DR0p2To0p3;
62 Float_t fChargedIso_DR0p3To0p4;
63 Float_t fChargedIso_DR0p4To0p5;
64 Float_t fGammaIso_DR0p0To0p1;
65 Float_t fGammaIso_DR0p1To0p2;
66 Float_t fGammaIso_DR0p2To0p3;
67 Float_t fGammaIso_DR0p3To0p4;
68 Float_t fGammaIso_DR0p4To0p5;
69 Float_t fNeutralHadronIso_DR0p0To0p1;
70 Float_t fNeutralHadronIso_DR0p1To0p2;
71 Float_t fNeutralHadronIso_DR0p2To0p3;
72 Float_t fNeutralHadronIso_DR0p3To0p4;
73 Float_t fNeutralHadronIso_DR0p4To0p5;
74
75 Bool_t fMuPassTriggerDenominator;
76
77 public:
78 /// this is the main element
79 TTree *tree_;
80 TFile *f_;
81
82 /// hold the names of variables to facilitate things (filled during Init)
83 std::vector<std::string> variables_;
84
85 /// default constructor
86 MuonTree() {};
87 /// default destructor
88 ~MuonTree(){
89 if (f_) f_->Close();
90 };
91
92 /// initialize varibles and fill list of available variables
93 void InitVariables() {
94 fWeight = 0.0;
95 fRunNumber = 0.0;
96 fLumiSectionNumber = 0.0;
97 fEventNumber = 0.0;
98 fMuEventNumberParity = 0.0;
99 fRho = 0.0;
100 fNVertices = 0.0;
101 fMuPt = 0.0;
102 fMuEta = 0.0;
103 fMuPhi = 0.0;
104 fMuTypeBits = 0.0;
105 fIsAllArbitrated = 0.0;
106 fMuTkNchi2 = 0.0;
107 fMuGlobalNchi2 = 0.0;
108 fMuNValidHits = 0.0;
109 fMuNTrackerHits = 0.0;
110 fMuNPixelHits = 0.0;
111 fMuNMatches = 0.0;
112 fMuD0 = 0.0;
113 fMuIP3d = 0.0;
114 fMuIP3dSig = 0.0;
115 fMuTrkKink = 0.0;
116 fMuGlobalKink = 0.0;
117 fMuSegmentCompatibility = 0.0;
118 fMuCaloCompatibility = 0.0;
119 fMuHadEnergy = 0.0;
120 fMuHoEnergy = 0.0;
121 fMuEmEnergy = 0.0;
122 fMuHadS9Energy = 0.0;
123 fMuHoS9Energy = 0.0;
124 fMuEmS9Energy = 0.0;
125 fMuTrkIso03 = 0.0;
126 fMuEMIso03 = 0.0;
127 fMuHadIso03 = 0.0;
128 fMuTrkIso05 = 0.0;
129 fMuEMIso05 = 0.0;
130 fMuHadIso05 = 0.0;
131 fMuPFIso04 = 0.0;
132 fChargedIso_DR0p0To0p1 = 0.0;
133 fChargedIso_DR0p1To0p2 = 0.0;
134 fChargedIso_DR0p2To0p3 = 0.0;
135 fChargedIso_DR0p3To0p4 = 0.0;
136 fChargedIso_DR0p4To0p5 = 0.0;
137 fGammaIso_DR0p0To0p1 = 0.0;
138 fGammaIso_DR0p1To0p2 = 0.0;
139 fGammaIso_DR0p2To0p3 = 0.0;
140 fGammaIso_DR0p3To0p4 = 0.0;
141 fGammaIso_DR0p4To0p5 = 0.0;
142 fNeutralHadronIso_DR0p0To0p1 = 0.0;
143 fNeutralHadronIso_DR0p1To0p2 = 0.0;
144 fNeutralHadronIso_DR0p2To0p3 = 0.0;
145 fNeutralHadronIso_DR0p3To0p4 = 0.0;
146 fNeutralHadronIso_DR0p4To0p5 = 0.0;
147 fMuPassTriggerDenominator = kFALSE;
148 }
149
150 /// load a MuonTree
151 void LoadTree(const char* file){
152 f_ = TFile::Open(file);
153 assert(f_);
154 tree_ = dynamic_cast<TTree*>(f_->Get("Muons"));
155 assert(tree_);
156 }
157
158 /// create a MuonTree
159 void CreateTree(){
160 tree_ = new TTree("Muons","Muons");
161 f_ = 0;
162
163 //book the branches
164 tree_->Branch("weight",&fWeight,"weight/F");
165 tree_->Branch("run",&fRunNumber,"run/i");
166 tree_->Branch("lumi",&fLumiSectionNumber,"lumi/i");
167 tree_->Branch("event",&fEventNumber,"event/i");
168 tree_->Branch("EventNumberParity",&fMuEventNumberParity,"EventNumberParity/O");
169 tree_->Branch("Rho",&fRho,"Rho/F");
170 tree_->Branch("NVertices",&fNVertices,"NVertices/F");
171 tree_->Branch("pt",&fMuPt,"pt/F");
172 tree_->Branch("eta",&fMuEta,"eta/F");
173 tree_->Branch("phi",&fMuPhi,"phi/F");
174 tree_->Branch("typeBits",&fMuTypeBits,"typeBits/i");
175 tree_->Branch("isAllArbitrated",&fIsAllArbitrated,"isAllArbitrated/i");
176 tree_->Branch("TkNchi2",&fMuTkNchi2,"TkNchi2/F");
177 tree_->Branch("GlobalNchi2",&fMuGlobalNchi2,"GlobalNchi2/F");
178 tree_->Branch("NValidHits",&fMuNValidHits,"NValidHits/F");
179 tree_->Branch("NTrackerHits",&fMuNTrackerHits,"NTrackerHits/F");
180 tree_->Branch("NPixelHits",&fMuNPixelHits,"NPixelHits/F");
181 tree_->Branch("NMatches",&fMuNMatches,"NMatches/F");
182 tree_->Branch("D0",&fMuD0,"D0/F");
183 tree_->Branch("IP3d",&fMuIP3d,"IP3d/F");
184 tree_->Branch("IP3dSig",&fMuIP3dSig,"IP3dSig/F");
185 tree_->Branch("TrkKink",&fMuTrkKink,"TrkKink/F");
186 tree_->Branch("GlobalKink",&fMuGlobalKink,"GlobalKink/F");
187 tree_->Branch("SegmentCompatibility",&fMuSegmentCompatibility,"SegmentCompatibility/F");
188 tree_->Branch("CaloCompatibility",&fMuCaloCompatibility,"CaloCompatibility/F");
189 tree_->Branch("HadEnergy",&fMuHadEnergy,"HadEnergy/F");
190 tree_->Branch("HoEnergy",&fMuHoEnergy,"HoEnergy/F");
191 tree_->Branch("EmEnergy",&fMuEmEnergy,"EmEnergy/F");
192 tree_->Branch("HadS9Energy",&fMuHadS9Energy,"HadS9Energy/F");
193 tree_->Branch("HoS9Energy",&fMuHoS9Energy,"HoS9Energy/F");
194 tree_->Branch("EmS9Energy",&fMuEmS9Energy,"EmS9Energy/F");
195 tree_->Branch("TrkIso03",&fMuTrkIso03,"TrkIso03/F");
196 tree_->Branch("EMIso03",&fMuEMIso03,"EMIso03/F");
197 tree_->Branch("HadIso03",&fMuHadIso03,"HadIso03/F");
198 tree_->Branch("TrkIso05",&fMuTrkIso05,"TrkIso05/F");
199 tree_->Branch("EMIso05",&fMuEMIso05,"EMIso05/F");
200 tree_->Branch("HadIso05",&fMuHadIso05,"HadIso05/F");
201 tree_->Branch("PFIso04",&fMuPFIso04,"PFIso04/F");
202 tree_->Branch("ChargedIso_DR0p0To0p1",&fChargedIso_DR0p0To0p1,"ChargedIso_DR0p0To0p1/F");
203 tree_->Branch("ChargedIso_DR0p1To0p2",&fChargedIso_DR0p1To0p2,"ChargedIso_DR0p1To0p2/F");
204 tree_->Branch("ChargedIso_DR0p2To0p3",&fChargedIso_DR0p2To0p3,"ChargedIso_DR0p2To0p3/F");
205 tree_->Branch("ChargedIso_DR0p3To0p4",&fChargedIso_DR0p3To0p4,"ChargedIso_DR0p3To0p4/F");
206 tree_->Branch("ChargedIso_DR0p4To0p5",&fChargedIso_DR0p4To0p5,"ChargedIso_DR0p4To0p5/F");
207 tree_->Branch("GammaIso_DR0p0To0p1",&fGammaIso_DR0p0To0p1,"GammaIso_DR0p0To0p1/F");
208 tree_->Branch("GammaIso_DR0p1To0p2",&fGammaIso_DR0p1To0p2,"GammaIso_DR0p1To0p2/F");
209 tree_->Branch("GammaIso_DR0p2To0p3",&fGammaIso_DR0p2To0p3,"GammaIso_DR0p2To0p3/F");
210 tree_->Branch("GammaIso_DR0p3To0p4",&fGammaIso_DR0p3To0p4,"GammaIso_DR0p3To0p4/F");
211 tree_->Branch("GammaIso_DR0p4To0p5",&fGammaIso_DR0p4To0p5,"GammaIso_DR0p4To0p5/F");
212 tree_->Branch("NeutralHadronIso_DR0p0To0p1",&fNeutralHadronIso_DR0p0To0p1,"NeutralHadronIso_DR0p0To0p1/F");
213 tree_->Branch("NeutralHadronIso_DR0p1To0p2",&fNeutralHadronIso_DR0p1To0p2,"NeutralHadronIso_DR0p1To0p2/F");
214 tree_->Branch("NeutralHadronIso_DR0p2To0p3",&fNeutralHadronIso_DR0p2To0p3,"NeutralHadronIso_DR0p2To0p3/F");
215 tree_->Branch("NeutralHadronIso_DR0p3To0p4",&fNeutralHadronIso_DR0p3To0p4,"NeutralHadronIso_DR0p3To0p4/F");
216 tree_->Branch("NeutralHadronIso_DR0p4To0p5",&fNeutralHadronIso_DR0p4To0p5,"NeutralHadronIso_DR0p4To0p5/F");
217 tree_->Branch("PassTriggerDenominator",&fMuPassTriggerDenominator,"PassTriggerDenominator/O");
218
219 }
220
221 // initialze a MuonTree
222 void InitTree(){
223 assert(tree_);
224 // don't forget to set pointers to zero before you set address
225 // or you will fully appreciate that "ROOT sucks" :)
226 InitVariables();
227 //Set branch address
228 Int_t currentState = gErrorIgnoreLevel;
229 // gErrorIgnoreLevel = kError;
230 gErrorIgnoreLevel = kBreak;
231
232 tree_->SetBranchAddress("weight",&fWeight);
233 tree_->SetBranchAddress("run",&fRunNumber);
234 tree_->SetBranchAddress("lumi",&fLumiSectionNumber);
235 tree_->SetBranchAddress("event",&fEventNumber);
236 tree_->SetBranchAddress("EventNumberParity",&fMuEventNumberParity);
237 tree_->SetBranchAddress("Rho",&fRho);
238 tree_->SetBranchAddress("NVertices",&fNVertices);
239 tree_->SetBranchAddress("pt",&fMuPt);
240 tree_->SetBranchAddress("eta",&fMuEta);
241 tree_->SetBranchAddress("phi",&fMuPhi);
242 tree_->SetBranchAddress("typeBits",&fMuTypeBits);
243 tree_->SetBranchAddress("isAllArbitrated",&fIsAllArbitrated);
244 tree_->SetBranchAddress("TkNchi2",&fMuTkNchi2);
245 tree_->SetBranchAddress("GlobalNchi2",&fMuGlobalNchi2);
246 tree_->SetBranchAddress("NValidHits",&fMuNValidHits);
247 tree_->SetBranchAddress("NTrackerHits",&fMuNTrackerHits);
248 tree_->SetBranchAddress("NPixelHits",&fMuNPixelHits);
249 tree_->SetBranchAddress("NMatches",&fMuNMatches);
250 tree_->SetBranchAddress("D0",&fMuD0);
251 tree_->SetBranchAddress("IP3d",&fMuIP3d);
252 tree_->SetBranchAddress("IP3dSig",&fMuIP3dSig);
253 tree_->SetBranchAddress("TrkKink",&fMuTrkKink);
254 tree_->SetBranchAddress("GlobalKink",&fMuGlobalKink);
255 tree_->SetBranchAddress("SegmentCompatibility",&fMuSegmentCompatibility);
256 tree_->SetBranchAddress("CaloCompatibility",&fMuCaloCompatibility);
257 tree_->SetBranchAddress("HadEnergy",&fMuHadEnergy);
258 tree_->SetBranchAddress("HoEnergy",&fMuHoEnergy);
259 tree_->SetBranchAddress("EmEnergy",&fMuEmEnergy);
260 tree_->SetBranchAddress("HadS9Energy",&fMuHadS9Energy);
261 tree_->SetBranchAddress("HoS9Energy",&fMuHoS9Energy);
262 tree_->SetBranchAddress("EmS9Energy",&fMuEmS9Energy);
263 tree_->SetBranchAddress("TrkIso03",&fMuTrkIso03);
264 tree_->SetBranchAddress("EMIso03",&fMuEMIso03);
265 tree_->SetBranchAddress("HadIso03",&fMuHadIso03);
266 tree_->SetBranchAddress("TrkIso05",&fMuTrkIso05);
267 tree_->SetBranchAddress("EMIso05",&fMuEMIso05);
268 tree_->SetBranchAddress("HadIso05",&fMuHadIso05);
269 tree_->SetBranchAddress("PFIso04",&fMuPFIso04);
270 tree_->SetBranchAddress("ChargedIso_DR0p0To0p1",&fChargedIso_DR0p0To0p1);
271 tree_->SetBranchAddress("ChargedIso_DR0p1To0p2",&fChargedIso_DR0p1To0p2);
272 tree_->SetBranchAddress("ChargedIso_DR0p2To0p3",&fChargedIso_DR0p2To0p3);
273 tree_->SetBranchAddress("ChargedIso_DR0p3To0p4",&fChargedIso_DR0p3To0p4);
274 tree_->SetBranchAddress("ChargedIso_DR0p4To0p5",&fChargedIso_DR0p4To0p5);
275 tree_->SetBranchAddress("GammaIso_DR0p0To0p1",&fGammaIso_DR0p0To0p1);
276 tree_->SetBranchAddress("GammaIso_DR0p1To0p2",&fGammaIso_DR0p1To0p2);
277 tree_->SetBranchAddress("GammaIso_DR0p2To0p3",&fGammaIso_DR0p2To0p3);
278 tree_->SetBranchAddress("GammaIso_DR0p3To0p4",&fGammaIso_DR0p3To0p4);
279 tree_->SetBranchAddress("GammaIso_DR0p4To0p5",&fGammaIso_DR0p4To0p5);
280 tree_->SetBranchAddress("NeutralHadronIso_DR0p0To0p1",&fNeutralHadronIso_DR0p0To0p1);
281 tree_->SetBranchAddress("NeutralHadronIso_DR0p1To0p2",&fNeutralHadronIso_DR0p1To0p2);
282 tree_->SetBranchAddress("NeutralHadronIso_DR0p2To0p3",&fNeutralHadronIso_DR0p2To0p3);
283 tree_->SetBranchAddress("NeutralHadronIso_DR0p3To0p4",&fNeutralHadronIso_DR0p3To0p4);
284 tree_->SetBranchAddress("NeutralHadronIso_DR0p4To0p5",&fNeutralHadronIso_DR0p4To0p5);
285 tree_->SetBranchAddress("PassTriggerDenominator",&fMuPassTriggerDenominator);
286
287 gErrorIgnoreLevel = currentState;
288 }
289
290 };
291
292
293
294 #endif