ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/CITCommon/CommonData/interface/MuonTree.h
Revision: 1.2
Committed: Sat Jul 21 06:57:24 2012 UTC (12 years, 9 months ago) by sixie
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +276 -274 lines
Error occurred while calculating annotation data.
Log Message:
add into citana namespace

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