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

# 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     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