CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
myFastSimVal.cc
Go to the documentation of this file.
1 // myFastSimVal.cc
2 // Description: Comparison between Jet Algorithms
3 // Author: Frank Chlebana
4 // Date: 08 - August - 2007
5 //
13 // #include "DataFormats/HepMCCandidate/interface/GenParticleCandidate.h"
15 // #include "FWCore/Framework/interface/Handle.h"
19 #include <TROOT.h>
20 #include <TSystem.h>
21 #include <TFile.h>
22 #include <TCanvas.h>
23 #include <cmath>
24 using namespace edm;
25 using namespace reco;
26 using namespace std;
27 
28 #define DEBUG 1
29 // #define MAXJETS 50
30 #define MAXJETS 100
31 
32 // Get the algorithm of the jet collections we will read from the .cfg file
33 // which defines the value of the strings CaloJetAlgorithm and GenJetAlgorithm.
35  CaloJetAlgorithm1( cfg.getParameter<string>( "CaloJetAlgorithm1" ) ),
36  CaloJetAlgorithm2( cfg.getParameter<string>( "CaloJetAlgorithm2" ) ),
37  CaloJetAlgorithm3( cfg.getParameter<string>( "CaloJetAlgorithm3" ) ),
38  CaloJetAlgorithm4( cfg.getParameter<string>( "CaloJetAlgorithm4" ) ),
39  GenJetAlgorithm1( cfg.getParameter<string>( "GenJetAlgorithm1" ) ),
40  GenJetAlgorithm2( cfg.getParameter<string>( "GenJetAlgorithm2" ) ),
41  GenJetAlgorithm3( cfg.getParameter<string>( "GenJetAlgorithm3" ) ),
42  GenJetAlgorithm4( cfg.getParameter<string>( "GenJetAlgorithm4" ) ),
43  JetCorrectionService( cfg.getParameter<string>( "JetCorrectionService" ) )
44 {
45 }
46 
47 
48 
49 int nEvent = 0;
50 
52 
53  // Open the histogram file and book some associated histograms
54  m_file=new TFile("histo.root","RECREATE");
55 
56  tMassGen = TH1F("tMassGen","T Mass Gen",100,0,200);
57  tbarMassGen = TH1F("tbarMassGen","Tbar Mass Gen",100,0,200);
58 
59  tMass = TH1F("tMass","T Mass",100,0,200);
60  tbarMass = TH1F("tbarMass","Tbar Mass",100,0,200);
61 
62  topMassParton = TH1F("topMassParton","Top Mass Parton",100,0,200);
63  topMass1 = TH1F("topMass1","Top Mass 1",100,0,200);
64  topMass2 = TH1F("topMass2","Top Mass 2",100,0,200);
65  topMass3 = TH1F("topMass3","Top Mass 3",100,0,200);
66 
67  ZpMass = TH1F("ZpMass","Generated Zp Mass",160,0,8000);
68  ZpMassGen = TH1F("ZpMassGen","Gen Zp Mass",160,0,8000);
69  ZpMassMatched1 = TH1F("ZpMassMatched1","Calor Zp Mass 1",160,0,8000);
70  ZpMassMatched2 = TH1F("ZpMassMatched2","Calor Zp Mass 2",160,0,8000);
71  ZpMassMatched3 = TH1F("ZpMassMatched3","Calor Zp Mass 3",160,0,8000);
72 
73  ZpMassGen10 = TH1F("ZpMassGen10","Gen Zp Mass",160,0,8000);
74  ZpMassGen13 = TH1F("ZpMassGen13","Gen Zp Mass",160,0,8000);
75  ZpMassGen40 = TH1F("ZpMassGen40","Gen Zp Mass",160,0,8000);
76 
77  ZpMass_700_10 = TH1F("ZpMass_700_10","Parton Zp Mass",100,0,1000);
78  ZpMass_700_13 = TH1F("ZpMass_700_13","Parton Zp Mass",100,0,1000);
79  ZpMass_700_40 = TH1F("ZpMass_700_40","Parton Zp Mass",100,0,1000);
80 
81  ZpMassGen_700_10 = TH1F("ZpMassGen_700_10","Gen Zp Mass",100,0,1000);
82  ZpMassGen_700_13 = TH1F("ZpMassGen_700_13","Gen Zp Mass",100,0,1000);
83  ZpMassGen_700_40 = TH1F("ZpMassGen_700_40","Gen Zp Mass",100,0,1000);
84 
85  ZpMassGen_2000_10 = TH1F("ZpMassGen_2000_10","Gen Zp Mass",100,1500,2500);
86  ZpMassGen_2000_13 = TH1F("ZpMassGen_2000_13","Gen Zp Mass",100,1500,2500);
87  ZpMassGen_2000_40 = TH1F("ZpMassGen_2000_40","Gen Zp Mass",100,1500,2500);
88 
89  ZpMass_2000_10 = TH1F("ZpMass_2000_10","Parton Zp Mass",100,1500,2500);
90  ZpMass_2000_13 = TH1F("ZpMass_2000_13","Parton Zp Mass",100,1500,2500);
91  ZpMass_2000_40 = TH1F("ZpMass_2000_40","Parton Zp Mass",100,1500,2500);
92 
93  ZpMassGen_5000_10 = TH1F("ZpMassGen_5000_10","Gen Zp Mass",150,4000,5500);
94  ZpMassGen_5000_13 = TH1F("ZpMassGen_5000_13","Gen Zp Mass",150,4000,5500);
95  ZpMassGen_5000_40 = TH1F("ZpMassGen_5000_40","Gen Zp Mass",150,4000,5500);
96 
97  ZpMass_5000_10 = TH1F("ZpMass_5000_10","Parton Zp Mass",150,4000,5500);
98  ZpMass_5000_13 = TH1F("ZpMass_5000_13","Parton Zp Mass",150,4000,5500);
99  ZpMass_5000_40 = TH1F("ZpMass_5000_40","Parton Zp Mass",150,4000,5500);
100 
101  ZpMassRes101 = TH1F("ZpMassRes101","Zp Mass Resolution 1",100,-2,2);
102  ZpMassRes102 = TH1F("ZpMassRes102","Zp Mass Resolution 2",100,-2,2);
103  ZpMassRes103 = TH1F("ZpMassRes103","Zp Mass Resolution 3",100,-2,2);
104 
105  ZpMassRes131 = TH1F("ZpMassRes131","Zp Mass Resolution 1",100,-2,2);
106  ZpMassRes132 = TH1F("ZpMassRes132","Zp Mass Resolution 2",100,-2,2);
107  ZpMassRes133 = TH1F("ZpMassRes133","Zp Mass Resolution 3",100,-2,2);
108 
109  ZpMassRes401 = TH1F("ZpMassRes401","Zp Mass Resolution 1",100,-2,2);
110  ZpMassRes402 = TH1F("ZpMassRes402","Zp Mass Resolution 2",100,-2,2);
111  ZpMassRes403 = TH1F("ZpMassRes403","Zp Mass Resolution 3",100,-2,2);
112 
113  ZpMassResL101 = TH1F("ZpMassResL101","Zp Mass Resolution Leading Jets 1",100,0,2);
114  ZpMassResL102 = TH1F("ZpMassResL102","Zp Mass Resolution Leading Jets 2",100,0,2);
115  ZpMassResL103 = TH1F("ZpMassResL103","Zp Mass Resolution Leading Jets 3",100,0,2);
116 
117  ZpMassResRL101 = TH1F("ZpMassResRL101","Zp Mass Res. Ratio Leading Jets 1",100,0,2);
118  ZpMassResRL102 = TH1F("ZpMassResRL102","Zp Mass Res. Ratio Leading Jets 2",100,0,2);
119  ZpMassResRL103 = TH1F("ZpMassResRL103","Zp Mass Res. Ratio Leading Jets 3",100,0,2);
120 
121  ZpMassResRLoP101 = TH1F("ZpMassResRLoP101","Zp Mass RLoP Ratio Leading Jets 1",100,0,2);
122  ZpMassResRLoP102 = TH1F("ZpMassResRLoP102","Zp Mass RLoP Ratio Leading Jets 2",100,0,2);
123  ZpMassResRLoP103 = TH1F("ZpMassResRLoP103","Zp Mass RLoP Ratio Leading Jets 3",100,0,2);
124 
125  ZpMassResPRL101 = TH1F("ZpMassResPRL101","Zp Mass Res. P Ratio Leading Jets 1",100,0,2);
126  ZpMassResPRL102 = TH1F("ZpMassResPRL102","Zp Mass Res. P Ratio Leading Jets 2",100,0,2);
127  ZpMassResPRL103 = TH1F("ZpMassResPRL103","Zp Mass Res. P Ratio Leading Jets 3",100,0,2);
128 
129 
130  ZpMassResL131 = TH1F("ZpMassResL131","Zp Mass Resolution Leading Jets 1",100,0,2);
131  ZpMassResL132 = TH1F("ZpMassResL132","Zp Mass Resolution Leading Jets 2",100,0,2);
132  ZpMassResL133 = TH1F("ZpMassResL133","Zp Mass Resolution Leading Jets 3",100,0,2);
133 
134  ZpMassResRL131 = TH1F("ZpMassResRL131","Zp Mass Res. Ratio Leading Jets 1",100,0,2);
135  ZpMassResRL132 = TH1F("ZpMassResRL132","Zp Mass Res. Ratio Leading Jets 2",100,0,2);
136  ZpMassResRL133 = TH1F("ZpMassResRL133","Zp Mass Res. Ratio Leading Jets 3",100,0,2);
137 
138  ZpMassResRLoP131 = TH1F("ZpMassResRLoP131","Zp Mass RLoP Ratio Leading Jets 1",100,0,2);
139  ZpMassResRLoP132 = TH1F("ZpMassResRLoP132","Zp Mass RLoP Ratio Leading Jets 2",100,0,2);
140  ZpMassResRLoP133 = TH1F("ZpMassResRLoP133","Zp Mass RLoP Ratio Leading Jets 3",100,0,2);
141 
142  ZpMassResPRL131 = TH1F("ZpMassResPRL131","Zp Mass Res. P Ratio Leading Jets 1",100,0,2);
143  ZpMassResPRL132 = TH1F("ZpMassResPRL132","Zp Mass Res. P Ratio Leading Jets 2",100,0,2);
144  ZpMassResPRL133 = TH1F("ZpMassResPRL133","Zp Mass Res. P Ratio Leading Jets 3",100,0,2);
145 
146 
147  ZpMassResL401 = TH1F("ZpMassResL401","Zp Mass Resolution Leading Jets 1",100,0,2);
148  ZpMassResL402 = TH1F("ZpMassResL402","Zp Mass Resolution Leading Jets 2",100,0,2);
149  ZpMassResL403 = TH1F("ZpMassResL403","Zp Mass Resolution Leading Jets 3",100,0,2);
150 
151  ZpMassResRL401 = TH1F("ZpMassResRL401","Zp Mass Res. Ratio Leading Jets 1",100,0,2);
152  ZpMassResRL402 = TH1F("ZpMassResRL402","Zp Mass Res. Ratio Leading Jets 2",100,0,2);
153  ZpMassResRL403 = TH1F("ZpMassResRL403","Zp Mass Res. Ratio Leading Jets 3",100,0,2);
154 
155  ZpMassResRLoP401 = TH1F("ZpMassResRLoP401","Zp Mass RLoP Ratio Leading Jets 1",100,0,2);
156  ZpMassResRLoP402 = TH1F("ZpMassResRLoP402","Zp Mass RLoP Ratio Leading Jets 2",100,0,2);
157  ZpMassResRLoP403 = TH1F("ZpMassResRLoP403","Zp Mass RLoP Ratio Leading Jets 3",100,0,2);
158 
159  ZpMassResPRL401 = TH1F("ZpMassResPRL401","Zp Mass Res. P Ratio Leading Jets 1",100,0,2);
160  ZpMassResPRL402 = TH1F("ZpMassResPRL402","Zp Mass Res. P Ratio Leading Jets 2",100,0,2);
161  ZpMassResPRL403 = TH1F("ZpMassResPRL403","Zp Mass Res. P Ratio Leading Jets 3",100,0,2);
162 
163  dijetMass1 = TH1F("dijetMass1","DiJet Mass 1",100,0,4000);
164  dijetMass12 = TH1F("dijetMass12","DiJet Mass 1 2",100,0,6000);
165  dijetMass13 = TH1F("dijetMass13","DiJet Mass 1 3",100,0,12000);
166  dijetMass2 = TH1F("dijetMass2","DiJet Mass 2",100,0,4000);
167  dijetMass22 = TH1F("dijetMass22","DiJet Mass 2 2",100,0,6000);
168  dijetMass23 = TH1F("dijetMass23","DiJet Mass 2 3",100,0,12000);
169  dijetMass3 = TH1F("dijetMass3","DiJet Mass 3",100,0,4000);
170  dijetMass32 = TH1F("dijetMass32","DiJet Mass 3 2",100,0,6000);
171  dijetMass33 = TH1F("dijetMass33","DiJet Mass 3 3",100,0,12000);
172  dijetMass4 = TH1F("dijetMass4","DiJet Mass 4",100,0,4000);
173  dijetMass42 = TH1F("dijetMass42","DiJet Mass 4 2",100,0,6000);
174  dijetMass43 = TH1F("dijetMass43","DiJet Mass 4 3",100,0,12000);
175 
176  dijetMass101 = TH1F("dijetMass101","DiJet Mass 1",100,0,6000);
177  dijetMass131 = TH1F("dijetMass131","DiJet Mass 1",100,0,6000);
178  dijetMass401 = TH1F("dijetMass401","DiJet Mass 1",100,0,6000);
179 
180  dijetMass102 = TH1F("dijetMass102","DiJet Mass 2",100,0,6000);
181  dijetMass132 = TH1F("dijetMass132","DiJet Mass 2",100,0,6000);
182  dijetMass402 = TH1F("dijetMass402","DiJet Mass 2",100,0,6000);
183 
184  dijetMass103 = TH1F("dijetMass103","DiJet Mass 3",100,0,10000);
185  dijetMass133 = TH1F("dijetMass133","DiJet Mass 3",100,0,10000);
186  dijetMass403 = TH1F("dijetMass403","DiJet Mass 3",100,0,10000);
187 
188  dijetMass_700_101 = TH1F("dijetMass_700_101","DiJet Mass 1",100,0,1000);
189  dijetMass_700_131 = TH1F("dijetMass_700_131","DiJet Mass 1",100,0,1000);
190  dijetMass_700_401 = TH1F("dijetMass_700_401","DiJet Mass 1",100,0,1000);
191 
192  dijetMass_2000_101 = TH1F("dijetMass_2000_101","DiJet Mass 1",100,1500,2500);
193  dijetMass_2000_131 = TH1F("dijetMass_2000_131","DiJet Mass 1",100,1500,2500);
194  dijetMass_2000_401 = TH1F("dijetMass_2000_401","DiJet Mass 1",100,1500,2500);
195 
196  dijetMass_5000_101 = TH1F("dijetMass_5000_101","DiJet Mass 1",150,4000,5500);
197  dijetMass_5000_131 = TH1F("dijetMass_5000_131","DiJet Mass 1",150,4000,5500);
198  dijetMass_5000_401 = TH1F("dijetMass_5000_401","DiJet Mass 1",150,4000,5500);
199 
200 
201  dijetMassCor1 = TH1F("dijetMassCor1","DiJet Mass 1",160,0,8000);
202  dijetMassCor101 = TH1F("dijetMassCor101","DiJet Mass Cor 101",160,0,8000);
203  dijetMassCor131 = TH1F("dijetMassCor131","DiJet Mass Cor 131",160,0,8000);
204  dijetMassCor401 = TH1F("dijetMassCor401","DiJet Mass Cor 401",160,0,8000);
205 
206  dijetMassCor_700_1 = TH1F("dijetMassCor_700_1","DiJet Mass 1",100,0,1000);
207  dijetMassCor_700_101 = TH1F("dijetMassCor_700_101","DiJet Mass Cor 101",100,0,1000);
208  dijetMassCor_700_131 = TH1F("dijetMassCor_700_131","DiJet Mass Cor 131",100,0,1000);
209  dijetMassCor_700_401 = TH1F("dijetMassCor_700_401","DiJet Mass Cor 401",100,0,1000);
210 
211  dijetMassCor_2000_1 = TH1F("dijetMassCor_2000_1","DiJet Mass 1",100,1500,2500);
212  dijetMassCor_2000_101 = TH1F("dijetMassCor_2000_101","DiJet Mass Cor 101",100,1500,2500);
213  dijetMassCor_2000_131 = TH1F("dijetMassCor_2000_131","DiJet Mass Cor 131",100,1500,2500);
214  dijetMassCor_2000_401 = TH1F("dijetMassCor_2000_401","DiJet Mass Cor 401",100,1500,2500);
215 
216  dijetMassCor_5000_1 = TH1F("dijetMassCor_5000_1","DiJet Mass 1",150,4000,5500);
217  dijetMassCor_5000_101 = TH1F("dijetMassCor_5000_101","DiJet Mass Cor 101",150,4000,5500);
218  dijetMassCor_5000_131 = TH1F("dijetMassCor_5000_131","DiJet Mass Cor 131",150,4000,5500);
219  dijetMassCor_5000_401 = TH1F("dijetMassCor_5000_401","DiJet Mass Cor 401",150,4000,5500);
220 
221  dijetMassP1 = TH1F("dijetMassP1","DiJet Mass P 1",160,0,8000);
222  dijetMassP2 = TH1F("dijetMassP2","DiJet Mass P 2",160,0,8000);
223  dijetMassP3 = TH1F("dijetMassP3","DiJet Mass P 3",160,0,8000);
224 
225 
226  dijetMassP101 = TH1F("dijetMassP101","DiJet Mass P 1",160,0,8000);
227  dijetMassP131 = TH1F("dijetMassP131","DiJet Mass P 1",160,0,8000);
228  dijetMassP401 = TH1F("dijetMassP401","DiJet Mass P 1",160,0,8000);
229 
230  dijetMassP_700_101 = TH1F("dijetMassP_700_101","DiJet Mass P 1",100,0,1000);
231  dijetMassP_700_131 = TH1F("dijetMassP_700_131","DiJet Mass P 1",100,0,1000);
232  dijetMassP_700_401 = TH1F("dijetMassP_700_401","DiJet Mass P 1",100,0,1000);
233 
234  dijetMassP_2000_101 = TH1F("dijetMassP_2000_101","DiJet Mass P 1",100,1500,2500);
235  dijetMassP_2000_131 = TH1F("dijetMassP_2000_131","DiJet Mass P 1",100,1500,2500);
236  dijetMassP_2000_401 = TH1F("dijetMassP_2000_401","DiJet Mass P 1",100,1500,2500);
237 
238  dijetMassP_5000_101 = TH1F("dijetMassP_5000_101","DiJet Mass P 1",150,4000,5500);
239  dijetMassP_5000_131 = TH1F("dijetMassP_5000_131","DiJet Mass P 1",150,4000,5500);
240  dijetMassP_5000_401 = TH1F("dijetMassP_5000_401","DiJet Mass P 1",150,4000,5500);
241 
242  totEneLeadJetEta1_1 = TH1F("totEneLeadJetEta1_1","Total Energy Lead Jet Eta1 1",100,0,1500);
243  totEneLeadJetEta2_1 = TH1F("totEneLeadJetEta2_1","Total Energy Lead Jet Eta2 1",100,0,1500);
244  totEneLeadJetEta3_1 = TH1F("totEneLeadJetEta3_1","Total Energy Lead Jet Eta3 1",100,0,1500);
245  hadEneLeadJetEta1_1 = TH1F("hadEneLeadJetEta1_1","Hadronic Energy Lead Jet Eta1 1",100,0,1500);
246  hadEneLeadJetEta2_1 = TH1F("hadEneLeadJetEta2_1","Hadronic Energy Lead Jet Eta2 1",100,0,1500);
247  hadEneLeadJetEta3_1 = TH1F("hadEneLeadJetEta3_1","Hadronic Energy Lead Jet Eta3 1",100,0,1500);
248  emEneLeadJetEta1_1 = TH1F("emEneLeadJetEta1_1","EM Energy Lead Jet Eta1 1",100,0,1500);
249  emEneLeadJetEta2_1 = TH1F("emEneLeadJetEta2_1","EM Energy Lead Jet Eta2 1",100,0,1500);
250  emEneLeadJetEta3_1 = TH1F("emEneLeadJetEta3_1","EM Energy Lead Jet Eta3 1",100,0,1500);
251 
252  totEneLeadJetEta1_2 = TH1F("totEneLeadJetEta1_2","Total Energy Lead Jet Eta1 2",100,0,6000);
253  totEneLeadJetEta2_2 = TH1F("totEneLeadJetEta2_2","Total Energy Lead Jet Eta2 2",100,0,6000);
254  totEneLeadJetEta3_2 = TH1F("totEneLeadJetEta3_2","Total Energy Lead Jet Eta3 2",100,0,6000);
255  hadEneLeadJetEta1_2 = TH1F("hadEneLeadJetEta1_2","Hadronic Energy Lead Jet Eta1 2",100,0,6000);
256  hadEneLeadJetEta2_2 = TH1F("hadEneLeadJetEta2_2","Hadronic Energy Lead Jet Eta2 2",100,0,6000);
257  hadEneLeadJetEta3_2 = TH1F("hadEneLeadJetEta3_2","Hadronic Energy Lead Jet Eta3 2",100,0,6000);
258  emEneLeadJetEta1_2 = TH1F("emEneLeadJetEta1_2","EM Energy Lead Jet Eta1 2",100,0,5000);
259  emEneLeadJetEta2_2 = TH1F("emEneLeadJetEta2_2","EM Energy Lead Jet Eta2 2",100,0,5000);
260  emEneLeadJetEta3_2 = TH1F("emEneLeadJetEta3_2","EM Energy Lead Jet Eta3 2",100,0,5000);
261 
262  hadEneLeadJet1 = TH1F("hadEneLeadJet1","Hadronic Energy Lead Jet 1",100,0,3000);
263  hadEneLeadJet12 = TH1F("hadEneLeadJet12","Hadronic Energy Lead Jet 1 2",100,0,4000);
264  hadEneLeadJet13 = TH1F("hadEneLeadJet13","Hadronic Energy Lead Jet 1 3",100,0,6000);
265  hadEneLeadJet2 = TH1F("hadEneLeadJet2","Hadronic Energy Lead Jet 2",100,0,3000);
266  hadEneLeadJet22 = TH1F("hadEneLeadJet22","Hadronic Energy Lead Jet 2 2",100,0,4000);
267  hadEneLeadJet23 = TH1F("hadEneLeadJet23","Hadronic Energy Lead Jet 2 3",100,0,6000);
268  hadEneLeadJet3 = TH1F("hadEneLeadJet3","Hadronic Energy Lead Jet 3",100,0,3000);
269  hadEneLeadJet32 = TH1F("hadEneLeadJet32","Hadronic Energy Lead Jet 3 2",100,0,4000);
270  hadEneLeadJet33 = TH1F("hadEneLeadJet33","Hadronic Energy Lead Jet 3 3",100,0,6000);
271 
272  emEneLeadJet1 = TH1F("emEneLeadJet1","EM Energy Lead Jet 1",100,0,1500);
273  emEneLeadJet12 = TH1F("emEneLeadJet12","EM Energy Lead Jet 1 2",100,0,3000);
274  emEneLeadJet13 = TH1F("emEneLeadJet13","EM Energy Lead Jet 1 3",100,0,5000);
275  emEneLeadJet2 = TH1F("emEneLeadJet2","EM Energy Lead Jet 2",100,0,1500);
276  emEneLeadJet22 = TH1F("emEneLeadJet22","EM Energy Lead Jet 2 2",100,0,3000);
277  emEneLeadJet23 = TH1F("emEneLeadJet23","EM Energy Lead Jet 2 3",100,0,5000);
278  emEneLeadJet3 = TH1F("emEneLeadJet3","EM Energy Lead Jet 3",100,0,1500);
279  emEneLeadJet32 = TH1F("emEneLeadJet32","EM Energy Lead Jet 3 2",100,0,3000);
280  emEneLeadJet33 = TH1F("emEneLeadJet33","EM Energy Lead Jet 3 3",100,0,5000);
281 
282  hadFracEta11 = TH1F("hadFracEta11","Hadronic Fraction Eta1 Jet 1",100,0,1);
283  hadFracEta21 = TH1F("hadFracEta21","Hadronic Fraction Eta2 Jet 1",100,0,1);
284  hadFracEta31 = TH1F("hadFracEta31","Hadronic Fraction Eta3 Jet 1",100,0,1);
285 
286  hadFracEta12 = TH1F("hadFracEta12","Hadronic Fraction Eta1 Jet 2",100,0,1);
287  hadFracEta22 = TH1F("hadFracEta22","Hadronic Fraction Eta2 Jet 2",100,0,1);
288  hadFracEta32 = TH1F("hadFracEta32","Hadronic Fraction Eta3 Jet 2",100,0,1);
289 
290  hadFracEta13 = TH1F("hadFracEta13","Hadronic Fraction Eta1 Jet 3",100,0,1);
291  hadFracEta23 = TH1F("hadFracEta23","Hadronic Fraction Eta2 Jet 3",100,0,1);
292  hadFracEta33 = TH1F("hadFracEta33","Hadronic Fraction Eta3 Jet 3",100,0,1);
293 
294  hadFracLeadJet1 = TH1F("hadFracLeadJet1","Hadronic Fraction Lead Jet 1",100,0,1);
295  hadFracLeadJet2 = TH1F("hadFracLeadJet2","Hadronic Fraction Lead Jet 2",100,0,1);
296  hadFracLeadJet3 = TH1F("hadFracLeadJet3","Hadronic Fraction Lead Jet 3",100,0,1);
297 
298  SumEt1 = TH1F("SumEt1","SumEt 1",100,0,1000);
299  SumEt12 = TH1F("SumEt12","SumEt 1 2",100,0,4000);
300  SumEt13 = TH1F("SumEt13","SumEt 1 3",100,0,15000);
301 
302  MET1 = TH1F("MET1", "MET 1",100,0,200);
303  MET12 = TH1F("MET12", "MET 1 2",100,0,1000);
304  MET13 = TH1F("MET13", "MET 1 3",100,0,3000);
305 
306  nTowersLeadJet1 = TH1F("nTowersLeadJet1","Number of Towers Lead Jet 1",100,0,100);
307  nTowersLeadJet2 = TH1F("nTowersLeadJet2","Number of Towers Lead Jet 2",100,0,100);
308  nTowersLeadJet3 = TH1F("nTowersLeadJet3","Number of Towers Lead Jet 3",100,0,100);
309 
310  nTowersSecondJet1 = TH1F("nTowersSecondJet1","Number of Towers Second Jet 1",100,0,100);
311  nTowersSecondJet2 = TH1F("nTowersSecondJet2","Number of Towers Second Jet 2",100,0,100);
312  nTowersSecondJet3 = TH1F("nTowersSecondJet3","Number of Towers Second Jet 3",100,0,100);
313 
314  hf_PtResponse1 = TProfile("PtResponse1","Pt Response 1", 100, -5, 5, 0, 10);
315  hf_PtResponse2 = TProfile("PtResponse2","Pt Response 2", 100, -5, 5, 0, 10);
316  hf_PtResponse3 = TProfile("PtResponse3","Pt Response 3", 100, -5, 5, 0, 10);
317  hf_PtResponse4 = TProfile("PtResponse4","Pt Response 4", 100, -5, 5, 0, 10);
318 
319  hf_TowerDelR1 = TProfile("hf_TowerDelR1","Tower Del R 1", 100, 0, 2, 0, 10);
320  hf_TowerDelR12 = TProfile("hf_TowerDelR12","Tower Del R 1", 80, 0, 0.8, 0, 10);
321  hf_TowerDelR2 = TProfile("hf_TowerDelR2","Tower Del R 2", 100, 0, 2, 0, 10);
322  hf_TowerDelR22 = TProfile("hf_TowerDelR22","Tower Del R 2", 80, 0, 0.8, 0, 10);
323  hf_TowerDelR3 = TProfile("hf_TowerDelR3","Tower Del R 3", 100, 0, 2, 0, 10);
324  hf_TowerDelR32 = TProfile("hf_TowerDelR32","Tower Del R 3", 80, 0, 0.8, 0, 10);
325 
326  hf_sumTowerAllEx = TH1F("sumTowerAllEx","Tower Ex",100,-1000,1000);
327  hf_sumTowerAllEy = TH1F("sumTowerAllEy","Tower Ey",100,-1000,1000);
328 
329  hf_TowerJetEt1 = TH1F("TowerJetEt1","Tower/Jet Et 1",50,0,1);
330 
331  nTowers1 = TH1F("nTowers1","Number of Towers pt 0.5",100,0,500);
332  nTowers2 = TH1F("nTowers2","Number of Towers pt 1.0",100,0,500);
333  nTowers3 = TH1F("nTowers3","Number of Towers pt 1.5",100,0,500);
334  nTowers4 = TH1F("nTowers4","Number of Towers pt 2.0",100,0,500);
335 
336  nTowersLeadJetPt1 = TH1F("nTowersLeadJetPt1","Number of Towers in Lead Jet pt 0.5",100,0,200);
337  nTowersLeadJetPt2 = TH1F("nTowersLeadJetPt2","Number of Towers in Lead Jet pt 1.0",100,0,200);
338  nTowersLeadJetPt3 = TH1F("nTowersLeadJetPt3","Number of Towers in Lead Jet pt 1.5",100,0,200);
339  nTowersLeadJetPt4 = TH1F("nTowersLeadJetPt4","Number of Towers in Lead Jet pt 2.0",100,0,200);
340 
341  TowerEtLeadJet1 = TH1F("TowerEtLeadJet1","Towers Et Lead Jet 1",100,0,2000);
342  TowerEtLeadJet12 = TH1F("TowerEtLeadJet12","Towers Et Lead Jet 1 2",100,0,6000);
343  TowerEtLeadJet13 = TH1F("TowerEtLeadJet13","Towers Et Lead Jet 1 3",100,0,300);
344  TowerEtLeadJet2 = TH1F("TowerEtLeadJet2","Towers Et Lead Jet 2",100,0,2000);
345  TowerEtLeadJet22 = TH1F("TowerEtLeadJet22","Towers Et Lead Jet 2 2",100,0,6000);
346  TowerEtLeadJet23 = TH1F("TowerEtLeadJet23","Towers Et Lead Jet 2 3",100,0,300);
347  TowerEtLeadJet3 = TH1F("TowerEtLeadJet3","Towers Et Lead Jet 3",100,0,2000);
348  TowerEtLeadJet32 = TH1F("TowerEtLeadJet32","Towers Et Lead Jet 3 2",100,0,6000);
349  TowerEtLeadJet33 = TH1F("TowerEtLeadJet33","Towers Et Lead Jet 3 3",100,0,300);
350 
351  hf_nJet1 = TProfile("hf_nJet1", "Num Jets 1", 100, 0, 5000, 0, 50);
352  hf_nJet2 = TProfile("hf_nJet2", "Num Jets 2", 100, 0, 5000, 0, 50);
353  hf_nJet3 = TProfile("hf_nJet3", "Num Jets 3", 100, 0, 5000, 0, 50);
354  hf_nJet4 = TProfile("hf_nJet4", "Num Jets 4", 100, 0, 5000, 0, 50);
355 
356  hf_nJet1s = TProfile("hf_nJet1s", "Num Jets 1", 100, 0, 200, 0, 50);
357  hf_nJet2s = TProfile("hf_nJet2s", "Num Jets 2", 100, 0, 200, 0, 50);
358  hf_nJet3s = TProfile("hf_nJet3s", "Num Jets 3", 100, 0, 200, 0, 50);
359  hf_nJet4s = TProfile("hf_nJet4s", "Num Jets 4", 100, 0, 200, 0, 50);
360 
361  hf_nJet11 = TProfile("hf_nJet11", "Num Jets 1 1", 100, 0, 3000, 0, 50);
362  hf_nJet21 = TProfile("hf_nJet21", "Num Jets 2 1", 100, 0, 3000, 0, 50);
363  hf_nJet31 = TProfile("hf_nJet31", "Num Jets 3 1", 100, 0, 3000, 0, 50);
364  hf_nJet41 = TProfile("hf_nJet41", "Num Jets 4 1", 100, 0, 3000, 0, 50);
365 
366  dRPar1 = TH1F("dRPar1","Parton dR with matched CaloJet1",100,0,0.5);
367  dPhiPar1 = TH1F("dPhiPar1","Parton dPhi with matched CaloJet1",200,-0.5,0.5);
368  dEtaPar1 = TH1F("dEtaPar1","Parton dEta with matched CaloJet1",200,-0.5,0.5);
369  dPtPar1 = TH1F("dPtPar1","Parton dPt with matched CaloJet1",200,-50,50);
370 
371  dRPar2 = TH1F("dRPar2","Parton dR with matched CaloJet2",100,0,0.5);
372  dPhiPar2 = TH1F("dPhiPar2","Parton dPhi with matched CaloJet2",200,-0.5,0.5);
373  dEtaPar2 = TH1F("dEtaPar2","Parton dEta with matched CaloJet2",200,-0.5,0.5);
374  dPtPar2 = TH1F("dPtPar2","Parton dPt with matched CaloJet2",200,-50,50);
375 
376  dRPar3 = TH1F("dRPar3","Parton dR with matched CaloJet3",100,0,0.5);
377  dPhiPar3 = TH1F("dPhiPar3","Parton dPhi with matched CaloJet3",200,-0.5,0.5);
378  dEtaPar3 = TH1F("dEtaPar3","Parton dEta with matched CaloJet3",200,-0.5,0.5);
379  dPtPar3 = TH1F("dPtPar3","Parton dPt with matched CaloJet3",200,-50,50);
380 
381  dRPar4 = TH1F("dRPar4","Parton dR with matched CaloJet4",100,0,0.5);
382  dPhiPar4 = TH1F("dPhiPar4","Parton dPhi with matched CaloJet4",200,-0.5,0.5);
383  dEtaPar4 = TH1F("dEtaPar4","Parton dEta with matched CaloJet4",200,-0.5,0.5);
384  dPtPar4 = TH1F("dPtPar4","Parton dPt with matched CaloJet4",200,-50,50);
385 
386  dRParton = TH1F("dRParton","dR Parton",100,0,10.0);
387  dRPartonMin = TH1F("dRPartonMin","Min dR Parton",100,0,2.0);
388 
389  dR1 = TH1F("dR1","GenJets dR with matched CaloJet",100,0,0.5);
390  dPhi1 = TH1F("dPhi1","GenJets dPhi with matched CaloJet",200,-0.5,0.5);
391  dEta1 = TH1F("dEta1","GenJets dEta with matched CaloJet",200,-0.5,0.5);
392  dPt1 = TH1F("dPt1","GenJets dPt with matched CaloJet",200,-100,100);
393  dPtFrac1 = TH1F("dPtFrac1","GenJets dPt frac with matched CaloJet",100,-1,1);
394  dPt20Frac1 = TH1F("dPt20Frac1","GenJets dPt frac with matched CaloJet",100,-1,1);
395  dPt40Frac1 = TH1F("dPt40Frac1","GenJets dPt frac with matched CaloJet",100,-1,1);
396  dPt80Frac1 = TH1F("dPt80Frac1","GenJets dPt frac with matched CaloJet",100,-1,1);
397  dPt100Frac1 = TH1F("dPt100Frac1","GenJets dPt frac with matched CaloJet",100,-1,1);
398 
399  dR2 = TH1F("dR2","GenJets dR with matched CaloJet",100,0,0.5);
400  dPhi2 = TH1F("dPhi2","GenJets dPhi with matched CaloJet",200,-0.5,0.5);
401  dEta2 = TH1F("dEta2","GenJets dEta with matched CaloJet",200,-0.5,0.5);
402  dPt2 = TH1F("dPt2","GenJets dPt with matched CaloJet",200,-100,100);
403  dPtFrac2 = TH1F("dPtFrac2","GenJets dPt frac with matched CaloJet",100,-1,1);
404  dPt20Frac2 = TH1F("dPt20Frac2","GenJets dPt frac with matched CaloJet",100,-1,1);
405  dPt40Frac2 = TH1F("dPt40Frac2","GenJets dPt frac with matched CaloJet",100,-1,1);
406  dPt80Frac2 = TH1F("dPt80Frac2","GenJets dPt frac with matched CaloJet",100,-1,1);
407  dPt100Frac2 = TH1F("dPt100Frac2","GenJets dPt frac with matched CaloJet",100,-1,1);
408 
409  dR3 = TH1F("dR3","GenJets dR with matched CaloJet",100,0,0.5);
410  dPhi3 = TH1F("dPhi3","GenJets dPhi with matched CaloJet",200,-0.5,0.5);
411  dEta3 = TH1F("dEta3","GenJets dEta with matched CaloJet",200,-0.5,0.5);
412  dPt3 = TH1F("dPt3","GenJets dPt with matched CaloJet",200,-100,100);
413  dPtFrac3 = TH1F("dPtFrac3","GenJets dPt frac with matched CaloJet",100,-1,1);
414  dPt20Frac3 = TH1F("dPt20Frac3","GenJets dPt frac with matched CaloJet",100,-1,1);
415  dPt40Frac3 = TH1F("dPt40Frac3","GenJets dPt frac with matched CaloJet",100,-1,1);
416  dPt80Frac3 = TH1F("dPt80Frac3","GenJets dPt frac with matched CaloJet",100,-1,1);
417  dPt100Frac3 = TH1F("dPt100Frac3","GenJets dPt frac with matched CaloJet",100,-1,1);
418 
419  dR4 = TH1F("dR4","GenJets dR with matched CaloJet",100,0,0.5);
420  dPhi4 = TH1F("dPhi4","GenJets dPhi with matched CaloJet",200,-0.5,0.5);
421  dEta4 = TH1F("dEta4","GenJets dEta with matched CaloJet",200,-0.5,0.5);
422  dPt4 = TH1F("dPt4","GenJets dPt with matched CaloJet",200,-100,100);
423  dPtFrac4 = TH1F("dPtFrac4","GenJets dPt frac with matched CaloJet",100,-1,1);
424  dPt20Frac4 = TH1F("dPt20Frac4","GenJets dPt frac with matched CaloJet",100,-1,1);
425  dPt40Frac4 = TH1F("dPt40Frac4","GenJets dPt frac with matched CaloJet",100,-1,1);
426  dPt80Frac4 = TH1F("dPt80Frac4","GenJets dPt frac with matched CaloJet",100,-1,1);
427  dPt100Frac4 = TH1F("dPt100Frac4","GenJets dPt frac with matched CaloJet",100,-1,1);
428 
429  dR12 = TH1F("dR12","dR MidPoint - SISCone",100,0,0.5);
430  dPhi12 = TH1F("dPhi12","dPhi MidPoint - SISCone",200,-0.5,0.5);
431  dEta12 = TH1F("dEta12","dEta MidPoint - SISCone",200,-0.5,0.5);
432  dPt12 = TH1F("dPt12","dPt MidPoint - SISCone",200,-100,100);
433 
434 
435 
436  h_nCalJets1 = TH1F( "nCalJets1", "Number of CalJets1", 20, 0, 20 );
437  h_nCalJets2 = TH1F( "nCalJets2", "Number of CalJets2", 20, 0, 20 );
438  h_nCalJets3 = TH1F( "nCalJets3", "Number of CalJets3", 20, 0, 20 );
439  h_nCalJets4 = TH1F( "nCalJets4", "Number of CalJets4", 20, 0, 20 );
440 
441  h_lowPtCal11 = TH1F( "lowPtCal11", "Low p_{T} of CalJet1 Eta1", 100, 0, 100 );
442  h_lowPtCal21 = TH1F( "lowPtCal21", "Low p_{T} of CalJet2 Eta1", 100, 0, 100 );
443  h_lowPtCal31 = TH1F( "lowPtCal31", "Low p_{T} of CalJet3 Eta1", 100, 0, 100 );
444  h_lowPtCal41 = TH1F( "lowPtCal41", "Low p_{T} of CalJet4 Eta1", 100, 0, 100 );
445 
446  h_lowPtCal12 = TH1F( "lowPtCal12", "Low p_{T} of CalJet1 Eta2", 100, 0, 100 );
447  h_lowPtCal22 = TH1F( "lowPtCal22", "Low p_{T} of CalJet2 Eta2", 100, 0, 100 );
448  h_lowPtCal32 = TH1F( "lowPtCal32", "Low p_{T} of CalJet3 Eta2", 100, 0, 100 );
449  h_lowPtCal42 = TH1F( "lowPtCal42", "Low p_{T} of CalJet4 Eta2", 100, 0, 100 );
450 
451  h_lowPtCal13 = TH1F( "lowPtCal13", "Low p_{T} of CalJet1 Eta3", 100, 0, 100 );
452  h_lowPtCal23 = TH1F( "lowPtCal23", "Low p_{T} of CalJet2 Eta3", 100, 0, 100 );
453  h_lowPtCal33 = TH1F( "lowPtCal33", "Low p_{T} of CalJet3 Eta3", 100, 0, 100 );
454  h_lowPtCal43 = TH1F( "lowPtCal43", "Low p_{T} of CalJet4 Eta3", 100, 0, 100 );
455 
456  h_lowPtCal1c11 = TH1F( "lowPtCal1c11", "Low p_{T} of CalJet1 c1 Eta1", 100, 0, 100 );
457  h_lowPtCal2c11 = TH1F( "lowPtCal2c11", "Low p_{T} of CalJet2 c1 Eta1", 100, 0, 100 );
458  h_lowPtCal3c11 = TH1F( "lowPtCal3c11", "Low p_{T} of CalJet3 c1 Eta1", 100, 0, 100 );
459  h_lowPtCal4c11 = TH1F( "lowPtCal4c11", "Low p_{T} of CalJet4 c1 Eta1", 100, 0, 100 );
460 
461  h_lowPtCal1c12 = TH1F( "lowPtCal1c12", "Low p_{T} of CalJet1 c1 Eta2", 100, 0, 100 );
462  h_lowPtCal2c12 = TH1F( "lowPtCal2c12", "Low p_{T} of CalJet2 c1 Eta2", 100, 0, 100 );
463  h_lowPtCal3c12 = TH1F( "lowPtCal3c12", "Low p_{T} of CalJet3 c1 Eta2", 100, 0, 100 );
464  h_lowPtCal4c12 = TH1F( "lowPtCal4c12", "Low p_{T} of CalJet4 c1 Eta2", 100, 0, 100 );
465 
466  h_lowPtCal1c13 = TH1F( "lowPtCal1c13", "Low p_{T} of CalJet1 c1 Eta3", 100, 0, 100 );
467  h_lowPtCal2c13 = TH1F( "lowPtCal2c13", "Low p_{T} of CalJet2 c1 Eta3", 100, 0, 100 );
468  h_lowPtCal3c13 = TH1F( "lowPtCal3c13", "Low p_{T} of CalJet3 c1 Eta3", 100, 0, 100 );
469  h_lowPtCal4c13 = TH1F( "lowPtCal4c13", "Low p_{T} of CalJet4 c1 Eta3", 100, 0, 100 );
470 
471 
472  matchedAllPt11 = TH1F( "matchedAllPt11", "p_{T} of CalJet1 Eta1", 50, 0, 250 );
473  matchedAllPt12 = TH1F( "matchedAllPt12", "p_{T} of CalJet1 Eta2", 50, 0, 250 );
474  matchedAllPt13 = TH1F( "matchedAllPt13", "p_{T} of CalJet1 Eta3", 50, 0, 250 );
475  matchedPt11 = TH1F( "matchedPt11", "p_{T} of CalJet1 Eta1", 50, 0, 250 );
476  matchedPt12 = TH1F( "matchedPt12", "p_{T} of CalJet1 Eta2", 50, 0, 250 );
477  matchedPt13 = TH1F( "matchedPt13", "p_{T} of CalJet1 Eta3", 50, 0, 250 );
478 
479  matchedAllPt21 = TH1F( "matchedAllPt21", "p_{T} of CalJet2 Eta1", 50, 0, 250 );
480  matchedAllPt22 = TH1F( "matchedAllPt22", "p_{T} of CalJet2 Eta2", 50, 0, 250 );
481  matchedAllPt23 = TH1F( "matchedAllPt23", "p_{T} of CalJet2 Eta3", 50, 0, 250 );
482  matchedPt21 = TH1F( "matchedPt21", "p_{T} of CalJet2 Eta1", 50, 0, 250 );
483  matchedPt22 = TH1F( "matchedPt22", "p_{T} of CalJet2 Eta2", 50, 0, 250 );
484  matchedPt23 = TH1F( "matchedPt23", "p_{T} of CalJet2 Eta3", 50, 0, 250 );
485 
486  matchedAllPt31 = TH1F( "matchedAllPt31", "p_{T} of CalJet3 Eta1", 50, 0, 250 );
487  matchedAllPt32 = TH1F( "matchedAllPt32", "p_{T} of CalJet3 Eta2", 50, 0, 250 );
488  matchedAllPt33 = TH1F( "matchedAllPt33", "p_{T} of CalJet3 Eta3", 50, 0, 250 );
489  matchedPt31 = TH1F( "matchedPt31", "p_{T} of CalJet3 Eta1", 50, 0, 250 );
490  matchedPt32 = TH1F( "matchedPt32", "p_{T} of CalJet3 Eta2", 50, 0, 250 );
491  matchedPt33 = TH1F( "matchedPt33", "p_{T} of CalJet3 Eta3", 50, 0, 250 );
492 
493  matchedAllPt41 = TH1F( "matchedAllPt41", "p_{T} of CalJet4 Eta1", 50, 0, 250 );
494  matchedAllPt42 = TH1F( "matchedAllPt42", "p_{T} of CalJet4 Eta2", 50, 0, 250 );
495  matchedAllPt43 = TH1F( "matchedAllPt43", "p_{T} of CalJet4 Eta3", 50, 0, 250 );
496  matchedPt41 = TH1F( "matchedPt41", "p_{T} of CalJet4 Eta1", 50, 0, 250 );
497  matchedPt42 = TH1F( "matchedPt42", "p_{T} of CalJet4 Eta2", 50, 0, 250 );
498  matchedPt43 = TH1F( "matchedPt43", "p_{T} of CalJet4 Eta3", 50, 0, 250 );
499 
500 
501 
502  h_ptCal1 = TH1F( "ptCal1", "p_{T} of CalJet1", 50, 0, 1000 );
503  h_ptCal12 = TH1F( "ptCal12", "p_{T} of CalJet1 2", 50, 0, 6000 );
504  h_ptCal13 = TH1F( "ptCal13", "p_{T} of CalJet1 2", 50, 0, 300 );
505 
506  h_ptCal2 = TH1F( "ptCal2", "p_{T} of CalJet2", 50, 0, 1000 );
507  h_ptCal22 = TH1F( "ptCal22", "p_{T} of CalJet2 2", 50, 0, 6000 );
508  h_ptCal23 = TH1F( "ptCal23", "p_{T} of CalJet2 2", 50, 0, 300 );
509 
510  h_ptCal3 = TH1F( "ptCal3", "p_{T} of CalJet3", 50, 0, 1000 );
511  h_ptCal32 = TH1F( "ptCal32", "p_{T} of CalJet3 2", 50, 0, 6000 );
512  h_ptCal33 = TH1F( "ptCal33", "p_{T} of CalJet3 2", 50, 0, 300 );
513 
514  h_ptCal4 = TH1F( "ptCal4", "p_{T} of CalJet4", 50, 0, 1000 );
515  h_ptCal42 = TH1F( "ptCal42", "p_{T} of CalJet4 2", 50, 0, 6000 );
516  h_ptCal43 = TH1F( "ptCal43", "p_{T} of CalJet4 2", 50, 0, 300 );
517 
518  h_etaCal1 = TH1F( "etaCal1", "#eta of CalJet1", 100, -4, 4 );
519  h_etaCal2 = TH1F( "etaCal2", "#eta of CalJet2", 100, -4, 4 );
520  h_etaCal3 = TH1F( "etaCal3", "#eta of CalJet3", 100, -4, 4 );
521  h_etaCal4 = TH1F( "etaCal4", "#eta of CalJet4", 100, -4, 4 );
522 
523  h_phiCal1 = TH1F( "phiCal1", "#phi of CalJet1", 50, -M_PI, M_PI );
524  h_phiCal2 = TH1F( "phiCal2", "#phi of CalJet2", 50, -M_PI, M_PI );
525  h_phiCal3 = TH1F( "phiCal3", "#phi of CalJet3", 50, -M_PI, M_PI );
526  h_phiCal4 = TH1F( "phiCal4", "#phi of CalJet4", 50, -M_PI, M_PI );
527 
528  h_ptCalL1 = TH1F( "ptCalL1", "p_{T} of CalJetL1", 50, 0, 300 );
529  h_ptCalL12 = TH1F( "ptCalL12", "p_{T} of CalJetL1 2", 50, 0, 1200 );
530  h_ptCalL13 = TH1F( "ptCalL13", "p_{T} of CalJetL1 3", 50, 0, 6000 );
531  h_ptCalL2 = TH1F( "ptCalL2", "p_{T} of CalJetL2", 50, 0, 300 );
532  h_ptCalL22 = TH1F( "ptCalL22", "p_{T} of CalJetL2 2", 50, 0, 1200 );
533  h_ptCalL23 = TH1F( "ptCalL23", "p_{T} of CalJetL2 3", 50, 0, 6000 );
534  h_ptCalL3 = TH1F( "ptCalL3", "p_{T} of CalJetL3", 50, 0, 300 );
535  h_ptCalL32 = TH1F( "ptCalL32", "p_{T} of CalJetL3 2", 50, 0, 1200 );
536  h_ptCalL33 = TH1F( "ptCalL33", "p_{T} of CalJetL3 3", 50, 0, 6000 );
537  h_ptCalL4 = TH1F( "ptCalL4", "p_{T} of CalJetL4", 50, 0, 300 );
538  h_ptCalL42 = TH1F( "ptCalL42", "p_{T} of CalJetL4 2", 50, 0, 1200 );
539  h_ptCalL43 = TH1F( "ptCalL43", "p_{T} of CalJetL4 3", 50, 0, 6000 );
540 
541 
542  h_etaCalL1 = TH1F( "etaCalL1", "#eta of CalJetL1", 100, -4, 4 );
543  h_etaCalL2 = TH1F( "etaCalL2", "#eta of CalJetL2", 100, -4, 4 );
544  h_etaCalL3 = TH1F( "etaCalL3", "#eta of CalJetL3", 100, -4, 4 );
545  h_etaCalL4 = TH1F( "etaCalL4", "#eta of CalJetL4", 100, -4, 4 );
546  h_phiCalL1 = TH1F( "phiCalL1", "#phi of CalJetL1", 50, -M_PI, M_PI );
547  h_phiCalL2 = TH1F( "phiCalL2", "#phi of CalJetL2", 50, -M_PI, M_PI );
548  h_phiCalL3 = TH1F( "phiCalL3", "#phi of CalJetL3", 50, -M_PI, M_PI );
549  h_phiCalL4 = TH1F( "phiCalL4", "#phi of CalJetL4", 50, -M_PI, M_PI );
550 
551  h_nGenJets1 = TH1F( "nGenJets1", "Number of GenJets1", 20, 0, 20 );
552  h_nGenJets2 = TH1F( "nGenJets2", "Number of GenJets2", 20, 0, 20 );
553  h_nGenJets3 = TH1F( "nGenJets3", "Number of GenJets3", 20, 0, 20 );
554  h_nGenJets4 = TH1F( "nGenJets4", "Number of GenJets4", 20, 0, 20 );
555 
556  h_ptGen1 = TH1F( "ptGen1", "p_{T} of GenJet1", 50, 0, 1000 );
557  h_ptGen12 = TH1F( "ptGen12", "p_{T} of GenJet1 2", 50, 0, 6000 );
558  h_ptGen13 = TH1F( "ptGen13", "p_{T} of GenJet1 3", 50, 0, 300 );
559 
560  h_ptGen2 = TH1F( "ptGen2", "p_{T} of GenJet2", 50, 0, 1000 );
561  h_ptGen22 = TH1F( "ptGen22", "p_{T} of GenJet2 2", 50, 0, 6000 );
562  h_ptGen23 = TH1F( "ptGen23", "p_{T} of GenJet2 3", 50, 0, 300 );
563 
564  h_ptGen3 = TH1F( "ptGen3", "p_{T} of GenJet3", 50, 0, 1000 );
565  h_ptGen32 = TH1F( "ptGen32", "p_{T} of GenJet3 2", 50, 0, 6000 );
566  h_ptGen33 = TH1F( "ptGen33", "p_{T} of GenJet3 3", 50, 0, 300 );
567 
568  h_ptGen4 = TH1F( "ptGen4", "p_{T} of GenJet4", 50, 0, 1000 );
569  h_ptGen42 = TH1F( "ptGen42", "p_{T} of GenJet4 2", 50, 0, 6000 );
570  h_ptGen43 = TH1F( "ptGen43", "p_{T} of GenJet4 3", 50, 0, 300 );
571 
572 
573  h_etaGen1 = TH1F( "etaGen1", "#eta of GenJet1", 100, -4, 4 );
574  h_etaGen2 = TH1F( "etaGen2", "#eta of GenJet2", 100, -4, 4 );
575  h_etaGen3 = TH1F( "etaGen3", "#eta of GenJet3", 100, -4, 4 );
576  h_phiGen1 = TH1F( "phiGen1", "#phi of GenJet1", 50, -M_PI, M_PI );
577  h_phiGen2 = TH1F( "phiGen2", "#phi of GenJet2", 50, -M_PI, M_PI );
578  h_phiGen3 = TH1F( "phiGen3", "#phi of GenJet3", 50, -M_PI, M_PI );
579 
580  h_ptGenL1 = TH1F( "ptGenL1", "p_{T} of GenJetL1", 50, 0, 300 );
581  h_ptGenL12 = TH1F( "ptGenL12", "p_{T} of GenJetL1 2", 50, 0, 1200 );
582  h_ptGenL13 = TH1F( "ptGenL13", "p_{T} of GenJetL1 3", 50, 0, 6000 );
583  h_ptGenL2 = TH1F( "ptGenL2", "p_{T} of GenJetL2", 50, 0, 300 );
584  h_ptGenL22 = TH1F( "ptGenL22", "p_{T} of GenJetL2 2", 50, 0, 1200 );
585  h_ptGenL23 = TH1F( "ptGenL23", "p_{T} of GenJetL2 3", 50, 0, 6000 );
586  h_ptGenL3 = TH1F( "ptGenL3", "p_{T} of GenJetL3", 50, 0, 300 );
587  h_ptGenL32 = TH1F( "ptGenL32", "p_{T} of GenJetL32", 50, 0, 1200 );
588  h_ptGenL33 = TH1F( "ptGenL33", "p_{T} of GenJetL33", 50, 0, 6000 );
589 
590 
591  h_etaGenL1 = TH1F( "etaGenL1", "#eta of GenJetL1", 100, -4, 4 );
592  h_etaGenL2 = TH1F( "etaGenL2", "#eta of GenJetL2", 100, -4, 4 );
593  h_etaGenL3 = TH1F( "etaGenL3", "#eta of GenJetL3", 100, -4, 4 );
594  h_phiGenL1 = TH1F( "phiGenL1", "#phi of GenJetL1", 50, -M_PI, M_PI );
595  h_phiGenL2 = TH1F( "phiGenL2", "#phi of GenJetL2", 50, -M_PI, M_PI );
596  h_phiGenL3 = TH1F( "phiGenL3", "#phi of GenJetL3", 50, -M_PI, M_PI );
597 
598  h_jetEt1 = TH1F( "jetEt1", "Total Jet Et", 100, 0, 3000 );
599  h_jetEt2 = TH1F( "jetEt2", "Total Jet Et", 100, 0, 3000 );
600  h_jetEt3 = TH1F( "jetEt3", "Total Jet Et", 100, 0, 3000 );
601 
602  h_jet1Pt1 = TH1F( "jet1Pt1", "Jet Pt", 100, 0, 3000 );
603  h_jet2Pt1 = TH1F( "jet2Pt1", "Jet Pt", 100, 0, 3000 );
604  h_jet3Pt1 = TH1F( "jet3Pt1", "Jet Pt", 100, 0, 3000 );
605  h_jet4Pt1 = TH1F( "jet4Pt1", "Jet Pt", 100, 0, 3000 );
606  h_jet5Pt1 = TH1F( "jet5Pt1", "Jet Pt", 100, 0, 3000 );
607  h_jet6Pt1 = TH1F( "jet6Pt1", "Jet Pt", 100, 0, 3000 );
608  h_jet7Pt1 = TH1F( "jet7Pt1", "Jet Pt", 100, 0, 3000 );
609 
610  h_jet1Pt2 = TH1F( "jet1Pt2", "Jet Pt", 100, 0, 3000 );
611  h_jet2Pt2 = TH1F( "jet2Pt2", "Jet Pt", 100, 0, 3000 );
612  h_jet3Pt2 = TH1F( "jet3Pt2", "Jet Pt", 100, 0, 3000 );
613  h_jet4Pt2 = TH1F( "jet4Pt2", "Jet Pt", 100, 0, 3000 );
614  h_jet5Pt2 = TH1F( "jet5Pt2", "Jet Pt", 100, 0, 3000 );
615  h_jet6Pt2 = TH1F( "jet6Pt2", "Jet Pt", 100, 0, 3000 );
616  h_jet7Pt2 = TH1F( "jet7Pt2", "Jet Pt", 100, 0, 3000 );
617 
618  h_jet1Pt3 = TH1F( "jet1Pt3", "Jet Pt", 100, 0, 3000 );
619  h_jet2Pt3 = TH1F( "jet2Pt3", "Jet Pt", 100, 0, 3000 );
620  h_jet3Pt3 = TH1F( "jet3Pt3", "Jet Pt", 100, 0, 3000 );
621  h_jet4Pt3 = TH1F( "jet4Pt3", "Jet Pt", 100, 0, 3000 );
622  h_jet5Pt3 = TH1F( "jet5Pt3", "Jet Pt", 100, 0, 3000 );
623  h_jet6Pt3 = TH1F( "jet6Pt3", "Jet Pt", 100, 0, 3000 );
624  h_jet7Pt3 = TH1F( "jet7Pt3", "Jet Pt", 100, 0, 3000 );
625 
626  h_jet1Pt4 = TH1F( "jet1Pt4", "Jet Pt", 100, 0, 3000 );
627  h_jet2Pt4 = TH1F( "jet2Pt4", "Jet Pt", 100, 0, 3000 );
628  h_jet3Pt4 = TH1F( "jet3Pt4", "Jet Pt", 100, 0, 3000 );
629  h_jet4Pt4 = TH1F( "jet4Pt4", "Jet Pt", 100, 0, 3000 );
630  h_jet5Pt4 = TH1F( "jet5Pt4", "Jet Pt", 100, 0, 3000 );
631  h_jet6Pt4 = TH1F( "jet6Pt4", "Jet Pt", 100, 0, 3000 );
632  h_jet7Pt4 = TH1F( "jet7Pt4", "Jet Pt", 100, 0, 3000 );
633 
634 
635  h_totMissEt1 = TH1F( "totMissEt1", "Total Unclustered Et", 100, 0, 500 );
636  h_totMissEt2 = TH1F( "totMissEt2", "Total Unclustered Et", 100, 0, 500 );
637  h_totMissEt3 = TH1F( "totMissEt3", "Total Unclustered Et", 100, 0, 500 );
638 
639  h_missEt1 = TH1F( "missEt1", "Unclustered Et", 100, 0, 50 );
640  h_missEt2 = TH1F( "missEt2", "Unclustered Et", 100, 0, 50 );
641  h_missEt3 = TH1F( "missEt3", "Unclustered Et", 100, 0, 50 );
642 
643  h_missEt1s = TH1F( "missEt1s", "Unclustered Et", 100, 0, 2 );
644  h_missEt2s = TH1F( "missEt2s", "Unclustered Et", 100, 0, 2 );
645  h_missEt3s = TH1F( "missEt3s", "Unclustered Et", 100, 0, 2 );
646 
647  ParMatch1 = TH1F( "ParMatch1", "Number of Matched Jets 1", 10, 0, 10 );
648  ParMatch2 = TH1F( "ParMatch2", "Number of Matched Jets 2", 10, 0, 10 );
649  ParMatch3 = TH1F( "ParMatch3", "Number of Matched Jets 3", 10, 0, 10 );
650 
651 }
652 
653 
654 void myFastSimVal::analyze( const Event& evt, const EventSetup& es ) {
655 
656  int EtaOk10, EtaOk13, EtaOk40;
657 
658  double ZpM, ZpMG, ZpMM;
659  double LeadMass1, LeadMass2, LeadMass3, LeadMass4;
660  double LeadMassP1, LeadMassP2, LeadMassP3;
661 
662  float pt1, pt2, pt3;
663 
664  float minJetPt = 30.;
665  float minJetPt10 = 10.;
666  int jetInd, allJetInd;
667  int usedInd = -1;
668  // double matchedDelR = 0.1;
669  double matchedDelR = 0.3;
670 
671  ZpMG = 0;
672  LeadMass1 = -1;
673  LeadMass2 = -1;
674  LeadMass3 = -1;
675 
676  math::XYZTLorentzVector p4tmp[2], p4cortmp[2];
677  nEvent++;
678 
679  // ********************************
680  // **** Get the CaloJet1 collection
681  // ********************************
682 
683  Handle<CaloJetCollection> caloJets1;
684  evt.getByLabel( CaloJetAlgorithm1, caloJets1 );
685 
686  // Count Jets above Pt cut
687  for (int istep = 0; istep < 100; ++istep) {
688  int njet = 0;
689  float ptStep = (istep * (5000./100.));
690  for ( CaloJetCollection::const_iterator cal = caloJets1->begin(); cal != caloJets1->end(); ++ cal ) {
691  if ( cal->pt() > ptStep ) njet++;
692  }
693 
694  hf_nJet1.Fill( ptStep, njet );
695  }
696 
697  // Count Jets above Pt cut
698  for (int istep = 0; istep < 100; ++istep) {
699  int njet = 0;
700  float ptStep = (istep * (200./100.));
701  for ( CaloJetCollection::const_iterator cal = caloJets1->begin(); cal != caloJets1->end(); ++ cal ) {
702  if ( cal->pt() > ptStep ) njet++;
703  }
704 
705  hf_nJet1s.Fill( ptStep, njet );
706  }
707 
708  // Count Jets above Pt cut
709  for (int istep = 0; istep < 100; ++istep) {
710  int njet = 0;
711  float ptStep = (istep * (3000./100.));
712  for ( CaloJetCollection::const_iterator cal = caloJets1->begin(); cal != caloJets1->end(); ++ cal ) {
713  if ( cal->pt() > ptStep ) njet++;
714  }
715 
716  hf_nJet11.Fill( ptStep, njet );
717  }
718 
719 
720  //Loop over the two leading CaloJets and fill some histograms
721  jetInd = 0;
722  allJetInd = 0;
723  EtaOk10 = 0;
724  EtaOk13 = 0;
725  EtaOk40 = 0;
726 
727  // const JetCorrector* corrector =
728  // JetCorrector::getJetCorrector (JetCorrectionService, es);
729 
730  double highestPt;
731  double nextPt;
732 
733  highestPt = 0.0;
734  nextPt = 0.0;
735 
736 
737  for( CaloJetCollection::const_iterator cal = caloJets1->begin(); cal != caloJets1->end(); ++ cal ) {
738 
739  // double scale = corrector->correction (*cal);
740  double scale = 1.0;
741  double corPt = scale*cal->pt();
742  // double corPt = cal->pt();
743 
744 
745  if (corPt>highestPt) {
746  nextPt = highestPt;
747  p4cortmp[1] = p4cortmp[0];
748  highestPt = corPt;
749  p4cortmp[0] = scale*cal->p4();
750  } else if (corPt>nextPt) {
751  nextPt = corPt;
752  p4cortmp[1] = scale*cal->p4();
753  }
754 
755  /***
756  std::cout << ">>> Corr Jet: corPt = "
757  << corPt << ", scale = " << scale
758  << " pt = " << cal->pt()
759  << " highestPt = " << highestPt
760  << " nextPt = " << nextPt
761  << std::endl;
762  ****/
763 
764  allJetInd++;
765  if (allJetInd == 1) {
766  h_jet1Pt1.Fill( cal->pt() );
767  pt1 = cal->pt();
768  p4tmp[0] = cal->p4();
769  if ( fabs(cal->eta()) < 1.0) EtaOk10++;
770  if ( fabs(cal->eta()) < 1.3) EtaOk13++;
771  if ( fabs(cal->eta()) < 4.0) EtaOk40++;
772  }
773  if (allJetInd == 2) {
774  h_jet2Pt1.Fill( cal->pt() );
775  p4tmp[1] = cal->p4();
776  if ( fabs(cal->eta()) < 1.0) EtaOk10++;
777  if ( fabs(cal->eta()) < 1.3) EtaOk13++;
778  if ( fabs(cal->eta()) < 4.0) EtaOk40++;
779  }
780  if ( (allJetInd == 1) || (allJetInd == 2) ) {
781 
782  h_ptCalL1.Fill( cal->pt() );
783  h_ptCalL12.Fill( cal->pt() );
784  h_ptCalL13.Fill( cal->pt() );
785 
786  h_etaCalL1.Fill( cal->eta() );
787  h_phiCalL1.Fill( cal->phi() );
788  }
789 
790  if (allJetInd == 3) h_jet3Pt1.Fill( cal->pt() );
791  if (allJetInd == 4) h_jet4Pt1.Fill( cal->pt() );
792  if (allJetInd == 5) h_jet5Pt1.Fill( cal->pt() );
793  if (allJetInd == 6) h_jet6Pt1.Fill( cal->pt() );
794  if (allJetInd == 7) h_jet7Pt1.Fill( cal->pt() );
795 
796  if ( fabs(cal->eta()) < 1.3) {
797  h_lowPtCal11.Fill( cal->pt() );
798  if ( cal->pt() > 10.) {
799  h_lowPtCal1c11.Fill( cal->pt() );
800  }
801  }
802  if ( (fabs(cal->eta())> 1.3) && ( fabs(cal->eta()) < 3.) ) {
803  h_lowPtCal12.Fill( cal->pt() );
804  if ( cal->pt() > 10.) {
805  h_lowPtCal1c12.Fill( cal->pt() );
806  }
807  }
808  if ( fabs(cal->eta()) > 3.0) {
809  h_lowPtCal13.Fill( cal->pt() );
810  if ( cal->pt() > 10.) {
811  h_lowPtCal1c13.Fill( cal->pt() );
812  }
813  }
814 
815 
816 
817  if ( cal->pt() > minJetPt) {
818  // std::cout << "CALO JET1 #" << jetInd << std::endl << cal->print() << std::endl;
819  h_ptCal1.Fill( cal->pt() );
820  h_ptCal12.Fill( cal->pt() );
821  h_ptCal13.Fill( cal->pt() );
822 
823  h_etaCal1.Fill( cal->eta() );
824  h_phiCal1.Fill( cal->phi() );
825  jetInd++;
826  }
827  }
828 
829  // h_nCalJets1.Fill( caloJets1->size() );
830  h_nCalJets1.Fill( jetInd );
831  if (jetInd > 1) {
832  LeadMass1 = (p4tmp[0]+p4tmp[1]).mass();
833  dijetMass1.Fill( LeadMass1 );
834  dijetMass12.Fill( LeadMass1 );
835  dijetMass13.Fill( LeadMass1 );
836  if (EtaOk10 == 2) {
837  dijetMass101.Fill( LeadMass1 );
838  dijetMass102.Fill( LeadMass1 );
839  dijetMass103.Fill( LeadMass1 );
840  dijetMass_700_101.Fill( LeadMass1 );
841  dijetMass_2000_101.Fill( LeadMass1 );
842  dijetMass_5000_101.Fill( LeadMass1 );
843  }
844  if (EtaOk13 == 2) {
845  dijetMass131.Fill( LeadMass1 );
846  dijetMass132.Fill( LeadMass1 );
847  dijetMass133.Fill( LeadMass1 );
848  dijetMass_700_131.Fill( LeadMass1 );
849  dijetMass_2000_131.Fill( LeadMass1 );
850  dijetMass_5000_131.Fill( LeadMass1 );
851  }
852  if (EtaOk40 == 2) {
853  dijetMass401.Fill( LeadMass1 );
854  dijetMass402.Fill( LeadMass1 );
855  dijetMass403.Fill( LeadMass1 );
856  dijetMass_700_401.Fill( LeadMass1 );
857  dijetMass_2000_401.Fill( LeadMass1 );
858  dijetMass_5000_401.Fill( LeadMass1 );
859  }
860 
861  LeadMass1 = (p4cortmp[0]+p4cortmp[1]).mass();
862 
863  /****
864  if (LeadMass1 < 30.) {
865  std::cout << " XXX Low Mass "
866  << (p4tmp[0]+p4tmp[1]).mass()
867  << " / "
868  << (p4cortmp[0]+p4cortmp[1]).mass()
869  << std::endl;
870 
871  std::cout << " p4 1 = " << p4tmp[0]
872  << " p4 2 = " << p4tmp[1]
873  << " p4 cor 1 = " << p4cortmp[0]
874  << " p4 cor 2 = " << p4cortmp[0]
875  << endl;
876 
877  }
878  ****/
879 
880  /****
881  dijetMassCor1.Fill( LeadMass1 );
882  dijetMassCor_700_1.Fill( LeadMass1 );
883  dijetMassCor_2000_1.Fill( LeadMass1 );
884  dijetMassCor_5000_1.Fill( LeadMass1 );
885 
886  if (EtaOk10 == 2) {
887  dijetMassCor101.Fill( LeadMass1 );
888  dijetMassCor_700_101.Fill( LeadMass1 );
889  dijetMassCor_2000_101.Fill( LeadMass1 );
890  dijetMassCor_5000_101.Fill( LeadMass1 );
891  }
892  if (EtaOk13 == 2) {
893  dijetMassCor131.Fill( LeadMass1 );
894  dijetMassCor_700_131.Fill( LeadMass1 );
895  dijetMassCor_2000_131.Fill( LeadMass1 );
896  dijetMassCor_5000_131.Fill( LeadMass1 );
897  }
898  if (EtaOk40 == 2) {
899  dijetMassCor401.Fill( LeadMass1 );
900  dijetMassCor_700_401.Fill( LeadMass1 );
901  dijetMassCor_2000_401.Fill( LeadMass1 );
902  dijetMassCor_5000_401.Fill( LeadMass1 );
903  }
904  ****/
905 
906  }
907 
908 
909  // ********************************
910  // **** Get the CaloJet2 collection
911  // ********************************
912  Handle<CaloJetCollection> caloJets2;
913  evt.getByLabel( CaloJetAlgorithm2, caloJets2 );
914 
915  // Count Jets above Pt cut
916  for (int istep = 0; istep < 100; ++istep) {
917  int njet = 0;
918  float ptStep = (istep * (5000./100.));
919 
920  for ( CaloJetCollection::const_iterator cal = caloJets2->begin(); cal != caloJets2->end(); ++ cal )
921  if ( cal->pt() > ptStep ) njet++;
922 
923  hf_nJet2.Fill( ptStep, njet );
924  }
925 
926  for (int istep = 0; istep < 100; ++istep) {
927  int njet = 0;
928  float ptStep = (istep * (200./100.));
929 
930  for ( CaloJetCollection::const_iterator cal = caloJets2->begin(); cal != caloJets2->end(); ++ cal )
931  if ( cal->pt() > ptStep ) njet++;
932 
933  hf_nJet2s.Fill( ptStep, njet );
934  }
935 
936 
937  for (int istep = 0; istep < 100; ++istep) {
938  int njet = 0;
939  float ptStep = (istep * (3000./100.));
940 
941  for ( CaloJetCollection::const_iterator cal = caloJets2->begin(); cal != caloJets2->end(); ++ cal )
942  if ( cal->pt() > ptStep ) njet++;
943 
944  hf_nJet21.Fill( ptStep, njet );
945  }
946 
947 
948 
949 
950 
951  //Loop over the two leading CaloJets and fill some histograms
952  jetInd = 0;
953  allJetInd = 0;
954  for( CaloJetCollection::const_iterator cal = caloJets2->begin(); cal != caloJets2->end(); ++cal ) {
955 
956  allJetInd++;
957  if (allJetInd == 1) {
958  h_jet1Pt2.Fill( cal->pt() );
959  pt2 = cal->pt();
960  p4tmp[0] = cal->p4();
961  }
962  if (allJetInd == 2) {
963  h_jet2Pt2.Fill( cal->pt() );
964  p4tmp[1] = cal->p4();
965  }
966  if ( (allJetInd == 1) || (allJetInd == 2) ) {
967  h_ptCalL2.Fill( cal->pt() );
968  h_ptCalL22.Fill( cal->pt() );
969  h_ptCalL23.Fill( cal->pt() );
970 
971  h_etaCalL2.Fill( cal->eta() );
972  h_phiCalL2.Fill( cal->phi() );
973  }
974  if (allJetInd == 3) h_jet3Pt2.Fill( cal->pt() );
975  if (allJetInd == 4) h_jet4Pt2.Fill( cal->pt() );
976  if (allJetInd == 5) h_jet5Pt2.Fill( cal->pt() );
977  if (allJetInd == 6) h_jet6Pt2.Fill( cal->pt() );
978  if (allJetInd == 7) h_jet7Pt2.Fill( cal->pt() );
979 
980  if ( fabs(cal->eta()) < 1.3) {
981  h_lowPtCal21.Fill( cal->pt() );
982  if ( cal->pt() > 10.) {
983  h_lowPtCal2c11.Fill( cal->pt() );
984  }
985  }
986  if ( (fabs(cal->eta())> 1.3) && ( fabs(cal->eta()) < 3.) ) {
987  h_lowPtCal22.Fill( cal->pt() );
988  if ( cal->pt() > 10.) {
989  h_lowPtCal2c12.Fill( cal->pt() );
990  }
991  }
992  if ( fabs(cal->eta()) > 3.0) {
993  h_lowPtCal23.Fill( cal->pt() );
994  if ( cal->pt() > 10.) {
995  h_lowPtCal2c13.Fill( cal->pt() );
996  }
997  }
998 
999 
1000  if ( cal->pt() > minJetPt) {
1001  h_ptCal2.Fill( cal->pt() );
1002  h_ptCal22.Fill( cal->pt() );
1003  h_ptCal23.Fill( cal->pt() );
1004 
1005  h_etaCal2.Fill( cal->eta() );
1006  h_phiCal2.Fill( cal->phi() );
1007  jetInd++;
1008  }
1009  }
1010  // h_nCalJets2.Fill( caloJets2->size() );
1011  h_nCalJets2.Fill( jetInd );
1012  if (jetInd > 1) {
1013  LeadMass2 = (p4tmp[0]+p4tmp[1]).mass();
1014  dijetMass2.Fill( LeadMass2 );
1015  dijetMass22.Fill( LeadMass2 );
1016  dijetMass23.Fill( LeadMass2 );
1017 
1018 
1019  dijetMassCor1.Fill( LeadMass2 );
1020  dijetMassCor_700_1.Fill( LeadMass2 );
1021  dijetMassCor_2000_1.Fill( LeadMass2 );
1022  dijetMassCor_5000_1.Fill( LeadMass2 );
1023 
1024  if (EtaOk10 == 2) {
1025  dijetMassCor101.Fill( LeadMass2 );
1026  dijetMassCor_700_101.Fill( LeadMass2 );
1027  dijetMassCor_2000_101.Fill( LeadMass2 );
1028  dijetMassCor_5000_101.Fill( LeadMass2 );
1029  }
1030  if (EtaOk13 == 2) {
1031  dijetMassCor131.Fill( LeadMass2 );
1032  dijetMassCor_700_131.Fill( LeadMass2 );
1033  dijetMassCor_2000_131.Fill( LeadMass2 );
1034  dijetMassCor_5000_131.Fill( LeadMass2 );
1035  }
1036  if (EtaOk40 == 2) {
1037  dijetMassCor401.Fill( LeadMass2 );
1038  dijetMassCor_700_401.Fill( LeadMass2 );
1039  dijetMassCor_2000_401.Fill( LeadMass2 );
1040  dijetMassCor_5000_401.Fill( LeadMass2 );
1041  }
1042 
1043 
1044  }
1045 
1046 
1047 
1048  // ********************************
1049  // **** Get the CaloJet3 collection
1050  // ********************************
1051  Handle<CaloJetCollection> caloJets3;
1052  evt.getByLabel( CaloJetAlgorithm3, caloJets3 );
1053 
1054  //Loop over the two leading CaloJets and fill some histograms
1055  jetInd = 0;
1056  allJetInd = 0;
1057 
1058  // Count Jets above Pt cut
1059  for (int istep = 0; istep < 100; ++istep) {
1060  int njet = 0;
1061  float ptStep = (istep * (5000./100.));
1062 
1063  for ( CaloJetCollection::const_iterator cal = caloJets3->begin(); cal != caloJets3->end(); ++ cal )
1064  if ( cal->pt() > ptStep ) njet++;
1065 
1066 
1067  hf_nJet3.Fill( ptStep, njet );
1068  }
1069 
1070  for (int istep = 0; istep < 100; ++istep) {
1071  int njet = 0;
1072  float ptStep = (istep * (200./100.));
1073 
1074  for ( CaloJetCollection::const_iterator cal = caloJets3->begin(); cal != caloJets3->end(); ++ cal )
1075  if ( cal->pt() > ptStep ) njet++;
1076 
1077  hf_nJet3s.Fill( ptStep, njet );
1078  }
1079 
1080  for (int istep = 0; istep < 100; ++istep) {
1081  int njet = 0;
1082  float ptStep = (istep * (3000./100.));
1083 
1084  for ( CaloJetCollection::const_iterator cal = caloJets3->begin(); cal != caloJets3->end(); ++ cal )
1085  if ( cal->pt() > ptStep ) njet++;
1086 
1087  hf_nJet31.Fill( ptStep, njet );
1088  }
1089 
1090 
1091  for( CaloJetCollection::const_iterator cal = caloJets3->begin(); cal != caloJets3->end(); ++ cal ) {
1092 
1093  allJetInd++;
1094  if (allJetInd == 1) {
1095  h_jet1Pt3.Fill( cal->pt() );
1096  pt3 = cal->pt();
1097  p4tmp[0] = cal->p4();
1098  }
1099  if (allJetInd == 2) {
1100  h_jet2Pt3.Fill( cal->pt() );
1101  p4tmp[1] = cal->p4();
1102  }
1103  if ( (allJetInd == 1) || (allJetInd == 2) ) {
1104  h_ptCalL3.Fill( cal->pt() );
1105  h_ptCalL32.Fill( cal->pt() );
1106  h_ptCalL33.Fill( cal->pt() );
1107 
1108  h_etaCalL3.Fill( cal->eta() );
1109  h_phiCalL3.Fill( cal->phi() );
1110  }
1111  if (allJetInd == 3) h_jet3Pt3.Fill( cal->pt() );
1112  if (allJetInd == 4) h_jet4Pt3.Fill( cal->pt() );
1113  if (allJetInd == 5) h_jet5Pt3.Fill( cal->pt() );
1114  if (allJetInd == 6) h_jet6Pt3.Fill( cal->pt() );
1115  if (allJetInd == 7) h_jet7Pt3.Fill( cal->pt() );
1116 
1117 
1118  if ( fabs(cal->eta()) < 1.3) {
1119  h_lowPtCal31.Fill( cal->pt() );
1120  if ( cal->pt() > 10.) {
1121  h_lowPtCal3c11.Fill( cal->pt() );
1122  }
1123  }
1124  if ( (fabs(cal->eta())> 1.3) && ( fabs(cal->eta()) < 3.) ) {
1125  h_lowPtCal32.Fill( cal->pt() );
1126  if ( cal->pt() > 10.) {
1127  h_lowPtCal3c12.Fill( cal->pt() );
1128  }
1129  }
1130  if ( fabs(cal->eta()) > 3.0) {
1131  h_lowPtCal33.Fill( cal->pt() );
1132  if ( cal->pt() > 10.) {
1133  h_lowPtCal3c13.Fill( cal->pt() );
1134  }
1135  }
1136 
1137 
1138 
1139  if ( cal->pt() > minJetPt) {
1140  // std::cout << "CALO JET3 #" << jetInd << std::endl << cal->print() << std::endl;
1141  h_ptCal3.Fill( cal->pt() );
1142  h_ptCal32.Fill( cal->pt() );
1143  h_ptCal33.Fill( cal->pt() );
1144 
1145  h_etaCal3.Fill( cal->eta() );
1146  h_phiCal3.Fill( cal->phi() );
1147  jetInd++;
1148  }
1149  }
1150  // h_nCalJets3.Fill( caloJets3->size() );
1151  h_nCalJets3.Fill( jetInd );
1152  if (jetInd > 1) {
1153  LeadMass3 = (p4tmp[0]+p4tmp[1]).mass();
1154  dijetMass3.Fill( LeadMass3 );
1155  dijetMass32.Fill( LeadMass3 );
1156  dijetMass33.Fill( LeadMass3 );
1157  }
1158 
1159 
1160 
1161  // ********************************
1162  // **** Get the CaloJet4 collection
1163  // ********************************
1164 
1165  Handle<CaloJetCollection> caloJets4;
1166  evt.getByLabel( CaloJetAlgorithm4, caloJets4 );
1167 
1168  //Loop over the two leading CaloJets and fill some histograms
1169  jetInd = 0;
1170  allJetInd = 0;
1171 
1172  // Count Jets above Pt cut
1173  for (int istep = 0; istep < 100; ++istep) {
1174  int njet = 0;
1175  float ptStep = (istep * (5000./100.));
1176 
1177  for ( CaloJetCollection::const_iterator cal = caloJets4->begin(); cal != caloJets4->end(); ++ cal )
1178  if ( cal->pt() > ptStep ) njet++;
1179 
1180 
1181  hf_nJet4.Fill( ptStep, njet );
1182  }
1183 
1184  for (int istep = 0; istep < 100; ++istep) {
1185  int njet = 0;
1186  float ptStep = (istep * (200./100.));
1187 
1188  for ( CaloJetCollection::const_iterator cal = caloJets4->begin(); cal != caloJets4->end(); ++ cal )
1189  if ( cal->pt() > ptStep ) njet++;
1190 
1191  hf_nJet4s.Fill( ptStep, njet );
1192  }
1193 
1194  for (int istep = 0; istep < 100; ++istep) {
1195  int njet = 0;
1196  float ptStep = (istep * (3000./100.));
1197 
1198  for ( CaloJetCollection::const_iterator cal = caloJets4->begin(); cal != caloJets4->end(); ++ cal )
1199  if ( cal->pt() > ptStep ) njet++;
1200 
1201  hf_nJet41.Fill( ptStep, njet );
1202  }
1203 
1204 
1205  for( CaloJetCollection::const_iterator cal = caloJets4->begin(); cal != caloJets4->end(); ++ cal ) {
1206 
1207  allJetInd++;
1208  if (allJetInd == 1) {
1209  h_jet1Pt4.Fill( cal->pt() );
1210  // pt3 = cal->pt();
1211  p4tmp[0] = cal->p4();
1212  }
1213  if (allJetInd == 2) {
1214  h_jet2Pt4.Fill( cal->pt() );
1215  p4tmp[1] = cal->p4();
1216  }
1217  if ( (allJetInd == 1) || (allJetInd == 2) ) {
1218  h_ptCalL4.Fill( cal->pt() );
1219  h_ptCalL42.Fill( cal->pt() );
1220  h_ptCalL43.Fill( cal->pt() );
1221 
1222  h_etaCalL4.Fill( cal->eta() );
1223  h_phiCalL4.Fill( cal->phi() );
1224  }
1225  if (allJetInd == 3) h_jet3Pt4.Fill( cal->pt() );
1226  if (allJetInd == 4) h_jet4Pt4.Fill( cal->pt() );
1227  if (allJetInd == 5) h_jet5Pt4.Fill( cal->pt() );
1228  if (allJetInd == 6) h_jet6Pt4.Fill( cal->pt() );
1229  if (allJetInd == 7) h_jet7Pt4.Fill( cal->pt() );
1230 
1231 
1232  if ( fabs(cal->eta()) < 1.3) {
1233  h_lowPtCal41.Fill( cal->pt() );
1234  if ( cal->pt() > 10.) {
1235  h_lowPtCal4c11.Fill( cal->pt() );
1236  }
1237  }
1238  if ( (fabs(cal->eta())> 1.3) && ( fabs(cal->eta()) < 3.) ) {
1239  h_lowPtCal42.Fill( cal->pt() );
1240  if ( cal->pt() > 10.) {
1241  h_lowPtCal4c12.Fill( cal->pt() );
1242  }
1243  }
1244  if ( fabs(cal->eta()) > 3.0) {
1245  h_lowPtCal43.Fill( cal->pt() );
1246  if ( cal->pt() > 10.) {
1247  h_lowPtCal4c13.Fill( cal->pt() );
1248  }
1249  }
1250 
1251 
1252  if ( cal->pt() > minJetPt) {
1253  // std::cout << "CALO JET4 #" << jetInd << std::endl << cal->print() << std::endl;
1254  h_ptCal4.Fill( cal->pt() );
1255  h_ptCal42.Fill( cal->pt() );
1256  h_ptCal43.Fill( cal->pt() );
1257 
1258  h_etaCal4.Fill( cal->eta() );
1259  h_phiCal4.Fill( cal->phi() );
1260  jetInd++;
1261  }
1262  }
1263  // h_nCalJets4.Fill( caloJets4->size() );
1264  h_nCalJets4.Fill( jetInd );
1265  if (jetInd > 1) {
1266  LeadMass4 = (p4tmp[0]+p4tmp[1]).mass();
1267  dijetMass4.Fill( LeadMass4 );
1268  dijetMass42.Fill( LeadMass4 );
1269  dijetMass43.Fill( LeadMass4 );
1270  }
1271 
1272 
1273 
1274  // *********************************************
1275  // *********************************************
1276 
1277 
1278  //**** Get the GenJet1 collection
1279  Handle<GenJetCollection> genJets1;
1280  evt.getByLabel( GenJetAlgorithm1, genJets1 );
1281 
1282 
1283  //Loop over the two leading GenJets and fill some histograms
1284  jetInd = 0;
1285  allJetInd = 0;
1286  for( GenJetCollection::const_iterator gen = genJets1->begin(); gen != genJets1->end(); ++ gen ) {
1287  allJetInd++;
1288  if (allJetInd == 1) {
1289  p4tmp[0] = gen->p4();
1290  }
1291  if (allJetInd == 2) {
1292  p4tmp[1] = gen->p4();
1293  }
1294 
1295  if ( (allJetInd == 1) || (allJetInd == 2) ) {
1296  h_ptGenL1.Fill( gen->pt() );
1297  h_ptGenL12.Fill( gen->pt() );
1298  h_ptGenL13.Fill( gen->pt() );
1299 
1300  h_etaGenL1.Fill( gen->eta() );
1301  h_phiGenL1.Fill( gen->phi() );
1302  }
1303 
1304  if ( gen->pt() > minJetPt) {
1305  // std::cout << "GEN JET1 #" << jetInd << std::endl << gen->print() << std::endl;
1306  h_ptGen1.Fill( gen->pt() );
1307  h_ptGen12.Fill( gen->pt() );
1308  h_ptGen13.Fill( gen->pt() );
1309 
1310  h_etaGen1.Fill( gen->eta() );
1311  h_phiGen1.Fill( gen->phi() );
1312  jetInd++;
1313  }
1314  }
1315 
1316  LeadMassP1 = (p4tmp[0]+p4tmp[1]).mass();
1317  dijetMassP1.Fill( LeadMassP1 );
1318  if (EtaOk10 == 2) {
1319  dijetMassP101.Fill( LeadMassP1 );
1320  dijetMassP_700_101.Fill( LeadMassP1 );
1321  dijetMassP_2000_101.Fill( LeadMassP1 );
1322  dijetMassP_5000_101.Fill( LeadMassP1 );
1323  }
1324  if (EtaOk13 == 2) {
1325  dijetMassP131.Fill( LeadMassP1 );
1326  dijetMassP_700_131.Fill( LeadMassP1 );
1327  dijetMassP_2000_131.Fill( LeadMassP1 );
1328  dijetMassP_5000_131.Fill( LeadMassP1 );
1329 
1330  }
1331  if (EtaOk40 == 2) {
1332  dijetMassP401.Fill( LeadMassP1 );
1333  dijetMassP_5000_401.Fill( LeadMassP1 );
1334  dijetMassP_5000_401.Fill( LeadMassP1 );
1335  dijetMassP_5000_401.Fill( LeadMassP1 );
1336  }
1337 
1338  // h_nGenJets1.Fill( genJets1->size() );
1339  h_nGenJets1.Fill( jetInd );
1340 
1341  //**** Get the GenJet2 collection
1342  Handle<GenJetCollection> genJets2;
1343  evt.getByLabel( GenJetAlgorithm2, genJets2 );
1344 
1345  //Loop over the two leading GenJets and fill some histograms
1346  jetInd = 0;
1347  allJetInd = 0;
1348  for( GenJetCollection::const_iterator gen = genJets2->begin(); gen != genJets2->end(); ++ gen ) {
1349  allJetInd++;
1350  if (allJetInd == 1) {
1351  p4tmp[0] = gen->p4();
1352  }
1353  if (allJetInd == 2) {
1354  p4tmp[1] = gen->p4();
1355  }
1356  if ( (allJetInd == 1) || (allJetInd == 2) ) {
1357  h_ptGenL2.Fill( gen->pt() );
1358  h_ptGenL22.Fill( gen->pt() );
1359  h_ptGenL23.Fill( gen->pt() );
1360 
1361  h_etaGenL2.Fill( gen->eta() );
1362  h_phiGenL2.Fill( gen->phi() );
1363  }
1364 
1365  if ( gen->pt() > minJetPt) {
1366  // std::cout << "GEN JET2 #" << jetInd << std::endl << gen->print() << std::endl;
1367  h_ptGen2.Fill( gen->pt() );
1368  h_ptGen22.Fill( gen->pt() );
1369  h_ptGen23.Fill( gen->pt() );
1370 
1371  h_etaGen2.Fill( gen->eta() );
1372  h_phiGen2.Fill( gen->phi() );
1373  jetInd++;
1374  }
1375  }
1376 
1377  LeadMassP2 = (p4tmp[0]+p4tmp[1]).mass();
1378  dijetMassP2.Fill( LeadMassP2 );
1379 
1380 
1381  // h_nGenJets2.Fill( genJets2->size() );
1382  h_nGenJets2.Fill( jetInd );
1383 
1384  //**** Get the GenJet3 collection
1385  Handle<GenJetCollection> genJets3;
1386  evt.getByLabel( GenJetAlgorithm3, genJets3 );
1387 
1388  //Loop over the two leading GenJets and fill some histograms
1389  jetInd = 0;
1390  allJetInd = 0;
1391  for( GenJetCollection::const_iterator gen = genJets3->begin(); gen != genJets3->end(); ++ gen ) {
1392  allJetInd++;
1393  if (allJetInd == 1) {
1394  p4tmp[0] = gen->p4();
1395  }
1396  if (allJetInd == 2) {
1397  p4tmp[1] = gen->p4();
1398  }
1399  if ( (allJetInd == 1) || (allJetInd == 2) ) {
1400  h_ptGenL3.Fill( gen->pt() );
1401  h_ptGenL32.Fill( gen->pt() );
1402  h_ptGenL33.Fill( gen->pt() );
1403 
1404  h_etaGenL3.Fill( gen->eta() );
1405  h_phiGenL3.Fill( gen->phi() );
1406  }
1407 
1408  if ( gen->pt() > minJetPt) {
1409  // std::cout << "GEN JET3 #" << jetInd << std::endl << gen->print() << std::endl;
1410  h_ptGen3.Fill( gen->pt() );
1411  h_ptGen32.Fill( gen->pt() );
1412  h_ptGen33.Fill( gen->pt() );
1413 
1414  h_etaGen3.Fill( gen->eta() );
1415  h_phiGen3.Fill( gen->phi() );
1416  jetInd++;
1417  }
1418  }
1419 
1420  LeadMassP3 = (p4tmp[0]+p4tmp[1]).mass();
1421  dijetMassP3.Fill( LeadMassP3 );
1422 
1423 
1424  // h_nGenJets3.Fill( genJets3->size() );
1425  h_nGenJets3.Fill( jetInd );
1426 
1427 
1428  // *********************
1429  // MidPoint Jet Matching
1430 
1431  Handle<GenJetCollection> genJets;
1432  Handle<CaloJetCollection> caloJets;
1433 
1434  // evt.getByLabel( "midPointCone5GenJets", genJets );
1435  // evt.getByLabel( "midPointCone5CaloJets", caloJets );
1436  evt.getByLabel( GenJetAlgorithm1, genJets );
1437  evt.getByLabel( CaloJetAlgorithm1, caloJets );
1438 
1439 
1440  int maxJets = MAXJETS;
1441 
1442  jetInd = 0;
1443  double dRmin[MAXJETS];
1444  math::XYZTLorentzVector p4gen[MAXJETS], p4cal[MAXJETS],
1445  p4par[MAXJETS], p4Zp[MAXJETS], p4part[MAXJETS];
1446 
1447  int used[MAXJETS];
1448  int nj;
1449 
1450  for( int i=0; i<maxJets; ++i ) used[i] = 0;
1451 
1452  // cout << ">>>>>>>>> " << endl;
1453 
1454 
1455 
1456  for( GenJetCollection::const_iterator gen = genJets->begin();
1457  gen != genJets->end() && jetInd<maxJets; ++ gen ) {
1458 
1459  p4gen[jetInd] = gen->p4(); //Gen 4-vector
1460  dRmin[jetInd] = 1000.0;
1461 
1462  nj = 0;
1463  usedInd = -1;
1464 
1465  for( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
1466 
1467  double delR = deltaR( cal->eta(), cal->phi(), gen->eta(), gen->phi() );
1468 
1469  if ( (delR<dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
1470  dRmin[jetInd] = delR; // delta R of match
1471  p4cal[jetInd] = cal->p4(); // Matched Cal 4-vector
1472  usedInd = nj;
1473  }
1474 
1475  nj++;
1476  }
1477 
1478  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1479  matchedAllPt11.Fill(p4gen[jetInd].pt());
1480  }
1481  if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
1482  matchedAllPt12.Fill(p4gen[jetInd].pt());
1483  }
1484  if (fabs(p4gen[jetInd].eta()) > 3.) {
1485  matchedAllPt13.Fill(p4gen[jetInd].pt());
1486  }
1487 
1488  if (usedInd != -1) {
1489 
1490  used[usedInd] = 1;
1491 
1492  if (p4cal[jetInd].pt() > minJetPt10)
1493  hf_PtResponse1.Fill(p4cal[jetInd].eta(), p4cal[jetInd].pt()/p4gen[jetInd].pt());
1494 
1495  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1496  matchedPt11.Fill(p4gen[jetInd].pt());
1497  }
1498  if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
1499  matchedPt12.Fill(p4gen[jetInd].pt());
1500  }
1501  if (fabs(p4gen[jetInd].eta()) > 3.) {
1502  matchedPt13.Fill(p4gen[jetInd].pt());
1503  }
1504  /***
1505  cout << " >>>SISCone "
1506  << jetInd << " "
1507  << p4gen[jetInd].pt() << " "
1508  << p4gen[jetInd].eta() << " "
1509  << p4gen[jetInd].phi() << " "
1510  << p4cal[jetInd].pt() << " "
1511  << p4cal[jetInd].eta() << " "
1512  << p4cal[jetInd].phi()
1513  << endl;
1514  ***/
1515 
1516  double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
1517  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1518  if ( (p4gen[jetInd].pt() > 20) && (p4gen[jetInd].pt() < 40) ) {
1519  dPt20Frac1.Fill(dpt/p4gen[jetInd].pt());
1520  }
1521  if ( (p4gen[jetInd].pt() > 40) && (p4gen[jetInd].pt() < 60) ) {
1522  dPt40Frac1.Fill(dpt/p4gen[jetInd].pt());
1523  }
1524  if ( (p4gen[jetInd].pt() > 80) && (p4gen[jetInd].pt() < 100) ) {
1525  dPt80Frac1.Fill(dpt/p4gen[jetInd].pt());
1526  }
1527  if ( (p4gen[jetInd].pt() > 100) && (p4gen[jetInd].pt() < 120) ) {
1528  dPt100Frac1.Fill(dpt/p4gen[jetInd].pt());
1529  }
1530  }
1531  if ( (p4gen[jetInd].pt() > minJetPt10) && (fabs(p4gen[jetInd].eta()) < 1.3) ) {
1532 
1533  dR1.Fill(dRmin[jetInd]);
1534  double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
1535  dPhi1.Fill(dphi);
1536  double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
1537  dEta1.Fill(deta);
1538  dPt1.Fill(dpt);
1539  dPtFrac1.Fill(dpt/p4gen[jetInd].pt());
1540 
1541  if ( ( (dpt/p4gen[jetInd].pt()) < -0.5 ) && ( fabs(dpt) > 90. ) ) {
1542 
1543  cout << " deltaR min = " << dRmin[jetInd]
1544  << " Ind = " << jetInd << " / " << usedInd << " / " << used[nj]
1545  << " Del pt / frac = " << dpt
1546  << " / " << dpt/p4gen[jetInd].pt()
1547  << " cal/gen pt = " << p4cal[jetInd].pt()
1548  << " / " << p4gen[jetInd].pt()
1549  << " cal/gen eta = " << p4cal[jetInd].eta()
1550  << " / " << p4gen[jetInd].eta()
1551  << " cal/gen phi = " << p4cal[jetInd].phi()
1552  << " / " << p4gen[jetInd].phi()
1553  << endl;
1554  }
1555 
1556  }
1557 
1558  jetInd++;
1559 
1560  }
1561 
1562  }
1563 
1564 
1565 
1566  // *********************
1567  // Seedless Jet Matching
1568 
1569  // Handle<GenJetCollection> genJets;
1570  // Handle<CaloJetCollection> caloJets;
1571 
1572  // evt.getByLabel( "sisCone5GenJets", genJets );
1573  // evt.getByLabel( "sisCone5CaloJets", caloJets );
1574  evt.getByLabel( GenJetAlgorithm2, genJets );
1575  evt.getByLabel( CaloJetAlgorithm2, caloJets );
1576 
1577  // int maxJets = 20;
1578  jetInd = 0;
1579  // double dRmin[20];
1580  // math::XYZTLorentzVector p4jet[20], p4gen[20], p4cal[20], p4cor[20];
1581 
1582  for( int i=0; i<maxJets; ++i ) used[i] = 0;
1583  for( GenJetCollection::const_iterator gen = genJets->begin();
1584  gen != genJets->end() && jetInd<maxJets; ++ gen ) {
1585  p4gen[jetInd] = gen->p4(); //Gen 4-vector
1586  dRmin[jetInd] = 1000.0;
1587 
1588  nj = 0;
1589  usedInd = -1;
1590 
1591  for( CaloJetCollection::const_iterator cal = caloJets->begin();
1592  cal != caloJets->end(); ++ cal ) {
1593  double delR = deltaR( cal->eta(), cal->phi(), gen->eta(), gen->phi() );
1594 
1595  if ( (delR<dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
1596  dRmin[jetInd] = delR; // delta R of match
1597  p4cal[jetInd] = cal->p4(); // Matched Cal 4-vector
1598  usedInd = nj;
1599  }
1600  nj++;
1601  }
1602 
1603  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1604  matchedAllPt21.Fill(p4gen[jetInd].pt());
1605  }
1606  if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
1607  matchedAllPt22.Fill(p4gen[jetInd].pt());
1608  }
1609  if (fabs(p4gen[jetInd].eta()) > 3.) {
1610  matchedAllPt23.Fill(p4gen[jetInd].pt());
1611  }
1612 
1613 
1614  if (usedInd != -1) {
1615 
1616  used[usedInd] = 1;
1617 
1618  if (p4cal[jetInd].pt() > minJetPt10)
1619  hf_PtResponse2.Fill(p4cal[jetInd].eta(), p4cal[jetInd].pt()/p4gen[jetInd].pt());
1620 
1621  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1622  matchedPt21.Fill(p4gen[jetInd].pt());
1623  }
1624  if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
1625  matchedPt22.Fill(p4gen[jetInd].pt());
1626  }
1627  if (fabs(p4gen[jetInd].eta()) > 3.) {
1628  matchedPt23.Fill(p4gen[jetInd].pt());
1629  }
1630  /***
1631  cout << " >>>IterCone "
1632  << jetInd << " "
1633  << p4gen[jetInd].pt() << " "
1634  << p4gen[jetInd].eta() << " "
1635  << p4gen[jetInd].phi() << " "
1636  << p4cal[jetInd].pt() << " "
1637  << p4cal[jetInd].eta() << " "
1638  << p4cal[jetInd].phi()
1639  << endl;
1640  ***/
1641 
1642 
1643  double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
1644  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1645  if ( (p4gen[jetInd].pt() > 20) && (p4gen[jetInd].pt() < 40) ) {
1646  dPt20Frac2.Fill(dpt/p4gen[jetInd].pt());
1647  }
1648  if ( (p4gen[jetInd].pt() > 40) && (p4gen[jetInd].pt() < 60) ) {
1649  dPt40Frac2.Fill(dpt/p4gen[jetInd].pt());
1650  }
1651  if ( (p4gen[jetInd].pt() > 80) && (p4gen[jetInd].pt() < 100) ) {
1652  dPt80Frac2.Fill(dpt/p4gen[jetInd].pt());
1653  }
1654  if ( (p4gen[jetInd].pt() > 100) && (p4gen[jetInd].pt() < 120) ) {
1655  dPt100Frac2.Fill(dpt/p4gen[jetInd].pt());
1656  }
1657  }
1658  if ( (p4gen[jetInd].pt() > minJetPt10) && (fabs(p4gen[jetInd].eta()) < 1.3) ) {
1659 
1660  dR2.Fill(dRmin[jetInd]);
1661  double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
1662  dPhi2.Fill(dphi);
1663  double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
1664  dEta2.Fill(deta);
1665  dPt2.Fill(dpt);
1666  dPtFrac2.Fill(dpt/p4gen[jetInd].pt());
1667 
1668  }
1669 
1670  jetInd++;
1671  }
1672 
1673  }
1674 
1675  // *********************
1676  // Kt Jet Matching
1677 
1678  // Handle<GenJetCollection> genJets;
1679  // Handle<CaloJetCollection> caloJets;
1680 
1681  // evt.getByLabel( "sisCone5GenJets", genJets );
1682  // evt.getByLabel( "sisCone5CaloJets", caloJets );
1683  evt.getByLabel( GenJetAlgorithm3, genJets );
1684  evt.getByLabel( CaloJetAlgorithm3, caloJets );
1685 
1686  // int maxJets = 20;
1687  jetInd = 0;
1688  // double dRmin[20];
1689  // math::XYZTLorentzVector p4jet[20], p4gen[20], p4cal[20], p4cor[20];
1690 
1691  for( int i=0; i<maxJets; ++i ) used[i] = 0;
1692  for( GenJetCollection::const_iterator gen = genJets->begin();
1693  gen != genJets->end() && jetInd<maxJets; ++ gen ) {
1694  p4gen[jetInd] = gen->p4(); //Gen 4-vector
1695  dRmin[jetInd] = 1000.0;
1696 
1697  nj = 0;
1698  usedInd = -1;
1699 
1700  for( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
1701  double delR = deltaR( cal->eta(), cal->phi(), gen->eta(), gen->phi() );
1702 
1703  if ( (delR<dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
1704  dRmin[jetInd] = delR; // delta R of match
1705  p4cal[jetInd] = cal->p4(); // Matched Cal 4-vector
1706  usedInd = nj;
1707  }
1708  nj++;
1709  }
1710 
1711  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1712  matchedAllPt31.Fill(p4gen[jetInd].pt());
1713  }
1714  if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
1715  matchedAllPt32.Fill(p4gen[jetInd].pt());
1716  }
1717  if (fabs(p4gen[jetInd].eta()) > 3.) {
1718  matchedAllPt33.Fill(p4gen[jetInd].pt());
1719  }
1720 
1721 
1722  if (usedInd != -1) {
1723  used[usedInd] = 1;
1724 
1725  if (p4cal[jetInd].pt() > minJetPt10)
1726  hf_PtResponse3.Fill(p4cal[jetInd].eta(), p4cal[jetInd].pt()/p4gen[jetInd].pt());
1727 
1728  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1729  matchedPt31.Fill(p4gen[jetInd].pt());
1730  }
1731  if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
1732  matchedPt32.Fill(p4gen[jetInd].pt());
1733  }
1734  if (fabs(p4gen[jetInd].eta()) > 3.) {
1735  matchedPt33.Fill(p4gen[jetInd].pt());
1736  }
1737  /***
1738  cout << " >>>MidPoint "
1739  << jetInd << " "
1740  << p4gen[jetInd].pt() << " "
1741  << p4gen[jetInd].eta() << " "
1742  << p4gen[jetInd].phi() << " "
1743  << p4cal[jetInd].pt() << " "
1744  << p4cal[jetInd].eta() << " "
1745  << p4cal[jetInd].phi()
1746  << endl;
1747  ***/
1748 
1749  double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
1750  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1751  if ( (p4gen[jetInd].pt() > 20) && (p4gen[jetInd].pt() < 40) ) {
1752  dPt20Frac3.Fill(dpt/p4gen[jetInd].pt());
1753  }
1754  if ( (p4gen[jetInd].pt() > 40) && (p4gen[jetInd].pt() < 60) ) {
1755  dPt40Frac3.Fill(dpt/p4gen[jetInd].pt());
1756  }
1757  if ( (p4gen[jetInd].pt() > 80) && (p4gen[jetInd].pt() < 100) ) {
1758  dPt80Frac3.Fill(dpt/p4gen[jetInd].pt());
1759  }
1760  if ( (p4gen[jetInd].pt() > 100) && (p4gen[jetInd].pt() < 120) ) {
1761  dPt100Frac3.Fill(dpt/p4gen[jetInd].pt());
1762  }
1763  }
1764 
1765  if ( (p4gen[jetInd].pt() > minJetPt10) && (fabs(p4gen[jetInd].eta()) < 1.3) ) {
1766 
1767  dR3.Fill(dRmin[jetInd]);
1768  double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
1769  dPhi3.Fill(dphi);
1770  double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
1771  dEta3.Fill(deta);
1772  dPt3.Fill(dpt);
1773  dPtFrac3.Fill(dpt/p4gen[jetInd].pt());
1774 
1775 
1776  }
1777 
1778  jetInd++;
1779  }
1780  }
1781 
1782  // *********************
1783  // Jet Algorithm 4
1784 
1785  evt.getByLabel( GenJetAlgorithm4, genJets );
1786  evt.getByLabel( CaloJetAlgorithm4, caloJets );
1787 
1788  // int maxJets = 20;
1789  jetInd = 0;
1790  // double dRmin[20];
1791  // math::XYZTLorentzVector p4jet[20], p4gen[20], p4cal[20], p4cor[20];
1792 
1793  for( int i=0; i<maxJets; ++i ) used[i] = 0;
1794  for( GenJetCollection::const_iterator gen = genJets->begin();
1795  gen != genJets->end() && jetInd<maxJets; ++ gen ) {
1796  p4gen[jetInd] = gen->p4(); //Gen 4-vector
1797  dRmin[jetInd] = 1000.0;
1798 
1799  nj = 0;
1800  usedInd = -1;
1801 
1802  for( CaloJetCollection::const_iterator cal = caloJets->begin();
1803  cal != caloJets->end(); ++ cal ) {
1804  double delR = deltaR( cal->eta(), cal->phi(), gen->eta(), gen->phi() );
1805 
1806  if ( (delR<dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
1807  dRmin[jetInd] = delR; // delta R of match
1808  p4cal[jetInd] = cal->p4(); // Matched Cal 4-vector
1809  usedInd = nj;
1810  }
1811  nj++;
1812  }
1813 
1814  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1815  matchedAllPt41.Fill(p4gen[jetInd].pt());
1816  }
1817  if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
1818  matchedAllPt42.Fill(p4gen[jetInd].pt());
1819  }
1820  if (fabs(p4gen[jetInd].eta()) > 3.) {
1821  matchedAllPt43.Fill(p4gen[jetInd].pt());
1822  }
1823 
1824 
1825  if (usedInd != -1) {
1826 
1827  used[usedInd] = 1;
1828 
1829  if (p4cal[jetInd].pt() > minJetPt10)
1830  hf_PtResponse4.Fill(p4cal[jetInd].eta(), p4cal[jetInd].pt()/p4gen[jetInd].pt());
1831 
1832  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1833  matchedPt41.Fill(p4gen[jetInd].pt());
1834  }
1835  if ((fabs(p4gen[jetInd].eta()) > 1.3) && (fabs(p4gen[jetInd].eta()) < 3.) ) {
1836  matchedPt42.Fill(p4gen[jetInd].pt());
1837  }
1838  if (fabs(p4gen[jetInd].eta()) > 3.) {
1839  matchedPt43.Fill(p4gen[jetInd].pt());
1840  }
1841 
1842  /***
1843  cout << " >>>KtClus "
1844  << jetInd << " "
1845  << p4gen[jetInd].pt() << " "
1846  << p4gen[jetInd].eta() << " "
1847  << p4gen[jetInd].phi() << " "
1848  << p4cal[jetInd].pt() << " "
1849  << p4cal[jetInd].eta() << " "
1850  << p4cal[jetInd].phi()
1851  << endl;
1852  ***/
1853 
1854 
1855  double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
1856  if (fabs(p4gen[jetInd].eta()) < 1.3) {
1857  if ( (p4gen[jetInd].pt() > 20) && (p4gen[jetInd].pt() < 40) ) {
1858  dPt20Frac4.Fill(dpt/p4gen[jetInd].pt());
1859  }
1860  if ( (p4gen[jetInd].pt() > 40) && (p4gen[jetInd].pt() < 60) ) {
1861  dPt40Frac4.Fill(dpt/p4gen[jetInd].pt());
1862  }
1863  if ( (p4gen[jetInd].pt() > 80) && (p4gen[jetInd].pt() < 100) ) {
1864  dPt80Frac4.Fill(dpt/p4gen[jetInd].pt());
1865  }
1866  if ( (p4gen[jetInd].pt() > 100) && (p4gen[jetInd].pt() < 120) ) {
1867  dPt100Frac4.Fill(dpt/p4gen[jetInd].pt());
1868  }
1869  }
1870 
1871  if ( (p4gen[jetInd].pt() > minJetPt10) && (fabs(p4gen[jetInd].eta()) < 1.3) ) {
1872 
1873  dR4.Fill(dRmin[jetInd]);
1874  double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
1875  dPhi4.Fill(dphi);
1876  double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
1877  dEta4.Fill(deta);
1878  dPt4.Fill(dpt);
1879  dPtFrac4.Fill(dpt/p4gen[jetInd].pt());
1880 
1881  }
1882 
1883  jetInd++;
1884  }
1885 
1886  }
1887 
1888 
1889 
1890  // *********************
1891  // MidPoint - Seedless Jet Matching
1892 
1893  Handle<CaloJetCollection> calo1Jets;
1894  Handle<CaloJetCollection> calo2Jets;
1895  Handle<CaloJetCollection> calo3Jets;
1896 
1897  evt.getByLabel( CaloJetAlgorithm1, calo1Jets );
1898  evt.getByLabel( CaloJetAlgorithm2, calo2Jets );
1899  evt.getByLabel( CaloJetAlgorithm3, calo3Jets );
1900 
1901  jetInd = 0;
1902 
1903  for( int i=0; i<maxJets; ++i ) used[i] = 0;
1904  for( CaloJetCollection::const_iterator cal1 = calo1Jets->begin();
1905  cal1 != calo1Jets->end() && jetInd<maxJets; ++cal1 ) {
1906 
1907  p4gen[jetInd] = cal1->p4(); //Gen 4-vector
1908  dRmin[jetInd] = 1000.0;
1909 
1910  nj = 0;
1911  for( CaloJetCollection::const_iterator cal2 = calo2Jets->begin(); cal2 != calo2Jets->end(); ++cal2 ) {
1912 
1913  double delR = deltaR( cal1->eta(), cal1->phi(), cal2->eta(), cal2->phi() );
1914  if ( (delR<dRmin[jetInd]) && (used[nj] == 0) ) {
1915  dRmin[jetInd] = delR; // delta R of match
1916  p4cal[jetInd] = cal2->p4(); // Matched Cal 4-vector
1917  usedInd = nj;
1918  }
1919  nj++;
1920  }
1921  used[usedInd] = 1;
1922 
1923  if (p4gen[jetInd].pt() > minJetPt) {
1924  dR12.Fill(dRmin[jetInd]);
1925  double dphi = deltaPhi(p4cal[jetInd].phi(), p4gen[jetInd].phi());
1926  dPhi12.Fill(dphi);
1927  double deta = p4cal[jetInd].eta() - p4gen[jetInd].eta();
1928  dEta12.Fill(deta);
1929  double dpt = p4cal[jetInd].pt() - p4gen[jetInd].pt();
1930  dPt12.Fill(dpt);
1931  }
1932 
1933  jetInd++;
1934  }
1935 
1936  // ******************************************
1937  // ******************************************
1938 
1939 
1941  evt.getByLabel("genParticleCandidates",genParticles);
1942 
1943 
1944  // *********************
1945  // Partons (Z')
1946 
1947  int nPart = 0;
1948  for (size_t i =0;i< genParticles->size(); i++) {
1949 
1950  const Candidate &p = (*genParticles)[i];
1951  // int Status = p.status();
1952  // bool ParticleIsStable = Status==1;
1953  int id = p.pdgId();
1954 
1955  if (id == 32) {
1956 
1957  if (p.numberOfDaughters() != 0) {
1958  /***
1959  cout << "Z': part = " << i << " id = " << id
1960  << " daughters = " << p.numberOfDaughters()
1961  << " mass = " << p.mass()
1962  << endl;
1963  ***/
1964  ZpMG = p.mass();
1965  ZpMassGen.Fill( ZpMG );
1966  if (EtaOk10 == 2) {
1967  ZpMassGen10.Fill( ZpMG );
1968  ZpMassGen_700_10.Fill( ZpMG );
1969  ZpMassGen_2000_10.Fill( ZpMG );
1970  ZpMassGen_5000_10.Fill( ZpMG );
1971  }
1972  if (EtaOk13 == 2) {
1973  ZpMassGen13.Fill( ZpMG );
1974  ZpMassGen_700_13.Fill( ZpMG );
1975  ZpMassGen_2000_13.Fill( ZpMG );
1976  ZpMassGen_5000_13.Fill( ZpMG );
1977  }
1978  if (EtaOk40 == 2) {
1979  ZpMassGen40.Fill( ZpMG );
1980  ZpMassGen_700_40.Fill( ZpMG );
1981  ZpMassGen_2000_40.Fill( ZpMG );
1982  ZpMassGen_5000_40.Fill( ZpMG );
1983  }
1984  }
1985 
1986  for( int id1=0, nd1=p.numberOfDaughters(); id1 < nd1; ++id1 ) {
1987 
1988  const Candidate * d1 = p.daughter(id1);
1989 
1990  if ( abs(d1->pdgId()) != 32) {
1991  math::XYZTLorentzVector momentum=d1->p4();
1992  p4Zp[nPart] = momentum=d1->p4();
1993  nPart++;
1994  }
1995 
1996  }
1997  }
1998 
1999  }
2000 
2001  // *********************
2002  // Match jets to Zp
2003  int genInd = 0;
2004 
2005  if (nPart == 2) {
2006 
2007  ZpM = (p4Zp[0]+p4Zp[1]).mass();
2008  ZpMass.Fill( ZpM );
2009 
2010  if (EtaOk10 == 2) {
2011  ZpMass_700_10.Fill( ZpM );
2012  ZpMass_2000_10.Fill( ZpM );
2013  ZpMass_5000_10.Fill( ZpM );
2014  }
2015  if (EtaOk13 == 2) {
2016  ZpMass_700_13.Fill( ZpM );
2017  ZpMass_2000_13.Fill( ZpM );
2018  ZpMass_5000_13.Fill( ZpM );
2019  }
2020  if (EtaOk40 == 2) {
2021  ZpMass_700_40.Fill( ZpM );
2022  ZpMass_2000_40.Fill( ZpM );
2023  ZpMass_5000_40.Fill( ZpM );
2024  }
2025 
2026  int usedInd;
2027 
2028  // ***********
2029  // **** Calor1
2030  usedInd = -1;
2031  jetInd = 0;
2032 
2033  for( int i=0; i<maxJets; ++i ) used[i] = 0;
2034  for( int i=0; i<2; ++i ) {
2035 
2036  dRmin[jetInd] = 1000.0;
2037 
2038  int nj = 0;
2039  for( CaloJetCollection::const_iterator cal1 = calo1Jets->begin();
2040  cal1 != calo1Jets->end() && jetInd<maxJets; ++cal1 ) {
2041 
2042  double delR = deltaR( cal1->eta(), cal1->phi(), p4Zp[i].eta(), p4Zp[i].phi() );
2043 
2044  // if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
2045  if ( (delR < dRmin[jetInd]) && (used[nj] == 0) ) {
2046  dRmin[jetInd] = delR; // delta R of match
2047  p4cal[jetInd] = cal1->p4(); // Matched Cal 4-vector
2048  usedInd = nj;
2049  genInd = i;
2050  }
2051 
2052  /****
2053  cout << "Delta R = " << delR
2054  << " deltaR min = " << dRmin[jetInd]
2055  << " Ind = " << jetInd << " / " << nj << " / " << used[nj]
2056  << " cal1 eta = " << cal1->eta()
2057  << " p4par eta = " << p4Zp[i].eta()
2058  << " cal1 phi = " << cal1->phi()
2059  << " p4par phi = " << p4Zp[i].phi()
2060  << endl;
2061  cout << " "
2062  << " p4par = " << p4Zp[i]
2063  << " p4cal = " << cal1->p4()
2064  << endl;
2065  ***/
2066 
2067  nj++;
2068  }
2069 
2070  // Found matched jet
2071  if (usedInd != -1) {
2072  used[usedInd] = 1;
2073  jetInd++;
2074  }
2075 
2076  }
2077 
2078  ZpMM = (p4cal[0]+p4cal[1]).mass();
2079  ZpMassMatched1.Fill( ZpMM );
2080 
2081  if ((ZpMG != 0) && (EtaOk40 == 2)) {
2082  ZpMassRes401.Fill( (ZpMM - ZpMG) / ZpMG );
2083 
2084  ZpMassResL401.Fill( (LeadMass1 - ZpMG) / ZpMG );
2085  ZpMassResL402.Fill( (LeadMass2 - ZpMG) / ZpMG );
2086  ZpMassResL403.Fill( (LeadMass3 - ZpMG) / ZpMG );
2087 
2088  ZpMassResRL401.Fill( LeadMass1 / ZpMG );
2089  ZpMassResRL402.Fill( LeadMass2 / ZpMG );
2090  ZpMassResRL403.Fill( LeadMass3 / ZpMG );
2091 
2092  ZpMassResRLoP401.Fill( LeadMass1 / LeadMassP1 );
2093  ZpMassResRLoP402.Fill( LeadMass2 / LeadMassP2 );
2094  ZpMassResRLoP403.Fill( LeadMass3 / LeadMassP2 );
2095 
2096  ZpMassResPRL401.Fill( LeadMassP1 / ZpMG );
2097  ZpMassResPRL402.Fill( LeadMassP2 / ZpMG );
2098  ZpMassResPRL403.Fill( LeadMassP3 / ZpMG );
2099 
2100  }
2101 
2102  if ((ZpMG != 0) && (EtaOk10 == 2)) {
2103  ZpMassRes101.Fill( (ZpMM - ZpMG) / ZpMG );
2104 
2105  ZpMassResL101.Fill( (LeadMass1 - ZpMG) / ZpMG );
2106  ZpMassResL102.Fill( (LeadMass2 - ZpMG) / ZpMG );
2107  ZpMassResL103.Fill( (LeadMass3 - ZpMG) / ZpMG );
2108 
2109  ZpMassResRL101.Fill( LeadMass1 / ZpMG );
2110  ZpMassResRL102.Fill( LeadMass2 / ZpMG );
2111  ZpMassResRL103.Fill( LeadMass3 / ZpMG );
2112 
2113  ZpMassResRLoP101.Fill( LeadMass1 / LeadMassP1 );
2114  ZpMassResRLoP102.Fill( LeadMass2 / LeadMassP2 );
2115  ZpMassResRLoP103.Fill( LeadMass3 / LeadMassP2 );
2116 
2117  ZpMassResPRL101.Fill( LeadMassP1 / ZpMG );
2118  ZpMassResPRL102.Fill( LeadMassP2 / ZpMG );
2119  ZpMassResPRL103.Fill( LeadMassP3 / ZpMG );
2120 
2121  }
2122 
2123  if ((ZpMG != 0) && (EtaOk13 == 2)) {
2124  ZpMassRes131.Fill( (ZpMM - ZpMG) / ZpMG );
2125 
2126  ZpMassResL131.Fill( (LeadMass1 - ZpMG) / ZpMG );
2127  ZpMassResL132.Fill( (LeadMass2 - ZpMG) / ZpMG );
2128  ZpMassResL133.Fill( (LeadMass3 - ZpMG) / ZpMG );
2129 
2130  ZpMassResRL131.Fill( LeadMass1 / ZpMG );
2131  ZpMassResRL132.Fill( LeadMass2 / ZpMG );
2132  ZpMassResRL133.Fill( LeadMass3 / ZpMG );
2133 
2134  ZpMassResRLoP131.Fill( LeadMass1 / LeadMassP1 );
2135  ZpMassResRLoP132.Fill( LeadMass2 / LeadMassP2 );
2136  ZpMassResRLoP133.Fill( LeadMass3 / LeadMassP2 );
2137 
2138  ZpMassResPRL131.Fill( LeadMassP1 / ZpMG );
2139  ZpMassResPRL132.Fill( LeadMassP2 / ZpMG );
2140  ZpMassResPRL133.Fill( LeadMassP3 / ZpMG );
2141 
2142  }
2143 
2144 
2145 
2146  // ***********
2147  // **** Calor2
2148  usedInd = -1;
2149  jetInd = 0;
2150 
2151  for( int i=0; i<maxJets; ++i ) used[i] = 0;
2152  for( int i=0; i<2; ++i ) {
2153 
2154  dRmin[jetInd] = 1000.0;
2155 
2156  int nj = 0;
2157  for( CaloJetCollection::const_iterator cal2 = calo2Jets->begin();
2158  cal2 != calo2Jets->end() && jetInd<maxJets; ++cal2 ) {
2159 
2160  double delR = deltaR( cal2->eta(), cal2->phi(), p4Zp[i].eta(), p4Zp[i].phi() );
2161 
2162  if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
2163  dRmin[jetInd] = delR; // delta R of match
2164  p4cal[jetInd] = cal2->p4(); // Matched Cal 4-vector
2165  usedInd = nj;
2166  }
2167 
2168  /****
2169  cout << "Delta R = " << delR
2170  << " deltaR min = " << dRmin[jetInd]
2171  << " Ind = " << jetInd << " / " << nj << " / " << used[nj]
2172  << " p4par = " << p4par[i]
2173  << " p4cal = " << cal1->p4()
2174  << " cal1 eta = " << cal1->eta()
2175  << " p4par eta = " << p4par[i].eta()
2176  << endl;
2177  ****/
2178 
2179  nj++;
2180  }
2181 
2182  // Found matched jet
2183  if (usedInd != -1) {
2184  used[usedInd] = 1;
2185  jetInd++;
2186  }
2187 
2188  }
2189 
2190  ZpMM = (p4cal[0]+p4cal[1]).mass();
2191  ZpMassMatched2.Fill( ZpMM );
2192  ZpMassRes402.Fill( (ZpMM - ZpM) / ZpM );
2193 
2194 
2195  // ***********
2196  // **** Calor3
2197  usedInd = -1;
2198  jetInd = 0;
2199 
2200  for( int i=0; i<maxJets; ++i ) used[i] = 0;
2201  for( int i=0; i<2; ++i ) {
2202 
2203  dRmin[jetInd] = 1000.0;
2204 
2205  int nj = 0;
2206  for( CaloJetCollection::const_iterator cal3 = calo3Jets->begin();
2207  cal3 != calo3Jets->end() && jetInd<maxJets; ++cal3 ) {
2208 
2209  double delR = deltaR( cal3->eta(), cal3->phi(), p4Zp[i].eta(), p4Zp[i].phi() );
2210 
2211  if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
2212  dRmin[jetInd] = delR; // delta R of match
2213  p4cal[jetInd] = cal3->p4(); // Matched Cal 4-vector
2214  usedInd = nj;
2215  }
2216 
2217  /****
2218  cout << "Delta R = " << delR
2219  << " deltaR min = " << dRmin[jetInd]
2220  << " Ind = " << jetInd << " / " << nj << " / " << used[nj]
2221  << " p4par = " << p4par[i]
2222  << " p4cal = " << cal1->p4()
2223  << " cal1 eta = " << cal1->eta()
2224  << " p4par eta = " << p4par[i].eta()
2225  << endl;
2226  ****/
2227 
2228  nj++;
2229  }
2230 
2231 
2232  // Found matched jet
2233  if (usedInd != -1) {
2234  used[usedInd] = 1;
2235  jetInd++;
2236  }
2237 
2238  }
2239 
2240  ZpMM = (p4cal[0]+p4cal[1]).mass();
2241  ZpMassMatched3.Fill( ZpMM );
2242  ZpMassRes403.Fill( (ZpMM - ZpM) / ZpM );
2243 
2244  } else {
2245  cout << "Z' (3): nPart = " << nPart << endl;
2246  }
2247 
2248 
2249 
2250  // *********************
2251  // Partons (ttbar) Jet Matching
2252 
2253  // cout << ">>> Begin MC list" << endl;
2254  int nJet = 0;
2255 
2256 
2257  int ii = 1;
2258  int jj = 4;
2259 
2260  for (size_t i =0;i< genParticles->size(); i++) {
2261 
2262  const Candidate &p = (*genParticles)[i];
2263  // int Status = p.status();
2264  // bool ParticleIsStable = Status==1;
2265  int id = p.pdgId();
2266 
2267  // Top Quarks
2268  if (abs(id) == 6) {
2269  cout << "TOP: id = " << id << " mass = " << p.mass() << endl;
2270 
2271  topMassParton.Fill(p.mass());
2272 
2273  if (id == 6) tMassGen.Fill(p.mass());
2274  if (id == -6) tbarMassGen.Fill(p.mass());
2275 
2276  for( size_t id1=0, nd1=p.numberOfDaughters(); id1 < nd1; ++id1 ) {
2277 
2278  const Candidate * d1 = p.daughter(id1);
2279 
2280  // b - quark
2281  if ( abs(d1->pdgId()) == 5) {
2282 
2283  math::XYZTLorentzVector momentum=d1->p4();
2284  p4par[nJet++] = momentum=d1->p4();
2285 
2286  cout << "Daughter1: id = " << d1->pdgId()
2287  << " daughters = " << d1->numberOfDaughters()
2288  << " mother 1 = " << (d1->mother())->pdgId()
2289  << " Momentum " << momentum << " GeV/c"
2290  << endl;
2291 
2292 
2293  if ( (d1->mother())->pdgId() == 6 ) {
2294  p4part[0] = momentum=d1->p4();
2295  cout << ">>> part0 = " << p4part[0] << endl;
2296  }
2297  if ( (d1->mother())->pdgId() == -6) {
2298  p4part[3] = momentum=d1->p4();
2299  cout << ">>> part3 = " << p4part[3] << endl;
2300  }
2301 
2302  }
2303 
2304 
2305  // W
2306  // Check for fully hadronic decay
2307 
2308  if ( abs(d1->pdgId()) == 24) {
2309 
2310  for( size_t id2=0, nd2=d1->numberOfDaughters(); id2 < nd2; ++id2 ) {
2311 
2312  const Candidate * d2 = d1->daughter(id2);
2313 
2314  if (abs(d2->pdgId()) < 9) {
2315 
2316  math::XYZVector vertex(d2->vx(),d2->vy(),d2->vz());
2317  math::XYZTLorentzVector momentum=d2->p4();
2318  p4par[nJet++] = momentum=d2->p4();
2319 
2320  if ( (d1->mother())->pdgId() == 6 ) {
2321  p4part[ii] = momentum=d2->p4();
2322  cout << ">>> part" << ii << " = " << p4part[ii] << endl;
2323  ii++;
2324  }
2325  if ( (d1->mother())->pdgId() == -6 ) {
2326  p4part[jj] = momentum=d2->p4();
2327  cout << ">>> part" << jj << " = " << p4part[jj] << endl;
2328  jj++;
2329  }
2330 
2331  cout << "Daughter2: id = " << d2->pdgId()
2332  << " daughters = " << d2->numberOfDaughters()
2333  << " mother 2 = " << (d2->mother())->pdgId()
2334  << " Momentum " << momentum << " GeV/c"
2335  << endl;
2336  }
2337 
2338  }
2339  }
2340 
2341  // if ( pdgId == d->pdgId() && d->status() == 1 ) {
2342  // }
2343  }
2344  }
2345 
2346  }
2347  // cout << ">>> N Jets = " << nJet << endl;
2348 
2349  if (nJet == 6) {
2350 
2351  double tmass = (p4part[0]+p4part[1]+p4part[2]).mass();
2352  double tbarmass = (p4part[3]+p4part[4]+p4part[5]).mass();
2353 
2354  tMass.Fill(tmass);
2355  tbarMass.Fill(tbarmass);
2356 
2357  cout << ">>> T Mass = " << tmass << " / " << tbarmass << endl;
2358 
2359  double mindR = 1000.;
2360  for( size_t i=0; i<6; ++i ) {
2361  for( size_t j=0; j<6; ++j ) {
2362  if (j > i) {
2363  double delR = deltaR( p4par[i].eta(), p4par[i].phi(), p4par[j].eta(), p4par[j].phi() );
2364  if (delR < mindR) mindR = delR;
2365  dRParton.Fill(delR);
2366  }
2367  }
2368  }
2369  dRPartonMin.Fill(mindR);
2370 
2371  int usedInd;
2372  usedInd = -1;
2373  jetInd = 0;
2374 
2375  for( int i=0; i<maxJets; ++i ) used[i] = 0;
2376  for( int i=0; i<6; ++i ) {
2377 
2378  dRmin[jetInd] = 1000.0;
2379 
2380  int nj = 0;
2381  for( CaloJetCollection::const_iterator cal1 = calo1Jets->begin();
2382  cal1 != calo1Jets->end() && jetInd<maxJets; ++cal1 ) {
2383 
2384  double delR = deltaR( cal1->eta(), cal1->phi(), p4par[i].eta(), p4par[i].phi() );
2385 
2386  if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
2387  dRmin[jetInd] = delR; // delta R of match
2388  p4cal[jetInd] = cal1->p4(); // Matched Cal 4-vector
2389  usedInd = nj;
2390  genInd = i;
2391  }
2392 
2393  /****
2394  cout << "Delta R = " << delR
2395  << " deltaR min = " << dRmin[jetInd]
2396  << " Ind = " << jetInd << " / " << nj << " / " << used[nj]
2397  << " p4par = " << p4par[i]
2398  << " p4cal = " << cal1->p4()
2399  << " cal1 eta = " << cal1->eta()
2400  << " p4par eta = " << p4par[i].eta()
2401  << endl;
2402  ****/
2403 
2404 
2405  nj++;
2406  }
2407 
2408 
2409  // Found matched jet
2410  if (usedInd != -1) {
2411  used[usedInd] = 1;
2412 
2413  dRPar1.Fill(dRmin[jetInd]);
2414  double dphi = deltaPhi(p4cal[jetInd].phi(), p4par[genInd].phi());
2415  dPhiPar1.Fill(dphi);
2416  double deta = p4cal[jetInd].eta() - p4par[genInd].eta();
2417  dEtaPar1.Fill(deta);
2418  double dpt = p4cal[jetInd].pt() - p4par[genInd].pt();
2419  dPtPar1.Fill(dpt);
2420  jetInd++;
2421  }
2422 
2423  }
2424  ParMatch1.Fill(jetInd);
2425  if (jetInd == 6) {
2426  topMass1.Fill( (p4cal[0]+p4cal[1]+p4cal[2]).mass() );
2427  topMass1.Fill( (p4cal[3]+p4cal[4]+p4cal[5]).mass() );
2428  }
2429 
2430  /***
2431  cout << "Collection Size = " << calo1Jets->size()
2432  << " / " << jetInd
2433  << endl;
2434  ***/
2435 
2436  // ***********************
2437  jetInd = 0;
2438  usedInd = -1;
2439 
2440  for( int i=0; i<maxJets; ++i ) used[i] = 0;
2441  for( int i=0; i<6; ++i ) {
2442 
2443  dRmin[jetInd] = 1000.0;
2444 
2445  int nj = 0;
2446  for( CaloJetCollection::const_iterator cal2 = calo2Jets->begin();
2447  cal2 != calo2Jets->end() && jetInd<maxJets; ++cal2 ) {
2448 
2449  double delR = deltaR( cal2->eta(), cal2->phi(), p4par[i].eta(), p4par[i].phi() );
2450 
2451  if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
2452  dRmin[jetInd] = delR; // delta R of match
2453  p4cal[jetInd] = cal2->p4(); // Matched Cal 4-vector
2454  usedInd = nj;
2455  genInd = i;
2456  }
2457 
2458  /****
2459  cout << "Delta R = " << delR
2460  << " deltaR min = " << dRmin[jetInd]
2461  << " Ind = " << jetInd << " / " << nj << " / " << used[nj]
2462  << " cal2 eta = " << cal2->eta()
2463  << " p4par eta = " << p4par[i].eta()
2464  << endl;
2465  ****/
2466 
2467  nj++;
2468  }
2469  if (usedInd != -1) {
2470  used[usedInd] = 1;
2471 
2472  dRPar2.Fill(dRmin[jetInd]);
2473  double dphi = deltaPhi(p4cal[jetInd].phi(), p4par[genInd].phi());
2474  dPhiPar2.Fill(dphi);
2475  double deta = p4cal[jetInd].eta() - p4par[genInd].eta();
2476  dEtaPar2.Fill(deta);
2477  double dpt = p4cal[jetInd].pt() - p4par[genInd].pt();
2478  dPtPar2.Fill(dpt);
2479 
2480  jetInd++;
2481  }
2482 
2483  }
2484  ParMatch2.Fill(jetInd);
2485  if (jetInd == 6) {
2486  topMass2.Fill( (p4cal[0]+p4cal[1]+p4cal[2]).mass() );
2487  topMass2.Fill( (p4cal[3]+p4cal[4]+p4cal[5]).mass() );
2488  }
2489 
2490 
2491  /***
2492  cout << "Collection Size = " << calo2Jets->size()
2493  << " / " << jetInd
2494  << endl;
2495  ***/
2496 
2497 
2498  // ***********************
2499  jetInd = 0;
2500  usedInd = -1;
2501 
2502  for( int i=0; i<maxJets; ++i ) used[i] = 0;
2503  for( int i=0; i<6; ++i ) {
2504 
2505  dRmin[jetInd] = 1000.0;
2506 
2507  int nj = 0;
2508  for( CaloJetCollection::const_iterator cal3 = calo3Jets->begin();
2509  cal3 != calo3Jets->end() && jetInd<maxJets; ++cal3 ) {
2510 
2511  double delR = deltaR( cal3->eta(), cal3->phi(), p4par[i].eta(), p4par[i].phi() );
2512 
2513  if ( (delR < dRmin[jetInd]) && (delR < matchedDelR) && (used[nj] == 0) ) {
2514  dRmin[jetInd] = delR; // delta R of match
2515  p4cal[jetInd] = cal3->p4(); // Matched Cal 4-vector
2516  usedInd = nj;
2517  genInd = i;
2518  }
2519  /****
2520  cout << "Delta R = " << delR
2521  << " deltaR min = " << dRmin[jetInd]
2522  << " Ind = " << jetInd << " / " << nj << " / " << used[nj]
2523  << " cal3 eta = " << cal3->eta()
2524  << " p4par eta = " << p4par[i].eta()
2525  << endl;
2526  ****/
2527 
2528  nj++;
2529  }
2530  if (usedInd != -1) {
2531  used[usedInd] = 1;
2532 
2533  dRPar3.Fill(dRmin[jetInd]);
2534  double dphi = deltaPhi(p4cal[jetInd].phi(), p4par[genInd].phi());
2535  dPhiPar3.Fill(dphi);
2536  double deta = p4cal[jetInd].eta() - p4par[genInd].eta();
2537  dEtaPar3.Fill(deta);
2538  double dpt = p4cal[jetInd].pt() - p4par[genInd].pt();
2539  dPtPar3.Fill(dpt);
2540 
2541  jetInd++;
2542  }
2543  }
2544  ParMatch3.Fill(jetInd);
2545  if (jetInd == 6) {
2546  topMass3.Fill( (p4cal[0]+p4cal[1]+p4cal[2]).mass() );
2547  topMass3.Fill( (p4cal[3]+p4cal[4]+p4cal[5]).mass() );
2548  }
2549 
2550  /***
2551  cout << "Collection Size = " << calo3Jets->size()
2552  << " / " << jetInd
2553  << endl;
2554  ***/
2555 
2556  }
2557 
2558  int nTow1, nTow2, nTow3, nTow4;
2559 
2561 
2562  // *********************
2563  // Jet Properties
2564  // *********************
2565 
2566 
2567 
2568  // --- Loop over jets and make a list of all the used towers
2569  evt.getByLabel( CaloJetAlgorithm1, jets );
2570  int jjet = 0;
2571  for ( CaloJetCollection::const_iterator ijet=jets->begin(); ijet!=jets->end(); ijet++) {
2572  jjet++;
2573 
2574  float hadEne = ijet->hadEnergyInHB() + ijet->hadEnergyInHO() +
2575  ijet->hadEnergyInHE() + ijet->hadEnergyInHF();
2576  float emEne = ijet->emEnergyInEB() + ijet->emEnergyInEE() + ijet->emEnergyInHF();
2577  float had = ijet->energyFractionHadronic();
2578 
2579  float j_et = ijet->et();
2580 
2581  if (fabs(ijet->eta()) < 1.3) {
2582  totEneLeadJetEta1_1.Fill(hadEne+emEne);
2583  hadEneLeadJetEta1_1.Fill(hadEne);
2584  emEneLeadJetEta1_1.Fill(emEne);
2585 
2586  totEneLeadJetEta1_2.Fill(hadEne+emEne);
2587  hadEneLeadJetEta1_2.Fill(hadEne);
2588  emEneLeadJetEta1_2.Fill(emEne);
2589 
2590  if (ijet->pt() > minJetPt10)
2591  hadFracEta11.Fill(had);
2592  }
2593  if ((fabs(ijet->eta()) > 1.3) && (fabs(ijet->eta()) < 3.) ) {
2594 
2595  totEneLeadJetEta2_1.Fill(hadEne+emEne);
2596  hadEneLeadJetEta2_1.Fill(hadEne);
2597  emEneLeadJetEta2_1.Fill(emEne);
2598 
2599  totEneLeadJetEta2_2.Fill(hadEne+emEne);
2600  hadEneLeadJetEta2_2.Fill(hadEne);
2601  emEneLeadJetEta2_2.Fill(emEne);
2602 
2603  if (ijet->pt() > minJetPt10)
2604  hadFracEta21.Fill(had);
2605  }
2606  if (fabs(ijet->eta()) > 3.) {
2607 
2608  totEneLeadJetEta3_1.Fill(hadEne+emEne);
2609  hadEneLeadJetEta3_1.Fill(hadEne);
2610  emEneLeadJetEta3_1.Fill(emEne);
2611 
2612  totEneLeadJetEta3_2.Fill(hadEne+emEne);
2613  hadEneLeadJetEta3_2.Fill(hadEne);
2614  emEneLeadJetEta3_2.Fill(emEne);
2615 
2616  if (ijet->pt() > minJetPt10)
2617  hadFracEta31.Fill(had);
2618  }
2619 
2620 
2621  if (jjet == 1) {
2622  hadFracLeadJet1.Fill(had);
2623  hadEneLeadJet1.Fill(hadEne);
2624  hadEneLeadJet12.Fill(hadEne);
2625  hadEneLeadJet13.Fill(hadEne);
2626  emEneLeadJet1.Fill(emEne);
2627  emEneLeadJet12.Fill(emEne);
2628  emEneLeadJet13.Fill(emEne);
2629  }
2630 
2631  const std::vector<CaloTowerPtr> jetCaloRefs = ijet->getCaloConstituents();
2632  int nConstituents = jetCaloRefs.size();
2633 
2634  if (jjet == 1) {
2635 
2636  nTow1 = nTow2 = nTow3 = nTow4 = 0;
2637  for (int i = 0; i <nConstituents ; i++){
2638 
2639  float et = jetCaloRefs[i]->et();
2640 
2641  if (et > 0.5) nTow1++;
2642  if (et > 1.0) nTow2++;
2643  if (et > 1.5) nTow3++;
2644  if (et > 2.0) nTow4++;
2645 
2646  hf_TowerJetEt1.Fill(et/j_et);
2647 
2648  }
2649 
2650  nTowersLeadJetPt1.Fill(nTow1);
2651  nTowersLeadJetPt2.Fill(nTow2);
2652  nTowersLeadJetPt3.Fill(nTow3);
2653  nTowersLeadJetPt4.Fill(nTow4);
2654 
2655  }
2656 
2657  if ( (jjet == 1) && (fabs(ijet->eta()) < 1.3) ) {
2658  nTowersLeadJet1.Fill( nConstituents );
2659 
2660  for (int i = 0; i <nConstituents ; i++){
2661  float t_et = jetCaloRefs[i]->et();
2662  double delR = deltaR( ijet->eta(), ijet->phi(), jetCaloRefs[i]->eta(), jetCaloRefs[i]->phi() );
2663  hf_TowerDelR1.Fill( delR, t_et/j_et);
2664  hf_TowerDelR12.Fill( delR, t_et/j_et);
2665  TowerEtLeadJet1.Fill( t_et );
2666  TowerEtLeadJet12.Fill( t_et );
2667  TowerEtLeadJet13.Fill( t_et );
2668  }
2669  }
2670 
2671 
2672  if ( (jjet == 2) && (fabs(ijet->eta()) < 1.3) ) {
2673  nTowersSecondJet1.Fill( nConstituents );
2674  }
2675 
2676 
2677 
2678  }
2679 
2680  // *********************
2681  // Unclustered Energy
2682  // *********************
2683 
2684  double SumPtJet(0);
2685 
2686  double SumEtNotJets(0);
2687  double SumEtJets(0);
2688  double SumEtTowers(0);
2689 
2690  double sumJetPx(0);
2691  double sumJetPy(0);
2692 
2693  double sumTowerAllPx(0);
2694  double sumTowerAllPy(0);
2695 
2696  double sumTowerAllEx(0);
2697  double sumTowerAllEy(0);
2698 
2699  std::vector<CaloTowerPtr> UsedTowerList;
2700  std::vector<CaloTower> TowerUsedInJets;
2701  std::vector<CaloTower> TowerNotUsedInJets;
2702 
2703 
2704  // *********************
2705  // Towers
2706 
2708  evt.getByLabel( "towerMaker", caloTowers );
2709 
2710 
2711 
2712  nTow1 = nTow2 = nTow3 = nTow4 = 0;
2713 
2714  double sum_et = 0.0;
2715  double sum_ex = 0.0;
2716  double sum_ey = 0.0;
2717  // double sum_ez = 0.0;
2718 
2719  // --- Loop over towers and make a lists of used and unused towers
2720  for (CaloTowerCollection::const_iterator tower = caloTowers->begin();
2721  tower != caloTowers->end(); tower++) {
2722 
2723  Double_t et = tower->et();
2724 
2725  if (et > 0.5) nTow1++;
2726  if (et > 1.0) nTow2++;
2727  if (et > 1.5) nTow3++;
2728  if (et > 2.0) nTow4++;
2729 
2730  if(et>0.5) {
2731 
2732  // ********
2733  double phix = tower->phi();
2734  // double theta = tower->theta();
2735  // double e = tower->energy();
2736  // double et = e*sin(theta);
2737  // double et = tower->emEt() + tower->hadEt();
2738  double et = tower->et();
2739 
2740  // sum_ez += e*cos(theta);
2741  sum_et += et;
2742  sum_ex += et*cos(phix);
2743  sum_ey += et*sin(phix);
2744  // ********
2745 
2746  Double_t phi = tower->phi();
2747  SumEtTowers += tower->et();
2748 
2749  sumTowerAllEx += et*cos(phi);
2750  sumTowerAllEy += et*sin(phi);
2751 
2752  }
2753 
2754  }
2755 
2756  SumEt1.Fill(sum_et);
2757  SumEt12.Fill(sum_et);
2758  SumEt13.Fill(sum_et);
2759 
2760  MET1.Fill(sqrt( sum_ex*sum_ex + sum_ey*sum_ey));
2761  MET12.Fill(sqrt( sum_ex*sum_ex + sum_ey*sum_ey));
2762  MET13.Fill(sqrt( sum_ex*sum_ex + sum_ey*sum_ey));
2763 
2764  // met->mex = -sum_ex;
2765  // met->mey = -sum_ey;
2766  // met->mez = -sum_ez;
2767  // met->met = sqrt( sum_ex*sum_ex + sum_ey*sum_ey );
2768  // cout << "MET = " << met->met << endl;
2769  // met->sumet = sum_et;
2770  // met->phi = atan2( -sum_ey, -sum_ex );
2771 
2772 
2773 
2774  hf_sumTowerAllEx.Fill(sumTowerAllEx);
2775  hf_sumTowerAllEy.Fill(sumTowerAllEy);
2776 
2777  nTowers1.Fill(nTow1);
2778  nTowers2.Fill(nTow2);
2779  nTowers3.Fill(nTow3);
2780  nTowers4.Fill(nTow4);
2781 
2782  // *********************
2783  // MidPoint
2784  //
2785  UsedTowerList.clear();
2786  TowerUsedInJets.clear();
2787  TowerNotUsedInJets.clear();
2788 
2789  // --- Loop over jets and make a list of all the used towers
2790  evt.getByLabel( CaloJetAlgorithm1, jets );
2791  for ( CaloJetCollection::const_iterator ijet=jets->begin(); ijet!=jets->end(); ijet++) {
2792 
2793  Double_t jetPt = ijet->pt();
2794  Double_t jetPhi = ijet->phi();
2795 
2796  // if (jetPt>5.0) {
2797 
2798  Double_t jetPx = jetPt*cos(jetPhi);
2799  Double_t jetPy = jetPt*sin(jetPhi);
2800 
2801  sumJetPx +=jetPx;
2802  sumJetPy +=jetPy;
2803 
2804  const std::vector<CaloTowerPtr> jetCaloRefs = ijet->getCaloConstituents();
2805  int nConstituents = jetCaloRefs.size();
2806  for (int i = 0; i <nConstituents ; i++){
2807  UsedTowerList.push_back(jetCaloRefs[i]);
2808  }
2809 
2810  SumPtJet +=jetPt;
2811  // }
2812 
2813  }
2814 
2815 
2816  int NTowersUsed = UsedTowerList.size();
2817 
2818  // --- Loop over towers and make a lists of used and unused towers
2819  for (CaloTowerCollection::const_iterator tower = caloTowers->begin();
2820  tower != caloTowers->end(); tower++) {
2821 
2822  CaloTower t = *tower;
2823  Double_t et = tower->et();
2824 
2825  if(et>0) {
2826 
2827  Double_t phi = tower->phi();
2828  SumEtTowers += tower->et();
2829 
2830  sumTowerAllPx += et*cos(phi);
2831  sumTowerAllPy += et*sin(phi);
2832 
2833  bool used = false;
2834 
2835  for(int i=0; i<NTowersUsed; i++){
2836  if(tower->id() == UsedTowerList[i]->id()){
2837  used=true;
2838  break;
2839  }
2840  }
2841 
2842  if (used) {
2843  TowerUsedInJets.push_back(t);
2844  } else {
2845  TowerNotUsedInJets.push_back(t);
2846  }
2847 
2848  }
2849 
2850  }
2851 
2852  int nUsed = TowerUsedInJets.size();
2853  int nNotUsed = TowerNotUsedInJets.size();
2854 
2855  SumEtJets = 0;
2856  SumEtNotJets = 0;
2857 
2858  for(int i=0;i<nUsed;i++){
2859  SumEtJets += TowerUsedInJets[i].et();
2860  }
2861  h_jetEt1.Fill(SumEtJets);
2862 
2863  for(int i=0;i<nNotUsed;i++){
2864  if (TowerNotUsedInJets[i].et() > 0.5)
2865  SumEtNotJets += TowerNotUsedInJets[i].et();
2866  h_missEt1.Fill(TowerNotUsedInJets[i].et());
2867  h_missEt1s.Fill(TowerNotUsedInJets[i].et());
2868  }
2869  h_totMissEt1.Fill(SumEtNotJets);
2870 
2871 
2872 
2873  // *********************
2874  // SISCone
2875  //
2876  UsedTowerList.clear();
2877  TowerUsedInJets.clear();
2878  TowerNotUsedInJets.clear();
2879 
2880  // --- Loop over jets and make a list of all the used towers
2881  evt.getByLabel( CaloJetAlgorithm2, jets );
2882  for ( CaloJetCollection::const_iterator ijet=jets->begin(); ijet!=jets->end(); ijet++) {
2883 
2884  Double_t jetPt = ijet->pt();
2885  Double_t jetPhi = ijet->phi();
2886 
2887  // if (jetPt>5.0) {
2888 
2889  Double_t jetPx = jetPt*cos(jetPhi);
2890  Double_t jetPy = jetPt*sin(jetPhi);
2891 
2892  sumJetPx +=jetPx;
2893  sumJetPy +=jetPy;
2894 
2895  const std::vector<CaloTowerPtr> jetCaloRefs = ijet->getCaloConstituents();
2896  int nConstituents = jetCaloRefs.size();
2897  for (int i = 0; i <nConstituents ; i++){
2898  UsedTowerList.push_back(jetCaloRefs[i]);
2899  }
2900 
2901  SumPtJet +=jetPt;
2902  // }
2903 
2904  }
2905 
2906 
2907  // Handle<CaloTowerCollection> caloTowers;
2908  // evt.getByLabel( "towerMaker", caloTowers );
2909 
2910  NTowersUsed = UsedTowerList.size();
2911 
2912  // --- Loop over towers and make a lists of used and unused towers
2913  for (CaloTowerCollection::const_iterator tower = caloTowers->begin();
2914  tower != caloTowers->end(); tower++) {
2915 
2916  CaloTower t = *tower;
2917  Double_t et = tower->et();
2918 
2919  if(et>0) {
2920 
2921  Double_t phi = tower->phi();
2922 
2923  SumEtTowers += tower->et();
2924 
2925  sumTowerAllPx += et*cos(phi);
2926  sumTowerAllPy += et*sin(phi);
2927 
2928  bool used = false;
2929 
2930  for(int i=0; i<NTowersUsed; i++){
2931  if(tower->id() == UsedTowerList[i]->id()){
2932  used=true;
2933  break;
2934  }
2935  }
2936 
2937  if (used) {
2938  TowerUsedInJets.push_back(t);
2939  } else {
2940  TowerNotUsedInJets.push_back(t);
2941  }
2942 
2943  }
2944 
2945  }
2946 
2947  nUsed = TowerUsedInJets.size();
2948  nNotUsed = TowerNotUsedInJets.size();
2949 
2950  SumEtJets = 0;
2951  SumEtNotJets = 0;
2952 
2953  for(int i=0;i<nUsed;i++){
2954  SumEtJets += TowerUsedInJets[i].et();
2955  }
2956  h_jetEt2.Fill(SumEtJets);
2957 
2958  for(int i=0;i<nNotUsed;i++){
2959  if (TowerNotUsedInJets[i].et() > 0.5)
2960  SumEtNotJets += TowerNotUsedInJets[i].et();
2961  h_missEt2.Fill(TowerNotUsedInJets[i].et());
2962  h_missEt2s.Fill(TowerNotUsedInJets[i].et());
2963  }
2964  h_totMissEt2.Fill(SumEtNotJets);
2965 
2966 
2967  // *********************
2968  // KtClus
2969  //
2970  UsedTowerList.clear();
2971  TowerUsedInJets.clear();
2972  TowerNotUsedInJets.clear();
2973 
2974  // --- Loop over jets and make a list of all the used towers
2975  evt.getByLabel( CaloJetAlgorithm3, jets );
2976  for ( CaloJetCollection::const_iterator ijet=jets->begin(); ijet!=jets->end(); ijet++) {
2977 
2978  Double_t jetPt = ijet->pt();
2979  Double_t jetPhi = ijet->phi();
2980 
2981  // if (jetPt>5.0) {
2982 
2983  Double_t jetPx = jetPt*cos(jetPhi);
2984  Double_t jetPy = jetPt*sin(jetPhi);
2985 
2986  sumJetPx +=jetPx;
2987  sumJetPy +=jetPy;
2988 
2989  const std::vector<CaloTowerPtr> jetCaloRefs = ijet->getCaloConstituents();
2990  int nConstituents = jetCaloRefs.size();
2991  for (int i = 0; i <nConstituents ; i++){
2992  UsedTowerList.push_back(jetCaloRefs[i]);
2993  }
2994 
2995  SumPtJet +=jetPt;
2996  // }
2997 
2998  }
2999 
3000 
3001  // Handle<CaloTowerCollection> caloTowers;
3002  // evt.getByLabel( "towerMaker", caloTowers );
3003 
3004  NTowersUsed = UsedTowerList.size();
3005 
3006  // --- Loop over towers and make a lists of used and unused towers
3007  for (CaloTowerCollection::const_iterator tower = caloTowers->begin();
3008  tower != caloTowers->end(); tower++) {
3009 
3010  CaloTower t = *tower;
3011  Double_t et = tower->et();
3012 
3013  if(et>0) {
3014 
3015  // Double_t phi = tower->phi();
3016 
3017  // SumEtTowers += tower->et();
3018  // sumTowerAllPx += et*cos(phi);
3019  // sumTowerAllPy += et*sin(phi);
3020 
3021  bool used = false;
3022 
3023  for(int i=0; i<NTowersUsed; i++){
3024  if(tower->id() == UsedTowerList[i]->id()){
3025  used=true;
3026  break;
3027  }
3028  }
3029 
3030  if (used) {
3031  TowerUsedInJets.push_back(t);
3032  } else {
3033  TowerNotUsedInJets.push_back(t);
3034  }
3035 
3036  }
3037 
3038  }
3039 
3040  nUsed = TowerUsedInJets.size();
3041  nNotUsed = TowerNotUsedInJets.size();
3042 
3043  SumEtJets = 0;
3044  SumEtNotJets = 0;
3045 
3046  for(int i=0;i<nUsed;i++){
3047  SumEtJets += TowerUsedInJets[i].et();
3048  }
3049  h_jetEt3.Fill(SumEtJets);
3050 
3051  for(int i=0;i<nNotUsed;i++){
3052  if (TowerNotUsedInJets[i].et() > 0.5)
3053  SumEtNotJets += TowerNotUsedInJets[i].et();
3054  h_missEt3.Fill(TowerNotUsedInJets[i].et());
3055  h_missEt3s.Fill(TowerNotUsedInJets[i].et());
3056  }
3057  h_totMissEt3.Fill(SumEtNotJets);
3058 
3059 }
3060 
3061 
3062 
3064 
3065  //Write out the histogram file.
3066  m_file->Write();
3067 
3068 }
TH1F ZpMassResRL132
Definition: myFastSimVal.h:91
TH1F totEneLeadJetEta1_1
Definition: myFastSimVal.h:45
TH1F ZpMassResL403
Definition: myFastSimVal.h:89
TH1F ZpMassResRLoP102
Definition: myFastSimVal.h:93
TH1F ZpMassGen_2000_40
Definition: myFastSimVal.h:80
TH1F ZpMass_5000_40
Definition: myFastSimVal.h:81
TH1F ZpMassGen_5000_13
Definition: myFastSimVal.h:82
TProfile hf_nJet2
Definition: myFastSimVal.h:32
TH1F hadEneLeadJetEta1_2
Definition: myFastSimVal.h:49
TH1F hadEneLeadJet2
Definition: myFastSimVal.h:61
TH1F hadFracEta33
Definition: myFastSimVal.h:69
TH1F TowerEtLeadJet23
Definition: myFastSimVal.h:75
TH1F ZpMassResL133
Definition: myFastSimVal.h:88
int i
Definition: DBlmapReader.cc:9
TH1F hadEneLeadJetEta3_2
Definition: myFastSimVal.h:49
TH1F dijetMass_700_101
Definition: myFastSimVal.h:114
TH1F matchedAllPt31
Definition: myFastSimVal.h:54
TH1F hadFracEta31
Definition: myFastSimVal.h:67
std::string GenJetAlgorithm3
Definition: myFastSimVal.h:26
virtual const Candidate * daughter(size_type i) const =0
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
TH1F hadFracEta11
Definition: myFastSimVal.h:67
TH1F dijetMassCor_700_101
Definition: myFastSimVal.h:103
TH1F emEneLeadJet32
Definition: myFastSimVal.h:65
TH1F ZpMassResPRL402
Definition: myFastSimVal.h:98
TH1F ZpMassRes103
Definition: myFastSimVal.h:99
TH1F dijetMass_5000_131
Definition: myFastSimVal.h:116
TH1F emEneLeadJet3
Definition: myFastSimVal.h:64
TH1F ZpMassResPRL131
Definition: myFastSimVal.h:97
TH1F hadFracEta13
Definition: myFastSimVal.h:69
TH1F matchedAllPt12
Definition: myFastSimVal.h:52
TH1F h_lowPtCal1c12
Definition: myFastSimVal.h:178
TH1F ZpMassResRLoP131
Definition: myFastSimVal.h:94
TH1F ZpMassResPRL103
Definition: myFastSimVal.h:96
virtual const Candidate * mother(size_type i=0) const =0
return pointer to mother
TH1F hadEneLeadJet33
Definition: myFastSimVal.h:63
std::string CaloJetAlgorithm3
Definition: myFastSimVal.h:24
TH1F ZpMass_700_13
Definition: myFastSimVal.h:77
std::string GenJetAlgorithm1
Definition: myFastSimVal.h:26
TProfile hf_TowerDelR1
Definition: myFastSimVal.h:30
double deltaPhi(float phi1, float phi2)
Definition: VectorUtil.h:30
TH1F tbarMassGen
Definition: myFastSimVal.h:86
TH1F h_lowPtCal2c12
Definition: myFastSimVal.h:178
TH1F ZpMassResL101
Definition: myFastSimVal.h:87
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
TH1F totEneLeadJetEta3_2
Definition: myFastSimVal.h:48
TH1F ZpMassResRLoP402
Definition: myFastSimVal.h:95
TH1F matchedAllPt43
Definition: myFastSimVal.h:55
virtual double mass() const =0
mass
std::string CaloJetAlgorithm4
Definition: myFastSimVal.h:24
TH1F dijetMassP_5000_101
Definition: myFastSimVal.h:122
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
TH1F hadEneLeadJetEta3_1
Definition: myFastSimVal.h:46
TH1F hadEneLeadJet3
Definition: myFastSimVal.h:61
TH1F TowerEtLeadJet22
Definition: myFastSimVal.h:74
std::vector< CaloTower >::const_iterator const_iterator
virtual double vx() const =0
x coordinate of vertex position
TProfile hf_nJet31
Definition: myFastSimVal.h:34
TH1F hadEneLeadJet12
Definition: myFastSimVal.h:62
TH1F ZpMassGen10
Definition: myFastSimVal.h:76
#define abs(x)
Definition: mlp_lapack.h:159
TH1F dijetMassCor_5000_101
Definition: myFastSimVal.h:105
TH1F hadFracEta23
Definition: myFastSimVal.h:69
TH1F h_lowPtCal1c11
Definition: myFastSimVal.h:177
TProfile hf_TowerDelR22
Definition: myFastSimVal.h:31
TH1F h_lowPtCal3c12
Definition: myFastSimVal.h:178
TH1F dijetMassP101
Definition: myFastSimVal.h:118
TH1F dijetMassCor_2000_131
Definition: myFastSimVal.h:104
TH1F ZpMassResL401
Definition: myFastSimVal.h:89
TProfile hf_TowerDelR2
Definition: myFastSimVal.h:30
TH1F dijetMass_700_131
Definition: myFastSimVal.h:114
TH1F dijetMassCor_5000_131
Definition: myFastSimVal.h:105
TH1F emEneLeadJetEta3_1
Definition: myFastSimVal.h:47
TH1F ZpMass_700_10
Definition: myFastSimVal.h:77
T eta() const
TProfile hf_TowerDelR3
Definition: myFastSimVal.h:30
TH1F h_lowPtCal4c13
Definition: myFastSimVal.h:179
tuple d1
Definition: debug_cff.py:7
TH1F nTowersSecondJet1
Definition: myFastSimVal.h:70
TH1F ZpMassResRL103
Definition: myFastSimVal.h:90
int njet
Definition: HydjetWrapper.h:91
TH1F ZpMassGen_2000_10
Definition: myFastSimVal.h:80
TH1F dijetMass_2000_131
Definition: myFastSimVal.h:115
TH1F hadEneLeadJet13
Definition: myFastSimVal.h:63
TH1F dijetMassP_2000_101
Definition: myFastSimVal.h:121
TH1F ZpMassMatched1
Definition: myFastSimVal.h:107
int nEvent
Definition: myFastSimVal.cc:49
virtual double vy() const =0
y coordinate of vertex position
TProfile hf_nJet3
Definition: myFastSimVal.h:32
#define MAXJETS
Definition: myFastSimVal.cc:30
TH1F dijetMass_700_401
Definition: myFastSimVal.h:114
TH1F nTowersLeadJet1
Definition: myFastSimVal.h:70
TH1F matchedAllPt32
Definition: myFastSimVal.h:54
TH1F TowerEtLeadJet32
Definition: myFastSimVal.h:74
TH1F ZpMassResRLoP403
Definition: myFastSimVal.h:95
myFastSimVal(const edm::ParameterSet &)
Definition: myFastSimVal.cc:34
TH1F ZpMassGen_5000_10
Definition: myFastSimVal.h:82
TH1F matchedAllPt23
Definition: myFastSimVal.h:53
TH1F ZpMassResPRL101
Definition: myFastSimVal.h:96
TH1F topMassParton
Definition: myFastSimVal.h:83
TH1F emEneLeadJetEta2_1
Definition: myFastSimVal.h:47
TH1F dijetMassCor_2000_101
Definition: myFastSimVal.h:104
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
TH1F ZpMassResPRL401
Definition: myFastSimVal.h:98
TH1F matchedPt23
Definition: myFastSimVal.h:57
TH1F matchedPt33
Definition: myFastSimVal.h:58
TH1F emEneLeadJet13
Definition: myFastSimVal.h:66
virtual size_type numberOfDaughters() const =0
number of daughters
TProfile hf_PtResponse1
Definition: myFastSimVal.h:35
TH1F matchedPt32
Definition: myFastSimVal.h:58
TH1F ZpMassResL103
Definition: myFastSimVal.h:87
TH1F matchedAllPt21
Definition: myFastSimVal.h:53
TH1F dijetMassCor_2000_401
Definition: myFastSimVal.h:104
TH1F dijetMassP_5000_401
Definition: myFastSimVal.h:122
TProfile hf_nJet4s
Definition: myFastSimVal.h:33
TH1F nTowersLeadJetPt1
Definition: myFastSimVal.h:44
TH1F ZpMassResRL401
Definition: myFastSimVal.h:92
TH1F ZpMass_5000_13
Definition: myFastSimVal.h:81
TH1F ZpMassResL402
Definition: myFastSimVal.h:89
TH1F nTowersLeadJetPt3
Definition: myFastSimVal.h:44
TProfile hf_nJet1
Definition: myFastSimVal.h:32
TH1F TowerEtLeadJet33
Definition: myFastSimVal.h:75
TH1F ZpMassMatched3
Definition: myFastSimVal.h:107
TH1F ZpMassResRL131
Definition: myFastSimVal.h:91
TH1F dijetMassP_5000_131
Definition: myFastSimVal.h:122
TH1F matchedPt21
Definition: myFastSimVal.h:57
TH1F h_lowPtCal4c12
Definition: myFastSimVal.h:178
TProfile hf_nJet1s
Definition: myFastSimVal.h:33
TH1F hadFracEta21
Definition: myFastSimVal.h:67
TProfile hf_nJet3s
Definition: myFastSimVal.h:33
TH1F ZpMassResRLoP133
Definition: myFastSimVal.h:94
TH1F matchedPt41
Definition: myFastSimVal.h:59
TH1F nTowersLeadJetPt4
Definition: myFastSimVal.h:44
TH1F ZpMassResRL102
Definition: myFastSimVal.h:90
T sqrt(T t)
Definition: SSEVec.h:28
TH1F hadFracEta22
Definition: myFastSimVal.h:68
TH1F dijetMassP_700_401
Definition: myFastSimVal.h:120
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
TH1F emEneLeadJet2
Definition: myFastSimVal.h:64
void analyze(const edm::Event &, const edm::EventSetup &)
TH1F hadFracEta12
Definition: myFastSimVal.h:68
TH1F ZpMassResPRL102
Definition: myFastSimVal.h:96
TH1F dijetMassP_700_101
Definition: myFastSimVal.h:120
int j
Definition: DBlmapReader.cc:9
TH1F ZpMassRes102
Definition: myFastSimVal.h:99
TProfile hf_PtResponse2
Definition: myFastSimVal.h:35
TH1F dijetMassCor_5000_1
Definition: myFastSimVal.h:105
TH1F hadFracEta32
Definition: myFastSimVal.h:68
TH1F dijetMass_5000_101
Definition: myFastSimVal.h:116
TH1F dijetMassCor_700_131
Definition: myFastSimVal.h:103
TProfile hf_PtResponse3
Definition: myFastSimVal.h:35
TH1F totEneLeadJetEta3_1
Definition: myFastSimVal.h:45
TProfile hf_TowerDelR12
Definition: myFastSimVal.h:31
TH1F matchedAllPt41
Definition: myFastSimVal.h:55
TH1F ZpMassResPRL133
Definition: myFastSimVal.h:97
TH1F hadEneLeadJet22
Definition: myFastSimVal.h:62
TH1F ZpMassGen_2000_13
Definition: myFastSimVal.h:80
TH1F ZpMass_2000_40
Definition: myFastSimVal.h:79
TH1F nTowersLeadJet3
Definition: myFastSimVal.h:72
TH1F ZpMassResL131
Definition: myFastSimVal.h:88
TH1F ZpMassResRLoP401
Definition: myFastSimVal.h:95
TH1F nTowersLeadJet2
Definition: myFastSimVal.h:71
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
TH1F ZpMassRes101
Definition: myFastSimVal.h:99
TH1F ZpMass_700_40
Definition: myFastSimVal.h:77
TH1F emEneLeadJet22
Definition: myFastSimVal.h:65
TH1F hadEneLeadJetEta2_2
Definition: myFastSimVal.h:49
TH1F ZpMassResL132
Definition: myFastSimVal.h:88
TH1F ZpMassGen_700_10
Definition: myFastSimVal.h:78
TH1F ZpMassResRLoP103
Definition: myFastSimVal.h:93
TH1F ZpMassResL102
Definition: myFastSimVal.h:87
TH1F ZpMassGen_5000_40
Definition: myFastSimVal.h:82
TH1F TowerEtLeadJet12
Definition: myFastSimVal.h:74
TH1F matchedAllPt13
Definition: myFastSimVal.h:52
TH1F h_lowPtCal3c11
Definition: myFastSimVal.h:177
TH1F TowerEtLeadJet2
Definition: myFastSimVal.h:73
TH1F hadEneLeadJetEta1_1
Definition: myFastSimVal.h:46
TH1F ZpMassGen_700_13
Definition: myFastSimVal.h:78
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
TH1F ZpMass_2000_13
Definition: myFastSimVal.h:79
TH1F matchedAllPt22
Definition: myFastSimVal.h:53
TH1F dijetMassCor_700_1
Definition: myFastSimVal.h:103
TH1F dijetMassCor_2000_1
Definition: myFastSimVal.h:104
virtual int pdgId() const =0
PDG identifier.
TProfile hf_nJet41
Definition: myFastSimVal.h:34
TH1F totEneLeadJetEta2_1
Definition: myFastSimVal.h:45
TH1F matchedPt13
Definition: myFastSimVal.h:56
TH1F dijetMassCor_5000_401
Definition: myFastSimVal.h:105
std::string GenJetAlgorithm4
Definition: myFastSimVal.h:26
TH1F dijetMassCor_700_401
Definition: myFastSimVal.h:103
TH1F ZpMassMatched2
Definition: myFastSimVal.h:107
TH1F matchedPt12
Definition: myFastSimVal.h:56
#define M_PI
Definition: BFit3D.cc:3
TH1F ZpMass_2000_10
Definition: myFastSimVal.h:79
TH1F matchedPt22
Definition: myFastSimVal.h:57
TH1F hadEneLeadJet23
Definition: myFastSimVal.h:63
TH1F dijetMassP401
Definition: myFastSimVal.h:118
TH1F hadFracLeadJet2
Definition: myFastSimVal.h:71
TH1F hadFracLeadJet1
Definition: myFastSimVal.h:70
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
TH1F ZpMassGen13
Definition: myFastSimVal.h:76
TH1F dijetMassCor101
Definition: myFastSimVal.h:124
TH1F nTowersSecondJet2
Definition: myFastSimVal.h:71
TH1F h_lowPtCal4c11
Definition: myFastSimVal.h:177
TH1F dijetMassCor131
Definition: myFastSimVal.h:124
TProfile hf_TowerDelR32
Definition: myFastSimVal.h:31
TH1F hf_sumTowerAllEy
Definition: myFastSimVal.h:37
TH1F dijetMassP_2000_401
Definition: myFastSimVal.h:121
TH1F emEneLeadJetEta2_2
Definition: myFastSimVal.h:50
TH1F emEneLeadJetEta1_1
Definition: myFastSimVal.h:47
TH1F dijetMassP_700_131
Definition: myFastSimVal.h:120
TH1F emEneLeadJet12
Definition: myFastSimVal.h:65
TH1F h_lowPtCal2c13
Definition: myFastSimVal.h:179
TProfile hf_nJet21
Definition: myFastSimVal.h:34
TH1F TowerEtLeadJet3
Definition: myFastSimVal.h:73
TH1F dijetMass_2000_401
Definition: myFastSimVal.h:115
TH1F emEneLeadJet23
Definition: myFastSimVal.h:66
TH1F emEneLeadJetEta3_2
Definition: myFastSimVal.h:50
TH1F emEneLeadJetEta1_2
Definition: myFastSimVal.h:50
TH1F dijetMass_2000_101
Definition: myFastSimVal.h:115
TH1F ZpMassResRL133
Definition: myFastSimVal.h:91
TH1F ZpMassResPRL132
Definition: myFastSimVal.h:97
virtual double vz() const =0
z coordinate of vertex position
std::string CaloJetAlgorithm1
Definition: myFastSimVal.h:24
TH1F totEneLeadJetEta2_2
Definition: myFastSimVal.h:48
TH1F ZpMassGen40
Definition: myFastSimVal.h:76
TH1F emEneLeadJet1
Definition: myFastSimVal.h:64
TH1F hf_sumTowerAllEx
Definition: myFastSimVal.h:37
TH1F hf_TowerJetEt1
Definition: myFastSimVal.h:41
TProfile hf_nJet2s
Definition: myFastSimVal.h:33
TH1F hadEneLeadJetEta2_1
Definition: myFastSimVal.h:46
TH1F emEneLeadJet33
Definition: myFastSimVal.h:66
TH1F ZpMassResRL402
Definition: myFastSimVal.h:92
TH1F matchedAllPt11
Definition: myFastSimVal.h:52
TH1F ZpMass_5000_10
Definition: myFastSimVal.h:81
TH1F matchedAllPt33
Definition: myFastSimVal.h:54
TH1F matchedPt42
Definition: myFastSimVal.h:59
TH1F ZpMassGen_700_40
Definition: myFastSimVal.h:78
tuple cout
Definition: gather_cfg.py:41
TProfile hf_nJet11
Definition: myFastSimVal.h:34
TH1F nTowersLeadJetPt2
Definition: myFastSimVal.h:44
TH1F TowerEtLeadJet1
Definition: myFastSimVal.h:73
TH1F h_lowPtCal1c13
Definition: myFastSimVal.h:179
TH1F ZpMassResRL101
Definition: myFastSimVal.h:90
TH1F ZpMassResRL403
Definition: myFastSimVal.h:92
TFile * m_file
Definition: myFastSimVal.h:193
TH1F hadFracLeadJet3
Definition: myFastSimVal.h:72
std::string GenJetAlgorithm2
Definition: myFastSimVal.h:26
TProfile hf_PtResponse4
Definition: myFastSimVal.h:35
TH1F dijetMassCor1
Definition: myFastSimVal.h:124
TH1F dijetMassCor401
Definition: myFastSimVal.h:124
TProfile hf_nJet4
Definition: myFastSimVal.h:32
std::string CaloJetAlgorithm2
Definition: myFastSimVal.h:24
TH1F h_lowPtCal2c11
Definition: myFastSimVal.h:177
TH1F dijetMassP131
Definition: myFastSimVal.h:118
TH1F totEneLeadJetEta1_2
Definition: myFastSimVal.h:48
TH1F ZpMassResPRL403
Definition: myFastSimVal.h:98
TH1F TowerEtLeadJet13
Definition: myFastSimVal.h:75
TH1F matchedPt43
Definition: myFastSimVal.h:59
TH1F dijetMassP_2000_131
Definition: myFastSimVal.h:121
TH1F matchedPt31
Definition: myFastSimVal.h:58
void beginJob()
Definition: myFastSimVal.cc:51
TH1F matchedAllPt42
Definition: myFastSimVal.h:55
TH1F hadEneLeadJet1
Definition: myFastSimVal.h:61
TH1F ZpMassResRLoP132
Definition: myFastSimVal.h:94
TH1F matchedPt11
Definition: myFastSimVal.h:56
TH1F nTowersSecondJet3
Definition: myFastSimVal.h:72
TH1F dijetMass_5000_401
Definition: myFastSimVal.h:116
TH1F hadEneLeadJet32
Definition: myFastSimVal.h:62
TH1F h_lowPtCal3c13
Definition: myFastSimVal.h:179
TH1F ZpMassResRLoP101
Definition: myFastSimVal.h:93
virtual const LorentzVector & p4() const =0
four-momentum Lorentz vector
Definition: DDAxes.h:10