ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/CITCommon/CommonData/interface/ZeeEventTree.h
(Generate patch)

Comparing UserCode/CITCommon/CommonData/interface/ZeeEventTree.h (file contents):
Revision 1.1 by sixie, Wed Jul 18 20:28:03 2012 UTC vs.
Revision 1.7 by sixie, Thu Oct 4 14:00:59 2012 UTC

# Line 7 | Line 7
7   #include <cmath>
8   #include "assert.h"
9  
10 < class ZeeEventTree {
11 <
12 <  public:
13 <
14 <    /// variables
15 <    Float_t                 fWeight;
16 <    UInt_t                  fRunNumber;
17 <    UInt_t                  fLumiSectionNumber;
18 <    UInt_t                  fEventNumber;
19 <    Float_t                 fRho;
20 <    UInt_t                  fNVertices;
21 <
22 <    Float_t                 fMass;
23 <
24 <    Float_t                 fEle1Pt;
25 <    Float_t                 fEle1Eta;
26 <    Float_t                 fEle1Phi;
27 <    Float_t                 fEle1SCEt;
28 <    Float_t                 fEle1SCEta;
29 <    Float_t                 fEle1SCPhi;
30 <    Float_t                 fEle1HZZICHEP2012IDMVA;
31 <    Float_t                 fEle1PFIso04;
32 <    Float_t                 fEle1R9;
33 <    Bool_t                  fEle1PassLooseSimpleCuts;
34 <    Bool_t                  fEle1PassTightSimpleCuts;
35 <    Bool_t                  fEle1PassHZZICHEP2012;
36 <
37 <    Float_t                 fEle2Pt;
38 <    Float_t                 fEle2Eta;
39 <    Float_t                 fEle2Phi;
40 <    Float_t                 fEle2SCEt;
41 <    Float_t                 fEle2SCEta;
42 <    Float_t                 fEle2SCPhi;
43 <    Float_t                 fEle2HZZICHEP2012IDMVA;
44 <    Float_t                 fEle2PFIso04;
45 <    Float_t                 fEle2R9;
46 <    Bool_t                  fEle2PassLooseSimpleCuts;
47 <    Bool_t                  fEle2PassTightSimpleCuts;
48 <    Bool_t                  fEle2PassHZZICHEP2012;
49 <
50 <  public:
51 <    /// this is the main element
52 <    TTree *tree_;
53 <    TFile *f_;
10 > namespace citana
11 > {
12 >  class ZeeEventTree {
13 >
14 >    public:
15 >
16 >      enum ZeeEventTreeType { kCITZeeEvent                                     = 0,
17 >                              kHggFutyanZeeDataEvent,
18 >                              kHggFutyanZeeMCEvent,
19 >      };
20 >
21 >      enum DiElecTrigBits { kEle17SC8Trigger                                   = 1UL<<0,
22 >                            kEle20SC4Trigger                                   = 1UL<<1,
23 >                            kEle32SC17Trigger                                  = 1UL<<2,
24 >                            kEle17Ele8Loose                                    = 1UL<<3,
25 >                            kEle17Ele8Tight                                    = 1UL<<4,
26 >                            kSingleEleTight                                    = 1UL<<5
27 >      };
28 >      
29 >      /// variables
30 >      UInt_t                  fTreeType;
31 >      Float_t                 fWeight;
32 >      UInt_t                  fRunNumber;
33 >      UInt_t                  fLumiSectionNumber;
34 >      UInt_t                  fEventNumber;
35 >      UInt_t                  fNPU;
36 >      Float_t                 fRho;
37 >      UInt_t                  fNVertices;
38 >      UInt_t                  fEventTriggerBits;
39 >
40 >      Float_t                 fMass;
41 >      Float_t                 fMassRegression;
42 >
43 >
44 >      Float_t                 fEle1Pt;
45 >      Float_t                 fEle1Eta;
46 >      Float_t                 fEle1Phi;
47 >      Float_t                 fEle1SCEt;
48 >      Float_t                 fEle1SCEta;
49 >      Float_t                 fEle1SCPhi;
50 >      Float_t                 fEle1GenPt;
51 >      Float_t                 fEle1EnergyCorrAndSmeared;
52 >      Float_t                 fEle1Energy;
53 >      Float_t                 fEle1EnergyRegression;
54 >      Float_t                 fEle1EnergyRegressionV0;
55 >      Float_t                 fEle1EnergyRegressionV1;
56 >      Float_t                 fEle1EnergyRegressionV2;
57 >      Int_t                   fEle1Charge;
58 >      Float_t                 fEle1HZZICHEP2012IDMVA;
59 >      Float_t                 fEle1PFIso04;
60 >      Float_t                 fEle1R9;
61 >      Bool_t                  fEle1PassLooseSimpleCuts;
62 >      Bool_t                  fEle1PassMediumSimpleCuts;
63 >      Bool_t                  fEle1PassTightSimpleCuts;
64 >      Bool_t                  fEle1PassHZZICHEP2012;
65 >
66 >
67 >      Float_t                 fEle2Pt;
68 >      Float_t                 fEle2Eta;
69 >      Float_t                 fEle2Phi;
70 >      Float_t                 fEle2SCEt;
71 >      Float_t                 fEle2SCEta;
72 >      Float_t                 fEle2SCPhi;
73 >      Float_t                 fEle2GenPt;
74 >      Float_t                 fEle2EnergyCorrAndSmeared;
75 >      Float_t                 fEle2Energy;
76 >      Float_t                 fEle2EnergyRegression;
77 >      Float_t                 fEle2EnergyRegressionV0;
78 >      Float_t                 fEle2EnergyRegressionV1;
79 >      Float_t                 fEle2EnergyRegressionV2;
80 >      Int_t                   fEle2Charge;
81 >      Float_t                 fEle2HZZICHEP2012IDMVA;
82 >      Float_t                 fEle2PFIso04;
83 >      Float_t                 fEle2R9;
84 >      Bool_t                  fEle2PassLooseSimpleCuts;
85 >      Bool_t                  fEle2PassMediumSimpleCuts;
86 >      Bool_t                  fEle2PassTightSimpleCuts;
87 >      Bool_t                  fEle2PassHZZICHEP2012;
88 >
89 >
90 >      Int_t                   fRunNumber_int;
91 >      Int_t                   fLumiSectionNumber_int;
92 >      Int_t                   fEventNumber_int;
93 >      Int_t                   fNVertices_int;
94 >      Double_t                dEle1Pt;
95 >      Double_t                dEle1Eta;
96 >      Double_t                dEle1Phi;
97 >      Double_t                dEle1EnergyCorrAndSmeared;
98 >      Double_t                dEle2Pt;
99 >      Double_t                dEle2Eta;
100 >      Double_t                dEle2Phi;
101 >      Double_t                dEle2EnergyCorrAndSmeared;
102 >
103 >
104 >
105 >    public:
106 >      /// this is the main element
107 >      TTree *tree_;
108 >      TFile *f_;
109    
110 <    /// hold the names of variables to facilitate things (filled during Init)
111 <    std::vector<std::string> variables_;
112 <
113 <    /// default constructor  
114 <    ZeeEventTree()  {};
115 <    /// default destructor
116 <    ~ZeeEventTree(){
117 <      if (f_) f_->Close();  
118 <    };
110 >      /// hold the names of variables to facilitate things (filled during Init)
111 >      std::vector<std::string> variables_;
112 >      
113 >      /// default constructor  
114 >      ZeeEventTree()  {
115 >        fTreeType = kCITZeeEvent;
116 >      };
117 >      /// default destructor
118 >      ~ZeeEventTree(){
119 >        if (f_) f_->Close();  
120 >      };
121      
122 <    /// initialize varibles and fill list of available variables
123 <    void InitVariables() {
124 <      fWeight                          = 0.0;
125 <      fRunNumber                       = 0.0;
126 <      fLumiSectionNumber               = 0.0;
127 <      fEventNumber                     = 0.0;
128 <      fRho                             = 0.0;
129 <      fNVertices                       = 0.0;
130 <      fMass                            = 0.0;
131 <      fEle1Pt                          = 0.0;
132 <      fEle1Eta                         = 0.0;
133 <      fEle1Phi                         = 0.0;
134 <      fEle1SCEt                        = 0.0;
135 <      fEle1SCEta                       = 0.0;
136 <      fEle1SCPhi                       = 0.0;
137 <      fEle1HZZICHEP2012IDMVA           = 0.0;
138 <      fEle1PFIso04                     = 0.0;
139 <      fEle1R9                          = 0.0;
140 <      fEle1PassLooseSimpleCuts         = kFALSE;
141 <      fEle1PassTightSimpleCuts         = kFALSE;
142 <      fEle1PassHZZICHEP2012            = kFALSE;
143 <      fEle2Pt                          = 0.0;
144 <      fEle2Eta                         = 0.0;
145 <      fEle2Phi                         = 0.0;
146 <      fEle2SCEt                        = 0.0;
147 <      fEle2SCEta                       = 0.0;
148 <      fEle2SCPhi                       = 0.0;
149 <      fEle2HZZICHEP2012IDMVA           = 0.0;
150 <      fEle2PFIso04                     = 0.0;
151 <      fEle2R9                          = 0.0;
152 <      fEle2PassLooseSimpleCuts         = kFALSE;
153 <      fEle2PassTightSimpleCuts         = kFALSE;
154 <      fEle2PassHZZICHEP2012            = kFALSE;
155 <    }
122 >      /// initialize varibles and fill list of available variables
123 >      void InitVariables() {
124 >        fWeight                        = 0.0;
125 >        fRunNumber                     = 0.0;
126 >        fLumiSectionNumber             = 0.0;
127 >        fEventNumber                   = 0.0;
128 >        fNPU                           = 0.0;
129 >        fRho                           = 0.0;
130 >        fNVertices                     = 0.0;
131 >        fEventTriggerBits              = 0;
132 >        fMass                            = 0.0;
133 >        fEle1Pt                          = 0.0;
134 >        fEle1Eta                         = 0.0;
135 >        fEle1Phi                         = 0.0;
136 >        fEle1SCEt                        = 0.0;
137 >        fEle1SCEta                       = 0.0;
138 >        fEle1SCPhi                       = 0.0;
139 >        fEle1GenPt                       = 0.0;
140 >        fEle1EnergyCorrAndSmeared        = 0.0;
141 >        fEle1Energy                      = 0.0;
142 >        fEle1EnergyRegression            = 0.0;
143 >        fEle1EnergyRegressionV0          = 0.0;
144 >        fEle1EnergyRegressionV1          = 0.0;
145 >        fEle1EnergyRegressionV2          = 0.0;
146 >        fEle1Charge                      = 0;
147 >        fEle1HZZICHEP2012IDMVA           = 0.0;
148 >        fEle1PFIso04                     = 0.0;
149 >        fEle1R9                          = 0.0;
150 >        fEle1PassLooseSimpleCuts         = kFALSE;
151 >        fEle1PassMediumSimpleCuts         = kFALSE;
152 >        fEle1PassTightSimpleCuts         = kFALSE;
153 >        fEle1PassHZZICHEP2012            = kFALSE;
154 >        fEle2Pt                          = 0.0;
155 >        fEle2Eta                         = 0.0;
156 >        fEle2Phi                         = 0.0;
157 >        fEle2SCEt                        = 0.0;
158 >        fEle2SCEta                       = 0.0;
159 >        fEle2SCPhi                       = 0.0;
160 >        fEle2GenPt                       = 0.0;
161 >        fEle2EnergyCorrAndSmeared        = 0.0;
162 >        fEle2Energy                      = 0.0;
163 >        fEle2EnergyRegression            = 0.0;
164 >        fEle2EnergyRegressionV0          = 0.0;
165 >        fEle2EnergyRegressionV1          = 0.0;
166 >        fEle2EnergyRegressionV2          = 0.0;
167 >        fEle2Charge                      = 0;
168 >        fEle2HZZICHEP2012IDMVA           = 0.0;
169 >        fEle2PFIso04                     = 0.0;
170 >        fEle2R9                          = 0.0;
171 >        fEle2PassLooseSimpleCuts         = kFALSE;
172 >        fEle2PassMediumSimpleCuts        = kFALSE;
173 >        fEle2PassTightSimpleCuts         = kFALSE;
174 >        fEle2PassHZZICHEP2012            = kFALSE;
175 >
176 >        fRunNumber_int                   = 0;
177 >        fLumiSectionNumber_int           = 0;
178 >        fEventNumber_int                 = 0;
179 >        fNVertices_int                   = 0;
180 >        dEle1Pt                          = 0;
181 >        dEle1Eta                         = 0;
182 >        dEle1Phi                         = 0;
183 >        dEle1EnergyCorrAndSmeared        = 0;
184 >        dEle2Pt                          = 0;
185 >        dEle2Eta                         = 0;
186 >        dEle2Phi                         = 0;
187 >        dEle2EnergyCorrAndSmeared        = 0;
188 >
189 >      }
190      
191 <    /// load a ZeeEventTree
192 <    void LoadTree(const char* file){
193 <      f_ = TFile::Open(file);
194 <      assert(f_);
195 <      tree_ = dynamic_cast<TTree*>(f_->Get("Electrons"));
196 <      assert(tree_);
197 <    }
191 >      /// load a ZeeEventTree
192 >      void LoadTree(const char* file, UInt_t Type = kCITZeeEvent){
193 >        fTreeType = Type;
194 >        f_ = TFile::Open(file);
195 >        assert(f_);
196 >        if (Type == kCITZeeEvent) {
197 >          tree_ = dynamic_cast<TTree*>(f_->Get("ZeeEvent"));
198 >        } else if (Type == kHggFutyanZeeDataEvent) {
199 >          tree_ = dynamic_cast<TTree*>(f_->Get("Data"));
200 >        } else if (Type == kHggFutyanZeeMCEvent) {
201 >          tree_ = dynamic_cast<TTree*>(f_->Get("DYJetsToLL"));
202 >        } else {
203 >          cout << "Warning: Type " <<  Type << " is not supported \n";
204 >        }
205 >        InitTree(Type);
206 >        assert(tree_);
207 >      }
208      
209 <    /// create a ZeeEventTree
210 <    void CreateTree(){
211 <      tree_ = new TTree("Electrons","Electrons");
212 <      f_ = 0;
213 <
214 <      //book the branches
215 <      tree_->Branch("weight",&fWeight,"weight/F");
216 <      tree_->Branch("run",&fRunNumber,"run/i");
217 <      tree_->Branch("lumi",&fLumiSectionNumber,"lumi/i");
218 <      tree_->Branch("event",&fEventNumber,"event/i");
219 <      tree_->Branch("rho",&fRho,"rho/F");
220 <      tree_->Branch("vertices",&fNVertices,"vertices/i");
221 <      tree_->Branch("mass",&fMass,"mass/F");
222 <
223 <      tree_->Branch("Ele1Pt",&fEle1Pt,"Ele1Pt/F");
224 <      tree_->Branch("Ele1Eta",&fEle1Eta,"Ele1Eta/F");
225 <      tree_->Branch("Ele1Phi",&fEle1Phi,"Ele1Phi/F");
226 <      tree_->Branch("Ele1SCEt",&fEle1SCEt,"Ele1SCEt/F");
227 <      tree_->Branch("Ele1SCEta",&fEle1SCEta,"Ele1SCEta/F");
228 <      tree_->Branch("Ele1SCPhi",&fEle1SCPhi,"Ele1SCPhi/F");
229 <      tree_->Branch("Ele1HZZICHEP2012IDMVA",&fEle1HZZICHEP2012IDMVA,"Ele1HZZICHEP2012IDMVA/F");
230 <      tree_->Branch("Ele1PFIso04",&fEle1PFIso04,"Ele1PFIso04/F");
231 <      tree_->Branch("Ele1R9",&fEle1R9,"Ele1R9/F");
232 <      tree_->Branch("Ele1PassLooseSimpleCuts",&fEle1PassLooseSimpleCuts,"Ele1PassLooseSimpleCuts/F");
233 <      tree_->Branch("Ele1PassTightSimpleCuts",&fEle1PassTightSimpleCuts,"Ele1PassTightSimpleCuts/F");
234 <      tree_->Branch("Ele1PassHZZICHEP2012",&fEle1PassHZZICHEP2012,"Ele1PassHZZICHEP2012/F");
235 <      tree_->Branch("Ele2Pt",&fEle2Pt,"Ele2Pt/F");
236 <      tree_->Branch("Ele2Eta",&fEle2Eta,"Ele2Eta/F");
237 <      tree_->Branch("Ele2Phi",&fEle2Phi,"Ele2Phi/F");
238 <      tree_->Branch("Ele2SCEt",&fEle2SCEt,"Ele2SCEt/F");
239 <      tree_->Branch("Ele2SCEta",&fEle2SCEta,"Ele2SCEta/F");
240 <      tree_->Branch("Ele2SCPhi",&fEle2SCPhi,"Ele2SCPhi/F");
241 <      tree_->Branch("Ele2HZZICHEP2012IDMVA",&fEle2HZZICHEP2012IDMVA,"Ele2HZZICHEP2012IDMVA/F");
242 <      tree_->Branch("Ele2PFIso04",&fEle2PFIso04,"Ele2PFIso04/F");
243 <      tree_->Branch("Ele2R9",&fEle2R9,"Ele2R9/F");
244 <      tree_->Branch("Ele2PassLooseSimpleCuts",&fEle2PassLooseSimpleCuts,"Ele2PassLooseSimpleCuts/F");
245 <      tree_->Branch("Ele2PassTightSimpleCuts",&fEle2PassTightSimpleCuts,"Ele2PassTightSimpleCuts/F");
246 <      tree_->Branch("Ele2PassHZZICHEP2012",&fEle2PassHZZICHEP2012,"Ele2PassHZZICHEP2012/F");
247 <
248 <    }
249 <
250 <    // initialze a ZeeEventTree
251 <    void InitTree(){
252 <      assert(tree_);
253 <      // don't forget to set pointers to zero before you set address
254 <      // or you will fully appreciate that "ROOT sucks" :)
255 <      InitVariables();
256 <      //Set branch address
257 <      Int_t currentState = gErrorIgnoreLevel;
258 <      tree_->SetBranchAddress("weight",&fWeight);
259 <      tree_->SetBranchAddress("run",&fRunNumber);
260 <      tree_->SetBranchAddress("lumi",&fLumiSectionNumber);
261 <      tree_->SetBranchAddress("event",&fEventNumber);
262 <      tree_->SetBranchAddress("rho",&fRho);
263 <      tree_->SetBranchAddress("vertices",&fNVertices);
264 <      tree_->SetBranchAddress("mass",&fMass);
265 <
266 <      tree_->SetBranchAddress("Ele1Pt",&fEle1Pt);
267 <      tree_->SetBranchAddress("Ele1Eta",&fEle1Eta);
268 <      tree_->SetBranchAddress("Ele1Phi",&fEle1Phi);
269 <      tree_->SetBranchAddress("Ele1SCEt",&fEle1SCEt);
270 <      tree_->SetBranchAddress("Ele1SCEta",&fEle1SCEta);
271 <      tree_->SetBranchAddress("Ele1SCPhi",&fEle1SCPhi);
272 <      tree_->SetBranchAddress("Ele1HZZICHEP2012IDMVA",&fEle1HZZICHEP2012IDMVA);
273 <      tree_->SetBranchAddress("Ele1PFIso04",&fEle1PFIso04);
274 <      tree_->SetBranchAddress("Ele1R9",&fEle1R9);
275 <      tree_->SetBranchAddress("Ele1PassLooseSimpleCuts",&fEle1PassLooseSimpleCuts);
276 <      tree_->SetBranchAddress("Ele1PassTightSimpleCuts",&fEle1PassTightSimpleCuts);
277 <      tree_->SetBranchAddress("Ele1PassHZZICHEP2012",&fEle1PassHZZICHEP2012);
278 <      tree_->SetBranchAddress("Ele2Pt",&fEle2Pt);
279 <      tree_->SetBranchAddress("Ele2Eta",&fEle2Eta);
280 <      tree_->SetBranchAddress("Ele2Phi",&fEle2Phi);
281 <      tree_->SetBranchAddress("Ele2SCEt",&fEle2SCEt);
282 <      tree_->SetBranchAddress("Ele2SCEta",&fEle2SCEta);
283 <      tree_->SetBranchAddress("Ele2SCPhi",&fEle2SCPhi);
284 <      tree_->SetBranchAddress("Ele2HZZICHEP2012IDMVA",&fEle2HZZICHEP2012IDMVA);
285 <      tree_->SetBranchAddress("Ele2PFIso04",&fEle2PFIso04);
286 <      tree_->SetBranchAddress("Ele2R9",&fEle2R9);
287 <      tree_->SetBranchAddress("Ele2PassLooseSimpleCuts",&fEle2PassLooseSimpleCuts);
288 <      tree_->SetBranchAddress("Ele2PassTightSimpleCuts",&fEle2PassTightSimpleCuts);
289 <      tree_->SetBranchAddress("Ele2PassHZZICHEP2012",&fEle2PassHZZICHEP2012);
290 <
291 <      gErrorIgnoreLevel = currentState;
292 <    }
209 >      /// create a ZeeEventTree
210 >      void CreateTree(){
211 >        tree_ = new TTree("ZeeEvent","ZeeEvent");
212 >        f_ = 0;
213 >
214 >        //book the branches
215 >        tree_->Branch("weight",&fWeight,"weight/F");
216 >        tree_->Branch("run",&fRunNumber,"run/i");
217 >        tree_->Branch("lumi",&fLumiSectionNumber,"lumi/i");
218 >        tree_->Branch("event",&fEventNumber,"event/i");
219 >        tree_->Branch("npu",&fNPU,"npu/i");
220 >        tree_->Branch("rho",&fRho,"rho/F");
221 >        tree_->Branch("vertices",&fNVertices,"vertices/i");
222 >        tree_->Branch("triggerbits",&fEventTriggerBits,"triggerbits/i");
223 >        tree_->Branch("mass",&fMass,"mass/F");
224 >
225 >        tree_->Branch("Ele1Pt",&fEle1Pt,"Ele1Pt/F");
226 >        tree_->Branch("Ele1Eta",&fEle1Eta,"Ele1Eta/F");
227 >        tree_->Branch("Ele1Phi",&fEle1Phi,"Ele1Phi/F");
228 >        tree_->Branch("Ele1SCEt",&fEle1SCEt,"Ele1SCEt/F");
229 >        tree_->Branch("Ele1SCEta",&fEle1SCEta,"Ele1SCEta/F");
230 >        tree_->Branch("Ele1SCPhi",&fEle1SCPhi,"Ele1SCPhi/F");
231 >        tree_->Branch("Ele1GenPt",&fEle1GenPt,"Ele1GenPt/F");
232 >        tree_->Branch("Ele1EnergyCorrAndSmeared",&fEle1EnergyCorrAndSmeared,"Ele1EnergyCorrAndSmeared/F");
233 >        tree_->Branch("Ele1Energy",&fEle1Energy,"Ele1Energy/F");
234 >        tree_->Branch("Ele1EnergyRegression",&fEle1EnergyRegression,"Ele1EnergyRegression/F");
235 >        tree_->Branch("Ele1EnergyRegressionV0",&fEle1EnergyRegressionV0,"Ele1EnergyRegressionV0/F");
236 >        tree_->Branch("Ele1EnergyRegressionV1",&fEle1EnergyRegressionV1,"Ele1EnergyRegressionV1/F");
237 >        tree_->Branch("Ele1EnergyRegressionV2",&fEle1EnergyRegressionV2,"Ele1EnergyRegressionV2/F");
238 >        tree_->Branch("Ele1Charge",&fEle1Charge,"Ele1Charge/I");
239 >        tree_->Branch("Ele1HZZICHEP2012IDMVA",&fEle1HZZICHEP2012IDMVA,"Ele1HZZICHEP2012IDMVA/F");
240 >        tree_->Branch("Ele1PFIso04",&fEle1PFIso04,"Ele1PFIso04/F");
241 >        tree_->Branch("Ele1R9",&fEle1R9,"Ele1R9/F");
242 >        tree_->Branch("Ele1PassLooseSimpleCuts",&fEle1PassLooseSimpleCuts,"Ele1PassLooseSimpleCuts/O");
243 >        tree_->Branch("Ele1PassMediumSimpleCuts",&fEle1PassMediumSimpleCuts,"Ele1PassMediumSimpleCuts/O");
244 >        tree_->Branch("Ele1PassTightSimpleCuts",&fEle1PassTightSimpleCuts,"Ele1PassTightSimpleCuts/O");
245 >        tree_->Branch("Ele1PassHZZICHEP2012",&fEle1PassHZZICHEP2012,"Ele1PassHZZICHEP2012/O");
246 >        tree_->Branch("Ele2Pt",&fEle2Pt,"Ele2Pt/F");
247 >        tree_->Branch("Ele2Eta",&fEle2Eta,"Ele2Eta/F");
248 >        tree_->Branch("Ele2Phi",&fEle2Phi,"Ele2Phi/F");
249 >        tree_->Branch("Ele2SCEt",&fEle2SCEt,"Ele2SCEt/F");
250 >        tree_->Branch("Ele2SCEta",&fEle2SCEta,"Ele2SCEta/F");
251 >        tree_->Branch("Ele2SCPhi",&fEle2SCPhi,"Ele2SCPhi/F");
252 >        tree_->Branch("Ele2GenPt",&fEle2GenPt,"Ele2GenPt/F");
253 >        tree_->Branch("Ele2EnergyCorrAndSmeared",&fEle2EnergyCorrAndSmeared,"Ele2EnergyCorrAndSmeared/F");
254 >        tree_->Branch("Ele2Energy",&fEle2Energy,"Ele2Energy/F");
255 >        tree_->Branch("Ele2EnergyRegression",&fEle2EnergyRegression,"Ele2EnergyRegression/F");
256 >        tree_->Branch("Ele2EnergyRegressionV0",&fEle2EnergyRegressionV0,"Ele2EnergyRegressionV0/F");
257 >        tree_->Branch("Ele2EnergyRegressionV1",&fEle2EnergyRegressionV1,"Ele2EnergyRegressionV1/F");
258 >        tree_->Branch("Ele2EnergyRegressionV2",&fEle2EnergyRegressionV2,"Ele2EnergyRegressionV2/F");
259 >        tree_->Branch("Ele2Charge",&fEle2Charge,"Ele2Charge/I");
260 >        tree_->Branch("Ele2HZZICHEP2012IDMVA",&fEle2HZZICHEP2012IDMVA,"Ele2HZZICHEP2012IDMVA/F");
261 >        tree_->Branch("Ele2PFIso04",&fEle2PFIso04,"Ele2PFIso04/F");
262 >        tree_->Branch("Ele2R9",&fEle2R9,"Ele2R9/F");
263 >        tree_->Branch("Ele2PassLooseSimpleCuts",&fEle2PassLooseSimpleCuts,"Ele2PassLooseSimpleCuts/O");
264 >        tree_->Branch("Ele2PassMediumSimpleCuts",&fEle2PassMediumSimpleCuts,"Ele2PassMediumSimpleCuts/O");
265 >        tree_->Branch("Ele2PassTightSimpleCuts",&fEle2PassTightSimpleCuts,"Ele2PassTightSimpleCuts/O");
266 >        tree_->Branch("Ele2PassHZZICHEP2012",&fEle2PassHZZICHEP2012,"Ele2PassHZZICHEP2012/O");
267 >
268 >      }
269 >
270 >      // initialze a ZeeEventTree
271 >      void InitTree(UInt_t Type = kCITZeeEvent){
272 >        assert(tree_);
273 >        // don't forget to set pointers to zero before you set address
274 >        // or you will fully appreciate that "ROOT sucks" :)
275 >        InitVariables();
276 >        //Set branch address
277 >        Int_t currentState = gErrorIgnoreLevel;
278 >
279 >        if (Type == kCITZeeEvent) {
280 >          cout << "CITZeeEvent\n";
281 >          tree_->SetBranchAddress("weight",&fWeight);
282 >          tree_->SetBranchAddress("run",&fRunNumber);
283 >          tree_->SetBranchAddress("lumi",&fLumiSectionNumber);
284 >          tree_->SetBranchAddress("event",&fEventNumber);
285 >          tree_->SetBranchAddress("npu",&fNPU);
286 >          tree_->SetBranchAddress("rho",&fRho);
287 >          tree_->SetBranchAddress("vertices",&fNVertices);
288 >          tree_->SetBranchAddress("triggerbits",&fEventTriggerBits);
289 >          tree_->SetBranchAddress("mass",&fMass);
290 >          tree_->SetBranchAddress("Ele1Pt",&fEle1Pt);
291 >          tree_->SetBranchAddress("Ele1Eta",&fEle1Eta);
292 >          tree_->SetBranchAddress("Ele1Phi",&fEle1Phi);
293 >          tree_->SetBranchAddress("Ele1SCEt",&fEle1SCEt);
294 >          tree_->SetBranchAddress("Ele1SCEta",&fEle1SCEta);
295 >          tree_->SetBranchAddress("Ele1SCPhi",&fEle1SCPhi);
296 >          tree_->SetBranchAddress("Ele1GenPt",&fEle1GenPt);
297 >          tree_->SetBranchAddress("Ele1EnergyCorrAndSmeared",&fEle1EnergyCorrAndSmeared);
298 >          tree_->SetBranchAddress("Ele1Energy",&fEle1Energy);
299 >          tree_->SetBranchAddress("Ele1EnergyRegression",&fEle1EnergyRegression);
300 >          tree_->SetBranchAddress("Ele1EnergyRegressionV0",&fEle1EnergyRegressionV0);
301 >          tree_->SetBranchAddress("Ele1EnergyRegressionV1",&fEle1EnergyRegressionV1);
302 >          tree_->SetBranchAddress("Ele1EnergyRegressionV2",&fEle1EnergyRegressionV2);
303 >          tree_->SetBranchAddress("Ele1Charge",&fEle1Charge);
304 >          tree_->SetBranchAddress("Ele1HZZICHEP2012IDMVA",&fEle1HZZICHEP2012IDMVA);
305 >          tree_->SetBranchAddress("Ele1PFIso04",&fEle1PFIso04);
306 >          tree_->SetBranchAddress("Ele1R9",&fEle1R9);
307 >          tree_->SetBranchAddress("Ele1PassLooseSimpleCuts",&fEle1PassLooseSimpleCuts);
308 >          tree_->SetBranchAddress("Ele1PassMediumSimpleCuts",&fEle1PassMediumSimpleCuts);
309 >          tree_->SetBranchAddress("Ele1PassTightSimpleCuts",&fEle1PassTightSimpleCuts);
310 >          tree_->SetBranchAddress("Ele1PassHZZICHEP2012",&fEle1PassHZZICHEP2012);
311 >          tree_->SetBranchAddress("Ele2Pt",&fEle2Pt);
312 >          tree_->SetBranchAddress("Ele2Eta",&fEle2Eta);
313 >          tree_->SetBranchAddress("Ele2Phi",&fEle2Phi);
314 >          tree_->SetBranchAddress("Ele2SCEt",&fEle2SCEt);
315 >          tree_->SetBranchAddress("Ele2SCEta",&fEle2SCEta);
316 >          tree_->SetBranchAddress("Ele2SCPhi",&fEle2SCPhi);
317 >          tree_->SetBranchAddress("Ele2GenPt",&fEle2GenPt);
318 >          tree_->SetBranchAddress("Ele2EnergyCorrAndSmeared",&fEle2EnergyCorrAndSmeared);
319 >          tree_->SetBranchAddress("Ele2Energy",&fEle2Energy);
320 >          tree_->SetBranchAddress("Ele2EnergyRegression",&fEle2EnergyRegression);
321 >          tree_->SetBranchAddress("Ele2EnergyRegressionV0",&fEle2EnergyRegressionV0);
322 >          tree_->SetBranchAddress("Ele2EnergyRegressionV1",&fEle2EnergyRegressionV1);
323 >          tree_->SetBranchAddress("Ele2EnergyRegressionV2",&fEle2EnergyRegressionV2);
324 >          tree_->SetBranchAddress("Ele2Charge",&fEle2Charge);
325 >          tree_->SetBranchAddress("Ele2HZZICHEP2012IDMVA",&fEle2HZZICHEP2012IDMVA);
326 >          tree_->SetBranchAddress("Ele2PFIso04",&fEle2PFIso04);
327 >          tree_->SetBranchAddress("Ele2R9",&fEle2R9);
328 >          tree_->SetBranchAddress("Ele2PassLooseSimpleCuts",&fEle2PassLooseSimpleCuts);
329 >          tree_->SetBranchAddress("Ele2PassMediumSimpleCuts",&fEle2PassMediumSimpleCuts);
330 >          tree_->SetBranchAddress("Ele2PassTightSimpleCuts",&fEle2PassTightSimpleCuts);
331 >          tree_->SetBranchAddress("Ele2PassHZZICHEP2012",&fEle2PassHZZICHEP2012);
332 >        } else if (Type == kHggFutyanZeeDataEvent || Type == kHggFutyanZeeMCEvent  ) {
333 >          cout << "other type\n";
334 >          //************************************************************
335 >          //The commented out branches don't exist in this version
336 >          //************************************************************
337 >
338 >          tree_->SetBranchAddress("weight",&fWeight);
339 >          tree_->SetBranchAddress("run",&fRunNumber_int);
340 >          tree_->SetBranchAddress("lumi",&fLumiSectionNumber_int);
341 >          tree_->SetBranchAddress("event",&fEventNumber_int);
342 >          //tree_->SetBranchAddress("rho",&fRho);
343 >          tree_->SetBranchAddress("nvtx",&fNVertices_int);
344 >          //tree_->SetBranchAddress("triggerbits",&fEventTriggerBits);
345 >          tree_->SetBranchAddress("dipho_mass",&fMass);
346 >          tree_->SetBranchAddress("pho1_pt",&dEle1Pt);
347 >          tree_->SetBranchAddress("pho1_eta",&dEle1Eta);
348 >          tree_->SetBranchAddress("pho1_phi",&dEle1Phi);
349 >          //tree_->SetBranchAddress("Ele1SCEt",&fEle1SCEt);
350 >          tree_->SetBranchAddress("pho1_sceta",&fEle1SCEta);
351 >          tree_->SetBranchAddress("pho1_scphi",&fEle1SCPhi);
352 >          //tree_->SetBranchAddress("Ele1GenPt",&fEle1GenPt);
353 >          tree_->SetBranchAddress("pho1_energy",&dEle1EnergyCorrAndSmeared);
354 >          tree_->SetBranchAddress("pho1_energy_noregr",&fEle1Energy);
355 >          tree_->SetBranchAddress("pho1_energy_regr",&fEle1EnergyRegression);
356 >          //tree_->SetBranchAddress("Ele1Charge",&fEle1Charge);
357 >          //tree_->SetBranchAddress("Ele1HZZICHEP2012IDMVA",&fEle1HZZICHEP2012IDMVA);
358 >          //tree_->SetBranchAddress("Ele1PFIso04",&fEle1PFIso04);
359 >          tree_->SetBranchAddress("pho1_r9",&fEle1R9);
360 >          //tree_->SetBranchAddress("Ele1PassLooseSimpleCuts",&fEle1PassLooseSimpleCuts);
361 >          //tree_->SetBranchAddress("Ele1PassMediumSimpleCuts",&fEle1PassMediumSimpleCuts);
362 >          //tree_->SetBranchAddress("Ele1PassTightSimpleCuts",&fEle1PassTightSimpleCuts);
363 >          //tree_->SetBranchAddress("Ele1PassHZZICHEP2012",&fEle1PassHZZICHEP2012);
364 >
365 >          tree_->SetBranchAddress("pho2_pt",&dEle2Pt);
366 >          tree_->SetBranchAddress("pho2_eta",&dEle2Eta);
367 >          tree_->SetBranchAddress("pho2_phi",&dEle2Phi);
368 >          //tree_->SetBranchAddress("Ele2SCEt",&fEle2SCEt);
369 >          tree_->SetBranchAddress("pho2_sceta",&fEle2SCEta);
370 >          tree_->SetBranchAddress("pho2_scphi",&fEle2SCPhi);
371 >          //tree_->SetBranchAddress("Ele2GenPt",&fEle2GenPt);
372 >          tree_->SetBranchAddress("pho2_energy",&dEle2EnergyCorrAndSmeared);
373 >          tree_->SetBranchAddress("pho2_energy_noregr",&fEle2Energy);
374 >          tree_->SetBranchAddress("pho2_energy_regr",&fEle2EnergyRegression);
375 >          //tree_->SetBranchAddress("Ele2Charge",&fEle2Charge);
376 >          //tree_->SetBranchAddress("Ele2HZZICHEP2012IDMVA",&fEle2HZZICHEP2012IDMVA);
377 >          //tree_->SetBranchAddress("Ele2PFIso04",&fEle2PFIso04);
378 >          tree_->SetBranchAddress("pho2_r9",&fEle2R9);
379 >          //tree_->SetBranchAddress("Ele2PassLooseSimpleCuts",&fEle2PassLooseSimpleCuts);
380 >          //tree_->SetBranchAddress("Ele2PassMediumSimpleCuts",&fEle2PassMediumSimpleCuts);
381 >          //tree_->SetBranchAddress("Ele2PassTightSimpleCuts",&fEle2PassTightSimpleCuts);
382 >          //tree_->SetBranchAddress("Ele2PassHZZICHEP2012",&fEle2PassHZZICHEP2012);
383 >        } else {
384 >          cout << "Warning: Type " <<  Type << " is not supported \n";
385 >        }
386 >
387 >        gErrorIgnoreLevel = currentState;
388 >      }
389 >
390 >      Float_t Ele1Pt() {
391 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return dEle1Pt;
392 >        else return fEle1Pt;
393 >      }
394 >      Float_t Ele1Eta() {
395 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return dEle1Eta;
396 >        else return fEle1Eta;
397 >      }
398 >      Float_t Ele1Phi() {
399 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return dEle1Phi;
400 >        else return fEle1Phi;
401 >      }
402 >      Float_t Ele1EnergyCorrAndSmeared() {
403 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return dEle1EnergyCorrAndSmeared;
404 >        else return fEle1EnergyCorrAndSmeared;
405 >      }
406 >      Float_t Ele2Pt() {
407 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return dEle2Pt;
408 >        else return fEle2Pt;
409 >      }
410 >      Float_t Ele2Eta() {
411 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return dEle2Eta;
412 >        else return fEle2Eta;
413 >      }
414 >      Float_t Ele2Phi() {
415 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return dEle2Phi;
416 >        else return fEle2Phi;
417 >      }
418 >      Float_t Ele2EnergyCorrAndSmeared() {
419 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return dEle2EnergyCorrAndSmeared;
420 >        else return fEle2EnergyCorrAndSmeared;
421 >      }
422 >      UInt_t RunNumber() {
423 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return fRunNumber_int;
424 >        else return fRunNumber;
425 >      }
426 >      UInt_t LumiSectionNumber() {
427 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return fLumiSectionNumber_int;
428 >        else return fLumiSectionNumber;
429 >      }
430 >      UInt_t EventNumber() {
431 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return fEventNumber_int;
432 >        else return fEventNumber;
433 >      }
434 >      UInt_t NVertices() {
435 >        if (fTreeType == kHggFutyanZeeDataEvent || fTreeType == kHggFutyanZeeMCEvent) return fNVertices_int;
436 >        else return fNVertices;
437 >      }
438  
193 };
439  
440 +  };
441 + }
442  
443  
444   #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines