13 : mInputCollection(iConfig.getParameter<
edm::
InputTag>(
"src")),
17 mRecoJetPtThreshold(iConfig.getParameter<double>(
"recoJetPtThreshold")),
18 mMatchGenPtThreshold(iConfig.getParameter<double>(
"matchGenPtThreshold")),
19 mRThreshold(iConfig.getParameter<double>(
"RThreshold")) {
270 double log10PtMin = 0.50;
271 double log10PtMax = 3.75;
272 int log10PtBins = 26;
275 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,
276 -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,
277 -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,
278 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,
279 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,
280 4.0, 4.2, 4.4, 4.6, 4.8, 5.0, 5.2, 5.4, 5.6, 5.8, 6.0};
283 mNvtx = ibooker.
book1D(
"Nvtx",
"number of vertices", 60, 0, 60);
286 mEta = ibooker.
book1D(
"Eta",
"Eta", 120, -6, 6);
287 mPhi = ibooker.
book1D(
"Phi",
"Phi", 70, -3.5, 3.5);
288 mPt = ibooker.
book1D(
"Pt",
"Pt", 100, 0, 1000);
289 mP = ibooker.
book1D(
"P",
"P", 100, 0, 1000);
291 mMass = ibooker.
book1D(
"Mass",
"Mass", 100, 0, 200);
311 ibooker.
bookProfile(
"PtCorrOverReco_Pt_B",
"0<|eta|<1.5", log10PtBins, log10PtMin, log10PtMax, 0, 5,
" ");
313 ibooker.
bookProfile(
"PtCorrOverReco_Pt_E",
"1.5<|eta|<3", log10PtBins, log10PtMin, log10PtMax, 0, 5,
" ");
315 ibooker.
bookProfile(
"PtCorrOverReco_Pt_F",
"3<|eta|<6", log10PtBins, log10PtMin, log10PtMax, 0, 5,
" ");
321 ibooker.
bookProfile(
"PtCorrOverReco_Eta_200_600",
"200<genPt<600", 90,
etaRange, 0, 5,
" ");
323 ibooker.
bookProfile(
"PtCorrOverReco_Eta_600_1500",
"600<genPt<1500", 90,
etaRange, 0, 5,
" ");
325 ibooker.
bookProfile(
"PtCorrOverReco_Eta_1500_3500",
"1500<genPt<3500", 90,
etaRange, 0, 5,
" ");
327 ibooker.
bookProfile(
"PtCorrOverReco_Eta_3500_5000",
"3500<genPt<5000", 90,
etaRange, 0, 5,
" ");
329 ibooker.
bookProfile(
"PtCorrOverReco_Eta_5000_6500",
"5000<genPt<6500", 90,
etaRange, 0, 5,
" ");
333 ibooker.
bookProfile(
"PtCorrOverGen_GenPt_B",
"0<|eta|<1.5", log10PtBins, log10PtMin, log10PtMax, 0.8, 1.2,
" ");
335 ibooker.
bookProfile(
"PtCorrOverGen_GenPt_E",
"1.5<|eta|<3", log10PtBins, log10PtMin, log10PtMax, 0.8, 1.2,
" ");
337 ibooker.
bookProfile(
"PtCorrOverGen_GenPt_F",
"3<|eta|<6", log10PtBins, log10PtMin, log10PtMax, 0.8, 1.2,
" ");
340 ibooker.
bookProfile(
"PtCorrOverGen_GenEta_20_40",
"20<genPt<40;#eta", 90,
etaRange, 0.8, 1.2,
" ");
342 ibooker.
bookProfile(
"PtCorrOverGen_GenEta_40_200",
"40<genPt<200;#eta", 90,
etaRange, 0.8, 1.2,
" ");
344 ibooker.
bookProfile(
"PtCorrOverGen_GenEta_200_600",
"200<genPt<600;#eta", 90,
etaRange, 0.8, 1.2,
" ");
346 ibooker.
bookProfile(
"PtCorrOverGen_GenEta_600_1500",
"600<genPt<1500;#eta", 90,
etaRange, 0.8, 1.2,
" ");
348 ibooker.
bookProfile(
"PtCorrOverGen_GenEta_1500_3500",
"1500<genPt<3500;#eta", 90,
etaRange, 0.8, 1.2,
" ");
350 ibooker.
bookProfile(
"PtCorrOverGen_GenEta_3500_5000",
"3500<genPt<5000;#eta", 90,
etaRange, 0.8, 1.2,
" ");
352 ibooker.
bookProfile(
"PtCorrOverGen_GenEta_5000_6500",
"5000<genPt<6500;#eta", 90,
etaRange, 0.8, 1.2,
" ");
354 ibooker.
bookProfile(
"PtCorrOverGen_GenEta_3500",
"genPt>3500;#eta", 90,
etaRange, 0.8, 1.2,
" ");
359 mGenPt = ibooker.
book1D(
"GenPt",
"GenPt", 100, 0, 1000);
362 mPtHat = ibooker.
book1D(
"PtHat",
"PtHat", 100, 0, 1000);
418 ibooker.
bookProfile(
"PtRecoOverGen_GenPt_B",
"0<|eta|<1.5", log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
420 ibooker.
bookProfile(
"PtRecoOverGen_GenPt_E",
"1.5<|eta|<3", log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
422 ibooker.
bookProfile(
"PtRecoOverGen_GenPt_F",
"3<|eta|<6", log10PtBins, log10PtMin, log10PtMax, 0, 2,
" ");
430 ibooker.
bookProfile(
"PtRecoOverGen_GenEta_40_200",
"40<genpt<200", 90,
etaRange, 0, 2,
" ");
432 ibooker.
bookProfile(
"PtRecoOverGen_GenEta_200_600",
"200<genpt<600", 90,
etaRange, 0, 2,
" ");
434 ibooker.
bookProfile(
"PtRecoOverGen_GenEta_600_1500",
"600<genpt<1500", 90,
etaRange, 0, 2,
" ");
436 ibooker.
bookProfile(
"PtRecoOverGen_GenEta_1500_3500",
"1500<genpt<3500", 90,
etaRange, 0, 2,
" ");
438 ibooker.
bookProfile(
"PtRecoOverGen_GenEta_3500_5000",
"3500<genpt<5000", 90,
etaRange, 0, 2,
" ");
440 ibooker.
bookProfile(
"PtRecoOverGen_GenEta_5000_6500",
"5000<genpt<6500", 90,
etaRange, 0, 2,
" ");
448 mMjj = ibooker.
book1D(
"Mjj",
"Mjj", 100, 0, 2000);
454 mNJets1 = ibooker.
bookProfile(
"NJets1",
"Number of jets above Pt threshold", 100, 0, 200, 100, 0, 50,
"s");
455 mNJets2 = ibooker.
bookProfile(
"NJets2",
"Number of jets above Pt threshold", 100, 0, 4000, 100, 0, 50,
"s");
470 n90 = ibooker.
book1D(
"n90",
"n90", 30, 0, 30);
471 n60 = ibooker.
book1D(
"n60",
"n60", 30, 0, 30);
482 ibooker.
book1D(
"chargedHadronEnergyFraction",
"chargedHadronEnergyFraction", 50, 0, 1);
484 ibooker.
book1D(
"neutralHadronEnergyFraction",
"neutralHadronEnergyFraction", 50, 0, 1);
525 int nGoodVertices = 0;
528 for (
unsigned i = 0;
i < pvHandle->size();
i++) {
529 if ((*pvHandle)[
i].ndof() > 4 && (fabs((*pvHandle)[
i].
z()) <= 24) && (fabs((*pvHandle)[
i].
position().
rho()) <= 2))
577 for (
unsigned ijet = 0; ijet <
caloJets->size(); ijet++)
588 for (
unsigned ijet = 0; ijet <
pfJets->size(); ijet++)
592 for (
unsigned ijet = 0; ijet <
patJets->size(); ijet++)
597 int nJet_E_20_40 = 0;
598 int nJet_B_20_40 = 0;
603 int index_first_jet = -1;
604 double pt_first = -1;
606 int index_second_jet = -1;
607 double pt_second = -1;
609 for (
unsigned ijet = 0; ijet <
recoJets.size(); ijet++) {
610 bool pass_lowjet =
false;
611 bool pass_mediumjet =
false;
618 if ((
recoJets[ijet].
pt() * (*patJets)[ijet].jecFactor(
"Uncorrected")) > 20. &&
631 pass_mediumjet =
true;
636 pass_mediumjet =
true;
639 if (pass_mediumjet) {
641 if ((
recoJets[ijet].
pt() * (*patJets)[ijet].jecFactor(
"Uncorrected")) > pt_first) {
642 pt_second = pt_first;
643 pt_first =
recoJets[ijet].pt() * (*patJets)[ijet].jecFactor(
"Uncorrected");
644 index_second_jet = index_first_jet;
645 index_first_jet = ijet;
646 }
else if ((
recoJets[ijet].
pt() * (*
patJets)[ijet].jecFactor(
"Uncorrected")) > pt_second) {
647 index_second_jet = ijet;
648 pt_second =
recoJets[ijet].pt() * (*patJets)[ijet].jecFactor(
"Uncorrected");
822 if (index_first_jet > -1) {
830 p4tmp[0] =
recoJets[index_first_jet].p4() * (*patJets)[index_first_jet].jecFactor(
"Uncorrected");
832 if (index_second_jet > -1) {
834 p4tmp[1] =
recoJets[index_second_jet].p4() * (*patJets)[index_second_jet].jecFactor(
"Uncorrected");
848 float ptStep1 = (
istep * (200. / 100.));
849 float ptStep2 = (
istep * (4000. / 100.));
851 for (
unsigned ijet = 0; ijet <
recoJets.size(); ijet++) {
872 bool pass_correction_flag =
false;
876 pass_correction_flag =
true;
880 pass_correction_flag =
true;
882 for (
unsigned ijet = 0; ijet <
recoJets.size(); ijet++) {
884 if (pass_correction_flag) {
894 if (correctedJet.
pt() < 20)
909 if (correctedJet.
pt() >= 40) {
914 double ijetEta =
recoJets[ijet].eta();
915 double ijetPt =
recoJets[ijet].pt();
917 ijetPt =
recoJets[ijet].pt() * (*patJets)[ijet].jecFactor(
"Uncorrected");
919 double ratio = correctedJet.
pt() / ijetPt;
921 ratio = 1. / (*patJets)[ijet].jecFactor(
"Uncorrected");
924 if (fabs(ijetEta) < 1.5)
926 else if (fabs(ijetEta) < 3.0)
928 else if (fabs(ijetEta) < 6.0)
933 else if (ijetPt < 200)
935 else if (ijetPt < 600)
937 else if (ijetPt < 1500)
939 else if (ijetPt < 3500)
941 else if (ijetPt < 5000)
943 else if (ijetPt < 6500)
955 if (!
mEvent.isRealData()) {
976 for (GenJetCollection::const_iterator gjet =
genJets->begin(); gjet !=
genJets->end(); gjet++) {
986 if (gjet ==
genJets->begin()) {
996 for (GenJetCollection::const_iterator gjet =
genJets->begin(); gjet !=
genJets->end(); gjet++) {
997 if (fabs(gjet->eta()) > 6.)
1006 double CorrdeltaRBest = 999;
1007 double CorrJetPtBest = 0;
1008 double CorrJetMassBest = 0;
1009 for (
unsigned ijet = 0; ijet <
recoJets.size(); ++ijet) {
1018 double CorrJetPt = correctedJet.
pt();
1019 if (CorrJetPt > 10) {
1020 double CorrdR =
deltaR(gjet->eta(), gjet->phi(), correctedJet.
eta(), correctedJet.
phi());
1021 if (CorrdR < CorrdeltaRBest) {
1022 CorrJetMassBest = correctedJet.
mass();
1023 CorrdeltaRBest = CorrdR;
1024 CorrJetPtBest = CorrJetPt;
1047 (*patJets)[iMatch].eta(),
1048 (*patJets)[iMatch].phi(),
1049 (*patJets)[iMatch].pt() * (*patJets)[iMatch].jecFactor(
"Uncorrected"),
1052 if (pass_correction_flag) {
1054 double response = CorrJetPtBest / gjet->pt();
1056 if (fabs(gjet->eta()) < 1.5)
1058 else if (fabs(gjet->eta()) < 3.0)
1060 else if (fabs(gjet->eta()) < 6.0)
1063 if (gjet->pt() > 20) {
1064 if (gjet->pt() < 40)
1066 else if (gjet->pt() < 200)
1068 else if (gjet->pt() < 600)
1070 else if (gjet->pt() < 1500)
1072 else if (gjet->pt() < 3500)
1074 else if (gjet->pt() < 5000)
1076 else if (gjet->pt() < 6500)
1078 if (gjet->pt() > 3500)
1092 const double GenPhi,
1094 const double GenMass,
1095 const double RecoEta,
1096 const double RecoPhi,
1097 const double RecoPt,
1098 const double RecoMass) {
1105 if (fabs(GenEta) < 1.5) {
1109 if (GenPt > 20 && GenPt < 40)
1111 else if (GenPt < 200)
1113 else if (GenPt < 500)
1115 else if (GenPt < 750)
1117 else if (GenPt < 1000)
1119 else if (GenPt < 1500)
1121 else if (GenPt < 3500)
1123 else if (GenPt < 5000)
1125 else if (GenPt >= 5000)
1128 if (GenPt > 20 && GenPt < 40)
1130 else if (GenPt < 200)
1132 else if (GenPt < 600)
1134 else if (GenPt < 1500)
1136 else if (GenPt < 3500)
1138 else if (GenPt < 5000)
1140 else if (GenPt < 6500)
1144 }
else if (fabs(GenEta) < 3.0) {
1148 if (GenPt > 20 && GenPt < 40)
1150 else if (GenPt < 200)
1152 else if (GenPt < 600)
1154 else if (GenPt < 1500)
1156 else if (GenPt < 3500)
1158 else if (GenPt < 5000)
1160 else if (GenPt < 6500)
1165 if (GenPt > 20 && GenPt < 40)
1167 else if (GenPt < 200)
1169 else if (GenPt < 500)
1171 else if (GenPt < 750)
1173 else if (GenPt < 1000)
1175 else if (GenPt < 1500)
1177 else if (GenPt < 3500)
1179 else if (GenPt < 5000)
1181 else if (GenPt >= 5000)
1184 }
else if (fabs(GenEta) < 6.0) {
1188 if (GenPt > 20 && GenPt < 40)
1190 else if (GenPt < 200)
1192 else if (GenPt < 600)
1194 else if (GenPt < 1500)
1196 else if (GenPt < 3500)
1201 if (GenPt > 20 && GenPt < 40)
1203 else if (GenPt < 200)
1205 else if (GenPt < 500)
1207 else if (GenPt < 750)
1209 else if (GenPt < 1000)
1211 else if (GenPt < 1500)
1213 else if (GenPt >= 1500)
1217 if (GenPt > 20 && GenPt < 40)
1219 else if (GenPt < 200)
1221 else if (GenPt < 600)
1223 else if (GenPt < 1500)
1225 else if (GenPt < 3500)
1227 else if (GenPt < 5000)
1229 else if (GenPt < 6500)
MonitorElement * mMassRecoOverGen_F_1500
MonitorElement * mNJetsEta_B_40
MonitorElement * mPtRecoOverGen_E_20_40
MonitorElement * mPtRecoOverGen_B_5000_6500
edm::EDGetTokenT< std::vector< reco::Vertex > > pvToken_
MonitorElement * mPtCorrOverGen_GenEta_40_200
T getParameter(std::string const &) const
MonitorElement * mPtCorrOverReco_Pt_E
MonitorElement * genPartonPDGID
MonitorElement * hadEnergyInHE
MonitorElement * HFHadronEnergyFraction
MonitorElement * mPtRecoOverGen_B_20_40
const std::vector< double > & binningValues() const
MonitorElement * mPtCorrOverGen_GenPt_F
MonitorElement * mPtRecoOverGen_F_40_200
edm::EDGetTokenT< reco::GenJetCollection > genJetsToken_
MonitorElement * mMassRecoOverGen_F_750_1000
MonitorElement * mPtRecoOverGen_GenEta_3500
MonitorElement * HOEnergy
virtual void scaleEnergy(double fScale)
scale energy of the jet
MonitorElement * mMassRecoOverGen_E_1500_3500
MonitorElement * neutralHadronEnergy
double pt() const final
transverse momentum
MonitorElement * electronEnergyFraction
MonitorElement * mPtRecoOverGen_B_200_600
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
MonitorElement * HFEMEnergyFraction
MonitorElement * mPtRecoOverGen_E_3500_5000
MonitorElement * mPtRecoOverGen_GenPt_F
virtual void setCurrentFolder(std::string const &fullpath)
edm::InputTag mInputGenCollection
MonitorElement * mPtFirst
MonitorElement * mMassRecoOverGen_B_3500_5000
edm::EDGetTokenT< reco::CaloJetCollection > caloJetsToken_
MonitorElement * photonEnergyFraction
edm::EDGetTokenT< pat::JetCollection > patJetsToken_
MonitorElement * neutralMultiplicity
MonitorElement * mPtRecoOverGen_F_3500
MonitorElement * mDeltaPhi
MonitorElement * mPtRecoOverGen_GenEta_3500_5000
MonitorElement * mMassRecoOverGen_B_1500_3500
MonitorElement * mMassRecoOverGen_E_500_750
edm::InputTag mJetCorrector
MonitorElement * mMassRecoOverGen_F_40_200
MonitorElement * mPtRecoOverGen_GenPhi_E
MonitorElement * mPtRecoOverGen_GenEta_20_40
MonitorElement * hadEnergyInHB
MonitorElement * mPtCorrOverReco_Eta_40_200
MonitorElement * photonMultiplicity
MonitorElement * mCorrJetPhi
MonitorElement * mMassRecoOverGen_B_200_500
MonitorElement * energyFractionHadronic
double mMatchGenPtThreshold
MonitorElement * mMassRecoOverGen_F_20_40
MonitorElement * mPtRecoOverGen_E_40_200
edm::EDGetTokenT< reco::JetCorrector > jetCorrectorToken_
MonitorElement * mPtCorrOverReco_Eta_200_600
MonitorElement * muonEnergyFraction
MonitorElement * mPtRecoOverGen_GenPhi_B
MonitorElement * mEtaFirst
double correction(const LorentzVector &fJet) const
get correction using Jet information only
MonitorElement * mPtRecoOverGen_E_5000_6500
MonitorElement * mMassRecoOverGen_B_5000
MonitorElement * mPtCorrOverGen_GenEta_3500_5000
void fillMatchHists(const double GenEta, const double GenPhi, const double GenPt, const double GenMass, const double RecoEta, const double RecoPhi, const double RecoPt, const double RecoMass)
MonitorElement * emEnergyFraction
MonitorElement * mMassRecoOverGen_B_40_200
MonitorElement * mCorrJetEta
MonitorElement * mPtCorrOverReco_Eta_3500
MonitorElement * photonEnergy
MonitorElement * towersArea
MonitorElement * hadEnergyInHF
MonitorElement * HFHadronMultiplicity
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
MonitorElement * muonEnergy
MonitorElement * electronMultiplicity
MonitorElement * mPtRecoOverGen_B_600_1500
MonitorElement * mMassRecoOverGen_F_500_750
MonitorElement * mPtRecoOverGen_GenPt_E
MonitorElement * mNJetsEta_E_40
MonitorElement * mGenEtaFirst
MonitorElement * mNJetsEta_B_20_40
MonitorElement * mPtRecoOverGen_B_3500
MonitorElement * chargedMuEnergy
MonitorElement * mPtRecoOverGen_F_1500_3500
MonitorElement * mDeltaEta
MonitorElement * mNJets_40
MonitorElement * HFHadronEnergy
MonitorElement * mNJetsEta_E_20_40
MonitorElement * hadronFlavor
MonitorElement * bookProfile(TString const &name, TString const &title, int nchX, double lowX, double highX, int, double lowY, double highY, char const *option="s", FUNC onbooking=NOOP())
MonitorElement * mDeltaPt
MonitorElement * mPtRecoOverGen_B_40_200
MonitorElement * mPtRecoOverGen_B_1500_3500
MonitorElement * mPtRecoOverGen_F_200_600
MonitorElement * mPhiFirst
MonitorElement * mMassRecoOverGen_B_500_750
edm::EDGetTokenT< GenEventInfoProduct > evtToken_
MonitorElement * mPtCorrOverGen_GenPt_B
MonitorElement * mPtCorrOverReco_Eta_600_1500
MonitorElement * mPtCorrOverReco_Eta_5000_6500
MonitorElement * mPtCorrOverReco_Eta_3500_5000
MonitorElement * HOEnergyFraction
MonitorElement * hadEnergyInHO
MonitorElement * mPtRecoOverGen_E_3500
MonitorElement * mMassRecoOverGen_F_1000_1500
MonitorElement * mPtCorrOverGen_GenEta_3500
MonitorElement * mPtCorrOverGen_GenEta_200_600
edm::InputTag mInputCollection
MonitorElement * emEnergyInHF
MonitorElement * mPtRecoOverGen_E_200_600
MonitorElement * mMassRecoOverGen_E_750_1000
JetTester(const edm::ParameterSet &)
MonitorElement * mPtRecoOverGen_GenPhi_F
MonitorElement * chargedHadronEnergyFraction
MonitorElement * mPtRecoOverGen_E_600_1500
MonitorElement * mMassRecoOverGen_E_40_200
MonitorElement * chargedHadronEnergy
MonitorElement * mPtCorrOverReco_Pt_B
MonitorElement * mPtRecoOverGen_GenPt_B
MonitorElement * mMassRecoOverGen_B_20_40
MonitorElement * mPtCorrOverReco_Eta_1500_3500
MonitorElement * mJetArea
MonitorElement * mMassRecoOverGen_B_750_1000
MonitorElement * HFEMMultiplicity
MonitorElement * chargedEmEnergy
MonitorElement * mPtRecoOverGen_GenEta_40_200
MonitorElement * mPtRecoOverGen_E_1500_3500
MonitorElement * mMassRecoOverGen_B_1000_1500
MonitorElement * mMassRecoOverGen_E_200_500
MonitorElement * mPtRecoOverGen_F_600_1500
MonitorElement * mMassRecoOverGen_E_5000
MonitorElement * chargedMuEnergyFraction
MonitorElement * electronEnergy
MonitorElement * emEnergyInEE
MonitorElement * mPtCorrOverGen_GenEta_20_40
double mRecoJetPtThreshold
MonitorElement * mPtCorrOverGen_GenEta_1500_3500
MonitorElement * maxEInHadTowers
MonitorElement * mCorrJetEta_Pt40
MonitorElement * emEnergyInEB
MonitorElement * mMassRecoOverGen_E_1000_1500
edm::EDGetTokenT< reco::PFJetCollection > pfJetsToken_
MonitorElement * mConstituents
MonitorElement * maxEInEmTowers
MonitorElement * mPtRecoOverGen_F_20_40
MonitorElement * mGenPhiFirst
MonitorElement * mCorrJetPt
MonitorElement * mMassRecoOverGen_E_3500_5000
double mass() const final
mass
MonitorElement * mPtCorrOverGen_GenPt_E
MonitorElement * mPtRecoOverGen_GenEta_600_1500
static int position[264][3]
MonitorElement * mPtRecoOverGen_GenEta_200_600
MonitorElement * mMassRecoOverGen_F_200_500
MonitorElement * mPtCorrOverReco_Eta_20_40
MonitorElement * chargedEmEnergyFraction
MonitorElement * mPtCorrOverReco_Pt_F
MonitorElement * muonMultiplicity
MonitorElement * neutralHadronEnergyFraction
MonitorElement * neutralEmEnergy
bool hasBinningValues() const
MonitorElement * chargedHadronMultiplicity
MonitorElement * mPtRecoOverGen_B_3500_5000
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
MonitorElement * mPtRecoOverGen_GenEta_1500_3500
MonitorElement * mPtCorrOverGen_GenEta_600_1500
MonitorElement * chargedMultiplicity
MonitorElement * partonFlavor
double phi() const final
momentum azimuthal angle
void analyze(const edm::Event &, const edm::EventSetup &) override
MonitorElement * HFEMEnergy
MonitorElement * mMassRecoOverGen_E_20_40
MonitorElement * mCorrJetPhi_Pt40
MonitorElement * neutralHadronMultiplicity
MonitorElement * neutralEmEnergyFraction
MonitorElement * mPtRecoOverGen_GenEta_5000_6500
MonitorElement * mPtCorrOverGen_GenEta_5000_6500
double eta() const final
momentum pseudorapidity