CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
JPTJetTester.cc
Go to the documentation of this file.
1 // Producer for validation histograms for CaloJet objects
2 // F. Ratnikov, Sept. 7, 2006
3 // Modified by J F Novak July 10, 2008
4 // $Id: JPTJetTester.cc,v 1.7 2010/06/16 19:06:12 srappocc Exp $
5 
11 
13 
16 
17 //#include "DataFormats/JetReco/interface/CaloJet.h"
18 //#include "DataFormats/JetReco/interface/CaloJetCollection.h"
23 
26 // #include "DataFormats/METReco/interface/GenMET.h"
27 // #include "DataFormats/METReco/interface/GenMETCollection.h"
28 // #include "DataFormats/METReco/interface/MET.h"
29 // #include "DataFormats/METReco/interface/METCollection.h"
30 
32 
34 
35 #include "JPTJetTester.h"
36 
37 #include <cmath>
38 
39 using namespace edm;
40 using namespace reco;
41 using namespace std;
42 
43 namespace {
44  bool is_B (const reco::Jet& fJet) {return fabs (fJet.eta()) < 1.3;}
45  bool is_E (const reco::Jet& fJet) {return fabs (fJet.eta()) >= 1.3 && fabs (fJet.eta()) < 3.;}
46  bool is_F (const reco::Jet& fJet) {return fabs (fJet.eta()) >= 3.;}
47 }
48 
50  : mInputCollection (iConfig.getParameter<edm::InputTag>( "src" )),
51  mInputGenCollection (iConfig.getParameter<edm::InputTag>( "srcGen" )),
52  mOutputFile (iConfig.getUntrackedParameter<std::string>("outputFile", "")),
53  mMatchGenPtThreshold (iConfig.getParameter<double>("genPtThreshold")),
54  mGenEnergyFractionThreshold (iConfig.getParameter<double>("genEnergyFractionThreshold")),
55  mReverseEnergyFractionThreshold (iConfig.getParameter<double>("reverseEnergyFractionThreshold")),
56  mRThreshold (iConfig.getParameter<double>("RThreshold")),
57  mTurnOnEverything (iConfig.getUntrackedParameter<std::string>("TurnOnEverything",""))
58 {
61  = mP = mP_80 = mP_3000 = mPt = mPt_80 = mPt_3000
63  // = mConstituents = mConstituents_80
66  /*
67  = mMaxEInEmTowers = mMaxEInHadTowers
68  = mHadEnergyInHO = mHadEnergyInHB = mHadEnergyInHF = mHadEnergyInHE
69  = mHadEnergyInHO_80 = mHadEnergyInHB_80 = mHadEnergyInHE_80
70  = mHadEnergyInHO_3000 = mHadEnergyInHB_3000 = mHadEnergyInHE_3000
71  = mEmEnergyInEB = mEmEnergyInEE = mEmEnergyInHF
72  = mEmEnergyInEB_80 = mEmEnergyInEE_80
73  = mEmEnergyInEB_3000 = mEmEnergyInEE_3000
74  = mEnergyFractionHadronic = mEnergyFractionEm
75  = mHFLong = mHFTotal = mHFLong_80 = mHFLong_3000 = mHFShort = mHFShort_80 = mHFShort_3000
76  = mN90
77  */
84  //
93  /*
94  = mHadJetEnergyProfile = mEMJetEnergyProfile
95  */
107  = mEBEne = mEBTime = mEEEne = mEETime
109  = 0;
110 
111  DQMStore* dbe = &*edm::Service<DQMStore>();
112  if (dbe) {
113  dbe->setCurrentFolder("JetMET/RecoJetsV/JPTJetTask_" + mInputCollection.label());
114  //
115  numberofevents = dbe->book1D("numberofevents","numberofevents", 3, 0 , 2);
116  //
117  mEta = dbe->book1D("Eta", "Eta", 100, -5, 5);
118  mEtaFineBin = dbe->book1D("EtaFineBin_Pt10", "EtaFineBin_Pt10", 500, -5, 5);
119  mEtaFineBin1p = dbe->book1D("EtaFineBin1p_Pt10", "EtaFineBin1p_Pt10", 100, 0, 1.3);
120  mEtaFineBin2p = dbe->book1D("EtaFineBin2p_Pt10", "EtaFineBin2p_Pt10", 100, 1.3, 3);
121  mEtaFineBin3p = dbe->book1D("EtaFineBin3p_Pt10", "EtaFineBin3p_Pt10", 100, 3, 5);
122  mEtaFineBin1m = dbe->book1D("EtaFineBin1m_Pt10", "EtaFineBin1m_Pt10", 100, -1.3, 0);
123  mEtaFineBin2m = dbe->book1D("EtaFineBin2m_Pt10", "EtaFineBin2m_Pt10", 100, -3, -1.3);
124  mEtaFineBin3m = dbe->book1D("EtaFineBin3m_Pt10", "EtaFineBin3m_Pt10", 100, -5, -3);
125  //
126  mPhi = dbe->book1D("Phi", "Phi", 70, -3.5, 3.5);
127  mPhiFineBin = dbe->book1D("PhiFineBin_Pt10", "PhiFineBin_Pt10", 350, -3.5, 3.5);
128  //
129  mE = dbe->book1D("E", "E", 100, 0, 500);
130  mE_80 = dbe->book1D("E_80", "E_80", 100, 0, 4500);
131  mE_3000 = dbe->book1D("E_3000", "E_3000", 100, 0, 6000);
132  //
133  mP = dbe->book1D("P", "P", 100, 0, 500);
134  mP_80 = dbe->book1D("P_80", "P_80", 100, 0, 4500);
135  mP_3000 = dbe->book1D("P_3000", "P_3000", 100, 0, 6000);
136  //
137  mPt = dbe->book1D("Pt", "Pt", 100, 0, 50);
138  mPt_80 = dbe->book1D("Pt_80", "Pt_80", 100, 0, 140);
139  mPt_3000 = dbe->book1D("Pt_3000", "Pt_3000", 100, 0, 4000);
140  //
141  mMass = dbe->book1D("Mass", "Mass", 100, 0, 25);
142  mMass_80 = dbe->book1D("Mass_80", "Mass_80", 100, 0, 120);
143  mMass_3000 = dbe->book1D("Mass_3000", "Mass_3000", 100, 0, 500);
144  //
145  // mConstituents = dbe->book1D("Constituents", "# of Constituents", 100, 0, 100);
146  // mConstituents_80 = dbe->book1D("Constituents_80", "# of Constituents_80", 40, 0, 40);
147  //
148  mEtaFirst = dbe->book1D("EtaFirst", "EtaFirst", 100, -5, 5);
149  mPhiFirst = dbe->book1D("PhiFirst", "PhiFirst", 70, -3.5, 3.5);
150  mEFirst = dbe->book1D("EFirst", "EFirst", 100, 0, 1000);
151  mEFirst_80 = dbe->book1D("EFirst_80", "EFirst_80", 100, 0, 180);
152  mEFirst_3000 = dbe->book1D("EFirst_3000", "EFirst_3000", 100, 0, 4000);
153  mPtFirst = dbe->book1D("PtFirst", "PtFirst", 100, 0, 50);
154  mPtFirst_80 = dbe->book1D("PtFirst_80", "PtFirst_80", 100, 0, 140);
155  mPtFirst_3000 = dbe->book1D("PtFirst_3000", "PtFirst_3000", 100, 0, 4000);
156  //
157  mMjj = dbe->book1D("Mjj", "Mjj", 100, 0, 2000);
158  mMjj_3000 = dbe->book1D("Mjj_3000", "Mjj_3000", 100, 0, 10000);
159  mDelEta = dbe->book1D("DelEta", "DelEta", 100, -.5, .5);
160  mDelPhi = dbe->book1D("DelPhi", "DelPhi", 100, -.5, .5);
161  mDelPt = dbe->book1D("DelPt", "DelPt", 100, -1, 1);
162  //
163  mPtFractionPionInVertexInCalo = dbe->book1D("PtFractionPionInVertexInCalo", "PtFractionPionInVertexInCalo",51,0.,1.02);
164  mPtFractionPionInVertexOutCalo = dbe->book1D("PtFractionPionInVertexOutCalo","PtFractionPionInVertexOutCalo",51,0.,1.02);
165  mPtFractionPionOutVertexInCalo = dbe->book1D("PtFractionPionOutVertexInCalo","PtFractionPionOutVertexInCalo",51,0.,1.02);
166 
167  mPtFractionMuonInVertexInCalo = dbe->book1D("PtFractionMuonInVertexInCalo", "PtFractionMuonInVertexInCalo",51,0.,1.02);
168  mPtFractionMuonInVertexOutCalo = dbe->book1D("PtFractionMuonInVertexOutCalo","PtFractionMuonInVertexOutCalo",51,0.,1.02);
169  mPtFractionMuonOutVertexInCalo = dbe->book1D("PtFractionMuonOutVertexInCalo","PtFractionMuonOutVertexInCalo",51,0.,1.02);
170 
171  mPtFractionElecInVertexInCalo = dbe->book1D("PtFractionElecInVertexInCalo", "PtFractionElecInVertexInCalo",51,0.,1.02);
172  mPtFractionElecInVertexOutCalo = dbe->book1D("PtFractionElecInVertexOutCalo","PtFractionElecInVertexOutCalo",51,0.,1.02);
173  mPtFractionElecOutVertexInCalo = dbe->book1D("PtFractionElecOutVertexInCalo","PtFractionElecOutVertexInCalo",51,0.,1.02);
174  //
175  mMultiplicityPionInVertexInCalo = dbe->book1D("MultiplicityPionInVertexInCalo","MultiplicityPionInVertexInCalo",100,0.,100.);
176  mMultiplicityPionInVertexOutCalo = dbe->book1D("MultiplicityPionInVertexOutCalo","MultiplicityPionInVertexOutCalo",100,0.,100.);
177  mMultiplicityPionOutVertexInCalo = dbe->book1D("MultiplicityPionOutVertexInCalo","MultiplicityPionOutVertexInCalo",100,0.,100.);
178 
179  mMultiplicityMuonInVertexInCalo = dbe->book1D("MultiplicityMuonInVertexInCalo","MultiplicityMuonInVertexInCalo",100,0.,100.);
180  mMultiplicityMuonInVertexOutCalo = dbe->book1D("MultiplicityMuonInVertexOutCalo","MultiplicityMuonInVertexOutCalo",100,0.,100.);
181  mMultiplicityMuonOutVertexInCalo = dbe->book1D("MultiplicityMuonOutVertexInCalo","MultiplicityMuonOutVertexInCalo",100,0.,100.);
182 
183  mMultiplicityElecInVertexInCalo = dbe->book1D("MultiplicityElecInVertexInCalo","MultiplicityElecInVertexInCalo",100,0.,100.);
184  mMultiplicityElecInVertexOutCalo = dbe->book1D("MultiplicityElecInVertexOutCalo","MultiplicityElecInVertexOutCalo",100,0.,100.);
185  mMultiplicityElecOutVertexInCalo = dbe->book1D("MultiplicityElecOutVertexInCalo","MultiplicityElecOutVertexInCalo",100,0.,100.);
186  /*
187  mMaxEInEmTowers = dbe->book1D("MaxEInEmTowers", "MaxEInEmTowers", 100, 0, 100);
188  mMaxEInHadTowers = dbe->book1D("MaxEInHadTowers", "MaxEInHadTowers", 100, 0, 100);
189  mHadEnergyInHO = dbe->book1D("HadEnergyInHO", "HadEnergyInHO", 100, 0, 10);
190  mHadEnergyInHB = dbe->book1D("HadEnergyInHB", "HadEnergyInHB", 100, 0, 50);
191  mHadEnergyInHF = dbe->book1D("HadEnergyInHF", "HadEnergyInHF", 100, 0, 50);
192  mHadEnergyInHE = dbe->book1D("HadEnergyInHE", "HadEnergyInHE", 100, 0, 100);
193  //
194  mHadEnergyInHO_80 = dbe->book1D("HadEnergyInHO_80", "HadEnergyInHO_80", 100, 0, 50);
195  mHadEnergyInHB_80 = dbe->book1D("HadEnergyInHB_80", "HadEnergyInHB_80", 100, 0, 200);
196  mHadEnergyInHE_80 = dbe->book1D("HadEnergyInHE_80", "HadEnergyInHE_80", 100, 0, 1000);
197  mHadEnergyInHO_3000 = dbe->book1D("HadEnergyInHO_3000", "HadEnergyInHO_3000", 100, 0, 500);
198  mHadEnergyInHB_3000 = dbe->book1D("HadEnergyInHB_3000", "HadEnergyInHB_3000", 100, 0, 3000);
199  mHadEnergyInHE_3000 = dbe->book1D("HadEnergyInHE_3000", "HadEnergyInHE_3000", 100, 0, 2000);
200  //
201  mEmEnergyInEB = dbe->book1D("EmEnergyInEB", "EmEnergyInEB", 100, 0, 50);
202  mEmEnergyInEE = dbe->book1D("EmEnergyInEE", "EmEnergyInEE", 100, 0, 50);
203  mEmEnergyInHF = dbe->book1D("EmEnergyInHF", "EmEnergyInHF", 120, -20, 100);
204  mEmEnergyInEB_80 = dbe->book1D("EmEnergyInEB_80", "EmEnergyInEB_80", 100, 0, 200);
205  mEmEnergyInEE_80 = dbe->book1D("EmEnergyInEE_80", "EmEnergyInEE_80", 100, 0, 1000);
206  mEmEnergyInEB_3000= dbe->book1D("EmEnergyInEB_3000", "EmEnergyInEB_3000", 100, 0, 3000);
207  mEmEnergyInEE_3000= dbe->book1D("EmEnergyInEE_3000", "EmEnergyInEE_3000", 100, 0, 2000);
208  mEnergyFractionHadronic = dbe->book1D("EnergyFractionHadronic", "EnergyFractionHadronic", 120, -0.1, 1.1);
209  mEnergyFractionEm = dbe->book1D("EnergyFractionEm", "EnergyFractionEm", 120, -0.1, 1.1);
210  //
211  mHFTotal = dbe->book1D("HFTotal", "HFTotal", 100, 0, 500);
212  mHFTotal_80 = dbe->book1D("HFTotal_80", "HFTotal_80", 100, 0, 3000);
213  mHFTotal_3000 = dbe->book1D("HFTotal_3000", "HFTotal_3000", 100, 0, 6000);
214  mHFLong = dbe->book1D("HFLong", "HFLong", 100, 0, 500);
215  mHFLong_80 = dbe->book1D("HFLong_80", "HFLong_80", 100, 0, 200);
216  mHFLong_3000 = dbe->book1D("HFLong_3000", "HFLong_3000", 100, 0, 1500);
217  mHFShort = dbe->book1D("HFShort", "HFShort", 100, 0, 500);
218  mHFShort_80 = dbe->book1D("HFShort_80", "HFShort_80", 100, 0, 200);
219  mHFShort_3000 = dbe->book1D("HFShort_3000", "HFShort_3000", 100, 0, 1500);
220  //
221  mN90 = dbe->book1D("N90", "N90", 50, 0, 50);
222  */
223  //
224  mGenEta = dbe->book1D("GenEta", "GenEta", 100, -5, 5);
225  mGenPhi = dbe->book1D("GenPhi", "GenPhi", 70, -3.5, 3.5);
226  mGenPt = dbe->book1D("GenPt", "GenPt", 100, 0, 50);
227  mGenPt_80 = dbe->book1D("GenPt_80", "GenPt_80", 100, 0, 140);
228  mGenPt_3000 = dbe->book1D("GenPt_3000", "GenPt_3000", 100, 0, 1500);
229  //
230  mGenEtaFirst = dbe->book1D("GenEtaFirst", "GenEtaFirst", 100, -5, 5);
231  mGenPhiFirst = dbe->book1D("GenPhiFirst", "GenPhiFirst", 70, -3.5, 3.5);
232  //
233  mCaloMEx = dbe->book1D("CaloMEx","CaloMEx",200,-150,150);
234  mCaloMEx_3000 = dbe->book1D("CaloMEx_3000","CaloMEx_3000",100,-500,500);
235  mCaloMEy = dbe->book1D("CaloMEy","CaloMEy",200,-150,150);
236  mCaloMEy_3000 = dbe->book1D("CaloMEy_3000","CaloMEy_3000",100,-500,500);
237  mCaloMETSig = dbe->book1D("CaloMETSig","CaloMETSig",100,0,15);
238  mCaloMETSig_3000 = dbe->book1D("CaloMETSig_3000","CaloMETSig_3000",100,0,50);
239  mCaloMET = dbe->book1D("CaloMET","CaloMET",100,0,150);
240  mCaloMET_3000 = dbe->book1D("CaloMET_3000","CaloMET_3000",100,0,1000);
241  mCaloMETPhi = dbe->book1D("CaloMETPhi","CaloMETPhi",70, -3.5, 3.5);
242  mCaloSumET = dbe->book1D("CaloSumET","CaloSumET",100,0,500);
243  mCaloSumET_3000 = dbe->book1D("CaloSumET_3000","CaloSumET_3000",100,3000,8000);
244  //
245  mHadTiming = dbe->book1D("HadTiming", "HadTiming", 75, -50, 100);
246  mEmTiming = dbe->book1D("EMTiming", "EMTiming", 75, -50, 100);
247  //
248  mNJetsEtaC = dbe->book1D("NJetsEtaC_Pt10", "NJetsEtaC_Pt10", 15, 0, 15);
249  mNJetsEtaF = dbe->book1D("NJetsEtaF_Pt10", "NJetsEtaF_Pt10", 15, 0, 15);
250  //
251  mNJets1 = dbe->bookProfile("NJets1", "NJets1", 100, 0, 200, 100, 0, 50, "s");
252  mNJets2 = dbe->bookProfile("NJets2", "NJets2", 100, 0, 4000, 100, 0, 50, "s");
253  //
254  mHBEne = dbe->book1D( "HBEne", "HBEne", 1000, -20, 100 );
255  mHBTime = dbe->book1D( "HBTime", "HBTime", 200, -200, 200 );
256  mHEEne = dbe->book1D( "HEEne", "HEEne", 1000, -20, 100 );
257  mHETime = dbe->book1D( "HETime", "HETime", 200, -200, 200 );
258  mHOEne = dbe->book1D( "HOEne", "HOEne", 1000, -20, 100 );
259  mHOTime = dbe->book1D( "HOTime", "HOTime", 200, -200, 200 );
260  mHFEne = dbe->book1D( "HFEne", "HFEne", 1000, -20, 100 );
261  mHFTime = dbe->book1D( "HFTime", "HFTime", 200, -200, 200 );
262  mEBEne = dbe->book1D( "EBEne", "EBEne", 1000, -20, 100 );
263  mEBTime = dbe->book1D( "EBTime", "EBTime", 200, -200, 200 );
264  mEEEne = dbe->book1D( "EEEne", "EEEne", 1000, -20, 100 );
265  mEETime = dbe->book1D( "EETime", "EETime", 200, -200, 200 );
266  //
267  mPthat_80 = dbe->book1D("Pthat_80", "Pthat_80", 100, 40.0, 160.0);
268  mPthat_3000 = dbe->book1D("Pthat_3000", "Pthat_3000", 100, 2500.0, 4000.0);
269  //
270  double log10PtMin = 0.5; //=3.1622766
271  double log10PtMax = 3.75; //=5623.41325
272  int log10PtBins = 26;
273  double etaMin = -5.;
274  double etaMax = 5.;
275  int etaBins = 50;
276 
277  double linPtMin = 5;
278  double linPtMax = 155;
279  int linPtBins = 15;
280 
281  int log10PtFineBins = 50;
282 
283  mAllGenJetsPt = dbe->book1D("GenJetLOGpT", "GenJet LOG(pT_gen)",
284  log10PtBins, log10PtMin, log10PtMax);
285  mMatchedGenJetsPt = dbe->book1D("MatchedGenJetLOGpT", "MatchedGenJet LOG(pT_gen)",
286  log10PtBins, log10PtMin, log10PtMax);
287  mAllGenJetsEta = dbe->book2D("GenJetEta", "GenJet Eta vs LOG(pT_gen)",
288  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax);
289  mMatchedGenJetsEta = dbe->book2D("MatchedGenJetEta", "MatchedGenJet Eta vs LOG(pT_gen)",
290  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax);
291  //
292  if (mTurnOnEverything.compare("yes")==0) {
293  mHadEnergyProfile = dbe->bookProfile2D("HadEnergyProfile", "HadEnergyProfile", 82, -41, 41, 73, 0, 73, 100, 0, 10000, "s");
294  mEmEnergyProfile = dbe->bookProfile2D("EmEnergyProfile", "EmEnergyProfile", 82, -41, 41, 73, 0, 73, 100, 0, 10000, "s");
295  }
296  mJetEnergyProfile = dbe->bookProfile2D("JetEnergyProfile", "JetEnergyProfile", 50, -5, 5, 36, -3.1415987, 3.1415987, 100, 0, 10000, "s");
297  /*
298  mHadJetEnergyProfile = dbe->bookProfile2D("HadJetEnergyProfile", "HadJetEnergyProfile", 50, -5, 5, 36, -3.1415987, 3.1415987, 100, 0, 10000, "s");
299  mEMJetEnergyProfile = dbe->bookProfile2D("EMJetEnergyProfile", "EMJetEnergyProfile", 50, -5, 5, 36, -3.1415987, 3.1415987, 100, 0, 10000, "s");
300  */
301 
302  //
303  if (mTurnOnEverything.compare("yes")==0) {
304  mGenJetMatchEnergyFraction = dbe->book3D("GenJetMatchEnergyFraction", "GenJetMatchEnergyFraction vs LOG(pT_gen) vs eta",
305  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 101, 0, 1.01);
306  mReverseMatchEnergyFraction = dbe->book3D("ReverseMatchEnergyFraction", "ReverseMatchEnergyFraction vs LOG(pT_gen) vs eta",
307  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 101, 0, 1.01);
308  mRMatch = dbe->book3D("RMatch", "delta(R)(Gen-Calo) vs LOG(pT_gen) vs eta",
309  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 60, 0, 3);
310  mDeltaEta = dbe->book3D("DeltaEta", "DeltaEta vs LOG(pT_gen) vs eta",
311  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, -1, 1);
312  mDeltaPhi = dbe->book3D("DeltaPhi", "DeltaPhi vs LOG(pT_gen) vs eta",
313  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, -1, 1);
314  mEScale = dbe->book3D("EScale", "EnergyScale vs LOG(pT_gen) vs eta",
315  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
316  mlinEScale = dbe->book3D("linEScale", "EnergyScale vs LOG(pT_gen) vs eta",
317  linPtBins, linPtMin, linPtMax, etaBins, etaMin, etaMax, 100, 0, 2);
318  mDeltaE = dbe->book3D("DeltaE", "DeltaE vs LOG(pT_gen) vs eta",
319  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 2000, -200, 200);
320  //
321  mEScale_pt10 = dbe->book3D("EScale_pt10", "EnergyScale vs LOG(pT_gen) vs eta",
322  log10PtBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
323  mEScaleFineBin = dbe->book3D("EScaleFineBins", "EnergyScale vs LOG(pT_gen) vs eta",
324  log10PtFineBins, log10PtMin, log10PtMax, etaBins, etaMin, etaMax, 100, 0, 2);
325  }
326 
327  mpTScaleB_s = dbe->bookProfile("pTScaleB_s", "pTScale_s_0<|eta|<1.3",
328  log10PtBins, log10PtMin, log10PtMax, 0, 2, "s");
329  mpTScaleE_s = dbe->bookProfile("pTScaleE_s", "pTScale_s_1.3<|eta|<3.0",
330  log10PtBins, log10PtMin, log10PtMax, 0, 2, "s");
331  mpTScaleF_s = dbe->bookProfile("pTScaleF_s", "pTScale_s_3.0<|eta|<5.0",
332  log10PtBins, log10PtMin, log10PtMax, 0, 2, "s");
333  mpTScaleB_d = dbe->bookProfile("pTScaleB_d", "pTScale_d_0<|eta|<1.3",
334  log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
335  mpTScaleE_d = dbe->bookProfile("pTScaleE_d", "pTScale_d_1.3<|eta|<3.0",
336  log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
337  mpTScaleF_d = dbe->bookProfile("pTScaleF_d", "pTScale_d_3.0<|eta|<5.0",
338  log10PtBins, log10PtMin, log10PtMax, 0, 2, " ");
339 
340  mpTScale_60_120_s = dbe->bookProfile("pTScale_60_120_s", "pTScale_s_60<pT<120",
341  etaBins, etaMin, etaMax, 0., 2., "s");
342  mpTScale_200_300_s = dbe->bookProfile("pTScale_200_300_s", "pTScale_s_200<pT<300",
343  etaBins, etaMin, etaMax, 0., 2., "s");
344  mpTScale_600_900_s = dbe->bookProfile("pTScale_600_900_s", "pTScale_s_600<pT<900",
345  etaBins, etaMin, etaMax, 0., 2., "s");
346  mpTScale_2700_3500_s = dbe->bookProfile("pTScale_2700_3500_s", "pTScale_s_2700<pt<3500",
347  etaBins, etaMin, etaMax, 0., 2., "s");
348  mpTScale_60_120_d = dbe->bookProfile("pTScale_60_120_d", "pTScale_d_60<pT<120",
349  etaBins, etaMin, etaMax, 0., 2., " ");
350  mpTScale_200_300_d = dbe->bookProfile("pTScale_200_300_d", "pTScale_d_200<pT<300",
351  etaBins, etaMin, etaMax, 0., 2., " ");
352  mpTScale_600_900_d = dbe->bookProfile("pTScale_600_900_d", "pTScale_d_600<pT<900",
353  etaBins, etaMin, etaMax, 0., 2., " ");
354  mpTScale_2700_3500_d = dbe->bookProfile("pTScale_2700_3500_d", "pTScale_d_2700<pt<3500",
355  etaBins, etaMin, etaMax, 0., 2., " ");
356 
357  mpTScale1DB_60_120 = dbe->book1D("pTScale1DB_60_120", "pTScale_distribution_for_0<|eta|<1.3_60_120",
358  100, 0, 2);
359  mpTScale1DE_60_120 = dbe->book1D("pTScale1DE_60_120", "pTScale_distribution_for_1.3<|eta|<3.0_60_120",
360  100, 0, 2);
361  mpTScale1DF_60_120 = dbe->book1D("pTScale1DF_60_120", "pTScale_distribution_for_3.0<|eta|<5.0_60_120",
362  100, 0, 2);
363 
364  mpTScale1DB_200_300 = dbe->book1D("pTScale1DB_200_300", "pTScale_distribution_for_0<|eta|<1.3_200_300",
365  100, 0, 2);
366  mpTScale1DE_200_300 = dbe->book1D("pTScale1DE_200_300", "pTScale_distribution_for_1.3<|eta|<3.0_200_300",
367  100, 0, 2);
368  mpTScale1DF_200_300 = dbe->book1D("pTScale1DF_200_300", "pTScale_distribution_for_3.0<|eta|<5.0_200_300",
369  100, 0, 2);
370 
371  mpTScale1DB_600_900 = dbe->book1D("pTScale1DB_600_900", "pTScale_distribution_for_0<|eta|<1.3_600_900",
372  100, 0, 2);
373  mpTScale1DE_600_900 = dbe->book1D("pTScale1DE_600_900", "pTScale_distribution_for_1.3<|eta|<3.0_600_900",
374  100, 0, 2);
375  mpTScale1DF_600_900 = dbe->book1D("pTScale1DF_600_900", "pTScale_distribution_for_3.0<|eta|<5.0_600_900",
376  100, 0, 2);
377 
378  mpTScale1DB_2700_3500 = dbe->book1D("pTScale1DB_2700_3500", "pTScale_distribution_for_0<|eta|<1.3_2700_3500",
379  100, 0, 2);
380  mpTScale1DE_2700_3500 = dbe->book1D("pTScale1DE_2700_3500", "pTScale_distribution_for_1.3<|eta|<3.0_2700_3500",
381  100, 0, 2);
382  mpTScale1DF_2700_3500 = dbe->book1D("pTScale1DF_2700_3500", "pTScale_distribution_for_3.0<|eta|<5.0_2700_3500",
383  100, 0, 2);
384 
385  mpTScale1D_60_120 = dbe->book1D("pTScale1D_60_120", "pTScale_distribution_for_60<pT<120",
386  100, 0, 2);
387  mpTScale1D_200_300 = dbe->book1D("pTScale1D_200_300", "pTScale_distribution_for_200<pT<300",
388  100, 0, 2);
389  mpTScale1D_600_900 = dbe->book1D("pTScale1D_600_900", "pTScale_distribution_for_600<pT<900",
390  100, 0, 2);
391  mpTScale1D_2700_3500 = dbe->book1D("pTScale1D_2700_3500", "pTScale_distribution_for_2700<pt<3500",
392  100, 0, 2);
393  } // if (dbe)
394 
395  if (mOutputFile.empty ()) {
396  LogInfo("OutputInfo") << " JPTJet histograms will NOT be saved";
397  }
398  else {
399  LogInfo("OutputInfo") << " JPTJethistograms will be saved to file:" << mOutputFile;
400  }
401 }
402 
404 {
405 }
406 
408 }
409 
412 }
413 
414 
415 void JPTJetTester::analyze(const edm::Event& mEvent, const edm::EventSetup& mSetup)
416 {
417  double countsfornumberofevents = 1;
418  numberofevents->Fill(countsfornumberofevents);
419  // *********************************
420  // *** Get pThat
421  // *********************************
422 
424  mEvent.getByLabel("generator", evt);
425  if (evt.isValid()) {
426  HepMC::GenEvent * myGenEvent = new HepMC::GenEvent(*(evt->GetEvent()));
427 
428  double pthat = myGenEvent->event_scale();
429 
430  mPthat_80->Fill(pthat);
431  mPthat_3000->Fill(pthat);
432 
433  delete myGenEvent;
434  }
435 
436  // ***********************************
437  // *** Get CaloMET
438  // ***********************************
439 
440  const CaloMET *calomet;
442  mEvent.getByLabel("met", calo);
443  if (!calo.isValid()) {
444  edm::LogInfo("OutputInfo") << " failed to retrieve data required by MET Task";
445  edm::LogInfo("OutputInfo") << " MET Task cannot continue...!";
446  } else {
447  const CaloMETCollection *calometcol = calo.product();
448  calomet = &(calometcol->front());
449 
450  double caloSumET = calomet->sumEt();
451  double caloMETSig = calomet->mEtSig();
452  double caloMET = calomet->pt();
453  double caloMEx = calomet->px();
454  double caloMEy = calomet->py();
455  double caloMETPhi = calomet->phi();
456 
457  mCaloMEx->Fill(caloMEx);
458  mCaloMEx_3000->Fill(caloMEx);
459  mCaloMEy->Fill(caloMEy);
460  mCaloMEy_3000->Fill(caloMEy);
461  mCaloMET->Fill(caloMET);
462  mCaloMET_3000->Fill(caloMET);
463  mCaloMETPhi->Fill(caloMETPhi);
464  mCaloSumET->Fill(caloSumET);
465  mCaloSumET_3000->Fill(caloSumET);
466  mCaloMETSig->Fill(caloMETSig);
467  mCaloMETSig_3000->Fill(caloMETSig);
468  }
469 
470  // ***********************************
471  // *** Get the CaloTower collection
472  // ***********************************
474  mEvent.getByLabel( "towerMaker", caloTowers );
475  if (caloTowers.isValid()) {
476  for( CaloTowerCollection::const_iterator cal = caloTowers->begin(); cal != caloTowers->end(); ++ cal ){
477 
478  //To compensate for the index
479  if (mTurnOnEverything.compare("yes")==0) {
480  if (cal->ieta() >> 0 ){mHadEnergyProfile->Fill (cal->ieta()-1, cal->iphi(), cal->hadEnergy());
481  mEmEnergyProfile->Fill (cal->ieta()-1, cal->iphi(), cal->emEnergy());}
482  mHadEnergyProfile->Fill (cal->ieta(), cal->iphi(), cal->hadEnergy());
483  mEmEnergyProfile->Fill (cal->ieta(), cal->iphi(), cal->emEnergy());
484  }
485 
486  mHadTiming->Fill (cal->hcalTime());
487  mEmTiming->Fill (cal->ecalTime());
488  }
489  }
490 
491  // ***********************************
492  // *** Get the RecHits collection
493  // ***********************************
494  try {
495  std::vector<edm::Handle<HBHERecHitCollection> > colls;
496  mEvent.getManyByType(colls);
497  std::vector<edm::Handle<HBHERecHitCollection> >::iterator i;
498  for (i=colls.begin(); i!=colls.end(); i++) {
499  for (HBHERecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
500  // std::cout << *j << std::endl;
501  if (j->id().subdet() == HcalBarrel) {
502  mHBEne->Fill(j->energy());
503  mHBTime->Fill(j->time());
504  }
505  if (j->id().subdet() == HcalEndcap) {
506  mHEEne->Fill(j->energy());
507  mHETime->Fill(j->time());
508  }
509  }
510  }
511  } catch (...) {
512  edm::LogInfo("OutputInfo") << " No HB/HE RecHits.";
513  }
514 
515  try {
516  std::vector<edm::Handle<HFRecHitCollection> > colls;
517  mEvent.getManyByType(colls);
518  std::vector<edm::Handle<HFRecHitCollection> >::iterator i;
519  for (i=colls.begin(); i!=colls.end(); i++) {
520  for (HFRecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
521  // std::cout << *j << std::endl;
522  if (j->id().subdet() == HcalForward) {
523  mHFEne->Fill(j->energy());
524  mHFTime->Fill(j->time());
525  }
526  }
527  }
528  } catch (...) {
529  edm::LogInfo("OutputInfo") << " No HF RecHits.";
530  }
531 
532  try {
533  std::vector<edm::Handle<HORecHitCollection> > colls;
534  mEvent.getManyByType(colls);
535  std::vector<edm::Handle<HORecHitCollection> >::iterator i;
536  for (i=colls.begin(); i!=colls.end(); i++) {
537  for (HORecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
538  if (j->id().subdet() == HcalOuter) {
539  mHOEne->Fill(j->energy());
540  mHOTime->Fill(j->time());
541  }
542  }
543  }
544  } catch (...) {
545  edm::LogInfo("OutputInfo") << " No HO RecHits.";
546  }
547  try {
548  std::vector<edm::Handle<EBRecHitCollection> > colls;
549  mEvent.getManyByType(colls);
550  std::vector<edm::Handle<EBRecHitCollection> >::iterator i;
551  for (i=colls.begin(); i!=colls.end(); i++) {
552  for (EBRecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
553  // if (j->id() == EcalBarrel) {
554  mEBEne->Fill(j->energy());
555  mEBTime->Fill(j->time());
556  // }
557  // std::cout << *j << std::endl;
558  // std::cout << j->id() << std::endl;
559  }
560  }
561  } catch (...) {
562  edm::LogInfo("OutputInfo") << " No EB RecHits.";
563  }
564 
565  try {
566  std::vector<edm::Handle<EERecHitCollection> > colls;
567  mEvent.getManyByType(colls);
568  std::vector<edm::Handle<EERecHitCollection> >::iterator i;
569  for (i=colls.begin(); i!=colls.end(); i++) {
570  for (EERecHitCollection::const_iterator j=(*i)->begin(); j!=(*i)->end(); j++) {
571  // if (j->id().subdet() == EcalEndcap) {
572  mEEEne->Fill(j->energy());
573  mEETime->Fill(j->time());
574  // }
575  // std::cout << *j << std::endl;
576  }
577  }
578  } catch (...) {
579  edm::LogInfo("OutputInfo") << " No EE RecHits.";
580  }
581 
582  //***********************************
583  //*** Get the Jet collection
584  //***********************************
585  math::XYZTLorentzVector p4tmp[2];
586  Handle<JPTJetCollection> jptJets;
587  mEvent.getByLabel(mInputCollection, jptJets);
588  if (!jptJets.isValid()) return;
589  JPTJetCollection::const_iterator jet = jptJets->begin ();
590  int jetIndex = 0;
591  int nJet = 0;
592  int nJetF = 0;
593  int nJetC = 0;
594  for (; jet != jptJets->end (); jet++, jetIndex++) {
595  if (mEta) mEta->Fill (jet->eta());
596 
597  if (jet->pt() > 10.) {
598  if (fabs(jet->eta()) > 1.3)
599  nJetF++;
600  else
601  nJetC++;
602  }
603  if (jet->pt() > 10.) {
604  if (mEtaFineBin) mEtaFineBin->Fill (jet->eta());
605  if (mEtaFineBin1p) mEtaFineBin1p->Fill (jet->eta());
606  if (mEtaFineBin2p) mEtaFineBin2p->Fill (jet->eta());
607  if (mEtaFineBin3p) mEtaFineBin3p->Fill (jet->eta());
608  if (mEtaFineBin1m) mEtaFineBin1m->Fill (jet->eta());
609  if (mEtaFineBin2m) mEtaFineBin2m->Fill (jet->eta());
610  if (mEtaFineBin3m) mEtaFineBin3m->Fill (jet->eta());
611  if (mPhiFineBin) mPhiFineBin->Fill (jet->phi());
612  }
613  if (mPhi) mPhi->Fill (jet->phi());
614  if (mE) mE->Fill (jet->energy());
615  if (mE_80) mE_80->Fill (jet->energy());
616  if (mE_3000) mE_3000->Fill (jet->energy());
617  if (mP) mP->Fill (jet->p());
618  if (mP_80) mP_80->Fill (jet->p());
619  if (mP_3000) mP_3000->Fill (jet->p());
620  if (mPt) mPt->Fill (jet->pt());
621  if (mPt_80) mPt_80->Fill (jet->pt());
622  if (mPt_3000) mPt_3000->Fill (jet->pt());
623  if (mMass) mMass->Fill (jet->mass());
624  if (mMass_80) mMass_80->Fill (jet->mass());
625  if (mMass_3000) mMass_3000->Fill (jet->mass());
626  // if (mConstituents) mConstituents->Fill (jet->nConstituents());
627  // if (mConstituents_80) mConstituents_80->Fill (jet->nConstituents());
628  if (jet == jptJets->begin ()) { // first jet
629  if (mEtaFirst) mEtaFirst->Fill (jet->eta());
630  if (mPhiFirst) mPhiFirst->Fill (jet->phi());
631  if (mEFirst) mEFirst->Fill (jet->energy());
632  if (mEFirst_80) mEFirst_80->Fill (jet->energy());
633  if (mEFirst_3000) mEFirst_3000->Fill (jet->energy());
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  double sumPtPionsInVertexInCalo = getSumPt(jet->getPionsInVertexInCalo());
648  double sumPtPionsInVertexOutCalo = getSumPt(jet->getPionsInVertexOutCalo());
649  double sumPtPionsOutVertexInCalo = getSumPt(jet->getPionsOutVertexInCalo());
650  double sumPtMuonsInVertexInCalo = getSumPt(jet->getMuonsInVertexInCalo());
651  double sumPtMuonsInVertexOutCalo = getSumPt(jet->getMuonsInVertexOutCalo());
652  double sumPtMuonsOutVertexInCalo = getSumPt(jet->getMuonsOutVertexInCalo());
653  double sumPtElecsInVertexInCalo = getSumPt(jet->getElecsInVertexInCalo());
654  double sumPtElecsInVertexOutCalo = getSumPt(jet->getElecsInVertexOutCalo());
655  double sumPtElecsOutVertexInCalo = getSumPt(jet->getElecsOutVertexInCalo());
656  if (jet->pt()!=0.){
657  mPtFractionPionInVertexInCalo->Fill(sumPtPionsInVertexInCalo/jet->pt());
658  mPtFractionPionInVertexOutCalo->Fill(sumPtPionsInVertexOutCalo/jet->pt());
659  mPtFractionPionOutVertexInCalo->Fill(sumPtPionsOutVertexInCalo/jet->pt());
660 
661  mPtFractionMuonInVertexInCalo->Fill(sumPtMuonsInVertexInCalo/jet->pt());
662  mPtFractionMuonInVertexOutCalo->Fill(sumPtMuonsInVertexOutCalo/jet->pt());
663  mPtFractionMuonOutVertexInCalo->Fill(sumPtMuonsOutVertexInCalo/jet->pt());
664 
665  mPtFractionElecInVertexInCalo->Fill(sumPtElecsInVertexInCalo/jet->pt());
666  mPtFractionElecInVertexOutCalo->Fill(sumPtElecsInVertexOutCalo/jet->pt());
667  mPtFractionElecOutVertexInCalo->Fill(sumPtElecsOutVertexInCalo/jet->pt());
668 
669  //
670  mMultiplicityPionInVertexInCalo->Fill(jet->getPionsInVertexInCalo().size());
671  mMultiplicityPionInVertexOutCalo->Fill(jet->getPionsInVertexOutCalo().size());
672  mMultiplicityPionOutVertexInCalo->Fill(jet->getPionsOutVertexInCalo().size());
673 
674  mMultiplicityMuonInVertexInCalo->Fill(jet->getMuonsInVertexInCalo().size());
675  mMultiplicityMuonInVertexOutCalo->Fill(jet->getMuonsInVertexOutCalo().size());
676  mMultiplicityMuonOutVertexInCalo->Fill(jet->getMuonsOutVertexInCalo().size());
677 
678  mMultiplicityElecInVertexInCalo->Fill(jet->getElecsInVertexInCalo().size());
679  mMultiplicityElecInVertexOutCalo->Fill(jet->getElecsInVertexOutCalo().size());
680  mMultiplicityElecOutVertexInCalo->Fill(jet->getElecsOutVertexInCalo().size());
681  }
682 
683  /*
684  if (mMaxEInEmTowers) mMaxEInEmTowers->Fill ( (jet->getCaloJetRef()->maxEInEmTowers());
685  if (mMaxEInHadTowers) mMaxEInHadTowers->Fill (jet->getCaloJetRef()->maxEInHadTowers());
686  if (mHadEnergyInHO) mHadEnergyInHO->Fill (jet->getCaloJetRef()->hadEnergyInHO());
687  if (mHadEnergyInHO_80) mHadEnergyInHO_80->Fill (jet->getCaloJetRef()->hadEnergyInHO());
688  if (mHadEnergyInHO_3000) mHadEnergyInHO_3000->Fill (jet->getCaloJetRef()->hadEnergyInHO());
689  if (mHadEnergyInHB) mHadEnergyInHB->Fill (jet->getCaloJetRef()->hadEnergyInHB());
690  if (mHadEnergyInHB_80) mHadEnergyInHB_80->Fill (jet->getCaloJetRef()->hadEnergyInHB());
691  if (mHadEnergyInHB_3000) mHadEnergyInHB_3000->Fill (jet->getCaloJetRef()->hadEnergyInHB());
692  if (mHadEnergyInHF) mHadEnergyInHF->Fill (jet->getCaloJetRef()->hadEnergyInHF());
693  if (mHadEnergyInHE) mHadEnergyInHE->Fill (jet->getCaloJetRef()->hadEnergyInHE());
694  if (mHadEnergyInHE_80) mHadEnergyInHE_80->Fill (jet->getCaloJetRef()->hadEnergyInHE());
695  if (mHadEnergyInHE_3000) mHadEnergyInHE_3000->Fill (jet->getCaloJetRef()->hadEnergyInHE());
696  if (mEmEnergyInEB) mEmEnergyInEB->Fill (jet->getCaloJetRef()->emEnergyInEB());
697  if (mEmEnergyInEB_80) mEmEnergyInEB_80->Fill (jet->getCaloJetRef()->emEnergyInEB());
698  if (mEmEnergyInEB_3000) mEmEnergyInEB_3000->Fill (jet->getCaloJetRef()->emEnergyInEB());
699  if (mEmEnergyInEE) mEmEnergyInEE->Fill (jet->getCaloJetRef()->emEnergyInEE());
700  if (mEmEnergyInEE_80) mEmEnergyInEE_80->Fill (jet->getCaloJetRef()->emEnergyInEE());
701  if (mEmEnergyInEE_3000) mEmEnergyInEE_3000->Fill (jet->getCaloJetRef()->emEnergyInEE());
702  if (mEmEnergyInHF) mEmEnergyInHF->Fill (jet->getCaloJetRef()->emEnergyInHF());
703  if (mEnergyFractionHadronic) mEnergyFractionHadronic->Fill (jet->getCaloJetRef()->energyFractionHadronic());
704  if (mEnergyFractionEm) mEnergyFractionEm->Fill (jet->getCaloJetRef()->emEnergyFraction());
705 
706  if (mHFTotal) mHFTotal->Fill (jet->getCaloJetRef()->hadEnergyInHF()+jet->getCaloJetRef()->emEnergyInHF());
707  if (mHFTotal_80) mHFTotal_80->Fill (jet->getCaloJetRef()->hadEnergyInHF()+jet->getCaloJetRef()->emEnergyInHF());
708  if (mHFTotal_3000) mHFTotal_3000->Fill (jet->getCaloJetRef()->hadEnergyInHF()+jet->getCaloJetRef()->emEnergyInHF());
709  if (mHFLong) mHFLong->Fill (jet->getCaloJetRef()->hadEnergyInHF()*0.5+jet->getCaloJetRef()->emEnergyInHF());
710  if (mHFLong_80) mHFLong_80->Fill (jet->getCaloJetRef()->hadEnergyInHF()*0.5+jet->getCaloJetRef()->emEnergyInHF());
711  if (mHFLong_3000) mHFLong_3000->Fill (jet->getCaloJetRef()->hadEnergyInHF()*0.5+jet->getCaloJetRef()->emEnergyInHF());
712  if (mHFShort) mHFShort->Fill (jet->getCaloJetRef()->hadEnergyInHF()*0.5);
713  if (mHFShort_80) mHFShort_80->Fill (jet->getCaloJetRef()->hadEnergyInHF()*0.5);
714  if (mHFShort_3000) mHFShort_3000->Fill (jet->getCaloJetRef()->hadEnergyInHF()*0.5);
715  */
716 
717  /*
718  if (mN90) mN90->Fill (jet->getCaloJetRef()->n90());
719  */
720  mJetEnergyProfile->Fill (jet->eta(), jet->phi(), jet->energy());
721  /*
722  mHadJetEnergyProfile->Fill (jet->eta(), jet->phi(),
723  jet->getCaloJetRef()->hadEnergyInHO()+
724  jet->getCaloJetRef()->hadEnergyInHB()+
725  jet->getCaloJetRef()->hadEnergyInHF()+
726  jet->getCaloJetRef()->hadEnergyInHE());
727  mEMJetEnergyProfile->Fill (jet->eta(), jet->phi(),
728  jet->getCaloJetRef()->emEnergyInEB()+
729  jet->getCaloJetRef()->emEnergyInEE()+
730  jet->getCaloJetRef()->emEnergyInHF());
731  */
732  }
733 
734  if (mNJetsEtaC) mNJetsEtaC->Fill( nJetC );
735  if (mNJetsEtaF) mNJetsEtaF->Fill( nJetF );
736 
737  if (nJet == 2) {
738  if (mMjj) mMjj->Fill( (p4tmp[0]+p4tmp[1]).mass() );
739  if (mMjj_3000) mMjj_3000->Fill( (p4tmp[0]+p4tmp[1]).mass() );
740  }
741 
742  // Count Jets above Pt cut
743  for (int istep = 0; istep < 100; ++istep) {
744  int njet = 0;
745  float ptStep = (istep * (200./100.));
746 
747  for ( JPTJetCollection::const_iterator jpt = jptJets->begin(); jpt != jptJets->end(); ++ jpt ) {
748  if ( jpt->pt() > ptStep ) njet++;
749  }
750  mNJets1->Fill( ptStep, njet );
751  }
752 
753  for (int istep = 0; istep < 100; ++istep) {
754  int njet = 0;
755  float ptStep = (istep * (4000./100.));
756  for ( JPTJetCollection::const_iterator jpt = jptJets->begin(); jpt != jptJets->end(); ++ jpt ) {
757  if ( jpt->pt() > ptStep ) njet++;
758  }
759  mNJets2->Fill( ptStep, njet );
760  }
761 
762  // Gen jet analysis
763  Handle<GenJetCollection> genJets;
764  mEvent.getByLabel(mInputGenCollection, genJets);
765  if (!genJets.isValid()) return;
766  GenJetCollection::const_iterator gjet = genJets->begin ();
767  int gjetIndex = 0;
768  for (; gjet != genJets->end (); gjet++, gjetIndex++) {
769  if (mGenEta) mGenEta->Fill (gjet->eta());
770  if (mGenPhi) mGenPhi->Fill (gjet->phi());
771  if (mGenPt) mGenPt->Fill (gjet->pt());
772  if (mGenPt_80) mGenPt_80->Fill (gjet->pt());
773  if (mGenPt_3000) mGenPt_3000->Fill (gjet->pt());
774  if (gjet == genJets->begin ()) { // first jet
775  if (mGenEtaFirst) mGenEtaFirst->Fill (gjet->eta());
776  if (mGenPhiFirst) mGenPhiFirst->Fill (gjet->phi());
777  }
778  }
779 
780 
781  // now match JPTJets to GenJets
782  JetMatchingTools jetMatching (mEvent);
783  if (!(mInputGenCollection.label().empty())) {
784  // Handle<GenJetCollection> genJets;
785  // mEvent.getByLabel(mInputGenCollection, genJets);
786 
787  std::vector <std::vector <const reco::GenParticle*> > genJetConstituents (genJets->size());
788  std::vector <std::vector <const reco::GenParticle*> > jptJetConstituents (jptJets->size());
789  // if (mRThreshold > 0) {
790  // }
791  // else {
792  // for (unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) {
793  // genJetConstituents [iGenJet] = jetMatching.getGenParticles ((*genJets) [iGenJet]);
794  // }
795 
796  // for (unsigned iJPTJet = 0; iJPTJet < jptJets->size(); ++iJPTJet) {
797  // jptJetConstituents [iJPTJet] = jetMatching.getGenParticles ((*(*jptJets) [iJPTJet].getCaloJetRef()), false);
798  // }
799  // }
800 
801  for (unsigned iGenJet = 0; iGenJet < genJets->size(); ++iGenJet) { //****************************************************************
802  //for (unsigned iGenJet = 0; iGenJet < 1; ++iGenJet) { // only FIRST Jet !!!!
803  const GenJet& genJet = (*genJets) [iGenJet];
804  double genJetPt = genJet.pt();
805 
806  //std::cout << iGenJet <<". Genjet: pT = " << genJetPt << "GeV" << std::endl; // *****************************************************
807 
808  if (fabs(genJet.eta()) > 5.) continue; // out of detector
809  if (genJetPt < mMatchGenPtThreshold) continue; // no low momentum
810  double logPtGen = log10 (genJetPt);
811  mAllGenJetsPt->Fill (logPtGen);
812  mAllGenJetsEta->Fill (logPtGen, genJet.eta());
813  if (jptJets->size() <= 0) continue; // no JPTJets - nothing to match
814  if (mRThreshold > 0) {
815  unsigned iJPTJetBest = 0;
816  double deltaRBest = 999.;
817  for (unsigned iJPTJet = 0; iJPTJet < jptJets->size(); ++iJPTJet) {
818  double dR = deltaR (genJet.eta(), genJet.phi(), (*jptJets) [iJPTJet].eta(), (*jptJets) [iJPTJet].phi());
819  if (deltaRBest < mRThreshold && dR < mRThreshold && genJet.pt() > 5.) {
820  /*
821  std::cout << "Yet another matched jet for GenJet pt=" << genJet.pt()
822  << " previous JPTJet pt/dr: " << (*jptJets) [iJPTJetBest].pt() << '/' << deltaRBest
823  << " new JPTJet pt/dr: " << (*jptJets) [iJPTJet].pt() << '/' << dR
824  << std::endl;
825  */
826  }
827  if (dR < deltaRBest) {
828  iJPTJetBest = iJPTJet;
829  deltaRBest = dR;
830  }
831  }
832  if (mTurnOnEverything.compare("yes")==0) {
833  mRMatch->Fill (logPtGen, genJet.eta(), deltaRBest);
834  }
835  if (deltaRBest < mRThreshold) { // Matched
836  fillMatchHists (genJet, (*jptJets) [iJPTJetBest]);
837  }
838  }
839  // else {
840  // unsigned iJPTJetBest = 0;
841  // double energyFractionBest = 0.;
842  // for (unsigned iJPTJet = 0; iJPTJet < jptJets->size(); ++iJPTJet) {
843  // double energyFraction = jetMatching.overlapEnergyFraction (genJetConstituents [iGenJet],
844  // jptJetConstituents [iJPTJet]);
845  // if (energyFraction > energyFractionBest) {
846  // iJPTJetBest = iJPTJet;
847  // energyFractionBest = energyFraction;
848  // }
849  // }
850  // if (mTurnOnEverything.compare("yes")==0) {
851  // mGenJetMatchEnergyFraction->Fill (logPtGen, genJet.eta(), energyFractionBest);
852  // }
853  // if (energyFractionBest > mGenEnergyFractionThreshold) { // good enough
854  // double reverseEnergyFraction = jetMatching.overlapEnergyFraction (jptJetConstituents [iJPTJetBest],
855  // genJetConstituents [iGenJet]);
856  // if (mTurnOnEverything.compare("yes")==0) {
857  // mReverseMatchEnergyFraction->Fill (logPtGen, genJet.eta(), reverseEnergyFraction);
858  // }
859  // if (reverseEnergyFraction > mReverseEnergyFractionThreshold) { // Matched
860  // fillMatchHists (genJet, (*jptJets) [iJPTJetBest]);
861  // }
862  // }
863  // } // else - mRThreshold
864  }
865  }
866 }
867 
868 
869 void JPTJetTester::fillMatchHists (const reco::GenJet& fGenJet, const reco::JPTJet& fJPTJet) {
870  double logPtGen = log10 (fGenJet.pt());
871  double PtGen = fGenJet.pt();
872  double PtJpt = fJPTJet.pt();
873  mMatchedGenJetsPt->Fill (logPtGen);
874  mMatchedGenJetsEta->Fill (logPtGen, fGenJet.eta());
875 
876  double PtThreshold = 10.;
877 
878  if (mTurnOnEverything.compare("yes")==0) {
879  mDeltaEta->Fill (logPtGen, fGenJet.eta(), fJPTJet.eta()-fGenJet.eta());
880  mDeltaPhi->Fill (logPtGen, fGenJet.eta(), fJPTJet.phi()-fGenJet.phi());
881  mEScale->Fill (logPtGen, fGenJet.eta(), fJPTJet.energy()/fGenJet.energy());
882  mlinEScale->Fill (fGenJet.pt(), fGenJet.eta(), fJPTJet.energy()/fGenJet.energy());
883  mDeltaE->Fill (logPtGen, fGenJet.eta(), fJPTJet.energy()-fGenJet.energy());
884 
885  mEScaleFineBin->Fill (logPtGen, fGenJet.eta(), fJPTJet.energy()/fGenJet.energy());
886 
887  if (fGenJet.pt()>PtThreshold) {
888  mEScale_pt10->Fill (logPtGen, fGenJet.eta(), fJPTJet.energy()/fGenJet.energy());
889 
890  }
891 
892  }
893  if (fJPTJet.pt() > PtThreshold) {
894  mDelEta->Fill (fGenJet.eta()-fJPTJet.eta());
895  mDelPhi->Fill (fGenJet.phi()-fJPTJet.phi());
896  mDelPt->Fill ((fGenJet.pt()-fJPTJet.pt())/fGenJet.pt());
897  }
898 
899  if (fabs(fGenJet.eta())<1.3) {
900 
901  mpTScaleB_s->Fill (log10(PtGen), PtJpt/PtGen);
902  mpTScaleB_d->Fill (log10(PtGen), PtJpt/PtGen);
903  if (PtGen>60.0 && PtGen<120.0) {
904  mpTScale1DB_60_120->Fill (fJPTJet.pt()/fGenJet.pt());
905  }
906  if (PtGen>200.0 && PtGen<300.0) {
907  mpTScale1DB_200_300->Fill (fJPTJet.pt()/fGenJet.pt());
908  }
909  if (PtGen>600.0 && PtGen<900.0) {
910  mpTScale1DB_600_900->Fill (fJPTJet.pt()/fGenJet.pt());
911  }
912  if (PtGen>2700.0 && PtGen<3500.0) {
913  mpTScale1DB_2700_3500->Fill (fJPTJet.pt()/fGenJet.pt());
914  }
915  }
916 
917  if (fabs(fGenJet.eta())>1.3 && fabs(fGenJet.eta())<3.0) {
918 
919  mpTScaleE_s->Fill (log10(PtGen), PtJpt/PtGen);
920  mpTScaleE_d->Fill (log10(PtGen), PtJpt/PtGen);
921  if (PtGen>60.0 && PtGen<120.0) {
922  mpTScale1DE_60_120->Fill (fJPTJet.pt()/fGenJet.pt());
923  }
924  if (PtGen>200.0 && PtGen<300.0) {
925  mpTScale1DE_200_300->Fill (fJPTJet.pt()/fGenJet.pt());
926  }
927  if (PtGen>600.0 && PtGen<900.0) {
928  mpTScale1DE_600_900->Fill (fJPTJet.pt()/fGenJet.pt());
929  }
930  if (PtGen>2700.0 && PtGen<3500.0) {
931  mpTScale1DE_2700_3500->Fill (fJPTJet.pt()/fGenJet.pt());
932  }
933  }
934 
935  if (fabs(fGenJet.eta())>3.0 && fabs(fGenJet.eta())<5.0) {
936 
937  mpTScaleF_s->Fill (log10(PtGen), PtJpt/PtGen);
938  mpTScaleF_d->Fill (log10(PtGen), PtJpt/PtGen);
939  if (PtGen>60.0 && PtGen<120.0) {
940  mpTScale1DF_60_120->Fill (fJPTJet.pt()/fGenJet.pt());
941  }
942  if (PtGen>200.0 && PtGen<300.0) {
943  mpTScale1DF_200_300->Fill (fJPTJet.pt()/fGenJet.pt());
944  }
945  if (PtGen>600.0 && PtGen<900.0) {
946  mpTScale1DF_600_900->Fill (fJPTJet.pt()/fGenJet.pt());
947  }
948  if (PtGen>2700.0 && PtGen<3500.0) {
949  mpTScale1DF_2700_3500->Fill (fJPTJet.pt()/fGenJet.pt());
950  }
951  }
952 
953  if (fGenJet.pt()>60.0 && fGenJet.pt()<120.0) {
954  mpTScale_60_120_s->Fill (fGenJet.eta(),fJPTJet.pt()/fGenJet.pt());
955  mpTScale_60_120_d->Fill (fGenJet.eta(),fJPTJet.pt()/fGenJet.pt());
956  mpTScale1D_60_120->Fill (fJPTJet.pt()/fGenJet.pt());
957  }
958 
959  if (fGenJet.pt()>200.0 && fGenJet.pt()<300.0) {
960  mpTScale_200_300_s->Fill (fGenJet.eta(),fJPTJet.pt()/fGenJet.pt());
961  mpTScale_200_300_d->Fill (fGenJet.eta(),fJPTJet.pt()/fGenJet.pt());
962  mpTScale1D_200_300->Fill (fJPTJet.pt()/fGenJet.pt());
963  }
964 
965  if (fGenJet.pt()>600.0 && fGenJet.pt()<900.0) {
966  mpTScale_600_900_s->Fill (fGenJet.eta(),fJPTJet.pt()/fGenJet.pt());
967  mpTScale_600_900_d->Fill (fGenJet.eta(),fJPTJet.pt()/fGenJet.pt());
968  mpTScale1D_600_900->Fill (fJPTJet.pt()/fGenJet.pt());
969  }
970 
971  if (fGenJet.pt()>2700.0 && fGenJet.pt()<3500.0) {
972  mpTScale_2700_3500_s->Fill (fGenJet.eta(),fJPTJet.pt()/fGenJet.pt());
973  mpTScale_2700_3500_d->Fill (fGenJet.eta(),fJPTJet.pt()/fGenJet.pt());
974  mpTScale1D_2700_3500->Fill (fJPTJet.pt()/fGenJet.pt());
975  }
976 
977 
978 
979 }
980 
982 
983  double sumpt = 0.;
984 
985  for (reco::TrackRefVector::const_iterator itrack = tracks.begin(); itrack != tracks.end(); ++itrack){
986  const reco::Track& track = **itrack;
987  sumpt += track.pt();
988  }
989 
990  return sumpt;
991 
992 }
MonitorElement * mpTScale_600_900_d
Definition: JPTJetTester.h:201
void getManyByType(std::vector< Handle< PROD > > &results) const
Definition: Event.h:414
MonitorElement * mPtFirst
Definition: JPTJetTester.h:82
MonitorElement * mEtaFineBin3m
Definition: JPTJetTester.h:55
MonitorElement * mpTScale1DB_600_900
Definition: JPTJetTester.h:210
MonitorElement * mMjj
Definition: JPTJetTester.h:93
MonitorElement * mMultiplicityPionInVertexOutCalo
Definition: JPTJetTester.h:111
MonitorElement * mHETime
Definition: JPTJetTester.h:260
int i
Definition: DBlmapReader.cc:9
MonitorElement * mMass_80
Definition: JPTJetTester.h:68
MonitorElement * mCaloMETSig_3000
Definition: JPTJetTester.h:254
virtual void beginJob()
MonitorElement * mPt_3000
Definition: JPTJetTester.h:66
MonitorElement * mEBTime
Definition: JPTJetTester.h:266
MonitorElement * mP_80
Definition: JPTJetTester.h:62
MonitorElement * mHFEne
Definition: JPTJetTester.h:263
double mMatchGenPtThreshold
Definition: JPTJetTester.h:226
MonitorElement * mpTScaleE_d
Definition: JPTJetTester.h:191
MonitorElement * mMultiplicityMuonInVertexOutCalo
Definition: JPTJetTester.h:115
MonitorElement * mP
Definition: JPTJetTester.h:61
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:519
MonitorElement * mEScaleFineBin
Definition: JPTJetTester.h:185
MonitorElement * mPtFirst_80
Definition: JPTJetTester.h:83
MonitorElement * numberofevents
Definition: JPTJetTester.h:45
MonitorElement * mPthat_3000
Definition: JPTJetTester.h:157
MonitorElement * mPtFractionMuonInVertexInCalo
Definition: JPTJetTester.h:101
MonitorElement * book3D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ)
Book 3D histogram.
Definition: DQMStore.cc:781
MonitorElement * mPhi
Definition: JPTJetTester.h:56
MonitorElement * mpTScale_200_300_s
Definition: JPTJetTester.h:195
MonitorElement * mEETime
Definition: JPTJetTester.h:268
MonitorElement * mGenPt
Definition: JPTJetTester.h:162
Base class for all types of Jets.
Definition: Jet.h:21
MonitorElement * mpTScaleE_s
Definition: JPTJetTester.h:188
MonitorElement * mEta
Definition: JPTJetTester.h:48
MonitorElement * mMatchedGenJetsPt
Definition: JPTJetTester.h:172
MonitorElement * mE
Definition: JPTJetTester.h:58
std::vector< CaloTower >::const_iterator const_iterator
MonitorElement * mHadTiming
Definition: JPTJetTester.h:73
MonitorElement * mpTScale_200_300_d
Definition: JPTJetTester.h:200
MonitorElement * mGenJetMatchEnergyFraction
Definition: JPTJetTester.h:175
MonitorElement * mDeltaEta
Definition: JPTJetTester.h:178
MonitorElement * mCaloMEx_3000
Definition: JPTJetTester.h:245
MonitorElement * mpTScaleB_s
Definition: JPTJetTester.h:187
MonitorElement * mEEEne
Definition: JPTJetTester.h:267
MonitorElement * mMass
Definition: JPTJetTester.h:67
MonitorElement * mNJets1
Definition: JPTJetTester.h:89
MonitorElement * mEBEne
Definition: JPTJetTester.h:265
const_iterator end() const
Termination of iteration.
Definition: RefVector.h:242
MonitorElement * mpTScale_2700_3500_d
Definition: JPTJetTester.h:202
std::string mTurnOnEverything
Definition: JPTJetTester.h:232
int njet
Definition: HydjetWrapper.h:91
MonitorElement * mHBTime
Definition: JPTJetTester.h:258
MonitorElement * mDeltaE
Definition: JPTJetTester.h:182
MonitorElement * mNJetsEtaC
Definition: JPTJetTester.h:86
virtual double eta() const
momentum pseudorapidity
const_iterator begin() const
Initialize an iterator over the RefVector.
Definition: RefVector.h:237
virtual void endJob()
MonitorElement * mMultiplicityElecOutVertexInCalo
Definition: JPTJetTester.h:120
void Fill(long long x)
MonitorElement * mPhiFirst
Definition: JPTJetTester.h:78
MonitorElement * mCaloSumET_3000
Definition: JPTJetTester.h:252
Collection of Calo MET.
MonitorElement * mCaloMETSig
Definition: JPTJetTester.h:253
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:30
MonitorElement * mGenPt_3000
Definition: JPTJetTester.h:164
virtual double energy() const
energy
double mEtSig() const
Definition: MET.h:50
MonitorElement * mpTScale1DE_2700_3500
Definition: JPTJetTester.h:214
MonitorElement * mHBEne
Definition: JPTJetTester.h:257
double sumEt() const
Definition: MET.h:48
MonitorElement * mP_3000
Definition: JPTJetTester.h:63
MonitorElement * mCaloMET_3000
Definition: JPTJetTester.h:249
MonitorElement * mHOEne
Definition: JPTJetTester.h:261
MonitorElement * mHFTime
Definition: JPTJetTester.h:264
MonitorElement * mReverseMatchEnergyFraction
Definition: JPTJetTester.h:176
MonitorElement * mAllGenJetsPt
Definition: JPTJetTester.h:171
MonitorElement * mPtFractionPionInVertexInCalo
Definition: JPTJetTester.h:97
MonitorElement * mpTScale1DF_200_300
Definition: JPTJetTester.h:209
MonitorElement * mDelPhi
Definition: JPTJetTester.h:222
MonitorElement * mGenPt_80
Definition: JPTJetTester.h:163
MonitorElement * mDelEta
Definition: JPTJetTester.h:221
Jets made from CaloJets corrected for ZSP and tracks.
Definition: JPTJet.h:29
MonitorElement * mpTScale1DB_200_300
Definition: JPTJetTester.h:207
MonitorElement * mpTScale_60_120_s
Definition: JPTJetTester.h:194
double pt() const
track transverse momentum
Definition: TrackBase.h:130
MonitorElement * mCaloMEy
Definition: JPTJetTester.h:246
MonitorElement * mNJets2
Definition: JPTJetTester.h:90
MonitorElement * mpTScaleB_d
Definition: JPTJetTester.h:190
MonitorElement * mPtFractionElecOutVertexInCalo
Definition: JPTJetTester.h:107
MonitorElement * mPt_80
Definition: JPTJetTester.h:65
int j
Definition: DBlmapReader.cc:9
Jets made from MC generator particles.
Definition: GenJet.h:25
MonitorElement * mGenPhi
Definition: JPTJetTester.h:161
MonitorElement * mpTScaleF_s
Definition: JPTJetTester.h:189
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:833
MonitorElement * mEScale_pt10
Definition: JPTJetTester.h:184
MonitorElement * mCaloMEy_3000
Definition: JPTJetTester.h:247
MonitorElement * mMultiplicityMuonInVertexInCalo
Definition: JPTJetTester.h:114
MonitorElement * mEtaFineBin
Definition: JPTJetTester.h:49
MonitorElement * mMatchedGenJetsEta
Definition: JPTJetTester.h:174
bool isValid() const
Definition: HandleBase.h:76
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
MonitorElement * mHOTime
Definition: JPTJetTester.h:262
MonitorElement * mEScale
Definition: JPTJetTester.h:180
MonitorElement * mPtFractionMuonOutVertexInCalo
Definition: JPTJetTester.h:103
MonitorElement * mpTScale_2700_3500_s
Definition: JPTJetTester.h:197
MonitorElement * mHEEne
Definition: JPTJetTester.h:259
MonitorElement * mCaloSumET
Definition: JPTJetTester.h:251
MonitorElement * mPtFractionMuonInVertexOutCalo
Definition: JPTJetTester.h:102
MonitorElement * mpTScale1DF_2700_3500
Definition: JPTJetTester.h:215
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
double mRThreshold
Definition: JPTJetTester.h:229
void fillMatchHists(const reco::GenJet &fGenJet, const reco::JPTJet &fJPTJet)
MonitorElement * mpTScale1D_600_900
Definition: JPTJetTester.h:218
double getSumPt(const reco::TrackRefVector &tracks)
MonitorElement * mJetEnergyProfile
Definition: JPTJetTester.h:237
MonitorElement * mMultiplicityMuonOutVertexInCalo
Definition: JPTJetTester.h:116
MonitorElement * mMultiplicityPionInVertexInCalo
Definition: JPTJetTester.h:110
MonitorElement * mEtaFineBin3p
Definition: JPTJetTester.h:52
MonitorElement * mPthat_80
Definition: JPTJetTester.h:156
virtual double px() const
x coordinate of momentum vector
edm::InputTag mInputCollection
Definition: JPTJetTester.h:36
tuple tracks
Definition: testEve_cfg.py:39
virtual double pt() const
transverse momentum
MonitorElement * mNJetsEtaF
Definition: JPTJetTester.h:87
MonitorElement * mlinEScale
Definition: JPTJetTester.h:181
MonitorElement * mEtaFineBin2p
Definition: JPTJetTester.h:51
MonitorElement * mpTScale1DB_2700_3500
Definition: JPTJetTester.h:213
MonitorElement * mpTScale1DF_60_120
Definition: JPTJetTester.h:206
MonitorElement * mEFirst
Definition: JPTJetTester.h:79
MonitorElement * mPtFirst_3000
Definition: JPTJetTester.h:84
MonitorElement * mCaloMEx
Definition: JPTJetTester.h:244
T const * product() const
Definition: Handle.h:74
std::string mOutputFile
Definition: JPTJetTester.h:38
MonitorElement * mpTScale1DE_200_300
Definition: JPTJetTester.h:208
MonitorElement * mEtaFineBin1m
Definition: JPTJetTester.h:53
std::string const & label() const
Definition: InputTag.h:25
MonitorElement * mRMatch
Definition: JPTJetTester.h:177
MonitorElement * mEFirst_3000
Definition: JPTJetTester.h:81
MonitorElement * mpTScale1DF_600_900
Definition: JPTJetTester.h:212
MonitorElement * mpTScale1DE_60_120
Definition: JPTJetTester.h:205
MonitorElement * mPtFractionElecInVertexInCalo
Definition: JPTJetTester.h:105
MonitorElement * mE_80
Definition: JPTJetTester.h:59
MonitorElement * mGenEtaFirst
Definition: JPTJetTester.h:167
MonitorElement * mEtaFineBin1p
Definition: JPTJetTester.h:50
MonitorElement * mpTScale1DE_600_900
Definition: JPTJetTester.h:211
MonitorElement * mMjj_3000
Definition: JPTJetTester.h:94
MonitorElement * mCaloMETPhi
Definition: JPTJetTester.h:250
MonitorElement * mDelPt
Definition: JPTJetTester.h:223
MonitorElement * mEFirst_80
Definition: JPTJetTester.h:80
MonitorElement * mpTScale1DB_60_120
Definition: JPTJetTester.h:204
MonitorElement * mEmEnergyProfile
Definition: JPTJetTester.h:236
MonitorElement * mpTScale1D_200_300
Definition: JPTJetTester.h:217
edm::InputTag mInputGenCollection
Definition: JPTJetTester.h:37
MonitorElement * mEmTiming
Definition: JPTJetTester.h:74
MonitorElement * mPhiFineBin
Definition: JPTJetTester.h:57
MonitorElement * mMultiplicityPionOutVertexInCalo
Definition: JPTJetTester.h:112
MonitorElement * mE_3000
Definition: JPTJetTester.h:60
MonitorElement * mMass_3000
Definition: JPTJetTester.h:69
MonitorElement * mEtaFirst
Definition: JPTJetTester.h:77
MonitorElement * mpTScale1D_60_120
Definition: JPTJetTester.h:216
MonitorElement * mGenEta
Definition: JPTJetTester.h:160
MonitorElement * mMultiplicityElecInVertexOutCalo
Definition: JPTJetTester.h:119
MonitorElement * mAllGenJetsEta
Definition: JPTJetTester.h:173
JPTJetTester(const edm::ParameterSet &)
Definition: JPTJetTester.cc:49
MonitorElement * mPtFractionElecInVertexOutCalo
Definition: JPTJetTester.h:106
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:647
MonitorElement * mGenPhiFirst
Definition: JPTJetTester.h:168
virtual double phi() const
momentum azimuthal angle
MonitorElement * mEtaFineBin2m
Definition: JPTJetTester.h:54
MonitorElement * mpTScale_600_900_s
Definition: JPTJetTester.h:196
MonitorElement * mPtFractionPionInVertexOutCalo
Definition: JPTJetTester.h:98
MonitorElement * mpTScale_60_120_d
Definition: JPTJetTester.h:199
MonitorElement * mCaloMET
Definition: JPTJetTester.h:248
virtual double py() const
y coordinate of momentum vector
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:237
MonitorElement * mMultiplicityElecInVertexInCalo
Definition: JPTJetTester.h:118
MonitorElement * mpTScaleF_d
Definition: JPTJetTester.h:192
MonitorElement * mPt
Definition: JPTJetTester.h:64
MonitorElement * mHadEnergyProfile
Definition: JPTJetTester.h:235
MonitorElement * mpTScale1D_2700_3500
Definition: JPTJetTester.h:219
MonitorElement * mDeltaPhi
Definition: JPTJetTester.h:179
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")
Definition: DQMStore.cc:977
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * mPtFractionPionOutVertexInCalo
Definition: JPTJetTester.h:99