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
Log Message:
add into citana namespace

File Contents

# User Rev Content
1 sixie 1.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 sixie 1.2 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 sixie 1.1
39 sixie 1.2 //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 sixie 1.1
84 sixie 1.2 /// hold the names of variables to facilitate things (filled during Init)
85     std::vector<std::string> variables_;
86 sixie 1.1
87 sixie 1.2 /// default constructor
88     MuonTree() {};
89     /// default destructor
90     ~MuonTree(){
91     if (f_) f_->Close();
92     };
93 sixie 1.1
94 sixie 1.2 /// 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 sixie 1.1
152 sixie 1.2 /// 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 sixie 1.1
160 sixie 1.2 /// 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 sixie 1.1
289 sixie 1.2 gErrorIgnoreLevel = currentState;
290     }
291 sixie 1.1
292 sixie 1.2 };
293 sixie 1.1
294 sixie 1.2 }
295 sixie 1.1
296     #endif