ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitPhysics/Validation/src/JetValidationMod.cc
Revision: 1.3
Committed: Tue Apr 7 15:37:10 2009 UTC (16 years ago) by loizides
Content type: text/plain
Branch: MAIN
CVS Tags: Mit_009a, Mit_009
Changes since 1.2: +129 -72 lines
Log Message:
Cleanup

File Contents

# User Rev Content
1 loizides 1.3 // $Id: JetValidationMod.cc,v 1.2 2008/12/04 13:53:35 loizides Exp $
2 loizides 1.1
3     #include "MitPhysics/Validation/interface/JetValidationMod.h"
4     #include <TH1D.h>
5     #include <TH2D.h>
6     #include <TH3D.h>
7     #include "MitAna/DataTree/interface/Names.h"
8     #include "MitAna/DataCont/interface/ObjArray.h"
9     #include "MitCommon/MathTools/interface/MathUtils.h"
10     #include <map>
11    
12     using namespace mithep;
13    
14     ClassImp(mithep::JetValidationMod)
15    
16     //--------------------------------------------------------------------------------------------------
17     JetValidationMod::JetValidationMod(const char *name, const char *title) :
18     BaseMod(name,title),
19     fPrintDebug(false),
20     fIC5GenJetName("IC5GenJets"),
21     fSC5GenJetName("SC5GenJets"),
22     fIC5JetName(Names::gkCaloJetBrn),
23     fSC5JetName("SisCone5Jets"),
24     fIC5Jets(0),
25     fSC5Jets(0),
26     fIC5GenJets(0),
27 loizides 1.2 fSC5GenJets(0)
28 loizides 1.1 {
29     // Constructor.
30     }
31    
32     //--------------------------------------------------------------------------------------------------
33     void JetValidationMod::Process()
34     {
35     // Process entries of the tree.
36    
37     //************************************************************************************************
38     //
39     // For IterativeCone 0.5 Jets
40     //
41     //************************************************************************************************
42    
43     ObjArray<Jet> *GoodIC5Jets = new ObjArray<Jet>;
44     LoadBranch(fIC5JetName);
45     for (UInt_t i=0; i<fIC5Jets->GetEntries(); ++i) {
46     if(fabs(fIC5Jets->At(i)->Eta()) >= 5.0) continue; // minimum eta requirement
47     if(fIC5Jets->At(i)->Pt() <= 5) continue; // minimum Pt requirement
48     GoodIC5Jets->Add(fIC5Jets->At(i));
49     fIC5CaloJetsPt->Fill(fIC5Jets->At(i)->Pt());
50     fIC5CaloJetsEta->Fill(fIC5Jets->At(i)->Eta());
51     }
52     fIC5NCaloJets->Fill(GoodIC5Jets->GetEntries());
53    
54     ObjArray<GenJet> *GoodIC5GenJets = new ObjArray<GenJet>;
55     LoadBranch(fIC5GenJetName);
56     for (UInt_t i=0; i<fIC5GenJets->GetEntries(); ++i) {
57     if(fabs(fIC5GenJets->At(i)->Eta()) >= 5.0) continue; // minimum eta requirement
58     if(fIC5GenJets->At(i)->Pt() <= 5) continue; // minimum Pt requirement
59     GoodIC5GenJets->Add(fIC5GenJets->At(i));
60     }
61    
62     std::map <GenJet*, Jet*> IC5GenJetToIC5JetMap;
63     for (UInt_t i=0; i<GoodIC5GenJets->GetEntries(); ++i) {
64 loizides 1.3 Double_t minDR = 5000;
65 loizides 1.1 int closestMatchIndex = -1;
66     for (UInt_t j=0; j<GoodIC5Jets->GetEntries(); j++) {
67 loizides 1.3 Double_t tempDR = MathUtils::DeltaR(GoodIC5GenJets->At(i)->Mom(), GoodIC5Jets->At(j)->Mom());
68 loizides 1.1 if (tempDR < minDR) {
69     closestMatchIndex = j;
70     minDR = tempDR;
71     }
72     }
73     if (closestMatchIndex > -1)
74 loizides 1.3 if (fPrintDebug) cerr << "GoodIC5GenJets->At(i) " << GoodIC5GenJets->At(i)->Pt() << " "
75     << GoodIC5GenJets->At(i)->Eta() << " " << GoodIC5GenJets->At(i)->Phi()
76     << " GoodIC5Jets->At(" << closestMatchIndex << ") "
77     << GoodIC5Jets->At(closestMatchIndex)->Pt() << " "
78     << GoodIC5Jets->At(closestMatchIndex)->Eta() << " "
79     << GoodIC5Jets->At(closestMatchIndex)->Phi() << " DR = "
80     << minDR << endl;
81 loizides 1.1 if (minDR < 0.5)
82     {
83     IC5GenJetToIC5JetMap[GoodIC5GenJets->At(i)] = GoodIC5Jets->At(closestMatchIndex);
84     }
85     }
86    
87     std::map <Jet*, GenJet*> IC5JetToIC5GenJetMap;
88     for (UInt_t i=0; i<GoodIC5Jets->GetEntries(); ++i) {
89 loizides 1.3 Double_t minDR = 5000;
90 loizides 1.1 int closestMatchIndex = -1;
91     for (UInt_t j=0; j<GoodIC5GenJets->GetEntries(); j++) {
92 loizides 1.3 Double_t tempDR = MathUtils::DeltaR(GoodIC5Jets->At(i)->Mom(), GoodIC5GenJets->At(j)->Mom());
93 loizides 1.1 if (tempDR < minDR) {
94     closestMatchIndex = j;
95     minDR = tempDR;
96     }
97     }
98     if (minDR < 0.5)
99     IC5JetToIC5GenJetMap[GoodIC5Jets->At(i)] = GoodIC5GenJets->At(closestMatchIndex);
100     }
101    
102     for (UInt_t i=0; i<GoodIC5GenJets->GetEntries(); i++) {
103    
104     fIC5NGenJetsVsGenJetPt->Fill(GoodIC5GenJets->At(i)->Pt());
105     fIC5NGenJetsVsGenJetEta->Fill(GoodIC5GenJets->At(i)->Eta());
106     if (GoodIC5GenJets->At(i)->Pt() > 20.0 && GoodIC5GenJets->At(i)->Pt() < 30.0)
107     fIC5NGenJetsVsGenJetEta_Pt20To30->Fill(GoodIC5GenJets->At(i)->Eta());
108     if (GoodIC5GenJets->At(i)->Pt() > 30.0 && GoodIC5GenJets->At(i)->Pt() < 40.0)
109     fIC5NGenJetsVsGenJetEta_Pt30To40->Fill(GoodIC5GenJets->At(i)->Eta());
110     if (GoodIC5GenJets->At(i)->Pt() > 60.0 && GoodIC5GenJets->At(i)->Pt() < 80.0)
111     fIC5NGenJetsVsGenJetEta_Pt60To80->Fill(GoodIC5GenJets->At(i)->Eta());
112    
113     map<GenJet*, Jet*>::iterator iter =
114     IC5GenJetToIC5JetMap.find(GoodIC5GenJets->At(i));
115     if (iter != IC5GenJetToIC5JetMap.end()) {
116 loizides 1.3 Double_t dR = MathUtils::DeltaR(GoodIC5GenJets->At(i)->Mom(), iter->second->Mom());
117 loizides 1.1
118     fIC5GenJetRecoJetDeltaR->Fill(dR);
119     fIC5GenJetRecoJetDeltaEta->Fill(fabs(GoodIC5GenJets->At(i)->Eta() - iter->second->Eta()));
120     fIC5GenJetRecoJetDeltaPhi->Fill(MathUtils::DeltaPhi(GoodIC5GenJets->At(i)->Phi(),iter->second->Phi()));
121    
122     if (fabs(iter->second->Eta()) <= 1.4)
123     fIC5JetResponseVsGenJetPtInBarrel->Fill(iter->second->Et()/GoodIC5GenJets->At(i)->Et(),GoodIC5GenJets->At(i)->Pt());
124     else if (fabs(iter->second->Eta()) <= 3.0)
125     fIC5JetResponseVsGenJetPtInEndcap->Fill(iter->second->Et()/GoodIC5GenJets->At(i)->Et(),GoodIC5GenJets->At(i)->Pt());
126     else if (fabs(iter->second->Eta()) <= 5.0)
127     fIC5JetResponseVsGenJetPtForward->Fill(iter->second->Et()/GoodIC5GenJets->At(i)->Et(),GoodIC5GenJets->At(i)->Pt());
128    
129     //avoid the low pt region
130     if (iter->second->Pt() > 30)
131     fIC5JetResponseVsCaloJetEta->Fill(iter->second->Et()/GoodIC5GenJets->At(i)->Et(),iter->second->Eta());
132    
133     if (fabs(iter->second->Eta()) <= 3.0) {
134     fIC5CentralGenJetRecoJetDeltaR->Fill(dR);
135     } else if (fabs(iter->second->Eta()) <= 5.0) {
136     fIC5ForwardGenJetRecoJetDeltaR->Fill(dR);
137     }
138    
139     //Number of Matched CaloJet vs Genjet pt and eta
140     fIC5NMatchedCaloJetsVsGenJetPt->Fill(GoodIC5GenJets->At(i)->Pt());
141     fIC5NMatchedCaloJetsVsGenJetEta->Fill(GoodIC5GenJets->At(i)->Eta());
142     if (GoodIC5GenJets->At(i)->Pt() > 20.0 && GoodIC5GenJets->At(i)->Pt() < 30.0)
143     fIC5NMatchedCaloJetsVsGenJetEta_Pt20To30->Fill(GoodIC5GenJets->At(i)->Eta());
144     if (GoodIC5GenJets->At(i)->Pt() > 30.0 && GoodIC5GenJets->At(i)->Pt() < 40.0)
145     fIC5NMatchedCaloJetsVsGenJetEta_Pt30To40->Fill(GoodIC5GenJets->At(i)->Eta());
146     if (GoodIC5GenJets->At(i)->Pt() > 60.0 && GoodIC5GenJets->At(i)->Pt() < 80.0)
147     fIC5NMatchedCaloJetsVsGenJetEta_Pt60To80->Fill(GoodIC5GenJets->At(i)->Eta());
148    
149     fIC5CorrPtCaloJetsOverGenJetsPtVsGenJetPt->Fill(iter->second->Pt() * iter->second->L2RelativeCorrectionScale() * iter->second->L3AbsoluteCorrectionScale() / GoodIC5GenJets->At(i)->Pt(), GoodIC5GenJets->At(i)->Pt());
150     }
151     }
152    
153     for (UInt_t i=0; i<GoodIC5Jets->GetEntries(); i++) {
154     map<Jet*, GenJet*>::iterator iter =
155     IC5JetToIC5GenJetMap.find(GoodIC5Jets->At(i));
156     //unmatched ones
157     if (iter == IC5JetToIC5GenJetMap.end()) {
158     fIC5NUnmatchedCaloJetsVsCorrectedCaloJetPt->Fill(GoodIC5Jets->At(i)->Pt() * GoodIC5Jets->At(i)->L2RelativeCorrectionScale() * GoodIC5Jets->At(i)->L3AbsoluteCorrectionScale());
159     fIC5NUnmatchedCalojetsVsCorrectedCaloJetEta->Fill(GoodIC5Jets->At(i)->Eta());
160     }
161     }
162    
163    
164     //************************************************************************************************
165     //
166     // For SisCone 0.5 Jets
167     //
168     //************************************************************************************************
169    
170     ObjArray<Jet> *GoodSC5Jets = new ObjArray<Jet>;
171     LoadBranch(fSC5JetName);
172     for (UInt_t i=0; i<fSC5Jets->GetEntries(); ++i) {
173     if(fabs(fSC5Jets->At(i)->Eta()) >= 5.0) continue; // minimum eta requirement
174     if(fSC5Jets->At(i)->Pt() <= 5) continue; // minimum Pt requirement
175     GoodSC5Jets->Add(fSC5Jets->At(i));
176     fSC5CaloJetsPt->Fill(fSC5Jets->At(i)->Pt());
177     fSC5CaloJetsEta->Fill(fSC5Jets->At(i)->Eta());
178     }
179     fSC5NCaloJets->Fill(GoodSC5Jets->GetEntries());
180    
181     ObjArray<GenJet> *GoodSC5GenJets = new ObjArray<GenJet>;
182     LoadBranch(fSC5GenJetName);
183     for (UInt_t i=0; i<fSC5GenJets->GetEntries(); ++i) {
184     if(fabs(fSC5GenJets->At(i)->Eta()) >= 5.0) continue; // minimum eta requirement
185     if(fSC5GenJets->At(i)->Pt() <= 5) continue; // minimum Pt requirement
186     GoodSC5GenJets->Add(fSC5GenJets->At(i));
187     }
188    
189     std::map <GenJet*, Jet*> SC5GenJetToSC5JetMap;
190     for (UInt_t i=0; i<GoodSC5GenJets->GetEntries(); ++i) {
191 loizides 1.3 Double_t minDR = 5000;
192 loizides 1.1 int closestMatchIndex = -1;
193     for (UInt_t j=0; j<GoodSC5Jets->GetEntries(); j++) {
194 loizides 1.3 Double_t tempDR = MathUtils::DeltaR(GoodSC5GenJets->At(i)->Mom(), GoodSC5Jets->At(j)->Mom());
195 loizides 1.1 if (tempDR < minDR) {
196     closestMatchIndex = j;
197     minDR = tempDR;
198     }
199     }
200     if (closestMatchIndex > -1)
201 loizides 1.3 if (fPrintDebug) cerr << "GoodSC5GenJets->At(i) " << GoodSC5GenJets->At(i)->Pt() << " "
202     << GoodSC5GenJets->At(i)->Eta() << " " << GoodSC5GenJets->At(i)->Phi()
203     << " GoodSC5Jets->At(" << closestMatchIndex << ") "
204     << GoodSC5Jets->At(closestMatchIndex)->Pt() << " "
205     << GoodSC5Jets->At(closestMatchIndex)->Eta() << " "
206     << GoodSC5Jets->At(closestMatchIndex)->Phi() << " DR = "
207     << minDR << endl;
208 loizides 1.1 if (minDR < 0.5)
209     {
210     SC5GenJetToSC5JetMap[GoodSC5GenJets->At(i)] = GoodSC5Jets->At(closestMatchIndex);
211     }
212     }
213     std::map <Jet*, GenJet*> SC5JetToSC5GenJetMap;
214     for (UInt_t i=0; i<GoodSC5Jets->GetEntries(); ++i) {
215 loizides 1.3 Double_t minDR = 5000;
216 loizides 1.1 int closestMatchIndex = -1;
217     for (UInt_t j=0; j<GoodSC5GenJets->GetEntries(); j++) {
218 loizides 1.3 Double_t tempDR = MathUtils::DeltaR(GoodSC5Jets->At(i)->Mom(), GoodSC5GenJets->At(j)->Mom());
219 loizides 1.1 if (tempDR < minDR) {
220     closestMatchIndex = j;
221     minDR = tempDR;
222     }
223     }
224     if (minDR < 0.5)
225     SC5JetToSC5GenJetMap[GoodSC5Jets->At(i)] = GoodSC5GenJets->At(closestMatchIndex);
226     }
227     for (UInt_t i=0; i<GoodSC5GenJets->GetEntries(); i++) {
228    
229     fSC5NGenJetsVsGenJetPt->Fill(GoodSC5GenJets->At(i)->Pt());
230     fSC5NGenJetsVsGenJetEta->Fill(GoodSC5GenJets->At(i)->Eta());
231     if (GoodSC5GenJets->At(i)->Pt() > 20.0 && GoodSC5GenJets->At(i)->Pt() < 30.0)
232     fSC5NGenJetsVsGenJetEta_Pt20To30->Fill(GoodSC5GenJets->At(i)->Eta());
233     if (GoodSC5GenJets->At(i)->Pt() > 30.0 && GoodSC5GenJets->At(i)->Pt() < 40.0)
234     fSC5NGenJetsVsGenJetEta_Pt30To40->Fill(GoodSC5GenJets->At(i)->Eta());
235     if (GoodSC5GenJets->At(i)->Pt() > 60.0 && GoodSC5GenJets->At(i)->Pt() < 80.0)
236     fSC5NGenJetsVsGenJetEta_Pt60To80->Fill(GoodSC5GenJets->At(i)->Eta());
237    
238     map<GenJet*, Jet*>::iterator iter =
239     SC5GenJetToSC5JetMap.find(GoodSC5GenJets->At(i));
240     if (iter != SC5GenJetToSC5JetMap.end()) {
241 loizides 1.3 Double_t dR = MathUtils::DeltaR(GoodSC5GenJets->At(i)->Mom(), iter->second->Mom());
242 loizides 1.1
243     fSC5GenJetRecoJetDeltaR->Fill(dR);
244     fSC5GenJetRecoJetDeltaEta->Fill(fabs(GoodSC5GenJets->At(i)->Eta() - iter->second->Eta()));
245 loizides 1.3 fSC5GenJetRecoJetDeltaPhi->Fill(MathUtils::DeltaPhi(GoodSC5GenJets->At(i)->Phi(),
246     iter->second->Phi()));
247 loizides 1.1
248     if (fabs(iter->second->Eta()) <= 1.4)
249 loizides 1.3 fSC5JetResponseVsGenJetPtInBarrel->Fill(iter->second->Et()/GoodSC5GenJets->At(i)->Et(),
250     GoodSC5GenJets->At(i)->Pt());
251 loizides 1.1 else if (fabs(iter->second->Eta()) <= 3.0)
252 loizides 1.3 fSC5JetResponseVsGenJetPtInEndcap->Fill(iter->second->Et()/GoodSC5GenJets->At(i)->Et(),
253     GoodSC5GenJets->At(i)->Pt());
254 loizides 1.1 else if (fabs(iter->second->Eta()) <= 5.0)
255 loizides 1.3 fSC5JetResponseVsGenJetPtForward->Fill(iter->second->Et()/GoodSC5GenJets->At(i)->Et(),
256     GoodSC5GenJets->At(i)->Pt());
257 loizides 1.1 //avoid the low pt region
258     if (iter->second->Pt() > 30)
259 loizides 1.3 fSC5JetResponseVsCaloJetEta->Fill(iter->second->Et()/GoodSC5GenJets->At(i)->Et(),
260     iter->second->Eta());
261 loizides 1.1
262     if (fabs(iter->second->Eta()) <= 3.0) {
263     fSC5CentralGenJetRecoJetDeltaR->Fill(dR);
264     } else if (fabs(iter->second->Eta()) <= 5.0) {
265     fSC5ForwardGenJetRecoJetDeltaR->Fill(dR);
266     }
267    
268     //Number of Matched CaloJet vs Genjet pt and eta
269     fSC5NMatchedCaloJetsVsGenJetPt->Fill(GoodSC5GenJets->At(i)->Pt());
270     fSC5NMatchedCaloJetsVsGenJetEta->Fill(GoodSC5GenJets->At(i)->Eta());
271     if (GoodSC5GenJets->At(i)->Pt() > 20.0 && GoodSC5GenJets->At(i)->Pt() < 30.0)
272     fSC5NMatchedCaloJetsVsGenJetEta_Pt20To30->Fill(GoodSC5GenJets->At(i)->Eta());
273     if (GoodSC5GenJets->At(i)->Pt() > 30.0 && GoodSC5GenJets->At(i)->Pt() < 40.0)
274     fSC5NMatchedCaloJetsVsGenJetEta_Pt30To40->Fill(GoodSC5GenJets->At(i)->Eta());
275     if (GoodSC5GenJets->At(i)->Pt() > 60.0 && GoodSC5GenJets->At(i)->Pt() < 80.0)
276     fSC5NMatchedCaloJetsVsGenJetEta_Pt60To80->Fill(GoodSC5GenJets->At(i)->Eta());
277 loizides 1.3 fSC5CorrPtCaloJetsOverGenJetsPtVsGenJetPt->Fill(
278     iter->second->Pt() * iter->second->L2RelativeCorrectionScale() *
279     iter->second->L3AbsoluteCorrectionScale() / GoodSC5GenJets->At(i)->Pt(),
280     GoodSC5GenJets->At(i)->Pt());
281 loizides 1.1 }
282     }
283    
284     for (UInt_t i=0; i<GoodSC5Jets->GetEntries(); i++) {
285     map<Jet*, GenJet*>::iterator iter =
286     SC5JetToSC5GenJetMap.find(GoodSC5Jets->At(i));
287     //unmatched ones
288     if (iter == SC5JetToSC5GenJetMap.end()) {
289 loizides 1.3 fSC5NUnmatchedCaloJetsVsCorrectedCaloJetPt->Fill(
290     GoodSC5Jets->At(i)->Pt() * GoodSC5Jets->At(i)->L2RelativeCorrectionScale() *
291     GoodSC5Jets->At(i)->L3AbsoluteCorrectionScale());
292 loizides 1.1 fSC5NUnmatchedCalojetsVsCorrectedCaloJetEta->Fill(GoodSC5Jets->At(i)->Eta());
293     }
294     }
295    
296     }
297    
298     //--------------------------------------------------------------------------------------------------
299     void JetValidationMod::SlaveBegin()
300     {
301     // Run startup code on the computer (slave) doing the actual analysis. Here,
302     // we typically initialize histograms and other analysis objects and request
303     // branches. For this module, we request a branch of the MitTree.
304    
305     ReqBranch(fIC5GenJetName, fIC5GenJets);
306     ReqBranch(fSC5GenJetName, fSC5GenJets);
307     ReqBranch(fIC5JetName, fIC5Jets);
308     ReqBranch(fSC5JetName, fSC5Jets);
309    
310 loizides 1.2 fIC5GenJetRecoJetDeltaR =
311     new TH1D("hIC5GenJetRecoJetDeltaR",";IC5GenJetRecoJetDeltaR;#",100,0.,1.0);
312     fIC5GenJetRecoJetDeltaEta =
313     new TH1D("hIC5GenJetRecoJetDeltaEta",";IC5GenJetRecoJetDeltaEta;#",100,0.,0.5);
314     fIC5GenJetRecoJetDeltaPhi =
315     new TH1D("hIC5GenJetRecoJetDeltaPhi",";IC5GenJetRecoJetDeltaPhi;#",100,0.,0.5);
316 loizides 1.1
317 loizides 1.3 fIC5JetResponseVsGenJetPtInBarrel = new TH2D("hIC5JetResponseVsGenJetPtInBarrel",
318     ";IC5JetResponseVsGenJetPtInBarrel;#",
319     500,0.,5.0,5000,0,5000);
320     fIC5JetResponseVsGenJetPtInEndcap = new TH2D("hIC5JetResponseVsGenJetPtInEndcap",
321     ";IC5JetResponseVsGenJetPtInEndcap;#",
322     500,0.,5.0,5000,0,5000);
323     fIC5JetResponseVsGenJetPtForward = new TH2D("hIC5JetResponseVsGenJetPtForward",
324     ";IC5JetResponseVsGenJetPtForward;#",
325     500,0.,5.0,5000,0,5000);
326     fIC5JetResponseVsCaloJetEta = new TH2D("hIC5JetResponseVsCaloJetEta",
327     ";IC5JetResponseVsCaloJetEta;#",500,0.,5.0,100,-5,5);
328 loizides 1.2 fIC5CentralGenJetRecoJetDeltaR =
329     new TH1D("hIC5CentralGenJetRecoJetDeltaR",";IC5CentralGenJetRecoJetDeltaR;#",100,0.,1.0);
330 loizides 1.3 fIC5ForwardGenJetRecoJetDeltaR = new TH1D("hIC5ForwardGenJetRecoJetDeltaR",
331     ";IC5ForwardGenJetRecoJetDeltaR;#",100,0.,1.0);
332     fIC5NMatchedCaloJetsVsGenJetPt = new TH1D("hIC5NMatchedCaloJetsVsGenJetPt",
333     ";IC5GenJetPt;#",5000,0.,5000);
334     fIC5NMatchedCaloJetsVsGenJetEta = new TH1D("hIC5NMatchedCaloJetsVsGenJetEta",
335     ";IC5GenJetEta;#",100,-5.0,5.0);
336     fIC5NMatchedCaloJetsVsGenJetEta_Pt20To30 = new TH1D("hIC5NMatchedCaloJetsVsGenJetEta_Pt20To30",
337     ";IC5GenJetEta;#",100,-5.0,5.0);
338     fIC5NMatchedCaloJetsVsGenJetEta_Pt30To40 = new TH1D("hIC5NMatchedCaloJetsVsGenJetEta_Pt30To40",
339     ";IC5GenJetEta;#",100,-5.0,5.0);
340     fIC5NMatchedCaloJetsVsGenJetEta_Pt60To80 = new TH1D("hIC5NMatchedCaloJetsVsGenJetEta_Pt60To80",
341     ";IC5GenJetEta;#",100,-5.0,5.0);
342 loizides 1.1 fIC5NGenJetsVsGenJetPt = new TH1D("hIC5NGenJetsVsGenJetPt",";IC5GenJetPt;#",5000,0.,5000);
343     fIC5NGenJetsVsGenJetEta = new TH1D("hIC5NGenJetsVsGenJetEta",";IC5GenJetEta;#",100,-5.,5.0);
344 loizides 1.3 fIC5NGenJetsVsGenJetEta_Pt20To30 = new TH1D("hIC5NGenJetsVsGenJetEta_Pt20To30",
345     ";IC5GenJetEta;#",100,-5.,5.0);
346     fIC5NGenJetsVsGenJetEta_Pt30To40 = new TH1D("hIC5NGenJetsVsGenJetEta_Pt30To40",
347     ";IC5GenJetEta;#",100,-5.,5.0);
348     fIC5NGenJetsVsGenJetEta_Pt60To80 = new TH1D("hIC5NGenJetsVsGenJetEta_Pt60To80",
349     ";IC5GenJetEta;#",100,-5.,5.0);
350 loizides 1.1 fIC5CaloJetsPt = new TH1D("hIC5CaloJetsPt",";IC5CaloJetPt;#",5000,0.,5000);
351     fIC5CaloJetsEta = new TH1D("hIC5CaloJetsEta",";IC5CaloJetEta;#",100,-5.0,5.0);
352 loizides 1.3 fIC5NUnmatchedCaloJetsVsCorrectedCaloJetPt =
353     new TH1D("hIC5NUnmatchedCaloJetsVsCorrectedCaloJetPt",
354     ";IC5CorrectedCaloJetPt;#",5000,0.0,5000.0);
355     fIC5NUnmatchedCalojetsVsCorrectedCaloJetEta =
356     new TH1D("hIC5NUnmatchedCalojetsVsCorrectedCaloJetEta",
357     ";IC5CorrectedCaloJetEta;#",100,-5.0,5.0);
358     fIC5CorrPtCaloJetsOverGenJetsPtVsGenJetPt =
359     new TH2D("hIC5CorrPtCaloJetsOverGenJetsPtVsGenJetPt",
360     ";IC5GenJetPt;#",1000,0,1000.0, 100,0.0,5.0);
361 loizides 1.1 fIC5NCaloJets = new TH1D("hIC5NCaloJets",";IC5NCaloJets;#",100,0.,15);
362 loizides 1.3 fSC5GenJetRecoJetDeltaR = new TH1D("hSC5GenJetRecoJetDeltaR",
363     ";SC5GenJetRecoJetDeltaR;#",100,0.,1.0);
364     fSC5GenJetRecoJetDeltaEta = new TH1D("hSC5GenJetRecoJetDeltaEta",
365     ";SC5GenJetRecoJetDeltaEta;#",100,0.,0.5);
366     fSC5GenJetRecoJetDeltaPhi = new TH1D("hSC5GenJetRecoJetDeltaPhi",
367     ";SC5GenJetRecoJetDeltaPhi;#",100,0.,0.5);
368     fSC5JetResponseVsGenJetPtInBarrel =
369     new TH2D("hSC5JetResponseVsGenJetPtInBarrel",
370     ";SC5JetResponseVsGenJetPtInBarrel;#",500,0.,5.0,5000,0,5000);
371     fSC5JetResponseVsGenJetPtInEndcap =
372     new TH2D("hSC5JetResponseVsGenJetPtInEndcap",
373     ";SC5JetResponseVsGenJetPtInEndcap;#",500,0.,5.0,5000,0,5000);
374     fSC5JetResponseVsGenJetPtForward =
375     new TH2D("hSC5JetResponseVsGenJetPtForward",
376     ";SC5JetResponseVsGenJetPtForward;#",500,0.,5.0,5000,0,5000);
377    
378     fSC5JetResponseVsCaloJetEta = new TH2D("hSC5JetResponseVsCaloJetEta",
379     ";SC5JetResponseVsCaloJetEta;#",500,0.,5.0,100,-5,5);
380     fSC5CentralGenJetRecoJetDeltaR =
381     new TH1D("hSC5CentralGenJetRecoJetDeltaR",
382     ";SC5CentralGenJetRecoJetDeltaR;#",100,0.,1.0);
383     fSC5ForwardGenJetRecoJetDeltaR =
384     new TH1D("hSC5ForwardGenJetRecoJetDeltaR",
385     ";SC5ForwardGenJetRecoJetDeltaR;#",100,0.,1.0);
386     fSC5NMatchedCaloJetsVsGenJetPt =
387     new TH1D("hSC5NMatchedCaloJetsVsGenJetPt",";SC5GenJetPt;#",5000,0.,5000);
388     fSC5NMatchedCaloJetsVsGenJetEta =
389     new TH1D("hSC5NMatchedCaloJetsVsGenJetEta",";SC5GenJetEta;#",100,-5.0,5.0);
390     fSC5NMatchedCaloJetsVsGenJetEta_Pt20To30 =
391     new TH1D("hSC5NMatchedCaloJetsVsGenJetEta_Pt20To30",";SC5GenJetEta;#",100,-5.0,5.0);
392     fSC5NMatchedCaloJetsVsGenJetEta_Pt30To40 =
393     new TH1D("hSC5NMatchedCaloJetsVsGenJetEta_Pt30To40",";SC5GenJetEta;#",100,-5.0,5.0);
394     fSC5NMatchedCaloJetsVsGenJetEta_Pt60To80 =
395     new TH1D("hSC5NMatchedCaloJetsVsGenJetEta_Pt60To80",";SC5GenJetEta;#",100,-5.0,5.0);
396 loizides 1.1 fSC5NGenJetsVsGenJetPt = new TH1D("hSC5NGenJetsVsGenJetPt",";SC5GenJetPt;#",5000,0.,5000);
397     fSC5NGenJetsVsGenJetEta = new TH1D("hSC5NGenJetsVsGenJetEta",";SC5GenJetEta;#",100,-5.,5.0);
398 loizides 1.3 fSC5NGenJetsVsGenJetEta_Pt20To30 =
399     new TH1D("hSC5NGenJetsVsGenJetEta_Pt20To30",";SC5GenJetEta;#",100,-5.,5.0);
400     fSC5NGenJetsVsGenJetEta_Pt30To40 =
401     new TH1D("hSC5NGenJetsVsGenJetEta_Pt30To40",";SC5GenJetEta;#",100,-5.,5.0);
402     fSC5NGenJetsVsGenJetEta_Pt60To80 =
403     new TH1D("hSC5NGenJetsVsGenJetEta_Pt60To80",";SC5GenJetEta;#",100,-5.,5.0);
404 loizides 1.1 fSC5CaloJetsPt = new TH1D("hSC5CaloJetsPt",";SC5CaloJetPt;#",5000,0.,5000);
405     fSC5CaloJetsEta = new TH1D("hSC5CaloJetsEta",";SC5CaloJetEta;#",100,-5.0,5.0);
406 loizides 1.3 fSC5NUnmatchedCaloJetsVsCorrectedCaloJetPt =
407     new TH1D("hSC5NUnmatchedCaloJetsVsCorrectedCaloJetPt",
408     ";SC5CorrectedCaloJetPt;#",5000,0.0,5000.0);
409     fSC5NUnmatchedCalojetsVsCorrectedCaloJetEta =
410     new TH1D("hSC5NUnmatchedCalojetsVsCorrectedCaloJetEta",
411     ";SC5CorrectedCaloJetEta;#",100,-5.0,5.0);
412     fSC5CorrPtCaloJetsOverGenJetsPtVsGenJetPt =
413     new TH2D("hSC5CorrPtCaloJetsOverGenJetsPtVsGenJetPt",
414     ";SC5GenJetPt;#",1000,0,1000.0, 100,0.0,5.0);
415 loizides 1.1 fSC5NCaloJets = new TH1D("hSC5NCaloJets",";SC5NCaloJets;#",100,0.,15);
416    
417     AddOutput(fIC5GenJetRecoJetDeltaR);
418     AddOutput(fIC5GenJetRecoJetDeltaEta);
419     AddOutput(fIC5GenJetRecoJetDeltaPhi);
420     AddOutput(fIC5JetResponseVsGenJetPtInBarrel);
421     AddOutput(fIC5JetResponseVsGenJetPtInEndcap);
422     AddOutput(fIC5JetResponseVsGenJetPtForward);
423     AddOutput(fIC5JetResponseVsCaloJetEta);
424     AddOutput(fIC5CentralGenJetRecoJetDeltaR);
425     AddOutput(fIC5ForwardGenJetRecoJetDeltaR);
426     AddOutput(fIC5NMatchedCaloJetsVsGenJetPt);
427     AddOutput(fIC5NMatchedCaloJetsVsGenJetEta);
428     AddOutput(fIC5NMatchedCaloJetsVsGenJetEta_Pt20To30);
429     AddOutput(fIC5NMatchedCaloJetsVsGenJetEta_Pt30To40);
430     AddOutput(fIC5NMatchedCaloJetsVsGenJetEta_Pt60To80);
431     AddOutput(fIC5NGenJetsVsGenJetPt);
432     AddOutput(fIC5NGenJetsVsGenJetEta);
433     AddOutput(fIC5NGenJetsVsGenJetEta_Pt20To30);
434     AddOutput(fIC5NGenJetsVsGenJetEta_Pt30To40);
435     AddOutput(fIC5NGenJetsVsGenJetEta_Pt60To80);
436     AddOutput(fIC5CaloJetsPt);
437     AddOutput(fIC5CaloJetsEta);
438     AddOutput(fIC5NUnmatchedCaloJetsVsCorrectedCaloJetPt);
439     AddOutput(fIC5NUnmatchedCalojetsVsCorrectedCaloJetEta);
440     AddOutput(fIC5CorrPtCaloJetsOverGenJetsPtVsGenJetPt);
441     AddOutput(fIC5NCaloJets);
442     AddOutput(fSC5GenJetRecoJetDeltaR);
443     AddOutput(fSC5GenJetRecoJetDeltaEta);
444     AddOutput(fSC5GenJetRecoJetDeltaPhi);
445     AddOutput(fSC5JetResponseVsGenJetPtInBarrel);
446     AddOutput(fSC5JetResponseVsGenJetPtInEndcap);
447     AddOutput(fSC5JetResponseVsGenJetPtForward);
448     AddOutput(fSC5JetResponseVsCaloJetEta);
449     AddOutput(fSC5CentralGenJetRecoJetDeltaR);
450     AddOutput(fSC5ForwardGenJetRecoJetDeltaR);
451     AddOutput(fSC5NMatchedCaloJetsVsGenJetPt);
452     AddOutput(fSC5NMatchedCaloJetsVsGenJetEta);
453     AddOutput(fSC5NMatchedCaloJetsVsGenJetEta_Pt20To30);
454     AddOutput(fSC5NMatchedCaloJetsVsGenJetEta_Pt30To40);
455     AddOutput(fSC5NMatchedCaloJetsVsGenJetEta_Pt60To80);
456     AddOutput(fSC5NGenJetsVsGenJetPt);
457     AddOutput(fSC5NGenJetsVsGenJetEta);
458     AddOutput(fSC5NGenJetsVsGenJetEta_Pt20To30);
459     AddOutput(fSC5NGenJetsVsGenJetEta_Pt30To40);
460     AddOutput(fSC5NGenJetsVsGenJetEta_Pt60To80);
461     AddOutput(fSC5CaloJetsPt);
462     AddOutput(fSC5CaloJetsEta);
463     AddOutput(fSC5NUnmatchedCaloJetsVsCorrectedCaloJetPt);
464     AddOutput(fSC5NUnmatchedCalojetsVsCorrectedCaloJetEta);
465     AddOutput(fSC5CorrPtCaloJetsOverGenJetsPtVsGenJetPt);
466     AddOutput(fSC5NCaloJets);
467     }