CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CaloJetTesterUnCorr_HeavyIons.cc
Go to the documentation of this file.
6 
8 
11 
16 
17 //I don't know which of these I actually need yet
24 
26 
28 
30 
31 #include <cmath>
32 
33 using namespace edm;
34 using namespace reco;
35 using namespace std;
36 
37 namespace {
38  bool is_B (const reco::Jet& fJet) {return fabs (fJet.eta()) < 1.3;}
39  bool is_E (const reco::Jet& fJet) {return fabs (fJet.eta()) >= 1.3 && fabs (fJet.eta()) < 3.;}
40  bool is_F (const reco::Jet& fJet) {return fabs (fJet.eta()) >= 3.;}
41 }
42 
44  : mInputCollection (iConfig.getParameter<edm::InputTag>( "src" )),
45  mInputGenCollection (iConfig.getParameter<edm::InputTag>( "srcGen" )),
46  rho_tag_ (iConfig.getParameter<edm::InputTag>( "srcRho" )),
47  mOutputFile (iConfig.getUntrackedParameter<std::string>("outputFile", "")),
48  mMatchGenPtThreshold (iConfig.getParameter<double>("genPtThreshold")),
49  mGenEnergyFractionThreshold (iConfig.getParameter<double>("genEnergyFractionThreshold")),
50  mReverseEnergyFractionThreshold (iConfig.getParameter<double>("reverseEnergyFractionThreshold")),
51  mRThreshold (iConfig.getParameter<double>("RThreshold")),
52  mTurnOnEverything (iConfig.getUntrackedParameter<std::string>("TurnOnEverything",""))
53 {
56  = mP = mP_80 = mPt = mPt_80
69  = mN90
71  //= mCaloMET = mCaloMET_3000 = mCaloMETPhi = mCaloSumET = mCaloSumET_3000
74  //= mAllGenJetsPt = mMatchedGenJetsPt = mAllGenJetsEta = mMatchedGenJetsEta
75  //= mGenJetMatchEnergyFraction = mReverseMatchEnergyFraction = mRMatch
76  = mDeltaEta = mDeltaPhi //= mEScale = mlinEScale = mDeltaE
77  //= mHadEnergyProfile = mEmEnergyProfile = mJetEnergyProfile = mHadJetEnergyProfile = mEMJetEnergyProfile
79  //= mpTScaleB_s = mpTScaleE_s = mpTScaleF_s
82  //= mpTScale_30_200_s = mpTScale_200_600_s = mpTScale_600_1500_s = mpTScale_1500_3500_s
84 
89  /*
90  = mpTScale1D_30_200 = mpTScale1D_200_600 = mpTScale1D_600_1500 = mpTScale1D_1500_3500
91  = mHBEne = mHBTime = mHEEne = mHETime = mHFEne = mHFTime = mHOEne = mHOTime
92  = mEBEne = mEBTime = mEEEne = mEETime
93  */
94 
96  = 0;
97 
99  if (dbe) {
100  dbe->setCurrentFolder("JetMET/RecoJetsV/CaloJetTask_" + mInputCollection.label());
101  //
102  numberofevents = dbe->book1D("numberofevents","numberofevents", 3, 0 , 2);
103  //
104  mEta = dbe->book1D("Eta", "Eta", 120, -6, 6);
105  mEtaFineBin = dbe->book1D("EtaFineBin_Pt10", "EtaFineBin_Pt10", 600, -6, 6);
106  /*
107  mEtaFineBin1p = dbe->book1D("EtaFineBin1p_Pt10", "EtaFineBin1p_Pt10", 100, 0, 1.3);
108  mEtaFineBin2p = dbe->book1D("EtaFineBin2p_Pt10", "EtaFineBin2p_Pt10", 100, 1.3, 3);
109  mEtaFineBin3p = dbe->book1D("EtaFineBin3p_Pt10", "EtaFineBin3p_Pt10", 100, 3, 5);
110  mEtaFineBin1m = dbe->book1D("EtaFineBin1m_Pt10", "EtaFineBin1m_Pt10", 100, -1.3, 0);
111  mEtaFineBin2m = dbe->book1D("EtaFineBin2m_Pt10", "EtaFineBin2m_Pt10", 100, -3, -1.3);
112  mEtaFineBin3m = dbe->book1D("EtaFineBin3m_Pt10", "EtaFineBin3m_Pt10", 100, -5, -3);
113  */
114  //
115  mPhi = dbe->book1D("Phi", "Phi", 70, -3.5, 3.5);
116  mPhiFineBin = dbe->book1D("PhiFineBin_Pt10", "PhiFineBin_Pt10", 350, -3.5, 3.5);
117  //
118  mE = dbe->book1D("E", "E", 100, 0, 500);
119  mE_80 = dbe->book1D("E_80", "E_80", 100, 0, 5000);
120  //
121  mP = dbe->book1D("P", "P", 100, 0, 500);
122  mP_80 = dbe->book1D("P_80", "P_80", 100, 0, 5000);
123  //
124  mPt = dbe->book1D("Pt", "Pt", 100, 0, 150);
125  mPt_80 = dbe->book1D("Pt_80", "Pt_80", 100, 0, 4000);
126  //
127  mMass = dbe->book1D("Mass", "Mass", 100, 0, 200);
128  mMass_80 = dbe->book1D("Mass_80", "Mass_80", 100, 0, 500);
129  //
130  mConstituents = dbe->book1D("Constituents", "# of Constituents", 100, 0, 100);
131  mConstituents_80 = dbe->book1D("Constituents_80", "# of Constituents_80", 40, 0, 40);
132  //
133  mEtaFirst = dbe->book1D("EtaFirst", "EtaFirst", 120, -6, 6);
134  mPhiFirst = dbe->book1D("PhiFirst", "PhiFirst", 70, -3.5, 3.5);
135  mPtFirst = dbe->book1D("PtFirst", "PtFirst", 100, 0, 50);
136  mPtFirst_80 = dbe->book1D("PtFirst_80", "PtFirst_80", 100, 0, 140);
137  mPtFirst_3000 = dbe->book1D("PtFirst_3000", "PtFirst_3000", 100, 0, 4000);
138  //
139  mMjj = dbe->book1D("Mjj", "Mjj", 100, 0, 2000);
140  mMjj_3000 = dbe->book1D("Mjj_3000", "Mjj_3000", 100, 0, 10000);
141  mDelEta = dbe->book1D("DelEta", "DelEta", 100, -.5, .5);
142  mDelPhi = dbe->book1D("DelPhi", "DelPhi", 100, -.5, .5);
143  mDelPt = dbe->book1D("DelPt", "DelPt", 100, -1, 1);
144  //
145  mMaxEInEmTowers = dbe->book1D("MaxEInEmTowers", "MaxEInEmTowers", 100, 0, 100);
146  mMaxEInHadTowers = dbe->book1D("MaxEInHadTowers", "MaxEInHadTowers", 100, 0, 100);
147  mHadEnergyInHO = dbe->book1D("HadEnergyInHO", "HadEnergyInHO", 100, 0, 10);
148  mHadEnergyInHB = dbe->book1D("HadEnergyInHB", "HadEnergyInHB", 100, 0, 150);
149  mHadEnergyInHF = dbe->book1D("HadEnergyInHF", "HadEnergyInHF", 100, 0, 50);
150  mHadEnergyInHE = dbe->book1D("HadEnergyInHE", "HadEnergyInHE", 100, 0, 150);
151  //
152  mHadEnergyInHO_80 = dbe->book1D("HadEnergyInHO_80", "HadEnergyInHO_80", 100, 0, 50);
153  mHadEnergyInHB_80 = dbe->book1D("HadEnergyInHB_80", "HadEnergyInHB_80", 100, 0, 3000);
154  mHadEnergyInHE_80 = dbe->book1D("HadEnergyInHE_80", "HadEnergyInHE_80", 100, 0, 3000);
155  mHadEnergyInHO_3000 = dbe->book1D("HadEnergyInHO_3000", "HadEnergyInHO_3000", 100, 0, 500);
156  //
157  mEmEnergyInEB = dbe->book1D("EmEnergyInEB", "EmEnergyInEB", 100, 0, 150);
158  mEmEnergyInEE = dbe->book1D("EmEnergyInEE", "EmEnergyInEE", 100, 0, 150);
159  mEmEnergyInHF = dbe->book1D("EmEnergyInHF", "EmEnergyInHF", 120, -20, 100);
160  mEmEnergyInEB_80 = dbe->book1D("EmEnergyInEB_80", "EmEnergyInEB_80", 100, 0, 3000);
161  mEmEnergyInEE_80 = dbe->book1D("EmEnergyInEE_80", "EmEnergyInEE_80", 100, 0, 3000);
162  mEnergyFractionHadronic_B = dbe->book1D("EnergyFractionHadronic_B", "EnergyFractionHadronic_B", 120, -0.1, 1.1);
163  mEnergyFractionHadronic_E = dbe->book1D("EnergyFractionHadronic_E", "EnergyFractionHadronic_E", 120, -0.1, 1.1);
164  mEnergyFractionHadronic_F = dbe->book1D("EnergyFractionHadronic_F", "EnergyFractionHadronic_F", 120, -0.1, 1.1);
165  mEnergyFractionEm_B = dbe->book1D("EnergyFractionEm_B", "EnergyFractionEm_B", 120, -0.1, 1.1);
166  mEnergyFractionEm_E = dbe->book1D("EnergyFractionEm_E", "EnergyFractionEm_E", 120, -0.1, 1.1);
167  mEnergyFractionEm_F = dbe->book1D("EnergyFractionEm_F", "EnergyFractionEm_F", 120, -0.1, 1.1);
168  //
169  mHFTotal = dbe->book1D("HFTotal", "HFTotal", 100, 0, 150);
170  mHFTotal_80 = dbe->book1D("HFTotal_80", "HFTotal_80", 100, 0, 3000);
171 
172  mHFLong = dbe->book1D("HFLong", "HFLong", 100, 0, 150);
173  mHFLong_80 = dbe->book1D("HFLong_80", "HFLong_80", 100, 0, 3000);
174 
175  mHFShort = dbe->book1D("HFShort", "HFShort", 100, 0, 150);
176  mHFShort_80 = dbe->book1D("HFShort_80", "HFShort_80", 100, 0, 3000);
177 
178  //
179  mN90 = dbe->book1D("N90", "N90", 50, 0, 50);
180  //
181  mGenEta = dbe->book1D("GenEta", "GenEta", 120, -6, 6);
182  mGenPhi = dbe->book1D("GenPhi", "GenPhi", 70, -3.5, 3.5);
183  mGenPt = dbe->book1D("GenPt", "GenPt", 100, 0, 150);
184  mGenPt_80 = dbe->book1D("GenPt_80", "GenPt_80", 100, 0, 1500);
185  //
186  mGenEtaFirst = dbe->book1D("GenEtaFirst", "GenEtaFirst", 120, -6, 6);
187  mGenPhiFirst = dbe->book1D("GenPhiFirst", "GenPhiFirst", 70, -3.5, 3.5);
188  //
189  /*
190  mCaloMEx = dbe->book1D("CaloMEx","CaloMEx",200,-150,150);
191  mCaloMEx_3000 = dbe->book1D("CaloMEx_3000","CaloMEx_3000",100,-500,500);
192  mCaloMEy = dbe->book1D("CaloMEy","CaloMEy",200,-150,150);
193  mCaloMEy_3000 = dbe->book1D("CaloMEy_3000","CaloMEy_3000",100,-500,500);
194  mCaloMETSig = dbe->book1D("CaloMETSig","CaloMETSig",100,0,15);
195  mCaloMETSig_3000 = dbe->book1D("CaloMETSig_3000","CaloMETSig_3000",100,0,50);
196  mCaloMET = dbe->book1D("CaloMET","CaloMET",100,0,150);
197  mCaloMET_3000 = dbe->book1D("CaloMET_3000","CaloMET_3000",100,0,1000);
198  mCaloMETPhi = dbe->book1D("CaloMETPhi","CaloMETPhi",70, -3.5, 3.5);
199  mCaloSumET = dbe->book1D("CaloSumET","CaloSumET",100,0,500);
200  mCaloSumET_3000 = dbe->book1D("CaloSumET_3000","CaloSumET_3000",100,3000,8000);
201  */
202  //
203  mHadTiming = dbe->book1D("HadTiming", "HadTiming", 75, -50, 100);
204  mEmTiming = dbe->book1D("EMTiming", "EMTiming", 75, -50, 100);
205  //
206  mNJetsEtaC = dbe->book1D("NJetsEtaC_Pt10", "NJetsEtaC_Pt10", 15, 0, 15);
207  mNJetsEtaF = dbe->book1D("NJetsEtaF_Pt10", "NJetsEtaF_Pt10", 15, 0, 15);
208  //
209  mNJets1 = dbe->bookProfile("NJets1", "NJets1", 100, 0, 200, 100, 0, 50, "s");
210  mNJets2 = dbe->bookProfile("NJets2", "NJets2", 100, 0, 4000, 100, 0, 50, "s");
211  //
212  /*
213  mHBEne = dbe->book1D( "HBEne", "HBEne", 1000, -20, 100 );
214  mHBTime = dbe->book1D( "HBTime", "HBTime", 200, -200, 200 );
215  mHEEne = dbe->book1D( "HEEne", "HEEne", 1000, -20, 100 );
216  mHETime = dbe->book1D( "HETime", "HETime", 200, -200, 200 );
217  mHOEne = dbe->book1D( "HOEne", "HOEne", 1000, -20, 100 );
218  mHOTime = dbe->book1D( "HOTime", "HOTime", 200, -200, 200 );
219  mHFEne = dbe->book1D( "HFEne", "HFEne", 1000, -20, 100 );
220  mHFTime = dbe->book1D( "HFTime", "HFTime", 200, -200, 200 );
221  mEBEne = dbe->book1D( "EBEne", "EBEne", 1000, -20, 100 );
222  mEBTime = dbe->book1D( "EBTime", "EBTime", 200, -200, 200 );
223  mEEEne = dbe->book1D( "EEEne", "EEEne", 1000, -20, 100 );
224  mEETime = dbe->book1D( "EETime", "EETime", 200, -200, 200 );
225  */
226  //
227  mPthat_80 = dbe->book1D("Pthat_80", "Pthat_80", 100, 0.0, 1000.0);
228  mPthat_3000 = dbe->book1D("Pthat_3000", "Pthat_3000", 100, 1000.0, 4000.0);
229 
230 
231  mjetArea = dbe->book1D("jetArea","jetArea",26,-0.5,12.5);
232  mRho = dbe->book1D("Rho","Rho",20,0,20);
233  mjetpileup = dbe->book1D("jetPileUp","jetPileUp",100,0,150);
234 
235  //
236  double log10PtMin = 0.5; //=3.1622766
237  double log10PtMax = 3.75; //=5623.41325
238  int log10PtBins = 26;
239  //double etaMin = -6.;
240  //double etaMax = 6.;
241  //int etaBins = 50;
242  double etaRange[91] = {-6.0,-5.8,-5.6,-5.4,-5.2,-5.0,-4.8,-4.6,-4.4,-4.2,-4.0,-3.8,-3.6,-3.4,-3.2,-3.0,-2.9,-2.8,-2.7,-2.6,-2.5,-2.4,-2.3,-2.2,-2.1,-2.0,-1.9,-1.8,-1.7,-1.6,-1.5,-1.4,-1.3,-1.2,-1.1,-1.0,-0.9,-0.8,-0.7,-0.6,-0.5,-0.4,-0.3,-0.2,-0.1,0.0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5,2.6,2.7,2.8,2.9,3.0,3.2,3.4,3.6,3.8,4.0,4.2,4.4,4.6,4.8,5.0,5.2,5.4,5.6,5.8,6.0};
243 
244  //double linPtMin = 5;
245  //double linPtMax = 155;
246  //int linPtBins = 15;
247 
248  // int log10PtFineBins = 50;
249  /*
250  mAllGenJetsPt = dbe->book1D("GenJetLOGpT", "GenJet LOG(pT_gen)",
251  log10PtBins, log10PtMin, log10PtMax);
252  mMatchedGenJetsPt = dbe->book1D("MatchedGenJetLOGpT", "MatchedGenJet LOG(pT_gen)",
253  log10PtBins, log10PtMin, log10PtMax);
254  mAllGenJetsEta = dbe->book2D("GenJetEta", "GenJet Eta vs LOG(pT_gen)",
255  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax);
256  mMatchedGenJetsEta = dbe->book2D("MatchedGenJetEta", "MatchedGenJet Eta vs LOG(pT_gen)",
257  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax);
258  */
259  //
260  if (mTurnOnEverything.compare("yes")==0) {
261  /*
262  mHadEnergyProfile = dbe->bookProfile2D("HadEnergyProfile", "HadEnergyProfile", 82, -41, 41, 73, 0, 73, 100, 0, 10000, "s");
263  mEmEnergyProfile = dbe->bookProfile2D("EmEnergyProfile", "EmEnergyProfile", 82, -41, 41, 73, 0, 73, 100, 0, 10000, "s");
264  */
265  }
266  /*
267  mJetEnergyProfile = dbe->bookProfile2D("JetEnergyProfile", "JetEnergyProfile", 50, -5, 5, 36, -3.1415987, 3.1415987, 100, 0, 10000, "s");
268  mHadJetEnergyProfile = dbe->bookProfile2D("HadJetEnergyProfile", "HadJetEnergyProfile", 50, -5, 5, 36, -3.1415987, 3.1415987, 100, 0, 10000, "s");
269  mEMJetEnergyProfile = dbe->bookProfile2D("EMJetEnergyProfile", "EMJetEnergyProfile", 50, -5, 5, 36, -3.1415987, 3.1415987, 100, 0, 10000, "s");
270  */
271  //
272  if (mTurnOnEverything.compare("yes")==0) {
273  /*
274  mGenJetMatchEnergyFraction = dbe->book3D("GenJetMatchEnergyFraction", "GenJetMatchEnergyFraction vs LOG(pT_gen) vs eta",
275  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 101, 0, 1.01);
276  mReverseMatchEnergyFraction = dbe->book3D("ReverseMatchEnergyFraction", "ReverseMatchEnergyFraction vs LOG(pT_gen) vs eta",
277  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 101, 0, 1.01);
278  mRMatch = dbe->book3D("RMatch", "delta(R)(Gen-Calo) vs LOG(pT_gen) vs eta",
279  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 30, 0, 3);
280  */
281 /*
282  mDeltaEta = dbe->book3D("DeltaEta", "DeltaEta vs LOG(pT_gen) vs eta",
283  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, -1, 1);
284  mDeltaPhi = dbe->book3D("DeltaPhi", "DeltaPhi vs LOG(pT_gen) vs eta",
285  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, -1, 1);
286 */
287  /*
288  mEScale = dbe->book3D("EScale", "EnergyScale vs LOG(pT_gen) vs eta",
289  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
290  mlinEScale = dbe->book3D("linEScale", "EnergyScale vs LOG(pT_gen) vs eta",
291  linPtBins, linPtMin, linPtMax, etaBins, etaMin, etaMax, 100, 0, 2);
292  mDeltaE = dbe->book3D("DeltaE", "DeltaE vs LOG(pT_gen) vs eta",
293  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 2000, -200, 200);
294  */
295  //
296  /*
297  mEScale_pt10 = dbe->book3D("EScale_pt10", "EnergyScale vs LOG(pT_gen) vs eta",
298  log10PtBins, log10PtMin, log10PtMax, 90,etaRange, 100, 0, 2);
299  mEScaleFineBin = dbe->book3D("EScaleFineBins", "EnergyScale vs LOG(pT_gen) vs eta",
300  log10PtFineBins, log10PtMin, log10PtMax, 90,etaRange, 100, 0, 2);
301 */
302  }
303  //mpTScaleB_s = dbe->bookProfile("pTScaleB_s", "pTScale_s_0<|eta|<1.3",
304  // log10PtBins, log10PtMin, log10PtMax, 0, 2, "s");
305  //mpTScaleE_s = dbe->bookProfile("pTScaleE_s", "pTScale_s_1.3<|eta|<3.0",
306  // log10PtBins, log10PtMin, log10PtMax, 0, 2, "s");
307  // mpTScaleF_s = dbe->bookProfile("pTScaleF_s", "pTScale_s_3.0<|eta|<5.0",
308  // log10PtBins, log10PtMin, log10PtMax, 0, 2, "s");
309  mpTScaleB_d = dbe->bookProfile("pTScaleB_d", "pTScale_d_0<|eta|<1.5",
310  log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
311  mpTScaleE_d = dbe->bookProfile("pTScaleE_d", "pTScale_d_1.5<|eta|<3.0",
312  log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
313  mpTScaleF_d = dbe->bookProfile("pTScaleF_d", "pTScale_d_3.0<|eta|<6.0",
314  log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
315  mpTScalePhiB_d = dbe->bookProfile("pTScalePhiB_d", "pTScalePhi_d_0<|eta|<1.5",
316  70, -3.5, 3.5, 0, 2, " ");
317  mpTScalePhiE_d = dbe->bookProfile("pTScalePhiE_d", "pTScalePhi_d_1.5<|eta|<3.0",
318  70, -3.5, 3.5, 0, 2, " ");
319  mpTScalePhiF_d = dbe->bookProfile("pTScalePhiF_d", "pTScalePhi_d_3.0<|eta|<6.0",
320  70, -3.5, 3.5, 0, 2, " ");
321 //mpTScale_30_200_s = dbe->bookProfile("pTScale_30_200_s", "pTScale_s_30<pT<200",
322 // etaBins, etaMin, etaMax, 0., 2., "s");
323 //mpTScale_200_600_s = dbe->bookProfile("pTScale_200_600_s", "pTScale_s_200<pT<600",
324 // etaBins, etaMin, etaMax, 0., 2., "s");
325 //mpTScale_600_1500_s = dbe->bookProfile("pTScale_600_1500_s", "pTScale_s_600<pT<1500",
326 // etaBins, etaMin, etaMax, 0., 2., "s");
327 //mpTScale_1500_3500_s = dbe->bookProfile("pTScale_1500_3500_s", "pTScale_s_1500<pt<3500",
328 // etaBins, etaMin, etaMax, 0., 2., "s");
329  mpTScale_30_200_d = dbe->bookProfile("pTScale_30_200_d", "pTScale_d_30<pT<200",
330  90,etaRange, 0., 2., " ");
331  mpTScale_200_600_d = dbe->bookProfile("pTScale_200_600_d", "pTScale_d_200<pT<600",
332  90,etaRange, 0., 2., " ");
333  mpTScale_600_1500_d = dbe->bookProfile("pTScale_600_1500_d", "pTScale_d_600<pT<1500",
334  90,etaRange, 0., 2., " ");
335  mpTScale_1500_3500_d = dbe->bookProfile("pTScale_1500_3500_d", "pTScale_d_1500<pt<3500",
336  90,etaRange, 0., 2., " ");
337 
338  mpTScale1DB_30_200 = dbe->book1D("pTScale1DB_30_200", "pTScale_distribution_for_0<|eta|<1.5_30_200",
339  100, 0, 2);
340  mpTScale1DE_30_200 = dbe->book1D("pTScale1DE_30_200", "pTScale_distribution_for_1.5<|eta|<3.0_30_200",
341  50, 0, 2);
342  mpTScale1DF_30_200 = dbe->book1D("pTScale1DF_30_200", "pTScale_distribution_for_3.0<|eta|<6.0_30_200",
343  50, 0, 2);
344 
345  mpTScale1DB_200_600 = dbe->book1D("pTScale1DB_200_600", "pTScale_distribution_for_0<|eta|<1.5_200_600",
346  100, 0, 2);
347  mpTScale1DE_200_600 = dbe->book1D("pTScale1DE_200_600", "pTScale_distribution_for_1.5<|eta|<3.0_200_600",
348  50, 0, 2);
349  mpTScale1DF_200_600 = dbe->book1D("pTScale1DF_200_600", "pTScale_distribution_for_3.0<|eta|<6.0_200_600",
350  50, 0, 2);
351 
352  mpTScale1DB_600_1500 = dbe->book1D("pTScale1DB_600_1500", "pTScale_distribution_for_0<|eta|<1.5_600_1500",
353  100, 0, 2);
354  mpTScale1DE_600_1500 = dbe->book1D("pTScale1DE_600_1500", "pTScale_distribution_for_1.5<|eta|<3.0_600_1500",
355  50, 0, 2);
356  mpTScale1DF_600_1500 = dbe->book1D("pTScale1DF_600_1500", "pTScale_distribution_for_3.0<|eta|<6.0_600_1500",
357  50, 0, 2);
358 
359  mpTScale1DB_1500_3500 = dbe->book1D("pTScale1DB_1500_3500", "pTScale_distribution_for_0<|eta|<1.5_1500_3500",
360  100, 0, 2);
361  mpTScale1DE_1500_3500 = dbe->book1D("pTScale1DE_1500_3500", "pTScale_distribution_for_1.5<|eta|<3.0_1500_3500",
362  50, 0, 2);
363  mpTScale1DF_1500_3500 = dbe->book1D("pTScale1DF_1500_3500", "pTScale_distribution_for_3.0<|eta|<6.0_1500_3500",
364  50, 0, 2);
365 /*
366  mpTScale1D_30_200 = dbe->book1D("pTScale1D_30_200", "pTScale_distribution_for_30<pT<200",
367  100, 0, 2);
368  mpTScale1D_200_600 = dbe->book1D("pTScale1D_200_600", "pTScale_distribution_for_200<pT<600",
369  100, 0, 2);
370  mpTScale1D_600_1500 = dbe->book1D("pTScale1D_600_1500", "pTScale_distribution_for_600<pT<1500",
371  100, 0, 2);
372  mpTScale1D_1500_3500 = dbe->book1D("pTScale1D_1500_3500", "pTScale_distribution_for_1500<pt<3500",
373  100, 0, 2);
374 */
375  }
376 
377  if (mOutputFile.empty ()) {
378  LogInfo("OutputInfo") << " CaloJet histograms will NOT be saved";
379  }
380  else {
381  LogInfo("OutputInfo") << " CaloJethistograms will be saved to file:" << mOutputFile;
382  }
383 }
384 
386 {
387 }
388 
390 }
391 
394 }
395 
396 
398 {
399  double countsfornumberofevents = 1;
400  numberofevents->Fill(countsfornumberofevents);
401  // *********************************
402  // *** Get pThat
403  // *********************************
404 if (!mEvent.isRealData()){
406  mEvent.getByLabel("generator", evt);
407  if (evt.isValid()) {
408  HepMC::GenEvent * myGenEvent = new HepMC::GenEvent(*(evt->GetEvent()));
409 
410  double pthat = myGenEvent->event_scale();
411 
412  mPthat_80->Fill(pthat);
413  mPthat_3000->Fill(pthat);
414 
415  delete myGenEvent;
416  }
417 }
418  // ***********************************
419  // *** Get CaloMET
420  // ***********************************
421 /*
422  const CaloMET *calomet;
423  edm::Handle<CaloMETCollection> calo;
424  mEvent.getByLabel("met", calo);
425  if (!calo.isValid()) {
426  edm::LogInfo("OutputInfo") << " failed to retrieve data required by MET Task";
427  edm::LogInfo("OutputInfo") << " MET Task cannot continue...!";
428  } else {
429  const CaloMETCollection *calometcol = calo.product();
430  calomet = &(calometcol->front());
431 
432  double caloSumET = calomet->sumEt();
433  double caloMETSig = calomet->mEtSig();
434  double caloMET = calomet->pt();
435  double caloMEx = calomet->px();
436  double caloMEy = calomet->py();
437  double caloMETPhi = calomet->phi();
438 
439  mCaloMEx->Fill(caloMEx);
440  mCaloMEx_3000->Fill(caloMEx);
441  mCaloMEy->Fill(caloMEy);
442  mCaloMEy_3000->Fill(caloMEy);
443  mCaloMET->Fill(caloMET);
444  mCaloMET_3000->Fill(caloMET);
445  mCaloMETPhi->Fill(caloMETPhi);
446  mCaloSumET->Fill(caloSumET);
447  mCaloSumET_3000->Fill(caloSumET);
448  mCaloMETSig->Fill(caloMETSig);
449  mCaloMETSig_3000->Fill(caloMETSig);
450 
451  }
452 */
453  // ***********************************
454  // *** Get the CaloTower collection
455  // ***********************************
457  mEvent.getByLabel( "towerMaker", caloTowers );
458  if (caloTowers.isValid()) {
459  for( CaloTowerCollection::const_iterator cal = caloTowers->begin(); cal != caloTowers->end(); ++ cal ){
460 
461  //To compensate for the index
462  if (mTurnOnEverything.compare("yes")==0) {
463  /*
464  if (cal->ieta() >> 0 ){mHadEnergyProfile->Fill (cal->ieta()-1, cal->iphi(), cal->hadEnergy());
465  mEmEnergyProfile->Fill (cal->ieta()-1, cal->iphi(), cal->emEnergy());}
466  mHadEnergyProfile->Fill (cal->ieta(), cal->iphi(), cal->hadEnergy());
467  mEmEnergyProfile->Fill (cal->ieta(), cal->iphi(), cal->emEnergy());
468  */
469  }
470 
471  mHadTiming->Fill (cal->hcalTime());
472  mEmTiming->Fill (cal->ecalTime());
473  }
474  }
475 
476  // ***********************************
477  // *** Get the RecHits collection
478  // ***********************************
479  try {
480  std::vector<edm::Handle<HBHERecHitCollection> > colls;
481  mEvent.getManyByType(colls);
482  std::vector<edm::Handle<HBHERecHitCollection> >::iterator i;
483  for (i=colls.begin(); i!=colls.end(); i++) {
484  for (HBHERecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
485  // std::cout << *j << std::endl;
486  /*
487  if (j->id().subdet() == HcalBarrel) {
488  mHBEne->Fill(j->energy());
489  mHBTime->Fill(j->time());
490  }
491  if (j->id().subdet() == HcalEndcap) {
492  mHEEne->Fill(j->energy());
493  mHETime->Fill(j->time());
494  }
495  */
496  }
497  }
498  } catch (...) {
499  edm::LogInfo("OutputInfo") << " No HB/HE RecHits.";
500  }
501 
502  try {
503  std::vector<edm::Handle<HFRecHitCollection> > colls;
504  mEvent.getManyByType(colls);
505  std::vector<edm::Handle<HFRecHitCollection> >::iterator i;
506  for (i=colls.begin(); i!=colls.end(); i++) {
507  for (HFRecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
508  // std::cout << *j << std::endl;
509  /*
510  if (j->id().subdet() == HcalForward) {
511  mHFEne->Fill(j->energy());
512  mHFTime->Fill(j->time());
513  }
514  */
515  }
516  }
517  } catch (...) {
518  edm::LogInfo("OutputInfo") << " No HF RecHits.";
519  }
520 
521  try {
522  std::vector<edm::Handle<HORecHitCollection> > colls;
523  mEvent.getManyByType(colls);
524  std::vector<edm::Handle<HORecHitCollection> >::iterator i;
525  for (i=colls.begin(); i!=colls.end(); i++) {
526  for (HORecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
527  /*
528  if (j->id().subdet() == HcalOuter) {
529  //mHOEne->Fill(j->energy());
530  //mHOTime->Fill(j->time());
531  }
532  */
533  }
534  }
535  } catch (...) {
536  edm::LogInfo("OutputInfo") << " No HO RecHits.";
537  }
538  try {
539  std::vector<edm::Handle<EBRecHitCollection> > colls;
540  mEvent.getManyByType(colls);
541  std::vector<edm::Handle<EBRecHitCollection> >::iterator i;
542  for (i=colls.begin(); i!=colls.end(); i++) {
543  for (EBRecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
544  // if (j->id() == EcalBarrel) {
545  //mEBEne->Fill(j->energy());
546  //mEBTime->Fill(j->time());
547  // }
548  // std::cout << *j << std::endl;
549  // std::cout << j->id() << std::endl;
550  }
551  }
552  } catch (...) {
553  edm::LogInfo("OutputInfo") << " No EB RecHits.";
554  }
555 
556  try {
557  std::vector<edm::Handle<EERecHitCollection> > colls;
558  mEvent.getManyByType(colls);
559  std::vector<edm::Handle<EERecHitCollection> >::iterator i;
560  for (i=colls.begin(); i!=colls.end(); i++) {
561  for (EERecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
562  // if (j->id().subdet() == EcalEndcap) {
563  //mEEEne->Fill(j->energy());
564  //mEETime->Fill(j->time());
565  // }
566  // std::cout << *j << std::endl;
567  }
568  }
569  } catch (...) {
570  edm::LogInfo("OutputInfo") << " No EE RecHits.";
571  }
572 
573 
574  //***********************************
575  //*** Get the Jet Rho
576  //***********************************
577  edm::Handle<double> pRho;
578  mEvent.getByLabel(rho_tag_,pRho);
579  if( pRho.isValid() ) {
580  double rho_ = *pRho;
581  if(mRho) mRho->Fill(rho_);
582  }
583 
584  //***********************************
585  //*** Get the Jet collection
586  //***********************************
587  math::XYZTLorentzVector p4tmp[2];
588  Handle<CaloJetCollection> caloJets;
589  mEvent.getByLabel(mInputCollection, caloJets);
590  if (!caloJets.isValid()) return;
591  CaloJetCollection::const_iterator jet = caloJets->begin ();
592  int jetIndex = 0;
593  int nJet = 0;
594  int nJetF = 0;
595  int nJetC = 0;
596  for (; jet != caloJets->end (); jet++, jetIndex++) {
597 
598 
599  if (jet->pt() > 10.) {
600 
601  if (fabs(jet->eta()) > 1.5)
602  nJetF++;
603  else
604  nJetC++;
605  }
606  if (jet->pt() > 10.) {
607  //if (jet->pt() > 20.) {
608  if (mEta) mEta->Fill (jet->eta());
609  if (mEtaFineBin) mEtaFineBin->Fill (jet->eta());
610  //if (mEtaFineBin1p) mEtaFineBin1p->Fill (jet->eta());
611  //if (mEtaFineBin2p) mEtaFineBin2p->Fill (jet->eta());
612  //if (mEtaFineBin3p) mEtaFineBin3p->Fill (jet->eta());
613  //if (mEtaFineBin1m) mEtaFineBin1m->Fill (jet->eta());
614  //if (mEtaFineBin2m) mEtaFineBin2m->Fill (jet->eta());
615  //if (mEtaFineBin3m) mEtaFineBin3m->Fill (jet->eta());
616  if (mPhiFineBin) mPhiFineBin->Fill (jet->phi());
617  }
618  if (mjetpileup) mjetpileup->Fill(jet->pileup());
619  if (mjetArea) mjetArea->Fill(jet->jetArea());
620  if (mPhi) mPhi->Fill (jet->phi());
621  if (mE) mE->Fill (jet->energy());
622  if (mE_80) mE_80->Fill (jet->energy());
623  if (mP) mP->Fill (jet->p());
624  if (mP_80) mP_80->Fill (jet->p());
625  if (mPt) mPt->Fill (jet->pt());
626  if (mPt_80) mPt_80->Fill (jet->pt());
627  if (mMass) mMass->Fill (jet->mass());
628  if (mMass_80) mMass_80->Fill (jet->mass());
629  if (mConstituents) mConstituents->Fill (jet->nConstituents());
630  if (mConstituents_80) mConstituents_80->Fill (jet->nConstituents());
631  if (jet == caloJets->begin ()) { // first jet
632  if (mEtaFirst) mEtaFirst->Fill (jet->eta());
633  if (mPhiFirst) mPhiFirst->Fill (jet->phi());
634  if (mPtFirst) mPtFirst->Fill (jet->pt());
635  if (mPtFirst_80) mPtFirst_80->Fill (jet->pt());
636  if (mPtFirst_3000) mPtFirst_3000->Fill (jet->pt());
637  }
638  if (jetIndex == 0) {
639  nJet++;
640  p4tmp[0] = jet->p4();
641  }
642  if (jetIndex == 1) {
643  nJet++;
644  p4tmp[1] = jet->p4();
645  }
646 
647  if (mMaxEInEmTowers) mMaxEInEmTowers->Fill (jet->maxEInEmTowers());
648  if (mMaxEInHadTowers) mMaxEInHadTowers->Fill (jet->maxEInHadTowers());
649  if (mHadEnergyInHO) mHadEnergyInHO->Fill (jet->hadEnergyInHO());
650  if (mHadEnergyInHO_80) mHadEnergyInHO_80->Fill (jet->hadEnergyInHO());
651  if (mHadEnergyInHO_3000) mHadEnergyInHO_3000->Fill (jet->hadEnergyInHO());
652  if (mHadEnergyInHB) mHadEnergyInHB->Fill (jet->hadEnergyInHB());
653  if (mHadEnergyInHB_80) mHadEnergyInHB_80->Fill (jet->hadEnergyInHB());
654  if (mHadEnergyInHF) mHadEnergyInHF->Fill (jet->hadEnergyInHF());
655  if (mHadEnergyInHE) mHadEnergyInHE->Fill (jet->hadEnergyInHE());
656  if (mHadEnergyInHE_80) mHadEnergyInHE_80->Fill (jet->hadEnergyInHE());
657  if (mEmEnergyInEB) mEmEnergyInEB->Fill (jet->emEnergyInEB());
658  if (mEmEnergyInEB_80) mEmEnergyInEB_80->Fill (jet->emEnergyInEB());
659  if (mEmEnergyInEE) mEmEnergyInEE->Fill (jet->emEnergyInEE());
660  if (mEmEnergyInEE_80) mEmEnergyInEE_80->Fill (jet->emEnergyInEE());
661  if (mEmEnergyInHF) mEmEnergyInHF->Fill (jet->emEnergyInHF());
662  if (fabs(jet->eta())<1.5) mEnergyFractionHadronic_B->Fill (jet->energyFractionHadronic());
663  if (fabs(jet->eta())>1.5 && fabs(jet->eta())<3.0) mEnergyFractionHadronic_E->Fill (jet->energyFractionHadronic());
664  if (fabs(jet->eta())>3.0 && fabs(jet->eta())<6.0) mEnergyFractionHadronic_F->Fill (jet->energyFractionHadronic());
665  if (fabs(jet->eta())<1.5) mEnergyFractionEm_B->Fill (jet->emEnergyFraction());
666  if (fabs(jet->eta())>1.5 && fabs(jet->eta())<3.0) mEnergyFractionEm_E->Fill (jet->emEnergyFraction());
667  if (fabs(jet->eta())>3.0 && fabs(jet->eta())<6.0) mEnergyFractionEm_F->Fill (jet->emEnergyFraction());
668  if (mHFTotal) mHFTotal->Fill (jet->hadEnergyInHF()+jet->emEnergyInHF());
669  if (mHFTotal_80) mHFTotal_80->Fill (jet->hadEnergyInHF()+jet->emEnergyInHF());
670  if (mHFLong) mHFLong->Fill (jet->hadEnergyInHF()*0.5+jet->emEnergyInHF());
671  if (mHFLong_80) mHFLong_80->Fill (jet->hadEnergyInHF()*0.5+jet->emEnergyInHF());
672  if (mHFShort) mHFShort->Fill (jet->hadEnergyInHF()*0.5);
673  if (mHFShort_80) mHFShort_80->Fill (jet->hadEnergyInHF()*0.5);
674 
675 
676 
677  if (mN90) mN90->Fill (jet->n90());
678  /*
679  mJetEnergyProfile->Fill (jet->eta(), jet->phi(), jet->energy());
680  mHadJetEnergyProfile->Fill (jet->eta(), jet->phi(), jet->hadEnergyInHO()+jet->hadEnergyInHB()+jet->hadEnergyInHF()+jet->hadEnergyInHE());
681  mEMJetEnergyProfile->Fill (jet->eta(), jet->phi(), jet->emEnergyInEB()+jet->emEnergyInEE()+jet->emEnergyInHF());
682  */
683  }
684 
685 
686 
687  if (mNJetsEtaC) mNJetsEtaC->Fill( nJetC );
688  if (mNJetsEtaF) mNJetsEtaF->Fill( nJetF );
689 
690  if (nJet == 2) {
691  if (mMjj) mMjj->Fill( (p4tmp[0]+p4tmp[1]).mass() );
692  if (mMjj_3000) mMjj_3000->Fill( (p4tmp[0]+p4tmp[1]).mass() );
693  }
694 
695  // Count Jets above Pt cut
696  for (int istep = 0; istep < 100; ++istep) {
697  int njet = 0;
698  float ptStep = (istep * (200./100.));
699 
700  for ( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
701  if ( cal->pt() > ptStep ) njet++;
702  }
703  mNJets1->Fill( ptStep, njet );
704  }
705 
706  for (int istep = 0; istep < 100; ++istep) {
707  int njet = 0;
708  float ptStep = (istep * (4000./100.));
709  for ( CaloJetCollection::const_iterator cal = caloJets->begin(); cal != caloJets->end(); ++ cal ) {
710  if ( cal->pt() > ptStep ) njet++;
711  }
712  mNJets2->Fill( ptStep, njet );
713  }
714 
715 if (!mEvent.isRealData()){
716  // Gen jet analysis
717  Handle<GenJetCollection> genJets;
718  mEvent.getByLabel(mInputGenCollection, genJets);
719  if (!genJets.isValid()) return;
720  GenJetCollection::const_iterator gjet = genJets->begin ();
721  int gjetIndex = 0;
722  for (; gjet != genJets->end (); gjet++, gjetIndex++) {
723  if (mGenEta) mGenEta->Fill (gjet->eta());
724  if (mGenPhi) mGenPhi->Fill (gjet->phi());
725  if (mGenPt) mGenPt->Fill (gjet->pt());
726  if (mGenPt_80) mGenPt_80->Fill (gjet->pt());
727  if (gjet == genJets->begin ()) { // first jet
728  if (mGenEtaFirst) mGenEtaFirst->Fill (gjet->eta());
729  if (mGenPhiFirst) mGenPhiFirst->Fill (gjet->phi());
730  }
731  }
732 
733 
734  // now match CaloJets to GenJets
735  JetMatchingTools jetMatching (mEvent);
736  if (!(mInputGenCollection.label().empty())) {
737  // Handle<GenJetCollection> genJets;
738  // mEvent.getByLabel(mInputGenCollection, genJets);
739 
740  std::vector <std::vector <const reco::GenParticle*> > genJetConstituents (genJets->size());
741  std::vector <std::vector <const reco::GenParticle*> > caloJetConstituents (caloJets->size());
742  if (mRThreshold > 0) {
743  }
744  else {
745  for (unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) {
746  genJetConstituents [iGenJet] = jetMatching.getGenParticles ((*genJets) [iGenJet]);
747  }
748 
749  for (unsigned iCaloJet = 0; iCaloJet < caloJets->size(); ++iCaloJet) {
750  caloJetConstituents [iCaloJet] = jetMatching.getGenParticles ((*caloJets) [iCaloJet], false);
751  }
752  }
753 
754  for (unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) { //****************************************************************
755  //for (unsigned iGenJet = 0; iGenJet < 1; ++iGenJet) { // only FIRST Jet !!!!
756  const GenJet& genJet = (*genJets) [iGenJet];
757  double genJetPt = genJet.pt();
758 
759  //std::cout << iGenJet <<". Genjet: pT = " << genJetPt << "GeV" << std::endl; // *****************************************************
760 
761  if (fabs(genJet.eta()) > 6.) continue; // out of detector
762  if (genJetPt < mMatchGenPtThreshold) continue; // no low momentum
763  //double logPtGen = log10 (genJetPt);
764  //mAllGenJetsPt->Fill (logPtGen);
765  //mAllGenJetsEta->Fill (logPtGen, genJet.eta());
766  if (caloJets->size() <= 0) continue; // no CaloJets - nothing to match
767  if (mRThreshold > 0) {
768  unsigned iCaloJetBest = 0;
769  double deltaRBest = 999.;
770  for (unsigned iCaloJet = 0; iCaloJet < caloJets->size(); ++iCaloJet) {
771  double dR = deltaR (genJet.eta(), genJet.phi(), (*caloJets) [iCaloJet].eta(), (*caloJets) [iCaloJet].phi());
772  if (deltaRBest < mRThreshold && dR < mRThreshold && genJet.pt() > 5.) {
773  /*
774  std::cout << "Yet another matched jet for GenJet pt=" << genJet.pt()
775  << " previous CaloJet pt/dr: " << (*caloJets) [iCaloJetBest].pt() << '/' << deltaRBest
776  << " new CaloJet pt/dr: " << (*caloJets) [iCaloJet].pt() << '/' << dR
777  << std::endl;
778  */
779  }
780  if (dR < deltaRBest) {
781  iCaloJetBest = iCaloJet;
782  deltaRBest = dR;
783  }
784  }
785  if (mTurnOnEverything.compare("yes")==0) {
786  //mRMatch->Fill (logPtGen, genJet.eta(), deltaRBest);
787  }
788  if (deltaRBest < mRThreshold) { // Matched
789  fillMatchHists (genJet, (*caloJets) [iCaloJetBest]);
790  }
791  }
792  else {
793  unsigned iCaloJetBest = 0;
794  double energyFractionBest = 0.;
795  for (unsigned iCaloJet = 0; iCaloJet < caloJets->size(); ++iCaloJet) {
796  double energyFraction = jetMatching.overlapEnergyFraction (genJetConstituents [iGenJet],
797  caloJetConstituents [iCaloJet]);
798  if (energyFraction > energyFractionBest) {
799  iCaloJetBest = iCaloJet;
800  energyFractionBest = energyFraction;
801  }
802  }
803  if (mTurnOnEverything.compare("yes")==0) {
804  //mGenJetMatchEnergyFraction->Fill (logPtGen, genJet.eta(), energyFractionBest);
805  }
806  if (energyFractionBest > mGenEnergyFractionThreshold) { // good enough
807  double reverseEnergyFraction = jetMatching.overlapEnergyFraction (caloJetConstituents [iCaloJetBest],
808  genJetConstituents [iGenJet]);
809  if (mTurnOnEverything.compare("yes")==0) {
810  //mReverseMatchEnergyFraction->Fill (logPtGen, genJet.eta(), reverseEnergyFraction);
811  }
812  if (reverseEnergyFraction > mReverseEnergyFractionThreshold) { // Matched
813  fillMatchHists (genJet, (*caloJets) [iCaloJetBest]);
814  }
815  }
816  }
817  }
818  }
819 }
820 
821 }
822 
824  double logPtGen = log10 (fGenJet.pt());
825  double PtGen = fGenJet.pt();
826  double PtCalo = fCaloJet.pt();
827  //mMatchedGenJetsPt->Fill (logPtGen);
828  //mMatchedGenJetsEta->Fill (logPtGen, fGenJet.eta());
829 
830  double PtThreshold = 10.;
831 
832  if (mTurnOnEverything.compare("yes")==0) {
833  mDeltaEta->Fill (logPtGen, fGenJet.eta(), fCaloJet.eta()-fGenJet.eta());
834  mDeltaPhi->Fill (logPtGen, fGenJet.eta(), fCaloJet.phi()-fGenJet.phi());
835  //mEScale->Fill (logPtGen, fGenJet.eta(), fCaloJet.energy()/fGenJet.energy());
836  //mlinEScale->Fill (fGenJet.pt(), fGenJet.eta(), fCaloJet.energy()/fGenJet.energy());
837  //mDeltaE->Fill (logPtGen, fGenJet.eta(), fCaloJet.energy()-fGenJet.energy());
838 
839  mEScaleFineBin->Fill (logPtGen, fGenJet.eta(), fCaloJet.energy()/fGenJet.energy());
840 
841  if (fGenJet.pt()>PtThreshold) {
842  mEScale_pt10->Fill (logPtGen, fGenJet.eta(), fCaloJet.energy()/fGenJet.energy());
843 
844  }
845 
846  }
847  if (fCaloJet.pt() > PtThreshold) {
848  mDelEta->Fill (fGenJet.eta()-fCaloJet.eta());
849  mDelPhi->Fill (fGenJet.phi()-fCaloJet.phi());
850  mDelPt->Fill ((fGenJet.pt()-fCaloJet.pt())/fGenJet.pt());
851  }
852 
853  if (fabs(fGenJet.eta())<1.5) {
854 
855  //mpTScaleB_s->Fill (log10(PtGen), PtCalo/PtGen);
856  mpTScaleB_d->Fill (log10(PtGen), PtCalo/PtGen);
857  mpTScalePhiB_d->Fill (fGenJet.phi(), PtCalo/PtGen);
858 
859  if (PtGen>30.0 && PtGen<200.0) {
860  mpTScale1DB_30_200->Fill (fCaloJet.pt()/fGenJet.pt());
861  }
862  if (PtGen>200.0 && PtGen<600.0) {
863  mpTScale1DB_200_600->Fill (fCaloJet.pt()/fGenJet.pt());
864  }
865  if (PtGen>600.0 && PtGen<1500.0) {
866  mpTScale1DB_600_1500->Fill (fCaloJet.pt()/fGenJet.pt());
867  }
868  if (PtGen>1500.0 && PtGen<3500.0) {
869  mpTScale1DB_1500_3500->Fill (fCaloJet.pt()/fGenJet.pt());
870  }
871 
872  }
873 
874  if (fabs(fGenJet.eta())>1.5 && fabs(fGenJet.eta())<3.0) {
875 
876  //mpTScaleE_s->Fill (log10(PtGen), PtCalo/PtGen);
877  mpTScaleE_d->Fill (log10(PtGen), PtCalo/PtGen);
878  mpTScalePhiE_d->Fill (fGenJet.phi(), PtCalo/PtGen);
879 
880  if (PtGen>30.0 && PtGen<200.0) {
881  mpTScale1DE_30_200->Fill (fCaloJet.pt()/fGenJet.pt());
882  }
883  if (PtGen>200.0 && PtGen<600.0) {
884  mpTScale1DE_200_600->Fill (fCaloJet.pt()/fGenJet.pt());
885  }
886  if (PtGen>600.0 && PtGen<1500.0) {
887  mpTScale1DE_600_1500->Fill (fCaloJet.pt()/fGenJet.pt());
888  }
889  if (PtGen>1500.0 && PtGen<3500.0) {
890  mpTScale1DE_1500_3500->Fill (fCaloJet.pt()/fGenJet.pt());
891  }
892 
893  }
894 
895  if (fabs(fGenJet.eta())>3.0 && fabs(fGenJet.eta())<6.0) {
896 
897  //mpTScaleF_s->Fill (log10(PtGen), PtCalo/PtGen);
898  mpTScaleF_d->Fill (log10(PtGen), PtCalo/PtGen);
899  mpTScalePhiF_d->Fill (fGenJet.phi(), PtCalo/PtGen);
900 
901  if (PtGen>30.0 && PtGen<200.0) {
902  mpTScale1DF_30_200->Fill (fCaloJet.pt()/fGenJet.pt());
903  }
904  if (PtGen>200.0 && PtGen<600.0) {
905  mpTScale1DF_200_600->Fill (fCaloJet.pt()/fGenJet.pt());
906  }
907  if (PtGen>600.0 && PtGen<1500.0) {
908  mpTScale1DF_600_1500->Fill (fCaloJet.pt()/fGenJet.pt());
909  }
910  if (PtGen>1500.0 && PtGen<3500.0) {
911  mpTScale1DF_1500_3500->Fill (fCaloJet.pt()/fGenJet.pt());
912  }
913 
914  }
915 
916  if (fGenJet.pt()>30.0 && fGenJet.pt()<200.0) {
917  //mpTScale_30_200_s->Fill (fGenJet.eta(),fCaloJet.pt()/fGenJet.pt());
918  mpTScale_30_200_d->Fill (fGenJet.eta(),fCaloJet.pt()/fGenJet.pt());
919  //mpTScale1D_30_200->Fill (fCaloJet.pt()/fGenJet.pt());
920  }
921 
922  if (fGenJet.pt()>200.0 && fGenJet.pt()<600.0) {
923  //mpTScale_200_600_s->Fill (fGenJet.eta(),fCaloJet.pt()/fGenJet.pt());
924  mpTScale_200_600_d->Fill (fGenJet.eta(),fCaloJet.pt()/fGenJet.pt());
925  //mpTScale1D_200_600->Fill (fCaloJet.pt()/fGenJet.pt());
926  }
927 
928  if (fGenJet.pt()>600.0 && fGenJet.pt()<1500.0) {
929  //mpTScale_600_1500_s->Fill (fGenJet.eta(),fCaloJet.pt()/fGenJet.pt());
930  mpTScale_600_1500_d->Fill (fGenJet.eta(),fCaloJet.pt()/fGenJet.pt());
931  //mpTScale1D_600_1500->Fill (fCaloJet.pt()/fGenJet.pt());
932  }
933 
934  if (fGenJet.pt()>1500.0 && fGenJet.pt()<3500.0) {
935  //mpTScale_1500_3500_s->Fill (fGenJet.eta(),fCaloJet.pt()/fGenJet.pt());
936  mpTScale_1500_3500_d->Fill (fGenJet.eta(),fCaloJet.pt()/fGenJet.pt());
937  //mpTScale1D_1500_3500->Fill (fCaloJet.pt()/fGenJet.pt());
938  }
939 
940 
941 
942 }
943 
void getManyByType(std::vector< Handle< PROD > > &results) const
Definition: Event.h:408
int i
Definition: DBlmapReader.cc:9
Jets made from CaloTowers.
Definition: CaloJet.h:30
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:717
Base class for all types of Jets.
Definition: Jet.h:21
std::vector< CaloTower >::const_iterator const_iterator
virtual void analyze(const edm::Event &, const edm::EventSetup &)
int njet
Definition: HydjetWrapper.h:91
bool isRealData() const
Definition: EventBase.h:60
virtual double eta() const
momentum pseudorapidity
void Fill(long long x)
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
virtual double energy() const
energy
CaloJetTesterUnCorr_HeavyIons(const edm::ParameterSet &)
int j
Definition: DBlmapReader.cc:9
Jets made from MC generator particles.
Definition: GenJet.h:25
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
Definition: DQMStore.cc:1031
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
void fillMatchHists(const reco::GenJet &fGenJet, const reco::CaloJet &fCaloJet)
virtual double pt() const
transverse momentum
std::vector< const reco::GenParticle * > getGenParticles(const reco::CaloJet &fJet, bool fVerbose=true)
GenParticles for CaloJet.
std::string const & label() const
Definition: InputTag.h:25
MonitorElement * numberofevents
Parameters returning from algorithms.
tuple mass
Definition: scaleCards.py:27
virtual double phi() const
momentum azimuthal angle
double overlapEnergyFraction(const std::vector< const reco::GenParticle * > &fObject, const std::vector< const reco::GenParticle * > &fReference) const
energy overlap
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429