Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-09-11 04:32:48

0001 /** \class JetAnalyzer
0002  *
0003  *  DQM jetMET analysis monitoring
0004  *
0005  *  \author F. Chlebana - Fermilab
0006  *          K. Hatakeyama - Rockefeller University
0007  *
0008  *          Jan. '14: modified by
0009  *
0010  *          M. Artur Weber
0011  *          R. Schoefbeck
0012  *          V. Sordini
0013  */
0014 
0015 #include "DQMOffline/JetMET/interface/JetAnalyzer.h"
0016 
0017 #include "FWCore/Framework/interface/Event.h"
0018 #include "FWCore/Framework/interface/EventSetup.h"
0019 #include "FWCore/Common/interface/TriggerNames.h"
0020 #include "DataFormats/JetReco/interface/CaloJetCollection.h"
0021 #include "DataFormats/JetReco/interface/CaloJet.h"
0022 #include "DataFormats/JetReco/interface/JPTJetCollection.h"
0023 #include "DataFormats/JetReco/interface/PFJetCollection.h"
0024 #include "DataFormats/JetReco/interface/PFJet.h"
0025 #include "DataFormats/PatCandidates/interface/Jet.h"
0026 #include "DataFormats/Candidate/interface/Candidate.h"
0027 #include "DataFormats/Common/interface/Handle.h"
0028 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0029 
0030 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetupFwd.h"
0031 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutSetup.h"
0032 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerReadoutRecord.h"
0033 
0034 #include "DataFormats/Math/interface/deltaR.h"
0035 #include "RecoJets/JetAssociationAlgorithms/interface/JetTracksAssociationDRCalo.h"
0036 #include "DataFormats/Math/interface/Point3D.h"
0037 #include "MagneticField/Records/interface/IdealMagneticFieldRecord.h"
0038 #include "TrackingTools/Records/interface/TrackingComponentsRecord.h"
0039 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
0040 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2D.h"
0041 #include "DataFormats/TrackerRecHit2D/interface/ProjectedSiStripRecHit2D.h"
0042 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h"
0043 #include "DataFormats/TrackingRecHit/interface/InvalidTrackingRecHit.h"
0044 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h"
0045 #include "DataFormats/DetId/interface/DetId.h"
0046 #include "DataFormats/SiStripDetId/interface/SiStripDetId.h"
0047 #include "CalibFormats/SiStripObjects/interface/SiStripQuality.h"
0048 #include "CondFormats/SiStripObjects/interface/SiStripNoises.h"
0049 #include "CalibFormats/SiStripObjects/interface/SiStripGain.h"
0050 #include "CalibTracker/Records/interface/SiStripQualityRcd.h"
0051 #include "CondFormats/DataRecord/interface/SiStripNoisesRcd.h"
0052 #include "CalibTracker/Records/interface/SiStripGainRcd.h"
0053 
0054 #include <string>
0055 
0056 #include <cmath>
0057 
0058 using namespace edm;
0059 using namespace reco;
0060 using namespace std;
0061 
0062 // ***********************************************************
0063 JetAnalyzer::JetAnalyzer(const edm::ParameterSet& pSet)
0064 //: trackPropagator_(new jetAnalysis::TrackPropagatorToCalo)//,
0065 //sOverNCalculator_(new jetAnalysis::StripSignalOverNoiseCalculator)
0066 {
0067   parameters_ = pSet.getParameter<edm::ParameterSet>("jetAnalysis");
0068   mInputCollection_ = pSet.getParameter<edm::InputTag>("jetsrc");
0069   m_l1algoname_ = pSet.getParameter<std::string>("l1algoname");
0070   m_bitAlgTechTrig_ = -1;
0071 
0072   jetType_ = pSet.getParameter<std::string>("JetType");
0073   m_l1algoname_ = pSet.getParameter<std::string>("l1algoname");
0074 
0075   fill_jet_high_level_histo = pSet.getParameter<bool>("filljetHighLevel"),
0076   filljetsubstruc_ = pSet.getParameter<bool>("fillsubstructure");
0077   pt_min_boosted_ = pSet.getParameter<double>("ptMinBoosted");
0078 
0079   isCaloJet_ = (std::string("calo") == jetType_);
0080   //isJPTJet_  = (std::string("jpt") ==jetType_);
0081   isPFJet_ = (std::string("pf") == jetType_);
0082   isPUPPIJet_ = (std::string("puppi") == jetType_);
0083   isMiniAODJet_ = (std::string("miniaod") == jetType_);
0084   jetCorrectorTag_ = pSet.getParameter<edm::InputTag>("JetCorrections");
0085 
0086   if (!isMiniAODJet_) {  //in MiniAOD jet is already corrected
0087     jetCorrectorToken_ = consumes<reco::JetCorrector>(jetCorrectorTag_);
0088   }
0089 
0090   if (isCaloJet_) {
0091     caloJetsToken_ = consumes<reco::CaloJetCollection>(mInputCollection_);
0092     // MET information
0093     caloMetToken_ =
0094         consumes<reco::CaloMETCollection>(edm::InputTag(pSet.getParameter<edm::InputTag>("METCollectionLabel")));
0095   }
0096   //if (isJPTJet_)   jptJetsToken_ = consumes<reco::JPTJetCollection>(mInputCollection_);
0097   if (isPFJet_) {
0098     pfJetsToken_ = consumes<reco::PFJetCollection>(mInputCollection_);
0099     MuonsToken_ = consumes<reco::MuonCollection>(pSet.getParameter<edm::InputTag>("muonsrc"));
0100     pfMetToken_ =
0101         consumes<reco::PFMETCollection>(edm::InputTag(pSet.getParameter<edm::InputTag>("METCollectionLabel")));
0102   }
0103   if (isPUPPIJet_) {
0104     puppiJetsToken_ = consumes<reco::PFJetCollection>(mInputCollection_);
0105     MuonsToken_ = consumes<reco::MuonCollection>(pSet.getParameter<edm::InputTag>("muonsrc"));
0106     puppiMetToken_ =
0107         consumes<reco::PFMETCollection>(edm::InputTag(pSet.getParameter<edm::InputTag>("METCollectionLabel")));
0108   }
0109   if (isMiniAODJet_) {
0110     patJetsToken_ = consumes<pat::JetCollection>(mInputCollection_);
0111     patMetToken_ = consumes<pat::METCollection>(edm::InputTag(pSet.getParameter<edm::InputTag>("METCollectionLabel")));
0112   }
0113   cutBasedPUDiscriminantToken_ =
0114       consumes<edm::ValueMap<float> >(pSet.getParameter<edm::InputTag>("InputCutPUIDDiscriminant"));
0115   cutBasedPUIDToken_ = consumes<edm::ValueMap<int> >(pSet.getParameter<edm::InputTag>("InputCutPUIDValue"));
0116   mvaPUIDToken_ = consumes<edm::ValueMap<int> >(pSet.getParameter<edm::InputTag>("InputMVAPUIDValue"));
0117   mvaFullPUDiscriminantToken_ =
0118       consumes<edm::ValueMap<float> >(pSet.getParameter<edm::InputTag>("InputMVAPUIDDiscriminant"));
0119 
0120   qgMultiplicityToken_ = consumes<edm::ValueMap<int> >(pSet.getParameter<edm::InputTag>("InputQGMultiplicity"));
0121   qgLikelihoodToken_ = consumes<edm::ValueMap<float> >(pSet.getParameter<edm::InputTag>("InputQGLikelihood"));
0122   qgptDToken_ = consumes<edm::ValueMap<float> >(pSet.getParameter<edm::InputTag>("InputQGPtDToken"));
0123   qgaxis2Token_ = consumes<edm::ValueMap<float> >(pSet.getParameter<edm::InputTag>("InputQGAxis2"));
0124 
0125   fill_CHS_histos = pSet.getParameter<bool>("fillCHShistos");
0126 
0127   JetIDQuality_ = pSet.getParameter<string>("JetIDQuality");
0128   JetIDVersion_ = pSet.getParameter<string>("JetIDVersion");
0129 
0130   // JetID definitions for Calo and JPT Jets
0131   if (isCaloJet_) {
0132     inputJetIDValueMap = pSet.getParameter<edm::InputTag>("InputJetIDValueMap");
0133     jetID_ValueMapToken_ = consumes<edm::ValueMap<reco::JetID> >(inputJetIDValueMap);
0134     if (JetIDVersion_ == "PURE09") {
0135       jetidversion = JetIDSelectionFunctor::PURE09;
0136     } else if (JetIDVersion_ == "DQM09") {
0137       jetidversion = JetIDSelectionFunctor::DQM09;
0138     } else if (JetIDVersion_ == "CRAFT08") {
0139       jetidversion = JetIDSelectionFunctor::CRAFT08;
0140     } else {
0141       if (verbose_)
0142         std::cout << "no Valid JetID version given" << std::endl;
0143     }
0144     if (JetIDQuality_ == "MINIMAL") {
0145       jetidquality = JetIDSelectionFunctor::MINIMAL;
0146     } else if (JetIDQuality_ == "LOOSE_AOD") {
0147       jetidquality = JetIDSelectionFunctor::LOOSE_AOD;
0148     } else if (JetIDQuality_ == "LOOSE") {
0149       jetidquality = JetIDSelectionFunctor::LOOSE;
0150     } else if (JetIDQuality_ == "TIGHT") {
0151       jetidquality = JetIDSelectionFunctor::TIGHT;
0152     } else {
0153       if (verbose_)
0154         std::cout << "no Valid JetID quality given" << std::endl;
0155     }
0156     jetIDFunctor = JetIDSelectionFunctor(jetidversion, jetidquality);
0157   }
0158 
0159   //Jet ID definitions for PFJets
0160   if (isPFJet_ || isMiniAODJet_ || isPUPPIJet_) {
0161     if (JetIDVersion_ == "FIRSTDATA") {
0162       pfjetidversion = PFJetIDSelectionFunctor::FIRSTDATA;
0163     } else if (JetIDVersion_ == "RUNIISTARTUP") {
0164       pfjetidversion = PFJetIDSelectionFunctor::RUNIISTARTUP;
0165     } else if (JetIDVersion_ == "WINTER16") {
0166       pfjetidversion = PFJetIDSelectionFunctor::WINTER16;
0167     } else if (JetIDVersion_ == "WINTER17") {
0168       pfjetidversion = PFJetIDSelectionFunctor::WINTER17;
0169     } else if (JetIDVersion_ == "WINTER17PUPPI") {
0170       pfjetidversion = PFJetIDSelectionFunctor::WINTER17PUPPI;
0171     } else if (JetIDVersion_ == "RUN2ULCHS") {
0172       pfjetidversion = PFJetIDSelectionFunctor::RUN2ULCHS;
0173     } else if (JetIDVersion_ == "RUN2ULPUPPI") {
0174       pfjetidversion = PFJetIDSelectionFunctor::RUN2ULPUPPI;
0175     } else {
0176       if (verbose_)
0177         std::cout << "no valid PF JetID version given" << std::endl;
0178     }
0179     if (JetIDQuality_ == "LOOSE") {
0180       pfjetidquality = PFJetIDSelectionFunctor::LOOSE;
0181     } else if (JetIDQuality_ == "TIGHT") {
0182       pfjetidquality = PFJetIDSelectionFunctor::TIGHT;
0183     } else {
0184       if (verbose_)
0185         std::cout << "no Valid PFJetID quality given" << std::endl;
0186     }
0187     pfjetIDFunctor = PFJetIDSelectionFunctor(pfjetidversion, pfjetidquality);
0188   }
0189   //check later if some of those are also needed for PFJets
0190   leadJetFlag_ = 0;
0191   jetLoPass_ = 0;
0192   jetHiPass_ = 0;
0193   ptThreshold_ = 20.;
0194   ptThresholdUnc_ = 20.;
0195   asymmetryThirdJetCut_ = 5.;
0196   balanceThirdJetCut_ = 0.2;
0197 
0198   theTriggerResultsLabel_ = pSet.getParameter<edm::InputTag>("TriggerResultsLabel");
0199   triggerResultsToken_ = consumes<edm::TriggerResults>(edm::InputTag(theTriggerResultsLabel_));
0200   //
0201   runcosmics_ = pSet.getUntrackedParameter<bool>("runcosmics", false);
0202   jetCleaningFlag_ = pSet.getUntrackedParameter<bool>("JetCleaningFlag", true);
0203 
0204   if (runcosmics_) {
0205     jetCleaningFlag_ = false;
0206   }
0207 
0208   // ==========================================================
0209   //DCS information
0210   // ==========================================================
0211   edm::ConsumesCollector iC = consumesCollector();
0212   DCSFilterForJetMonitoring_ = new JetMETDQMDCSFilter(pSet.getParameter<ParameterSet>("DCSFilterForJetMonitoring"), iC);
0213   DCSFilterForDCSMonitoring_ = new JetMETDQMDCSFilter("ecal:hbhe:hf:ho:pixel:sistrip:es:muon", iC);
0214 
0215   //Trigger selectoin
0216   edm::ParameterSet highptjetparms = pSet.getParameter<edm::ParameterSet>("highPtJetTrigger");
0217   edm::ParameterSet lowptjetparms = pSet.getParameter<edm::ParameterSet>("lowPtJetTrigger");
0218 
0219   highPtJetEventFlag_ =
0220       new GenericTriggerEventFlag(highptjetparms, consumesCollector(), *this, l1t::UseEventSetupIn::Run);
0221   lowPtJetEventFlag_ =
0222       new GenericTriggerEventFlag(lowptjetparms, consumesCollector(), *this, l1t::UseEventSetupIn::Run);
0223 
0224   highPtJetExpr_ = highptjetparms.getParameter<std::vector<std::string> >("hltPaths");
0225   lowPtJetExpr_ = lowptjetparms.getParameter<std::vector<std::string> >("hltPaths");
0226 
0227   processname_ = pSet.getParameter<std::string>("processname");
0228 
0229   //jet cleanup parameters
0230   cleaningParameters_ = pSet.getParameter<ParameterSet>("CleaningParameters");
0231 
0232   bypassAllPVChecks_ = cleaningParameters_.getParameter<bool>("bypassAllPVChecks");
0233   vertexLabel_ = cleaningParameters_.getParameter<edm::InputTag>("vertexCollection");
0234   vertexToken_ = consumes<std::vector<reco::Vertex> >(edm::InputTag(vertexLabel_));
0235 
0236   gtLabel_ = cleaningParameters_.getParameter<edm::InputTag>("gtLabel");
0237   gtToken_ = consumes<L1GlobalTriggerReadoutRecord>(edm::InputTag(gtLabel_));
0238 
0239   std::string inputCollectionLabel(mInputCollection_.label());
0240   verbose_ = parameters_.getParameter<int>("verbose");
0241   // monitoring of eta parameter
0242   etaBin_ = parameters_.getParameter<int>("etaBin");
0243   etaMin_ = parameters_.getParameter<double>("etaMin");
0244   etaMax_ = parameters_.getParameter<double>("etaMax");
0245   // monitoring of phi paramater
0246   phiBin_ = parameters_.getParameter<int>("phiBin");
0247   phiMin_ = parameters_.getParameter<double>("phiMin");
0248   phiMax_ = parameters_.getParameter<double>("phiMax");
0249   // monitoring of the transverse momentum
0250   ptBin_ = parameters_.getParameter<int>("ptBin");
0251   ptMin_ = parameters_.getParameter<double>("ptMin");
0252   ptMax_ = parameters_.getParameter<double>("ptMax");
0253   //
0254   eBin_ = parameters_.getParameter<int>("eBin");
0255   eMin_ = parameters_.getParameter<double>("eMin");
0256   eMax_ = parameters_.getParameter<double>("eMax");
0257   //
0258   pBin_ = parameters_.getParameter<int>("pBin");
0259   pMin_ = parameters_.getParameter<double>("pMin");
0260   pMax_ = parameters_.getParameter<double>("pMax");
0261   //
0262   nbinsPV_ = parameters_.getParameter<int>("pVBin");
0263   nPVlow_ = parameters_.getParameter<double>("pVMin");
0264   nPVhigh_ = parameters_.getParameter<double>("pVMax");
0265   //
0266   ptThreshold_ = parameters_.getParameter<double>("ptThreshold");
0267   ptThresholdUnc_ = parameters_.getParameter<double>("ptThresholdUnc");
0268   asymmetryThirdJetCut_ = parameters_.getParameter<double>("asymmetryThirdJetCut");
0269   balanceThirdJetCut_ = parameters_.getParameter<double>("balanceThirdJetCut");
0270 
0271   l1gtTrigMenuToken_ = esConsumes<edm::Transition::BeginRun>();
0272 }
0273 
0274 // ***********************************************************
0275 JetAnalyzer::~JetAnalyzer() {
0276   delete highPtJetEventFlag_;
0277   delete lowPtJetEventFlag_;
0278 
0279   delete DCSFilterForDCSMonitoring_;
0280   delete DCSFilterForJetMonitoring_;
0281   LogTrace("JetAnalyzer") << "[JetAnalyzer] Saving the histos";
0282 }
0283 
0284 // ***********************************************************
0285 void JetAnalyzer::bookHistograms(DQMStore::IBooker& ibooker, edm::Run const& iRun, edm::EventSetup const&) {
0286   if (jetCleaningFlag_) {
0287     ibooker.setCurrentFolder("JetMET/Jet/Cleaned" + mInputCollection_.label());
0288     DirName = "JetMET/Jet/Cleaned" + mInputCollection_.label();
0289   } else {
0290     ibooker.setCurrentFolder("JetMET/Jet/Uncleaned" + mInputCollection_.label());
0291     DirName = "JetMET/Jet/Uncleaned" + mInputCollection_.label();
0292   }
0293 
0294   jetME = ibooker.book1D("jetReco", "jetReco", 5, 1, 5);
0295   jetME->setBinLabel(1, "CaloJets", 1);
0296   jetME->setBinLabel(2, "PFJets", 1);
0297   jetME->setBinLabel(3, "JPTJets", 1);
0298   jetME->setBinLabel(4, "MiniAODJets", 1);
0299   jetME->setBinLabel(5, "PUPPIJets", 1);
0300 
0301   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "jetReco", jetME));
0302 
0303   mPt = ibooker.book1D("Pt", "pt", ptBin_, ptMin_, ptMax_);
0304   mEta = ibooker.book1D("Eta", "eta", etaBin_, etaMin_, etaMax_);
0305   mPhi = ibooker.book1D("Phi", "phi", phiBin_, phiMin_, phiMax_);
0306   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt", mPt));
0307   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta", mEta));
0308   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi", mPhi));
0309 
0310   //if(!isJPTJet_){
0311   mConstituents = ibooker.book1D("Constituents", "# of constituents", 50, 0, 100);
0312   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Constituents", mConstituents));
0313   //}
0314   mJetEnergyCorr = ibooker.book1D("JetEnergyCorr", "jet energy correction factor", 50, 0.0, 3.0);
0315   mJetEnergyCorrVSEta = ibooker.bookProfile(
0316       "JetEnergyCorrVSEta", "jet energy correction factor VS eta", etaBin_, etaMin_, etaMax_, 0.0, 3.0);
0317   mJetEnergyCorrVSPt =
0318       ibooker.bookProfile("JetEnergyCorrVSPt", "jet energy correction factor VS pt", ptBin_, ptMin_, ptMax_, 0.0, 3.0);
0319   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetEnergyCorr", mJetEnergyCorr));
0320   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetEnergyCorrVSEta", mJetEnergyCorrVSEta));
0321   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetEnergyCorrVSPt", mJetEnergyCorrVSPt));
0322 
0323   mPt_uncor = ibooker.book1D("Pt_uncor", "pt for uncorrected jets", ptBin_, ptThresholdUnc_, ptMax_);
0324   mEta_uncor = ibooker.book1D("Eta_uncor", "eta for uncorrected jets", etaBin_, etaMin_, etaMax_);
0325   mPhi_uncor = ibooker.book1D("Phi_uncor", "phi for uncorrected jets", phiBin_, phiMin_, phiMax_);
0326   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_uncor", mPt_uncor));
0327   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta_uncor", mEta_uncor));
0328   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_uncor", mPhi_uncor));
0329   //if(!isJPTJet_){
0330   mConstituents_uncor = ibooker.book1D("Constituents_uncor", "# of constituents for uncorrected jets", 50, 0, 100);
0331   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Constituents_uncor", mConstituents_uncor));
0332   //}
0333 
0334   mDPhi = ibooker.book1D("DPhi", "dPhi btw the two leading jets", 100, 0., acos(-1.));
0335   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DPhi", mDPhi));
0336 
0337   // Book NPV profiles
0338   //----------------------------------------------------------------------------
0339   mPt_profile = ibooker.bookProfile("Pt_profile", "pt", nbinsPV_, nPVlow_, nPVhigh_, ptBin_, ptMin_, ptMax_);
0340   mEta_profile = ibooker.bookProfile("Eta_profile", "eta", nbinsPV_, nPVlow_, nPVhigh_, etaBin_, etaMin_, etaMax_);
0341   mPhi_profile = ibooker.bookProfile("Phi_profile", "phi", nbinsPV_, nPVlow_, nPVhigh_, phiBin_, phiMin_, phiMax_);
0342   //if(!isJPTJet_){
0343   mConstituents_profile =
0344       ibooker.bookProfile("Constituents_profile", "# of constituents", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
0345   //}
0346   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_profile", mPt_profile));
0347   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta_profile", mEta_profile));
0348   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_profile", mPhi_profile));
0349 
0350   if (!runcosmics_) {  //JIDPassFrac_ defines a collection of cleaned jets, for which we will want to fill the cleaning passing fraction
0351     mLooseJIDPassFractionVSeta =
0352         ibooker.bookProfile("JetIDPassFractionVSeta", "JetIDPassFractionVSeta", etaBin_, etaMin_, etaMax_, 0., 1.2);
0353     mLooseJIDPassFractionVSpt =
0354         ibooker.bookProfile("JetIDPassFractionVSpt", "JetIDPassFractionVSpt", ptBin_, ptMin_, ptMax_, 0., 1.2);
0355     mLooseJIDPassFractionVSptNoHF =
0356         ibooker.bookProfile("JetIDPassFractionVSptNoHF", "JetIDPassFractionVSptNoHF", ptBin_, ptMin_, ptMax_, 0., 1.2);
0357     map_of_MEs.insert(
0358         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetIDPassFractionVSeta", mLooseJIDPassFractionVSeta));
0359     map_of_MEs.insert(
0360         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetIDPassFractionVSpt", mLooseJIDPassFractionVSpt));
0361     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetIDPassFractionVSptNoHF",
0362                                                               mLooseJIDPassFractionVSptNoHF));
0363   }
0364 
0365   mNJets_profile = ibooker.bookProfile("NJets_profile", "number of jets", nbinsPV_, nPVlow_, nPVhigh_, 100, 0, 100);
0366 
0367   // Set NPV profiles x-axis title
0368   //----------------------------------------------------------------------------
0369   mPt_profile->setAxisTitle("nvtx", 1);
0370   mEta_profile->setAxisTitle("nvtx", 1);
0371   mPhi_profile->setAxisTitle("nvtx", 1);
0372   //if(!isJPTJet_){
0373   mConstituents_profile->setAxisTitle("nvtx", 1);
0374   map_of_MEs.insert(
0375       std::pair<std::string, MonitorElement*>(DirName + "/" + "Constituents_profile", mConstituents_profile));
0376   //}
0377   mNJets_profile->setAxisTitle("nvtx", 1);
0378 
0379   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_profile", mPt_profile));
0380   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta_profile", mEta_profile));
0381   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_profile", mPhi_profile));
0382   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NJets_profile", mNJets_profile));
0383 
0384   mPhiVSEta = ibooker.book2D("PhiVSEta", "PhiVSEta", 50, etaMin_, etaMax_, 24, phiMin_, phiMax_);
0385   mPhiVSEta->setOption("colz");
0386   mPhiVSEta->setAxisTitle("#eta", 1);
0387   mPhiVSEta->setAxisTitle("#phi", 2);
0388   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhiVSEta", mPhiVSEta));
0389 
0390   mPt_1 = ibooker.book1D("Pt_1", "Pt spectrum of jets - range 1", 20, 0, 100);
0391   mPt_2 = ibooker.book1D("Pt_2", "Pt spectrum of jets - range 2", 60, 0, 300);
0392   mPt_3 = ibooker.book1D("Pt_3", "Pt spectrum of jets - range 3", 100, 0, 5000);
0393   mPt_log = ibooker.book1D("Pt_log", "Pt spectrum of jets - log", 100, 0, 50);
0394   // Low and high pt trigger paths
0395   mPt_Lo = ibooker.book1D("Pt_Lo", "Pt (Pass Low Pt Jet Trigger)", 20, 0, 100);
0396   //mEta_Lo                 = ibooker.book1D("Eta_Lo", "Eta (Pass Low Pt Jet Trigger)", etaBin_, etaMin_, etaMax_);
0397   mPhi_Lo = ibooker.book1D("Phi_Lo", "Phi (Pass Low Pt Jet Trigger)", phiBin_, phiMin_, phiMax_);
0398 
0399   mPt_Hi = ibooker.book1D("Pt_Hi", "Pt (Pass Hi Pt Jet Trigger)", 60, 0, 300);
0400   mEta_Hi = ibooker.book1D("Eta_Hi", "Eta (Pass Hi Pt Jet Trigger)", etaBin_, etaMin_, etaMax_);
0401   mPhi_Hi = ibooker.book1D("Phi_Hi", "Phi (Pass Hi Pt Jet Trigger)", phiBin_, phiMin_, phiMax_);
0402   mNJets = ibooker.book1D("NJets", "number of jets", 100, 0, 100);
0403 
0404   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_1", mPt_1));
0405   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_2", mPt_2));
0406   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_3", mPt_3));
0407   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_log", mPt_log));
0408   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_Lo", mPt_Lo));
0409   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_Lo", mPhi_Lo));
0410   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_Hi", mPt_Hi));
0411   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta_Hi", mEta_Hi));
0412   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_Hi", mPhi_Hi));
0413   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NJets", mNJets));
0414 
0415   //mPt_Barrel_Lo            = ibooker.book1D("Pt_Barrel_Lo", "Pt Barrel (Pass Low Pt Jet Trigger)", 20, 0, 100);
0416   //mPhi_Barrel_Lo           = ibooker.book1D("Phi_Barrel_Lo", "Phi Barrel (Pass Low Pt Jet Trigger)", phiBin_, phiMin_, phiMax_);
0417   //if(!isJPTJet_){
0418   mConstituents_Barrel = ibooker.book1D("Constituents_Barrel", "Constituents Barrel", 50, 0, 100);
0419   map_of_MEs.insert(
0420       std::pair<std::string, MonitorElement*>(DirName + "/" + "Constituents_Barrel", mConstituents_Barrel));
0421   //}
0422 
0423   //mPt_EndCap_Lo            = ibooker.book1D("Pt_EndCap_Lo", "Pt EndCap (Pass Low Pt Jet Trigger)", 20, 0, 100);
0424   //mPhi_EndCap_Lo           = ibooker.book1D("Phi_EndCap_Lo", "Phi EndCap (Pass Low Pt Jet Trigger)", phiBin_, phiMin_, phiMax_);
0425   //if(!isJPTJet_){
0426   mConstituents_EndCap = ibooker.book1D("Constituents_EndCap", "Constituents EndCap", 50, 0, 100);
0427   map_of_MEs.insert(
0428       std::pair<std::string, MonitorElement*>(DirName + "/" + "Constituents_EndCap", mConstituents_EndCap));
0429   //}
0430 
0431   //mPt_Forward_Lo           = ibooker.book1D("Pt_Forward_Lo", "Pt Forward (Pass Low Pt Jet Trigger)", 20, 0, 100);
0432   //mPhi_Forward_Lo          = ibooker.book1D("Phi_Forward_Lo", "Phi Forward (Pass Low Pt Jet Trigger)", phiBin_, phiMin_, phiMax_);
0433   //if(!isJPTJet_){
0434   mConstituents_Forward = ibooker.book1D("Constituents_Forward", "Constituents Forward", 50, 0, 100);
0435   map_of_MEs.insert(
0436       std::pair<std::string, MonitorElement*>(DirName + "/" + "Constituents_Forward", mConstituents_Forward));
0437   //}
0438 
0439   mPt_Barrel_Hi = ibooker.book1D("Pt_Barrel_Hi", "Pt Barrel (Pass Hi Pt Jet Trigger)", 60, 0, 300);
0440   mPhi_Barrel_Hi = ibooker.book1D("Phi_Barrel_Hi", "Phi Barrel (Pass Hi Pt Jet Trigger)", phiBin_, phiMin_, phiMax_);
0441 
0442   mPt_EndCap_Hi = ibooker.book1D("Pt_EndCap_Hi", "Pt EndCap (Pass Hi Pt Jet Trigger)", 60, 0, 300);
0443   mPhi_EndCap_Hi = ibooker.book1D("Phi_EndCap_Hi", "Phi EndCap (Pass Hi Pt Jet Trigger)", phiBin_, phiMin_, phiMax_);
0444 
0445   mPt_Forward_Hi = ibooker.book1D("Pt_Forward_Hi", "Pt Forward (Pass Hi Pt Jet Trigger)", 60, 0, 300);
0446   mPhi_Forward_Hi = ibooker.book1D("Phi_Forward_Hi", "Phi Forward (Pass Hi Pt Jet Trigger)", phiBin_, phiMin_, phiMax_);
0447 
0448   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_Barrel_Hi", mPt_Barrel_Hi));
0449   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_Barrel_Hi", mPhi_Barrel_Hi));
0450   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_EndCap_Hi", mPt_EndCap_Hi));
0451   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_EndCap_Hi", mPhi_EndCap_Hi));
0452   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_Forward_Hi", mPt_Forward_Hi));
0453   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_Forward_Hi", mPhi_Forward_Hi));
0454 
0455   mPhi_Barrel = ibooker.book1D("Phi_Barrel", "Phi_Barrel", phiBin_, phiMin_, phiMax_);
0456   mPt_Barrel = ibooker.book1D("Pt_Barrel", "Pt_Barrel", ptBin_, ptMin_, ptMax_);
0457 
0458   mPhi_EndCap = ibooker.book1D("Phi_EndCap", "Phi_EndCap", phiBin_, phiMin_, phiMax_);
0459   mPt_EndCap = ibooker.book1D("Pt_EndCap", "Pt_EndCap", ptBin_, ptMin_, ptMax_);
0460 
0461   mPhi_Forward = ibooker.book1D("Phi_Forward", "Phi_Forward", phiBin_, phiMin_, phiMax_);
0462   mPt_Forward = ibooker.book1D("Pt_Forward", "Pt_Forward", ptBin_, ptMin_, ptMax_);
0463 
0464   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_Barrel", mPt_Barrel));
0465   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_Barrel", mPhi_Barrel));
0466   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_EndCap", mPt_EndCap));
0467   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_EndCap", mPhi_EndCap));
0468   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_Forward", mPt_Forward));
0469   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_Forward", mPhi_Forward));
0470 
0471   // Leading Jet Parameters
0472   mEtaFirst = ibooker.book1D("EtaFirst", "EtaFirst", 50, -5, 5);
0473   mPhiFirst = ibooker.book1D("PhiFirst", "PhiFirst", 70, phiMin_, phiMax_);
0474   mPtFirst = ibooker.book1D("PtFirst", "PtFirst", ptBin_, ptMin_, ptMax_);
0475 
0476   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EtaFirst", mEtaFirst));
0477   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PtFirst", mPtFirst));
0478   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhiFirst", mPhiFirst));
0479 
0480   //--- Calo jet selection only
0481   if (isCaloJet_) {
0482     // CaloJet specific
0483     mHadEnergyInHO = ibooker.book1D("HadEnergyInHO", "HadEnergyInHO", 50, 0, 20);
0484     mHadEnergyInHB = ibooker.book1D("HadEnergyInHB", "HadEnergyInHB", 50, 0, 100);
0485     mHadEnergyInHF = ibooker.book1D("HadEnergyInHF", "HadEnergyInHF", 50, 0, 100);
0486     mHadEnergyInHE = ibooker.book1D("HadEnergyInHE", "HadEnergyInHE", 50, 0, 200);
0487     mEmEnergyInEB = ibooker.book1D("EmEnergyInEB", "EmEnergyInEB", 50, 0, 100);
0488     mEmEnergyInEE = ibooker.book1D("EmEnergyInEE", "EmEnergyInEE", 50, 0, 100);
0489     mEmEnergyInHF = ibooker.book1D("EmEnergyInHF", "EmEnergyInHF", 60, -20, 200);
0490     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HadEnergyInHO", mHadEnergyInHO));
0491     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HadEnergyInHB", mHadEnergyInHB));
0492     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HadEnergyInHF", mHadEnergyInHF));
0493     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HadEnergyInHE", mHadEnergyInHE));
0494     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EmEnergyInEB", mEmEnergyInEB));
0495     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EmEnergyInEE", mEmEnergyInEE));
0496     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EmEnergyInHF", mEmEnergyInHF));
0497 
0498     //JetID variables
0499     mresEMF = ibooker.book1D("resEMF", "resEMF", 50, 0., 1.);
0500     mN90Hits = ibooker.book1D("N90Hits", "N90Hits", 50, 0., 50);
0501     mfHPD = ibooker.book1D("fHPD", "fHPD", 50, 0., 1.);
0502     mfRBX = ibooker.book1D("fRBX", "fRBX", 50, 0., 1.);
0503     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "resEMF", mresEMF));
0504     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "N90Hits", mN90Hits));
0505     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "fHPD", mfHPD));
0506     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "fRBX", mfRBX));
0507 
0508     mHFrac = ibooker.book1D("HFrac", "HFrac", 70, -0.2, 1.2);
0509     mEFrac = ibooker.book1D("EFrac", "EFrac", 52, -0.02, 1.02);
0510     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFrac", mHFrac));
0511     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EFrac", mEFrac));
0512     mHFrac_profile = ibooker.bookProfile("HFrac_profile", "HFrac", nbinsPV_, nPVlow_, nPVhigh_, 70, -0.2, 1.2);
0513     mEFrac_profile = ibooker.bookProfile("EFrac_profile", "EFrac", nbinsPV_, nPVlow_, nPVhigh_, 52, -0.02, 1.02);
0514     mHFrac_profile->setAxisTitle("nvtx", 1);
0515     mEFrac_profile->setAxisTitle("nvtx", 1);
0516     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFrac_profile", mHFrac_profile));
0517     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EFrac_profile", mEFrac_profile));
0518     mHFrac_Barrel = ibooker.book1D("HFrac_Barrel", "HFrac Barrel", 50, 0, 1);
0519     mEFrac_Barrel = ibooker.book1D("EFrac_Barrel", "EFrac Barrel", 52, -0.02, 1.02);
0520     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFrac_Barrel", mHFrac_Barrel));
0521     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EFrac_Barrel", mEFrac_Barrel));
0522     mHFrac_EndCap = ibooker.book1D("HFrac_EndCap", "HFrac EndCap", 50, 0, 1);
0523     mEFrac_EndCap = ibooker.book1D("EFrac_EndCap", "EFrac EndCap", 52, -0.02, 1.02);
0524     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFrac_EndCap", mHFrac_EndCap));
0525     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EFrac_EndCap", mEFrac_EndCap));
0526     mHFrac_Forward = ibooker.book1D("HFrac_Forward", "HFrac Forward", 70, -0.2, 1.2);
0527     mEFrac_Forward = ibooker.book1D("EFrac_Forward", "EFrac Forward", 52, -0.02, 1.02);
0528     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFrac_Forward", mHFrac_Forward));
0529     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EFrac_Forward", mEFrac_Forward));
0530   }
0531 
0532   if (isPFJet_) {
0533     /* remove quark gluon plots for default jet selection, but select physics signatures which monitor gluon and quark
0534     if(jetCleaningFlag_){ 
0535       //gluon quark separation axis  
0536       if(fill_CHS_histos){
0537     mAxis2_lowPt_Barrel = ibooker.book1D("qg_Axis2_lowPt_Barrel","qg Axis2 #sigma_{2} lowPt Barrel",50,0.,0.20);
0538     mpTD_lowPt_Barrel= ibooker.book1D("qg_pTD_lowPt_Barrel","qg fragmentation function p_{T}^{D} lowPt Barrel",50,0.15,1.05);
0539     mMultiplicityQG_lowPt_Barrel= ibooker.book1D("qg_multiplicity_lowPt_Barrel","qg multiplicity lowPt Barrel",50,0,50);
0540     mqgLikelihood_lowPt_Barrel= ibooker.book1D("qg_Likelihood_lowPt_Barrel","qg likelihood lowPt Barrel",50,-1.1,1.1);
0541     mAxis2_lowPt_EndCap = ibooker.book1D("qg_Axis2_lowPt_EndCap","qg Axis2 #sigma_{2} lowPt EndCap",50,0.,0.20);
0542     mpTD_lowPt_EndCap= ibooker.book1D("qg_pTD_lowPt_EndCap","qg fragmentation function p_{T}^{D} lowPt EndCap",50,0.15,1.05);
0543     mMultiplicityQG_lowPt_EndCap= ibooker.book1D("qg_multiplicity_lowPt_EndCap","qg multiplicity lowPt EndCap",50,0,100);
0544     mqgLikelihood_lowPt_EndCap= ibooker.book1D("qg_Likelihood_lowPt_EndCap","qg likelihood lowPt EndCap",50,-1.1,1.1);
0545     mAxis2_lowPt_Forward = ibooker.book1D("qg_Axis2_lowPt_Forward","qg Axis2 #sigma_{2} lowPt Forward",50,0.,0.20);
0546     mpTD_lowPt_Forward= ibooker.book1D("qg_pTD_lowPt_Forward","qg fragmentation function p_{T}^{D} lowPt Forward",50,0.15,1.05);
0547     mMultiplicityQG_lowPt_Forward= ibooker.book1D("qg_multiplicity_lowPt_Forward","qg multiplicity lowPt Forward",50,0,100);
0548     mqgLikelihood_lowPt_Forward= ibooker.book1D("qg_Likelihood_lowPt_Forward","qg likelihood lowPt Forward",50,-1.1,1.1);
0549     
0550     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_lowPt_Barrel" ,mAxis2_lowPt_Barrel));
0551     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_lowPt_Barrel" ,mpTD_lowPt_Barrel));
0552     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_lowPt_Barrel" ,mMultiplicityQG_lowPt_Barrel));
0553     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_lowPt_Barrel" ,mqgLikelihood_lowPt_Barrel));
0554     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_lowPt_EndCap" ,mAxis2_lowPt_EndCap));
0555     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_lowPt_EndCap" ,mpTD_lowPt_EndCap));
0556     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_lowPt_EndCap" ,mMultiplicityQG_lowPt_EndCap));
0557     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_lowPt_EndCap" ,mqgLikelihood_lowPt_EndCap));
0558     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_lowPt_Forward" ,mAxis2_lowPt_Forward));
0559     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_lowPt_Forward" ,mpTD_lowPt_Forward));
0560     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_lowPt_Forward" ,mMultiplicityQG_lowPt_Forward));
0561     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_lowPt_Forward" ,mqgLikelihood_lowPt_Forward));
0562 
0563     mAxis2_mediumPt_Barrel = ibooker.book1D("qg_Axis2_mediumPt_Barrel","qg Axis2 #sigma_{2} mediumPt Barrel",50,0.,0.20);
0564     mpTD_mediumPt_Barrel= ibooker.book1D("qg_pTD_mediumPt_Barrel","qg fragmentation function p_{T}^{D} mediumPt Barrel",50,0.15,1.05);
0565     mMultiplicityQG_mediumPt_Barrel= ibooker.book1D("qg_multiplicity_mediumPt_Barrel","qg multiplicity mediumPt Barrel",50,0,100);
0566     mqgLikelihood_mediumPt_Barrel= ibooker.book1D("qg_Likelihood_mediumPt_Barrel","qg likelihood mediumPt Barrel",50,-1.1,1.1);
0567     mAxis2_mediumPt_EndCap = ibooker.book1D("qg_Axis2_mediumPt_EndCap","qg Axis2 #sigma_{2} mediumPt EndCap",50,0.,0.20);
0568     mpTD_mediumPt_EndCap= ibooker.book1D("qg_pTD_mediumPt_EndCap","qg fragmentation function p_{T}^{D} mediumPt EndCap",50,0.15,1.05);
0569     mMultiplicityQG_mediumPt_EndCap= ibooker.book1D("qg_multiplicity_mediumPt_EndCap","qg multiplicity mediumPt EndCap",50,0,100);
0570     mqgLikelihood_mediumPt_EndCap= ibooker.book1D("qg_Likelihood_mediumPt_EndCap","qg likelihood mediumPt EndCap",50,-1.1,1.1);
0571     mAxis2_mediumPt_Forward = ibooker.book1D("qg_Axis2_mediumPt_Forward","qg Axis2 #sigma_{2} mediumPt Forward",50,0.,0.20);
0572     mpTD_mediumPt_Forward= ibooker.book1D("qg_pTD_mediumPt_Forward","qg fragmentation function p_{T}^{D} mediumPt Forward",50,0.15,1.05);
0573     mMultiplicityQG_mediumPt_Forward= ibooker.book1D("qg_multiplicity_mediumPt_Forward","qg multiplicity mediumPt Forward",50,0,100);
0574     mqgLikelihood_mediumPt_Forward= ibooker.book1D("qg_Likelihood_mediumPt_Forward","qg likelihood mediumPt Forward",50,-1.1,1.1);
0575     
0576     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_mediumPt_Barrel" ,mAxis2_mediumPt_Barrel));
0577     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_mediumPt_Barrel" ,mpTD_mediumPt_Barrel));
0578     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_mediumPt_Barrel" ,mMultiplicityQG_mediumPt_Barrel));
0579     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_mediumPt_Barrel" ,mqgLikelihood_mediumPt_Barrel));
0580     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_mediumPt_EndCap" ,mAxis2_mediumPt_EndCap));
0581     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_mediumPt_EndCap" ,mpTD_mediumPt_EndCap));
0582     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_mediumPt_EndCap" ,mMultiplicityQG_mediumPt_EndCap));
0583     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_mediumPt_EndCap" ,mqgLikelihood_mediumPt_EndCap));
0584     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_mediumPt_Forward" ,mAxis2_mediumPt_Forward));
0585     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_mediumPt_Forward" ,mpTD_mediumPt_Forward));
0586     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_mediumPt_Forward" ,mMultiplicityQG_mediumPt_Forward));
0587     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_mediumPt_Forward" ,mqgLikelihood_mediumPt_Forward));
0588 
0589     mAxis2_highPt_Barrel = ibooker.book1D("qg_Axis2_highPt_Barrel","qg Axis2 #sigma_{2} highPt Barrel",50,0.,0.20);
0590     mpTD_highPt_Barrel= ibooker.book1D("qg_pTD_highPt_Barrel","qg fragmentation function p_{T}^{D} highPt Barrel",50,0.15,1.05);
0591     mMultiplicityQG_highPt_Barrel= ibooker.book1D("qg_multiplicity_highPt_Barrel","qg multiplicity highPt Barrel",50,0,100);
0592     mqgLikelihood_highPt_Barrel= ibooker.book1D("qg_Likelihood_highPt_Barrel","qg likelihood highPt Barrel",50,-1.1,1.1);
0593     mAxis2_highPt_EndCap = ibooker.book1D("qg_Axis2_highPt_EndCap","qg Axis2 #sigma_{2} highPt EndCap",50,0.,0.20);
0594     mpTD_highPt_EndCap= ibooker.book1D("qg_pTD_highPt_EndCap","qg fragmentation function p_{T}^{D} highPt EndCap",50,0.15,1.05);
0595     mMultiplicityQG_highPt_EndCap= ibooker.book1D("qg_multiplicity_highPt_EndCap","qg multiplicity highPt EndCap",50,0,100);
0596     mqgLikelihood_highPt_EndCap= ibooker.book1D("qg_Likelihood_highPt_EndCap","qg likelihood highPt EndCap",50,-1.1,1.1);
0597     mAxis2_highPt_Forward = ibooker.book1D("qg_Axis2_highPt_Forward","qg Axis2 #sigma_{2} highPt Forward",50,0.,0.20);
0598     mpTD_highPt_Forward= ibooker.book1D("qg_pTD_highPt_Forward","qg fragmentation function p_{T}^{D} highPt Forward",50,0.15,1.05);
0599     mMultiplicityQG_highPt_Forward= ibooker.book1D("qg_multiplicity_highPt_Forward","qg multiplicity highPt Forward",50,0,100);
0600     mqgLikelihood_highPt_Forward= ibooker.book1D("qg_Likelihood_highPt_Forward","qg likelihood highPt Forward",50,-1.1,1.1);
0601     
0602     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_highPt_Barrel" ,mAxis2_highPt_Barrel));
0603     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_highPt_Barrel" ,mpTD_highPt_Barrel));
0604     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_highPt_Barrel" ,mMultiplicityQG_highPt_Barrel));
0605     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_highPt_Barrel" ,mqgLikelihood_highPt_Barrel));
0606     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_highPt_EndCap" ,mAxis2_highPt_EndCap));
0607     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_highPt_EndCap" ,mpTD_highPt_EndCap));
0608     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_highPt_EndCap" ,mMultiplicityQG_highPt_EndCap));
0609     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_highPt_EndCap" ,mqgLikelihood_highPt_EndCap));
0610     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Axis2_highPt_Forward" ,mAxis2_highPt_Forward));
0611     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_pTD_highPt_Forward" ,mpTD_highPt_Forward));
0612     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_multiplicity_highPt_Forward" ,mMultiplicityQG_highPt_Forward));
0613     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"qg_Likelihood_highPt_Forward" ,mqgLikelihood_highPt_Forward));
0614       }
0615     }*/
0616     //PFJet specific histograms
0617     mCHFracVSeta_lowPt =
0618         ibooker.bookProfile("CHFracVSeta_lowPt", "CHFracVSeta_lowPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0619     mNHFracVSeta_lowPt =
0620         ibooker.bookProfile("NHFacVSeta_lowPt", "NHFracVSeta_lowPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0621     mPhFracVSeta_lowPt =
0622         ibooker.bookProfile("PhFracVSeta_lowPt", "PhFracVSeta_lowPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0623     mCHFracVSeta_mediumPt =
0624         ibooker.bookProfile("CHFracVSeta_mediumPt", "CHFracVSeta_mediumPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0625     mNHFracVSeta_mediumPt =
0626         ibooker.bookProfile("NHFracVSeta_mediumPt", "NHFracVSeta_mediumPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0627     mPhFracVSeta_mediumPt =
0628         ibooker.bookProfile("PhFracVSeta_mediumPt", "PhFracVSeta_mediumPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0629     mCHFracVSeta_highPt =
0630         ibooker.bookProfile("CHFracVSeta_highPt", "CHFracVSeta_highPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0631     mNHFracVSeta_highPt =
0632         ibooker.bookProfile("NHFracVSeta_highPt", "NHFracVSeta_highPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0633     mPhFracVSeta_highPt =
0634         ibooker.bookProfile("PhFracVSeta_highPt", "PhFracVSeta_highPt", etaBin_, etaMin_, etaMax_, 0., 1.2);
0635 
0636     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracVSeta_lowPt", mCHFracVSeta_lowPt));
0637     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracVSeta_lowPt", mNHFracVSeta_lowPt));
0638     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracVSeta_lowPt", mPhFracVSeta_lowPt));
0639     map_of_MEs.insert(
0640         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracVSeta_mediumPt", mCHFracVSeta_mediumPt));
0641     map_of_MEs.insert(
0642         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracVSeta_mediumPt", mNHFracVSeta_mediumPt));
0643     map_of_MEs.insert(
0644         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracVSeta_mediumPt", mPhFracVSeta_mediumPt));
0645     map_of_MEs.insert(
0646         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracVSeta_highPt", mCHFracVSeta_highPt));
0647     map_of_MEs.insert(
0648         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracVSeta_highPt", mNHFracVSeta_highPt));
0649     map_of_MEs.insert(
0650         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracVSeta_highPt", mPhFracVSeta_highPt));
0651 
0652     mLooseMVAPUJIDPassFractionVSeta = ibooker.bookProfile(
0653         "LooseMVAPUIDPassFractionVSeta", "LooseMVAPUIDPassFractionVSeta", etaBin_, etaMin_, etaMax_, 0., 1.2);
0654     mLooseMVAPUJIDPassFractionVSpt = ibooker.bookProfile(
0655         "LooseMVAPUIDPassFractionVSpt", "LooseMVAPUIDPassFractionVSpt", ptBin_, ptMin_, ptMax_, 0., 1.2);
0656     mMediumMVAPUJIDPassFractionVSeta = ibooker.bookProfile(
0657         "MediumMVAPUIDPassFractionVSeta", "MediumMVAPUIDPassFractionVSeta", etaBin_, etaMin_, etaMax_, 0., 1.2);
0658     mMediumMVAPUJIDPassFractionVSpt = ibooker.bookProfile(
0659         "MediumMVAPUIDPassFractionVSpt", "MediumMVAPUIDPassFractionVSpt", ptBin_, ptMin_, ptMax_, 0., 1.2);
0660     mTightMVAPUJIDPassFractionVSeta = ibooker.bookProfile(
0661         "TightMVAPUIDPassFractionVSeta", "TightMVAPUIDPassFractionVSeta", etaBin_, etaMin_, etaMax_, 0., 1.2);
0662     mTightMVAPUJIDPassFractionVSpt = ibooker.bookProfile(
0663         "TightMVAPUIDPassFractionVSpt", "TightMVAPUIDPassFractionVSpt", ptBin_, ptMin_, ptMax_, 0., 1.2);
0664 
0665     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "LooseMVAPUIDPassFractionVSeta",
0666                                                               mLooseMVAPUJIDPassFractionVSeta));
0667     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "LooseMVAPUIDPassFractionVSpt",
0668                                                               mLooseMVAPUJIDPassFractionVSpt));
0669     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MediumMVAPUIDPassFractionVSeta",
0670                                                               mMediumMVAPUJIDPassFractionVSeta));
0671     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MediumMVAPUIDPassFractionVSpt",
0672                                                               mMediumMVAPUJIDPassFractionVSpt));
0673     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "TightMVAPUIDPassFractionVSeta",
0674                                                               mTightMVAPUJIDPassFractionVSeta));
0675     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "TightMVAPUIDPassFractionVSpt",
0676                                                               mTightMVAPUJIDPassFractionVSpt));
0677 
0678     mLooseCutPUJIDPassFractionVSeta = ibooker.bookProfile(
0679         "LooseCutPUIDPassFractionVSeta", "LooseCutPUIDPassFractionVSeta", etaBin_, etaMin_, etaMax_, 0., 1.2);
0680     mLooseCutPUJIDPassFractionVSpt = ibooker.bookProfile(
0681         "LooseCutPUIDPassFractionVSpt", "LooseCutPUIDPassFractionVSpt", ptBin_, ptMin_, ptMax_, 0., 1.2);
0682     mMediumCutPUJIDPassFractionVSeta = ibooker.bookProfile(
0683         "MediumCutPUIDPassFractionVSeta", "MediumCutPUIDPassFractionVSeta", etaBin_, etaMin_, etaMax_, 0., 1.2);
0684     mMediumCutPUJIDPassFractionVSpt = ibooker.bookProfile(
0685         "MediumCutPUIDPassFractionVSpt", "MediumCutPUIDPassFractionVSpt", ptBin_, ptMin_, ptMax_, 0., 1.2);
0686     mTightCutPUJIDPassFractionVSeta = ibooker.bookProfile(
0687         "TightCutPUIDPassFractionVSeta", "TightCutPUIDPassFractionVSeta", etaBin_, etaMin_, etaMax_, 0., 1.2);
0688     mTightCutPUJIDPassFractionVSpt = ibooker.bookProfile(
0689         "TightCutPUIDPassFractionVSpt", "TightCutPUIDPassFractionVSpt", ptBin_, ptMin_, ptMax_, 0., 1.2);
0690     mCutPUJIDDiscriminant_lowPt_Barrel =
0691         ibooker.book1D("CutPUJIDDiscriminant_lowPt_Barrel", "CutPUJIDDiscriminant_lowPt_Barrel", 50, -1.00, 1.00);
0692     mCutPUJIDDiscriminant_lowPt_EndCap =
0693         ibooker.book1D("CutPUJIDDiscriminant_lowPt_EndCap", "CutPUJIDDiscriminant_lowPt_EndCap", 50, -1.00, 1.00);
0694     mCutPUJIDDiscriminant_lowPt_Forward =
0695         ibooker.book1D("CutPUJIDDiscriminant_lowPt_Forward", "CutPUJIDDiscriminant_lowPt_Forward", 50, -1.00, 1.00);
0696     mCutPUJIDDiscriminant_mediumPt_Barrel =
0697         ibooker.book1D("CutPUJIDDiscriminant_mediumPt_Barrel", "CutPUJIDDiscriminant_mediumPt_Barrel", 50, -1.00, 1.00);
0698     mCutPUJIDDiscriminant_mediumPt_EndCap =
0699         ibooker.book1D("CutPUJIDDiscriminant_mediumPt_EndCap", "CutPUJIDDiscriminant_mediumPt_EndCap", 50, -1.00, 1.00);
0700     mCutPUJIDDiscriminant_mediumPt_Forward = ibooker.book1D(
0701         "CutPUJIDDiscriminant_mediumPt_Forward", "CutPUJIDDiscriminant_mediumPt_Forward", 50, -1.00, 1.00);
0702     mCutPUJIDDiscriminant_highPt_Barrel =
0703         ibooker.book1D("CutPUJIDDiscriminant_highPt_Barrel", "CutPUJIDDiscriminant_highPt_Barrel", 50, -1.00, 1.00);
0704     mCutPUJIDDiscriminant_highPt_EndCap =
0705         ibooker.book1D("CutPUJIDDiscriminant_highPt_EndCap", "CutPUJIDDiscriminant_highPt_EndCap", 50, -1.00, 1.00);
0706     mCutPUJIDDiscriminant_highPt_Forward =
0707         ibooker.book1D("CutPUJIDDiscriminant_highPt_Forward", "CutPUJIDDiscriminant_highPt_Forward", 50, -1.00, 1.00);
0708 
0709     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "LooseCutPUIDPassFractionVSeta",
0710                                                               mLooseCutPUJIDPassFractionVSeta));
0711     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "LooseCutPUIDPassFractionVSpt",
0712                                                               mLooseCutPUJIDPassFractionVSpt));
0713     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MediumCutPUIDPassFractionVSeta",
0714                                                               mMediumCutPUJIDPassFractionVSeta));
0715     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MediumCutPUIDPassFractionVSpt",
0716                                                               mMediumCutPUJIDPassFractionVSpt));
0717     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "TightCutPUIDPassFractionVSeta",
0718                                                               mTightCutPUJIDPassFractionVSeta));
0719     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "TightCutPUIDPassFractionVSpt",
0720                                                               mTightCutPUJIDPassFractionVSpt));
0721     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_lowPt_Barrel",
0722                                                               mCutPUJIDDiscriminant_lowPt_Barrel));
0723     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_lowPt_EndCap",
0724                                                               mCutPUJIDDiscriminant_lowPt_EndCap));
0725     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_lowPt_Forward",
0726                                                               mCutPUJIDDiscriminant_lowPt_Forward));
0727     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_mediumPt_Barrel",
0728                                                               mCutPUJIDDiscriminant_mediumPt_Barrel));
0729     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_mediumPt_EndCap",
0730                                                               mCutPUJIDDiscriminant_mediumPt_EndCap));
0731     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_mediumPt_Forward",
0732                                                               mCutPUJIDDiscriminant_mediumPt_Forward));
0733     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_highPt_Barrel",
0734                                                               mCutPUJIDDiscriminant_highPt_Barrel));
0735     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_highPt_EndCap",
0736                                                               mCutPUJIDDiscriminant_highPt_EndCap));
0737     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CutPUJIDDiscriminant_highPt_Forward",
0738                                                               mCutPUJIDDiscriminant_highPt_Forward));
0739     //barrel histograms for PFJets
0740     // energy fractions
0741     mCHFrac_lowPt_Barrel = ibooker.book1D("CHFrac_lowPt_Barrel", "CHFrac_lowPt_Barrel", 120, -0.1, 1.1);
0742     mNHFrac_lowPt_Barrel = ibooker.book1D("NHFrac_lowPt_Barrel", "NHFrac_lowPt_Barrel", 120, -0.1, 1.1);
0743     mPhFrac_lowPt_Barrel = ibooker.book1D("PhFrac_lowPt_Barrel", "PhFrac_lowPt_Barrel", 120, -0.1, 1.1);
0744     mCHFrac_mediumPt_Barrel = ibooker.book1D("CHFrac_mediumPt_Barrel", "CHFrac_mediumPt_Barrel", 120, -0.1, 1.1);
0745     mNHFrac_mediumPt_Barrel = ibooker.book1D("NHFrac_mediumPt_Barrel", "NHFrac_mediumPt_Barrel", 120, -0.1, 1.1);
0746     mPhFrac_mediumPt_Barrel = ibooker.book1D("PhFrac_mediumPt_Barrel", "PhFrac_mediumPt_Barrel", 120, -0.1, 1.1);
0747     mCHFrac_highPt_Barrel = ibooker.book1D("CHFrac_highPt_Barrel", "CHFrac_highPt_Barrel", 120, -0.1, 1.1);
0748     mNHFrac_highPt_Barrel = ibooker.book1D("NHFrac_highPt_Barrel", "NHFrac_highPt_Barrel", 120, -0.1, 1.1);
0749     mPhFrac_highPt_Barrel = ibooker.book1D("PhFrac_highPt_Barrel", "PhFrac_highPt_Barrel", 120, -0.1, 1.1);
0750 
0751     map_of_MEs.insert(
0752         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFrac_lowPt_Barrel", mCHFrac_lowPt_Barrel));
0753     map_of_MEs.insert(
0754         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFrac_lowPt_Barrel", mNHFrac_lowPt_Barrel));
0755     map_of_MEs.insert(
0756         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFrac_lowPt_Barrel", mPhFrac_lowPt_Barrel));
0757     map_of_MEs.insert(
0758         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFrac_mediumPt_Barrel", mCHFrac_mediumPt_Barrel));
0759     map_of_MEs.insert(
0760         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFrac_mediumPt_Barrel", mNHFrac_mediumPt_Barrel));
0761     map_of_MEs.insert(
0762         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFrac_mediumPt_Barrel", mPhFrac_mediumPt_Barrel));
0763     map_of_MEs.insert(
0764         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFrac_highPt_Barrel", mCHFrac_highPt_Barrel));
0765     map_of_MEs.insert(
0766         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFrac_highPt_Barrel", mNHFrac_highPt_Barrel));
0767     map_of_MEs.insert(
0768         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFrac_highPt_Barrel", mPhFrac_highPt_Barrel));
0769 
0770     mMass_lowPt_Barrel = ibooker.book1D("JetMass_lowPt_Barrel", "JetMass_lowPt_Barrel", 50, 0, 150);
0771     mMass_lowPt_EndCap = ibooker.book1D("JetMass_lowPt_EndCap", "JetMass_lowPt_EndCap", 50, 0, 150);
0772     mMass_lowPt_Forward = ibooker.book1D("JetMass_lowPt_Forward", "JetMass_lowPt_Forward", 50, 0, 150);
0773     mMass_mediumPt_Barrel = ibooker.book1D("JetMass_mediumPt_Barrel", "JetMass_mediumPt_Barrel", 50, 0, 150);
0774     mMass_mediumPt_EndCap = ibooker.book1D("JetMass_mediumPt_EndCap", "JetMass_mediumPt_EndCap", 50, 0, 150);
0775     mMass_mediumPt_Forward = ibooker.book1D("JetMass_mediumPt_Forward", "JetMass_mediumPt_Forward", 75, 0, 150);
0776     mMass_highPt_Barrel = ibooker.book1D("JetMass_highPt_Barrel", "JetMass_highPt_Barrel", 50, 0, 150);
0777     mMass_highPt_EndCap = ibooker.book1D("JetMass_highPt_EndCap", "JetMass_highPt_EndCap", 50, 0, 150);
0778     mMass_highPt_Forward = ibooker.book1D("JetMass_highPt_Forward", "JetMass_highPt_Forward", 50, 0, 150);
0779 
0780     map_of_MEs.insert(
0781         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_lowPt_Barrel", mMass_lowPt_Barrel));
0782     map_of_MEs.insert(
0783         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_lowPt_EndCap", mMass_lowPt_EndCap));
0784     map_of_MEs.insert(
0785         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_lowPt_Forward", mMass_lowPt_Forward));
0786     map_of_MEs.insert(
0787         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_mediumPt_Barrel", mMass_mediumPt_Barrel));
0788     map_of_MEs.insert(
0789         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_mediumPt_EndCap", mMass_mediumPt_EndCap));
0790     map_of_MEs.insert(
0791         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_mediumPt_Forward", mMass_mediumPt_Forward));
0792     map_of_MEs.insert(
0793         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_highPt_Barrel", mMass_highPt_Barrel));
0794     map_of_MEs.insert(
0795         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_highPt_EndCap", mMass_highPt_EndCap));
0796     map_of_MEs.insert(
0797         std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_highPt_Forward", mMass_highPt_Forward));
0798 
0799     //energies
0800     mCHEn_lowPt_Barrel = ibooker.book1D("CHEn_lowPt_Barrel", "CHEn_lowPt_Barrel", ptBin_, 0., ptMax_);
0801     mNHEn_lowPt_Barrel = ibooker.book1D("NHEn_lowPt_Barrel", "NHEn_lowPt_Barrel", ptBin_, 0., ptMax_);
0802     mPhEn_lowPt_Barrel = ibooker.book1D("PhEn_lowPt_Barrel", "PhEn_lowPt_Barrel", ptBin_, 0., ptMax_);
0803     mElEn_lowPt_Barrel = ibooker.book1D("ElEn_lowPt_Barrel", "ElEn_lowPt_Barrel", ptBin_, 0., 100);
0804     mMuEn_lowPt_Barrel = ibooker.book1D("MuEn_lowPt_Barrel", "MuEn_lowPt_Barrel", ptBin_, 0., 100);
0805     mCHEn_mediumPt_Barrel = ibooker.book1D("CHEn_mediumPt_Barrel", "CHEn_mediumPt_Barrel", ptBin_, 0., ptMax_);
0806     mNHEn_mediumPt_Barrel = ibooker.book1D("NHEn_mediumPt_Barrel", "NHEn_mediumPt_Barrel", ptBin_, 0., ptMax_);
0807     mPhEn_mediumPt_Barrel = ibooker.book1D("PhEn_mediumPt_Barrel", "PhEn_mediumPt_Barrel", ptBin_, 0., ptMax_);
0808     mElEn_mediumPt_Barrel = ibooker.book1D("ElEn_mediumPt_Barrel", "ElEn_mediumPt_Barrel", ptBin_, 0., 100);
0809     mMuEn_mediumPt_Barrel = ibooker.book1D("MuEn_mediumPt_Barrel", "MuEn_mediumPt_Barrel", ptBin_, 0., 100);
0810     mCHEn_highPt_Barrel = ibooker.book1D("CHEn_highPt_Barrel", "CHEn_highPt_Barrel", ptBin_, 0., 1.1 * ptMax_);
0811     mNHEn_highPt_Barrel = ibooker.book1D("NHEn_highPt_Barrel", "NHEn_highPt_Barrel", ptBin_, 0., ptMax_);
0812     mPhEn_highPt_Barrel = ibooker.book1D("PhEn_highPt_Barrel", "PhEn_highPt_Barrel", ptBin_, 0., ptMax_);
0813     mElEn_highPt_Barrel = ibooker.book1D("ElEn_highPt_Barrel", "ElEn_highPt_Barrel", ptBin_, 0., 100);
0814     mMuEn_highPt_Barrel = ibooker.book1D("MuEn_highPt_Barrel", "MuEn_highPt_Barrel", ptBin_, 0., 100);
0815 
0816     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHEn_lowPt_Barrel", mCHEn_lowPt_Barrel));
0817     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHEn_lowPt_Barrel", mNHEn_lowPt_Barrel));
0818     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhEn_lowPt_Barrel", mPhEn_lowPt_Barrel));
0819     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ElEn_lowPt_Barrel", mElEn_lowPt_Barrel));
0820     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuEn_lowPt_Barrel", mMuEn_lowPt_Barrel));
0821     map_of_MEs.insert(
0822         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHEn_mediumPt_Barrel", mCHEn_mediumPt_Barrel));
0823     map_of_MEs.insert(
0824         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHEn_mediumPt_Barrel", mNHEn_mediumPt_Barrel));
0825     map_of_MEs.insert(
0826         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhEn_mediumPt_Barrel", mPhEn_mediumPt_Barrel));
0827     map_of_MEs.insert(
0828         std::pair<std::string, MonitorElement*>(DirName + "/" + "ElEn_mediumPt_Barrel", mElEn_mediumPt_Barrel));
0829     map_of_MEs.insert(
0830         std::pair<std::string, MonitorElement*>(DirName + "/" + "MuEn_mediumPt_Barrel", mMuEn_mediumPt_Barrel));
0831     map_of_MEs.insert(
0832         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHEn_highPt_Barrel", mCHEn_highPt_Barrel));
0833     map_of_MEs.insert(
0834         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHEn_highPt_Barrel", mNHEn_highPt_Barrel));
0835     map_of_MEs.insert(
0836         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhEn_highPt_Barrel", mPhEn_highPt_Barrel));
0837     map_of_MEs.insert(
0838         std::pair<std::string, MonitorElement*>(DirName + "/" + "ElEn_highPt_Barrel", mElEn_highPt_Barrel));
0839     map_of_MEs.insert(
0840         std::pair<std::string, MonitorElement*>(DirName + "/" + "MuEn_highPt_Barrel", mMuEn_highPt_Barrel));
0841 
0842     //multiplicities
0843     mChMultiplicity_lowPt_Barrel =
0844         ibooker.book1D("ChMultiplicity_lowPt_Barrel", "ChMultiplicity_lowPt_Barrel", 60, 0, 60);
0845     mNeutMultiplicity_lowPt_Barrel =
0846         ibooker.book1D("NeutMultiplicity_lowPt_Barrel", "NeutMultiplicity_lowPt_Barrel", 60, 0, 60);
0847     mMuMultiplicity_lowPt_Barrel =
0848         ibooker.book1D("MuMultiplicity_lowPt_Barrel", "MuMultiplicity_lowPt_Barrel", 10, 0, 10);
0849     mChMultiplicity_mediumPt_Barrel =
0850         ibooker.book1D("ChMultiplicity_mediumPt_Barrel", "ChMultiplicity_mediumPt_Barrel", 60, 0, 60);
0851     mNeutMultiplicity_mediumPt_Barrel =
0852         ibooker.book1D("NeutMultiplicity_mediumPt_Barrel", "NeutMultiplicity_mediumPt_Barrel", 60, 0, 60);
0853     mMuMultiplicity_mediumPt_Barrel =
0854         ibooker.book1D("MuMultiplicity_mediumPt_Barrel", "MuMultiplicity_mediumPt_Barrel", 10, 0, 10);
0855     mChMultiplicity_highPt_Barrel =
0856         ibooker.book1D("ChMultiplicity_highPt_Barrel", "ChMultiplicity_highPt_Barrel", 60, 0, 60);
0857     mNeutMultiplicity_highPt_Barrel =
0858         ibooker.book1D("NeutMultiplicity_highPt_Barrel", "NeutMultiplicity_highPt_Barrel", 60, 0, 60);
0859     mMuMultiplicity_highPt_Barrel =
0860         ibooker.book1D("MuMultiplicity_highPt_Barrel", "MuMultiplicity_highPt_Barrel", 10, 0, 10);
0861 
0862     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChMultiplicity_lowPt_Barrel",
0863                                                               mChMultiplicity_lowPt_Barrel));
0864     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_lowPt_Barrel",
0865                                                               mNeutMultiplicity_lowPt_Barrel));
0866     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuMultiplicity_lowPt_Barrel",
0867                                                               mMuMultiplicity_lowPt_Barrel));
0868     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChMultiplicity_mediumPt_Barrel",
0869                                                               mChMultiplicity_mediumPt_Barrel));
0870     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_mediumPt_Barrel",
0871                                                               mNeutMultiplicity_mediumPt_Barrel));
0872     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuMultiplicity_mediumPt_Barrel",
0873                                                               mMuMultiplicity_mediumPt_Barrel));
0874     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChMultiplicity_highPt_Barrel",
0875                                                               mChMultiplicity_highPt_Barrel));
0876     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_highPt_Barrel",
0877                                                               mNeutMultiplicity_highPt_Barrel));
0878     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuMultiplicity_highPt_Barrel",
0879                                                               mMuMultiplicity_highPt_Barrel));
0880   }
0881   //
0882   if (isMiniAODJet_ || isPFJet_ || isPUPPIJet_) {
0883     if (!filljetsubstruc_) {  //not available for ak8 -> so just take out
0884       mMVAPUJIDDiscriminant_lowPt_Barrel =
0885           ibooker.book1D("MVAPUJIDDiscriminant_lowPt_Barrel", "MVAPUJIDDiscriminant_lowPt_Barrel", 50, -1.00, 1.00);
0886       mMVAPUJIDDiscriminant_lowPt_EndCap =
0887           ibooker.book1D("MVAPUJIDDiscriminant_lowPt_EndCap", "MVAPUJIDDiscriminant_lowPt_EndCap", 50, -1.00, 1.00);
0888       mMVAPUJIDDiscriminant_lowPt_Forward =
0889           ibooker.book1D("MVAPUJIDDiscriminant_lowPt_Forward", "MVAPUJIDDiscriminant_lowPt_Forward", 50, -1.00, 1.00);
0890       mMVAPUJIDDiscriminant_mediumPt_Barrel = ibooker.book1D(
0891           "MVAPUJIDDiscriminant_mediumPt_Barrel", "MVAPUJIDDiscriminant_mediumPt_Barrel", 50, -1.00, 1.00);
0892       mMVAPUJIDDiscriminant_mediumPt_EndCap = ibooker.book1D(
0893           "MVAPUJIDDiscriminant_mediumPt_EndCap", "MVAPUJIDDiscriminant_mediumPt_EndCap", 50, -1.00, 1.00);
0894       mMVAPUJIDDiscriminant_mediumPt_Forward = ibooker.book1D(
0895           "MVAPUJIDDiscriminant_mediumPt_Forward", "MVAPUJIDDiscriminant_mediumPt_Forward", 50, -1.00, 1.00);
0896       mMVAPUJIDDiscriminant_highPt_Barrel =
0897           ibooker.book1D("MVAPUJIDDiscriminant_highPt_Barrel", "MVAPUJIDDiscriminant_highPt_Barrel", 50, -1.00, 1.00);
0898       mMVAPUJIDDiscriminant_highPt_EndCap =
0899           ibooker.book1D("MVAPUJIDDiscriminant_highPt_EndCap", "MVAPUJIDDiscriminant_highPt_EndCap", 50, -1.00, 1.00);
0900       mMVAPUJIDDiscriminant_highPt_Forward =
0901           ibooker.book1D("MVAPUJIDDiscriminant_highPt_Forward", "MVAPUJIDDiscriminant_highPt_Forward", 50, -1.00, 1.00);
0902 
0903       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_lowPt_Barrel",
0904                                                                 mMVAPUJIDDiscriminant_lowPt_Barrel));
0905       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_lowPt_EndCap",
0906                                                                 mMVAPUJIDDiscriminant_lowPt_EndCap));
0907       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_lowPt_Forward",
0908                                                                 mMVAPUJIDDiscriminant_lowPt_Forward));
0909       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_Barrel",
0910                                                                 mMVAPUJIDDiscriminant_mediumPt_Barrel));
0911       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_EndCap",
0912                                                                 mMVAPUJIDDiscriminant_mediumPt_EndCap));
0913       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_Forward",
0914                                                                 mMVAPUJIDDiscriminant_mediumPt_Forward));
0915       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_highPt_Barrel",
0916                                                                 mMVAPUJIDDiscriminant_highPt_Barrel));
0917       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_highPt_EndCap",
0918                                                                 mMVAPUJIDDiscriminant_highPt_EndCap));
0919       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MVAPUJIDDiscriminant_highPt_Forward",
0920                                                                 mMVAPUJIDDiscriminant_highPt_Forward));
0921     }
0922     mCHFracVSpT_Barrel = ibooker.bookProfile("CHFracVSpT_Barrel", "CHFracVSpT_Barrel", ptBin_, ptMin_, ptMax_, 0., 1.2);
0923     mNHFracVSpT_Barrel = ibooker.bookProfile("NHFracVSpT_Barrel", "NHFracVSpT_Barrel", ptBin_, ptMin_, ptMax_, 0., 1.2);
0924     mPhFracVSpT_Barrel = ibooker.bookProfile("PhFracVSpT_Barrel", "PhFracVSpT_Barrel", ptBin_, ptMin_, ptMax_, 0., 1.2);
0925     mCHFracVSpT_EndCap = ibooker.bookProfile("CHFracVSpT_EndCap", "CHFracVSpT_EndCap", ptBin_, ptMin_, ptMax_, 0., 1.2);
0926     mNHFracVSpT_EndCap = ibooker.bookProfile("NHFracVSpT_EndCap", "NHFracVSpT_EndCap", ptBin_, ptMin_, ptMax_, 0., 1.2);
0927     mPhFracVSpT_EndCap = ibooker.bookProfile("PhFracVSpT_EndCap", "PhFracVSpT_EndCap", ptBin_, ptMin_, ptMax_, 0., 1.2);
0928     mHFHFracVSpT_Forward =
0929         ibooker.bookProfile("HFHFracVSpT_Forward", "HFHFracVSpT_Forward", ptBin_, ptMin_, ptMax_, -0.2, 1.2);
0930     mHFEFracVSpT_Forward =
0931         ibooker.bookProfile("HFEFracVSpT_Forward", "HFEFracVSpT_Forward", ptBin_, ptMin_, ptMax_, -0.2, 1.2);
0932 
0933     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracVSpT_Barrel", mCHFracVSpT_Barrel));
0934     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracVSpT_Barrel", mNHFracVSpT_Barrel));
0935     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracVSpT_Barrel", mPhFracVSpT_Barrel));
0936     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracVSpT_EndCap", mCHFracVSpT_EndCap));
0937     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracVSpT_EndCap", mNHFracVSpT_EndCap));
0938     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracVSpT_EndCap", mPhFracVSpT_EndCap));
0939     map_of_MEs.insert(
0940         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFracVSpT_Forward", mHFHFracVSpT_Forward));
0941     map_of_MEs.insert(
0942         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEFracVSpT_Forward", mHFEFracVSpT_Forward));
0943   }
0944   if (isPFJet_) {
0945     //endcap monitoring
0946     //energy fractions
0947     mCHFrac_lowPt_EndCap = ibooker.book1D("CHFrac_lowPt_EndCap", "CHFrac_lowPt_EndCap", 120, -0.1, 1.1);
0948     mNHFrac_lowPt_EndCap = ibooker.book1D("NHFrac_lowPt_EndCap", "NHFrac_lowPt_EndCap", 120, -0.1, 1.1);
0949     mPhFrac_lowPt_EndCap = ibooker.book1D("PhFrac_lowPt_EndCap", "PhFrac_lowPt_EndCap", 120, -0.1, 1.1);
0950     mCHFrac_mediumPt_EndCap = ibooker.book1D("CHFrac_mediumPt_EndCap", "CHFrac_mediumPt_EndCap", 120, -0.1, 1.1);
0951     mNHFrac_mediumPt_EndCap = ibooker.book1D("NHFrac_mediumPt_EndCap", "NHFrac_mediumPt_EndCap", 120, -0.1, 1.1);
0952     mPhFrac_mediumPt_EndCap = ibooker.book1D("PhFrac_mediumPt_EndCap", "PhFrac_mediumPt_EndCap", 120, -0.1, 1.1);
0953     mCHFrac_highPt_EndCap = ibooker.book1D("CHFrac_highPt_EndCap", "CHFrac_highPt_EndCap", 120, -0.1, 1.1);
0954     mNHFrac_highPt_EndCap = ibooker.book1D("NHFrac_highPt_EndCap", "NHFrac_highPt_EndCap", 120, -0.1, 1.1);
0955     mPhFrac_highPt_EndCap = ibooker.book1D("PhFrac_highPt_EndCap", "PhFrac_highPt_EndCap", 120, -0.1, 1.1);
0956 
0957     map_of_MEs.insert(
0958         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFrac_lowPt_EndCap", mCHFrac_lowPt_EndCap));
0959     map_of_MEs.insert(
0960         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFrac_lowPt_EndCap", mNHFrac_lowPt_EndCap));
0961     map_of_MEs.insert(
0962         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFrac_lowPt_EndCap", mPhFrac_lowPt_EndCap));
0963     map_of_MEs.insert(
0964         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFrac_mediumPt_EndCap", mCHFrac_mediumPt_EndCap));
0965     map_of_MEs.insert(
0966         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFrac_mediumPt_EndCap", mNHFrac_mediumPt_EndCap));
0967     map_of_MEs.insert(
0968         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFrac_mediumPt_EndCap", mPhFrac_mediumPt_EndCap));
0969     map_of_MEs.insert(
0970         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFrac_highPt_EndCap", mCHFrac_highPt_EndCap));
0971     map_of_MEs.insert(
0972         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFrac_highPt_EndCap", mNHFrac_highPt_EndCap));
0973     map_of_MEs.insert(
0974         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFrac_highPt_EndCap", mPhFrac_highPt_EndCap));
0975 
0976     //energies
0977     mCHEn_lowPt_EndCap = ibooker.book1D("CHEn_lowPt_EndCap", "CHEn_lowPt_EndCap", ptBin_, 0., ptMax_);
0978     mNHEn_lowPt_EndCap = ibooker.book1D("NHEn_lowPt_EndCap", "NHEn_lowPt_EndCap", ptBin_, 0., ptMax_);
0979     mPhEn_lowPt_EndCap = ibooker.book1D("PhEn_lowPt_EndCap", "PhEn_lowPt_EndCap", ptBin_, 0., ptMax_);
0980     mElEn_lowPt_EndCap = ibooker.book1D("ElEn_lowPt_EndCap", "ElEn_lowPt_EndCap", ptBin_, 0., 100);
0981     mMuEn_lowPt_EndCap = ibooker.book1D("MuEn_lowPt_EndCap", "MuEn_lowPt_EndCap", ptBin_, 0., 100);
0982     mCHEn_mediumPt_EndCap = ibooker.book1D("CHEn_mediumPt_EndCap", "CHEn_mediumPt_EndCap", ptBin_, 0., ptMax_);
0983     mNHEn_mediumPt_EndCap = ibooker.book1D("NHEn_mediumPt_EndCap", "NHEn_mediumPt_EndCap", ptBin_, 0., ptMax_);
0984     mPhEn_mediumPt_EndCap = ibooker.book1D("PhEn_mediumPt_EndCap", "PhEn_mediumPt_EndCap", ptBin_, 0., ptMax_);
0985     mElEn_mediumPt_EndCap = ibooker.book1D("ElEn_mediumPt_EndCap", "ElEn_mediumPt_EndCap", ptBin_, 0., 100);
0986     mMuEn_mediumPt_EndCap = ibooker.book1D("MuEn_mediumPt_EndCap", "MuEn_mediumPt_EndCap", ptBin_, 0., 100);
0987     mCHEn_highPt_EndCap = ibooker.book1D("CHEn_highPt_EndCap", "CHEn_highPt_EndCap", ptBin_, 0., 1.5 * ptMax_);
0988     mNHEn_highPt_EndCap = ibooker.book1D("NHEn_highPt_EndCap", "NHEn_highPt_EndCap", ptBin_, 0., 1.5 * ptMax_);
0989     mPhEn_highPt_EndCap = ibooker.book1D("PhEn_highPt_EndCap", "PhEn_highPt_EndCap", ptBin_, 0., 1.5 * ptMax_);
0990     mElEn_highPt_EndCap = ibooker.book1D("ElEn_highPt_EndCap", "ElEn_highPt_EndCap", ptBin_, 0., 100);
0991     mMuEn_highPt_EndCap = ibooker.book1D("MuEn_highPt_EndCap", "MuEn_highPt_EndCap", ptBin_, 0., 100);
0992 
0993     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHEn_lowPt_EndCap", mCHEn_lowPt_EndCap));
0994     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHEn_lowPt_EndCap", mNHEn_lowPt_EndCap));
0995     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhEn_lowPt_EndCap", mPhEn_lowPt_EndCap));
0996     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ElEn_lowPt_EndCap", mElEn_lowPt_EndCap));
0997     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuEn_lowPt_EndCap", mMuEn_lowPt_EndCap));
0998     map_of_MEs.insert(
0999         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHEn_mediumPt_EndCap", mCHEn_mediumPt_EndCap));
1000     map_of_MEs.insert(
1001         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHEn_mediumPt_EndCap", mNHEn_mediumPt_EndCap));
1002     map_of_MEs.insert(
1003         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhEn_mediumPt_EndCap", mPhEn_mediumPt_EndCap));
1004     map_of_MEs.insert(
1005         std::pair<std::string, MonitorElement*>(DirName + "/" + "ElEn_mediumPt_EndCap", mElEn_mediumPt_EndCap));
1006     map_of_MEs.insert(
1007         std::pair<std::string, MonitorElement*>(DirName + "/" + "MuEn_mediumPt_EndCap", mMuEn_mediumPt_EndCap));
1008     map_of_MEs.insert(
1009         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHEn_highPt_EndCap", mCHEn_highPt_EndCap));
1010     map_of_MEs.insert(
1011         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHEn_highPt_EndCap", mNHEn_highPt_EndCap));
1012     map_of_MEs.insert(
1013         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhEn_highPt_EndCap", mPhEn_highPt_EndCap));
1014     map_of_MEs.insert(
1015         std::pair<std::string, MonitorElement*>(DirName + "/" + "ElEn_highPt_EndCap", mElEn_highPt_EndCap));
1016     map_of_MEs.insert(
1017         std::pair<std::string, MonitorElement*>(DirName + "/" + "MuEn_highPt_EndCap", mMuEn_highPt_EndCap));
1018     /*
1019     //now get handle on OOT PU
1020     mePhFracBarrel_BXm2BXm1Empty          = ibooker.book1D("PhFracBarrel_BXm2BXm1Empty",        "PHFrac prev empty 2 bunches (Barrel)",         50, 0,    1);
1021     mePhFracBarrel_BXm2BXm1Filled        = ibooker.book1D("PhFracBarrel_BXm2BXm1Filled",      "PHFrac prev filled 2 bunches (Barrel)",         50, 0,    1);
1022     meNHFracBarrel_BXm2BXm1Empty   = ibooker.book1D("NHFracBarrel_BXm2BXm1Empty",   "NHFrac prev empty 2 bunches (Barrel)",         50, 0,    1);
1023     meNHFracBarrel_BXm2BXm1Filled = ibooker.book1D("NHFracBarrel_BXm2BXm1Filled", "NHFrac prev filled 2 bunches (Barrel)",         50, 0,    1);
1024     meCHFracBarrel_BXm2BXm1Empty   = ibooker.book1D("CHFracBarrel_BXm2BXm1Empty",   "CHFrac prev empty 2 bunches (Barrel)",         50, 0,    1);
1025     meCHFracBarrel_BXm2BXm1Filled = ibooker.book1D("CHFracBarrel_BXm2BXm1Filled", "CHFrac prev filled 2 bunches (Barrel)",         50, 0,    1);
1026     mePtBarrel_BXm2BXm1Empty                       = ibooker.book1D("PtBarrel_BXm2BXm1Empty",   "pT prev empty 2 bunches (Barrel)", ptBin_, ptMin_, ptMax_);
1027     mePtBarrel_BXm2BXm1Filled                     = ibooker.book1D("PtBarrel_BXm2BXm1Filled", "pT prev filled 2 bunches (Barrel)", ptBin_, ptMin_, ptMax_);
1028     mePhFracEndCapPlus_BXm2BXm1Empty          = ibooker.book1D("PhFracEndCapPlus_BXm2BXm1Empty",        "PHFrac prev empty 2 bunches (EndCapPlus)",         50, 0,    1);
1029     mePhFracEndCapPlus_BXm2BXm1Filled        = ibooker.book1D("PhFracEndCapPlus_BXm2BXm1Filled",      "PHFrac prev filled 2 bunches (EndCapPlus)",         50, 0,    1);
1030     meNHFracEndCapPlus_BXm2BXm1Empty   = ibooker.book1D("NHFracEndCapPlus_BXm2BXm1Empty",   "NHFrac prev empty 2 bunches (EndCapPlus)",         50, 0,    1);
1031     meNHFracEndCapPlus_BXm2BXm1Filled = ibooker.book1D("NHFracEndCapPlus_BXm2BXm1Filled", "NHFrac prev filled 2 bunches (EndCapPlus)",         50, 0,    1);
1032     meCHFracEndCapPlus_BXm2BXm1Empty   = ibooker.book1D("CHFracEndCapPlus_BXm2BXm1Empty",   "CHFrac prev empty 2 bunches (EndCapPlus)",         50, 0,    1);
1033     meCHFracEndCapPlus_BXm2BXm1Filled = ibooker.book1D("CHFracEndCapPlus_BXm2BXm1Filled", "CHFrac prev filled 2 bunches (EndCapPlus)",         50, 0,    1);
1034     mePtEndCapPlus_BXm2BXm1Empty                       = ibooker.book1D("PtEndCapPlus_BXm2BXm1Empty",   "pT prev empty 2 bunches (EndCapPlus)", ptBin_, ptMin_, ptMax_);
1035     mePtEndCapPlus_BXm2BXm1Filled                     = ibooker.book1D("PtEndCapPlus_BXm2BXm1Filled", "pT prev filled 2 bunches (EndCapPlus)", ptBin_, ptMin_, ptMax_);
1036     meHFHFracPlus_BXm2BXm1Empty   = ibooker.book1D("HFHFracPlus_BXm2BXm1Empty",   "HFHFrac prev empty 2 bunches (EndCapPlus)",         50, 0,    1);
1037     meHFHFracPlus_BXm2BXm1Filled = ibooker.book1D("HFHFracPlus_BXm2BXm1Filled", "HFHFrac prev filled 2 bunches (EndCapPlus)",         50, 0,    1);
1038     meHFEMFracPlus_BXm2BXm1Empty   = ibooker.book1D("HFEMFracPlus_BXm2BXm1Empty",   "HFEMFrac prev empty 2 bunches (EndCapPlus)",         50, 0,    1);
1039     meHFEMFracPlus_BXm2BXm1Filled = ibooker.book1D("HFEMFracPlus_BXm2BXm1Filled", "HFEMFrac prev filled 2 bunches (EndCapPlus)",         50, 0,    1);
1040     mePtForwardPlus_BXm2BXm1Empty                       = ibooker.book1D("PtForwardPlus_BXm2BXm1Empty",   "pT prev empty 2 bunches (ForwardPlus)", ptBin_, ptMin_, ptMax_);
1041     mePtForwardPlus_BXm2BXm1Filled                     = ibooker.book1D("PtForwardPlus_BXm2BXm1Filled", "pT prev filled 2 bunches (ForwardPlus)", ptBin_, ptMin_, ptMax_);
1042     mePhFracEndCapMinus_BXm2BXm1Empty          = ibooker.book1D("PhFracEndCapMinus_BXm2BXm1Empty",        "PHFrac prev empty 2 bunches (EndCapMinus)",         50, 0,    1);
1043     mePhFracEndCapMinus_BXm2BXm1Filled        = ibooker.book1D("PhFracEndCapMinus_BXm2BXm1Filled",      "PHFrac prev filled 2 bunches (EndCapMinus)",         50, 0,    1);
1044     meNHFracEndCapMinus_BXm2BXm1Empty   = ibooker.book1D("NHFracEndCapMinus_BXm2BXm1Empty",   "NHFrac prev empty 2 bunches (EndCapMinus)",         50, 0,    1);
1045     meNHFracEndCapMinus_BXm2BXm1Filled = ibooker.book1D("NHFracEndCapMinus_BXm2BXm1Filled", "NHFrac prev filled 2 bunches (EndCapMinus)",         50, 0,    1);
1046     meCHFracEndCapMinus_BXm2BXm1Empty   = ibooker.book1D("CHFracEndCapMinus_BXm2BXm1Empty",   "CHFrac prev empty 2 bunches (EndCapMinus)",         50, 0,    1);
1047     meCHFracEndCapMinus_BXm2BXm1Filled = ibooker.book1D("CHFracEndCapMinus_BXm2BXm1Filled", "CHFrac prev filled 2 bunches (EndCapMinus)",         50, 0,    1);
1048     mePtEndCapMinus_BXm2BXm1Empty                       = ibooker.book1D("PtEndCapMinus_BXm2BXm1Empty",   "pT prev empty 2 bunches (EndCapMinus)", ptBin_, ptMin_, ptMax_);
1049     mePtEndCapMinus_BXm2BXm1Filled                     = ibooker.book1D("PtEndCapMinus_BXm2BXm1Filled", "pT prev filled 2 bunches (EndCapMinus)", ptBin_, ptMin_, ptMax_);
1050     meHFHFracMinus_BXm2BXm1Empty   = ibooker.book1D("HFHFracMinus_BXm2BXm1Empty",   "HFHFrac prev empty 2 bunches (EndCapMinus)",         50, 0,    1);
1051     meHFHFracMinus_BXm2BXm1Filled = ibooker.book1D("HFHFracMinus_BXm2BXm1Filled", "HFHFrac prev filled 2 bunches (EndCapMinus)",         50, 0,    1);
1052     meHFEMFracMinus_BXm2BXm1Empty   = ibooker.book1D("HFEMFracMinus_BXm2BXm1Empty",   "HFEMFrac prev empty 2 bunches (EndCapMinus)",         50, 0,    1);
1053     meHFEMFracMinus_BXm2BXm1Filled = ibooker.book1D("HFEMFracMinus_BXm2BXm1Filled", "HFEMFrac prev filled 2 bunches (EndCapMinus)",         50, 0,    1);
1054     mePtForwardMinus_BXm2BXm1Empty                       = ibooker.book1D("PtForwardMinus_BXm2BXm1Empty",   "pT prev empty 2 bunches (ForwardMinus)", ptBin_, ptMin_, ptMax_);
1055     mePtForwardMinus_BXm2BXm1Filled                     = ibooker.book1D("PtForwardMinus_BXm2BXm1Filled", "pT prev filled 2 bunches (ForwardMinus)", ptBin_, ptMin_, ptMax_);
1056     meEta_BXm2BXm1Empty                     = ibooker.book1D("Eta_BXm2BXm1Empty",   "eta prev empty 2 bunches",  etaBin_, etaMin_, etaMax_);
1057     meEta_BXm2BXm1Filled                   = ibooker.book1D("Eta_BXm2BXm1Filled", "eta prev filled 2 bunches", etaBin_, etaMin_, etaMax_);
1058 
1059     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PhFracBarrel_BXm2BXm1Empty"       ,mePhFracBarrel_BXm2BXm1Empty));
1060     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PhFracBarrel_BXm2BXm1Filled"     ,mePhFracBarrel_BXm2BXm1Filled));
1061     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"NHFracBarrel_BXm2BXm1Empty"  ,meNHFracBarrel_BXm2BXm1Empty));
1062     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"NHFracBarrel_BXm2BXm1Filled"      ,meNHFracBarrel_BXm2BXm1Filled));
1063     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"CHFracBarrel_BXm2BXm1Empty"  ,meCHFracBarrel_BXm2BXm1Empty));
1064     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"CHFracBarrel_BXm2BXm1Filled"      ,meCHFracBarrel_BXm2BXm1Filled));
1065     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtBarrel_BXm2BXm1Empty"    ,mePtBarrel_BXm2BXm1Empty));
1066     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtBarrel_BXm2BXm1Filled"  ,mePtBarrel_BXm2BXm1Filled));
1067     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PhFracEndCapPlus_BXm2BXm1Empty"       ,mePhFracEndCapPlus_BXm2BXm1Empty));
1068     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PhFracEndCapPlus_BXm2BXm1Filled"     ,mePhFracEndCapPlus_BXm2BXm1Filled));
1069     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"NHFracEndCapPlus_BXm2BXm1Empty"  ,meNHFracEndCapPlus_BXm2BXm1Empty));
1070     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"NHFracEndCapPlus_BXm2BXm1Filled"      ,meNHFracEndCapPlus_BXm2BXm1Filled));
1071     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"CHFracEndCapPlus_BXm2BXm1Empty"  ,meCHFracEndCapPlus_BXm2BXm1Empty));
1072     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"CHFracEndCapPlus_BXm2BXm1Filled"      ,meCHFracEndCapPlus_BXm2BXm1Filled));
1073     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtEndCapPlus_BXm2BXm1Empty"    ,mePtEndCapPlus_BXm2BXm1Empty));
1074     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtEndCapPlus_BXm2BXm1Filled"  ,mePtEndCapPlus_BXm2BXm1Filled));
1075     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"HFHFracPlus_BXm2BXm1Empty"  ,meHFHFracPlus_BXm2BXm1Empty));
1076     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"HFHFracPlus_BXm2BXm1Filled"      ,meHFHFracPlus_BXm2BXm1Filled));
1077     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"HFEMFracPlus_BXm2BXm1Empty"  ,meHFEMFracPlus_BXm2BXm1Empty));
1078     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"HFEMFracPlus_BXm2BXm1Filled"      ,meHFEMFracPlus_BXm2BXm1Filled));
1079     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtForwardPlus_BXm2BXm1Empty"    ,mePtForwardPlus_BXm2BXm1Empty));
1080     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtForwardPlus_BXm2BXm1Filled"  ,mePtForwardPlus_BXm2BXm1Filled));
1081     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PhFracEndCapMinus_BXm2BXm1Empty"       ,mePhFracEndCapMinus_BXm2BXm1Empty));
1082     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PhFracEndCapMinus_BXm2BXm1Filled"     ,mePhFracEndCapMinus_BXm2BXm1Filled));
1083     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"NHFracEndCapMinus_BXm2BXm1Empty"  ,meNHFracEndCapMinus_BXm2BXm1Empty));
1084     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"NHFracEndCapMinus_BXm2BXm1Filled"      ,meNHFracEndCapMinus_BXm2BXm1Filled));
1085     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"CHFracEndCapMinus_BXm2BXm1Empty"  ,meCHFracEndCapMinus_BXm2BXm1Empty));
1086     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"CHFracEndCapMinus_BXm2BXm1Filled"      ,meCHFracEndCapMinus_BXm2BXm1Filled));
1087     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtEndCapMinus_BXm2BXm1Empty"    ,mePtEndCapMinus_BXm2BXm1Empty));
1088     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtEndCapMinus_BXm2BXm1Filled"  ,mePtEndCapMinus_BXm2BXm1Filled));
1089     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"HFHFracMinus_BXm2BXm1Empty"  ,meHFHFracMinus_BXm2BXm1Empty));
1090     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"HFHFracMinus_BXm2BXm1Filled"      ,meHFHFracMinus_BXm2BXm1Filled));
1091     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"HFEMFracMinus_BXm2BXm1Empty"  ,meHFEMFracMinus_BXm2BXm1Empty));
1092     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"HFEMFracMinus_BXm2BXm1Filled"      ,meHFEMFracMinus_BXm2BXm1Filled));
1093     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtForwardMinus_BXm2BXm1Empty"    ,mePtForwardMinus_BXm2BXm1Empty));
1094     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"PtForwardMinus_BXm2BXm1Filled"  ,mePtForwardMinus_BXm2BXm1Filled));
1095     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"Eta_BXm2BXm1Empty"  ,meEta_BXm2BXm1Empty));
1096     map_of_MEs.insert(std::pair<std::string,MonitorElement*>(DirName+"/"+"Eta_BXm2BXm1Filled",meEta_BXm2BXm1Filled));
1097     */
1098     mePhFracBarrel_BXm1Empty = ibooker.book1D("PhFracBarrel_BXm1Empty", "PHFrac prev empty 1 bunch (Barrel)", 50, 0, 1);
1099     mePhFracBarrel_BXm1Filled =
1100         ibooker.book1D("PhFracBarrel_BXm1Filled", "PHFrac prev filled 1 bunch (Barrel)", 50, 0, 1);
1101     meNHFracBarrel_BXm1Empty = ibooker.book1D("NHFracBarrel_BXm1Empty", "NHFrac prev empty 1 bunch (Barrel)", 50, 0, 1);
1102     meNHFracBarrel_BXm1Filled =
1103         ibooker.book1D("NHFracBarrel_BXm1Filled", "NHFrac prev filled 1 bunch (Barrel)", 50, 0, 1);
1104     meCHFracBarrel_BXm1Empty = ibooker.book1D("CHFracBarrel_BXm1Empty", "CHFrac prev empty 1 bunch (Barrel)", 50, 0, 1);
1105     meCHFracBarrel_BXm1Filled =
1106         ibooker.book1D("CHFracBarrel_BXm1Filled", "CHFrac prev filled 1 bunch (Barrel)", 50, 0, 1);
1107     mePtBarrel_BXm1Empty =
1108         ibooker.book1D("PtBarrel_BXm1Empty", "pT prev empty 1 bunch (Barrel)", ptBin_, ptMin_, ptMax_);
1109     mePtBarrel_BXm1Filled =
1110         ibooker.book1D("PtBarrel_BXm1Filled", "pT prev filled 1 bunch (Barrel)", ptBin_, ptMin_, ptMax_);
1111     mePhFracEndCapPlus_BXm1Empty =
1112         ibooker.book1D("PhFracEndCapPlus_BXm1Empty", "PHFrac prev empty 1 bunch (EndCapPlus)", 50, 0, 1);
1113     mePhFracEndCapPlus_BXm1Filled =
1114         ibooker.book1D("PhFracEndCapPlus_BXm1Filled", "PHFrac prev filled 1 bunch (EndCapPlus)", 50, 0, 1);
1115     meNHFracEndCapPlus_BXm1Empty =
1116         ibooker.book1D("NHFracEndCapPlus_BXm1Empty", "NHFrac prev empty 1 bunch (EndCapPlus)", 50, 0, 1);
1117     meNHFracEndCapPlus_BXm1Filled =
1118         ibooker.book1D("NHFracEndCapPlus_BXm1Filled", "NHFrac prev filled 1 bunch (EndCapPlus)", 50, 0, 1);
1119     meCHFracEndCapPlus_BXm1Empty =
1120         ibooker.book1D("CHFracEndCapPlus_BXm1Empty", "CHFrac prev empty 1 bunch (EndCapPlus)", 50, 0, 1);
1121     meCHFracEndCapPlus_BXm1Filled =
1122         ibooker.book1D("CHFracEndCapPlus_BXm1Filled", "CHFrac prev filled 1 bunch (EndCapPlus)", 50, 0, 1);
1123     mePtEndCapPlus_BXm1Empty =
1124         ibooker.book1D("PtEndCapPlus_BXm1Empty", "pT prev empty 1 bunch (EndCapPlus)", ptBin_, ptMin_, ptMax_);
1125     mePtEndCapPlus_BXm1Filled =
1126         ibooker.book1D("PtEndCapPlus_BXm1Filled", "pT prev filled 1 bunch (EndCapPlus)", ptBin_, ptMin_, ptMax_);
1127     meHFHFracPlus_BXm1Empty =
1128         ibooker.book1D("HFHFracPlus_BXm1Empty", "HFHFrac prev empty 1 bunch (EndCapPlus)", 50, 0, 1);
1129     meHFHFracPlus_BXm1Filled =
1130         ibooker.book1D("HFHFracPlus_BXm1Filled", "HFHFrac prev filled 1 bunch (EndCapPlus)", 50, 0, 1);
1131     meHFEMFracPlus_BXm1Empty =
1132         ibooker.book1D("HFEMFracPlus_BXm1Empty", "HFEMFrac prev empty 1 bunch (EndCapPlus)", 50, 0, 1);
1133     meHFEMFracPlus_BXm1Filled =
1134         ibooker.book1D("HFEMFracPlus_BXm1Filled", "HFEMFrac prev filled 1 bunch (EndCapPlus)", 50, 0, 1);
1135     mePtForwardPlus_BXm1Empty =
1136         ibooker.book1D("PtForwardPlus_BXm1Empty", "pT prev empty 1 bunch (ForwardPlus)", ptBin_, ptMin_, ptMax_);
1137     mePtForwardPlus_BXm1Filled =
1138         ibooker.book1D("PtForwardPlus_BXm1Filled", "pT prev filled 1 bunch (ForwardPlus)", ptBin_, ptMin_, ptMax_);
1139     mePhFracEndCapMinus_BXm1Empty =
1140         ibooker.book1D("PhFracEndCapMinus_BXm1Empty", "PHFrac prev empty 1 bunch (EndCapMinus)", 50, 0, 1);
1141     mePhFracEndCapMinus_BXm1Filled =
1142         ibooker.book1D("PhFracEndCapMinus_BXm1Filled", "PHFrac prev filled 1 bunch (EndCapMinus)", 50, 0, 1);
1143     meNHFracEndCapMinus_BXm1Empty =
1144         ibooker.book1D("NHFracEndCapMinus_BXm1Empty", "NHFrac prev empty 1 bunch (EndCapMinus)", 50, 0, 1);
1145     meNHFracEndCapMinus_BXm1Filled =
1146         ibooker.book1D("NHFracEndCapMinus_BXm1Filled", "NHFrac prev filled 1 bunch (EndCapMinus)", 50, 0, 1);
1147     meCHFracEndCapMinus_BXm1Empty =
1148         ibooker.book1D("CHFracEndCapMinus_BXm1Empty", "CHFrac prev empty 1 bunch (EndCapMinus)", 50, 0, 1);
1149     meCHFracEndCapMinus_BXm1Filled =
1150         ibooker.book1D("CHFracEndCapMinus_BXm1Filled", "CHFrac prev filled 1 bunch (EndCapMinus)", 50, 0, 1);
1151     mePtEndCapMinus_BXm1Empty =
1152         ibooker.book1D("PtEndCapMinus_BXm1Empty", "pT prev empty 1 bunch (EndCapMinus)", ptBin_, ptMin_, ptMax_);
1153     mePtEndCapMinus_BXm1Filled =
1154         ibooker.book1D("PtEndCapMinus_BXm1Filled", "pT prev filled 1 bunch (EndCapMinus)", ptBin_, ptMin_, ptMax_);
1155     meHFHFracMinus_BXm1Empty =
1156         ibooker.book1D("HFHFracMinus_BXm1Empty", "HFHFrac prev empty 1 bunch (EndCapMinus)", 50, 0, 1);
1157     meHFHFracMinus_BXm1Filled =
1158         ibooker.book1D("HFHFracMinus_BXm1Filled", "HFHFrac prev filled 1 bunch (EndCapMinus)", 50, 0, 1);
1159     meHFEMFracMinus_BXm1Empty =
1160         ibooker.book1D("HFEMFracMinus_BXm1Empty", "HFEMFrac prev empty 1 bunch (EndCapMinus)", 50, 0, 1);
1161     meHFEMFracMinus_BXm1Filled =
1162         ibooker.book1D("HFEMFracMinus_BXm1Filled", "HFEMFrac prev filled 1 bunch (EndCapMinus)", 50, 0, 1);
1163     mePtForwardMinus_BXm1Empty =
1164         ibooker.book1D("PtForwardMinus_BXm1Empty", "pT prev empty 1 bunch (ForwardMinus)", ptBin_, ptMin_, ptMax_);
1165     mePtForwardMinus_BXm1Filled =
1166         ibooker.book1D("PtForwardMinus_BXm1Filled", "pT prev filled 1 bunch (ForwardMinus)", ptBin_, ptMin_, ptMax_);
1167     meEta_BXm1Empty = ibooker.book1D("Eta_BXm1Empty", "eta prev empty 1 bunch", etaBin_, etaMin_, etaMax_);
1168     meEta_BXm1Filled = ibooker.book1D("Eta_BXm1Filled", "eta prev filled 1 bunch", etaBin_, etaMin_, etaMax_);
1169 
1170     map_of_MEs.insert(
1171         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracBarrel_BXm1Empty", mePhFracBarrel_BXm1Empty));
1172     map_of_MEs.insert(
1173         std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracBarrel_BXm1Filled", mePhFracBarrel_BXm1Filled));
1174     map_of_MEs.insert(
1175         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracBarrel_BXm1Empty", meNHFracBarrel_BXm1Empty));
1176     map_of_MEs.insert(
1177         std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracBarrel_BXm1Filled", meNHFracBarrel_BXm1Filled));
1178     map_of_MEs.insert(
1179         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracBarrel_BXm1Empty", meCHFracBarrel_BXm1Empty));
1180     map_of_MEs.insert(
1181         std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracBarrel_BXm1Filled", meCHFracBarrel_BXm1Filled));
1182     map_of_MEs.insert(
1183         std::pair<std::string, MonitorElement*>(DirName + "/" + "PtBarrel_BXm1Empty", mePtBarrel_BXm1Empty));
1184     map_of_MEs.insert(
1185         std::pair<std::string, MonitorElement*>(DirName + "/" + "PtBarrel_BXm1Filled", mePtBarrel_BXm1Filled));
1186     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracEndCapPlus_BXm1Empty",
1187                                                               mePhFracEndCapPlus_BXm1Empty));
1188     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracEndCapPlus_BXm1Filled",
1189                                                               mePhFracEndCapPlus_BXm1Filled));
1190     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracEndCapPlus_BXm1Empty",
1191                                                               meNHFracEndCapPlus_BXm1Empty));
1192     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracEndCapPlus_BXm1Filled",
1193                                                               meNHFracEndCapPlus_BXm1Filled));
1194     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracEndCapPlus_BXm1Empty",
1195                                                               meCHFracEndCapPlus_BXm1Empty));
1196     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracEndCapPlus_BXm1Filled",
1197                                                               meCHFracEndCapPlus_BXm1Filled));
1198     map_of_MEs.insert(
1199         std::pair<std::string, MonitorElement*>(DirName + "/" + "PtEndCapPlus_BXm1Empty", mePtEndCapPlus_BXm1Empty));
1200     map_of_MEs.insert(
1201         std::pair<std::string, MonitorElement*>(DirName + "/" + "PtEndCapPlus_BXm1Filled", mePtEndCapPlus_BXm1Filled));
1202     map_of_MEs.insert(
1203         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFracPlus_BXm1Empty", meHFHFracPlus_BXm1Empty));
1204     map_of_MEs.insert(
1205         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFracPlus_BXm1Filled", meHFHFracPlus_BXm1Filled));
1206     map_of_MEs.insert(
1207         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEMFracPlus_BXm1Empty", meHFEMFracPlus_BXm1Empty));
1208     map_of_MEs.insert(
1209         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEMFracPlus_BXm1Filled", meHFEMFracPlus_BXm1Filled));
1210     map_of_MEs.insert(
1211         std::pair<std::string, MonitorElement*>(DirName + "/" + "PtForwardPlus_BXm1Empty", mePtForwardPlus_BXm1Empty));
1212     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PtForwardPlus_BXm1Filled",
1213                                                               mePtForwardPlus_BXm1Filled));
1214     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracEndCapMinus_BXm1Empty",
1215                                                               mePhFracEndCapMinus_BXm1Empty));
1216     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFracEndCapMinus_BXm1Filled",
1217                                                               mePhFracEndCapMinus_BXm1Filled));
1218     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracEndCapMinus_BXm1Empty",
1219                                                               meNHFracEndCapMinus_BXm1Empty));
1220     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFracEndCapMinus_BXm1Filled",
1221                                                               meNHFracEndCapMinus_BXm1Filled));
1222     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracEndCapMinus_BXm1Empty",
1223                                                               meCHFracEndCapMinus_BXm1Empty));
1224     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFracEndCapMinus_BXm1Filled",
1225                                                               meCHFracEndCapMinus_BXm1Filled));
1226     map_of_MEs.insert(
1227         std::pair<std::string, MonitorElement*>(DirName + "/" + "PtEndCapMinus_BXm1Empty", mePtEndCapMinus_BXm1Empty));
1228     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PtEndCapMinus_BXm1Filled",
1229                                                               mePtEndCapMinus_BXm1Filled));
1230     map_of_MEs.insert(
1231         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFracMinus_BXm1Empty", meHFHFracMinus_BXm1Empty));
1232     map_of_MEs.insert(
1233         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFracMinus_BXm1Filled", meHFHFracMinus_BXm1Filled));
1234     map_of_MEs.insert(
1235         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEMFracMinus_BXm1Empty", meHFEMFracMinus_BXm1Empty));
1236     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEMFracMinus_BXm1Filled",
1237                                                               meHFEMFracMinus_BXm1Filled));
1238     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PtForwardMinus_BXm1Empty",
1239                                                               mePtForwardMinus_BXm1Empty));
1240     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PtForwardMinus_BXm1Filled",
1241                                                               mePtForwardMinus_BXm1Filled));
1242     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta_BXm1Empty", meEta_BXm1Empty));
1243     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta_BXm1Filled", meEta_BXm1Filled));
1244 
1245     //multiplicities
1246     mChMultiplicity_lowPt_EndCap =
1247         ibooker.book1D("ChMultiplicity_lowPt_EndCap", "ChMultiplicity_lowPt_EndCap", 60, 0, 60);
1248     mNeutMultiplicity_lowPt_EndCap =
1249         ibooker.book1D("NeutMultiplicity_lowPt_EndCap", "NeutMultiplicity_lowPt_EndCap", 60, 0, 60);
1250     mMuMultiplicity_lowPt_EndCap =
1251         ibooker.book1D("MuMultiplicity_lowPt_EndCap", "MuMultiplicity_lowPt_EndCap", 10, 0, 10);
1252     mChMultiplicity_mediumPt_EndCap =
1253         ibooker.book1D("ChMultiplicity_mediumPt_EndCap", "ChMultiplicity_mediumPt_EndCap", 60, 0, 60);
1254     mNeutMultiplicity_mediumPt_EndCap =
1255         ibooker.book1D("NeutMultiplicity_mediumPt_EndCap", "NeutMultiplicity_mediumPt_EndCap", 60, 0, 60);
1256     mMuMultiplicity_mediumPt_EndCap =
1257         ibooker.book1D("MuMultiplicity_mediumPt_EndCap", "MuMultiplicity_mediumPt_EndCap", 10, 0, 10);
1258     mChMultiplicity_highPt_EndCap =
1259         ibooker.book1D("ChMultiplicity_highPt_EndCap", "ChMultiplicity_highPt_EndCap", 60, 0, 60);
1260     mNeutMultiplicity_highPt_EndCap =
1261         ibooker.book1D("NeutMultiplicity_highPt_EndCap", "NeutMultiplicity_highPt_EndCap", 60, 0, 60);
1262     mMuMultiplicity_highPt_EndCap =
1263         ibooker.book1D("MuMultiplicity_highPt_EndCap", "MuMultiplicity_highPt_EndCap", 10, 0, 10);
1264 
1265     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChMultiplicity_lowPt_EndCap",
1266                                                               mChMultiplicity_lowPt_EndCap));
1267     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_lowPt_EndCap",
1268                                                               mNeutMultiplicity_lowPt_EndCap));
1269     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuMultiplicity_lowPt_EndCap",
1270                                                               mMuMultiplicity_lowPt_EndCap));
1271     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChMultiplicity_mediumPt_EndCap",
1272                                                               mChMultiplicity_mediumPt_EndCap));
1273     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_mediumPt_EndCap",
1274                                                               mNeutMultiplicity_mediumPt_EndCap));
1275     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuMultiplicity_mediumPt_EndCap",
1276                                                               mMuMultiplicity_mediumPt_EndCap));
1277     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChMultiplicity_highPt_EndCap",
1278                                                               mChMultiplicity_highPt_EndCap));
1279     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_highPt_EndCap",
1280                                                               mNeutMultiplicity_highPt_EndCap));
1281     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuMultiplicity_highPt_EndCap",
1282                                                               mMuMultiplicity_highPt_EndCap));
1283 
1284     //forward monitoring
1285     //energy fraction
1286     mHFEFrac_lowPt_Forward = ibooker.book1D("HFEFrac_lowPt_Forward", "HFEFrac_lowPt_Forward", 70, -0.2, 1.2);
1287     mHFHFrac_lowPt_Forward = ibooker.book1D("HFHFrac_lowPt_Forward", "HFHFrac_lowPt_Forward", 70, -0.2, 1.2);
1288     mHFEFrac_mediumPt_Forward = ibooker.book1D("HFEFrac_mediumPt_Forward", "HFEFrac_mediumPt_Forward", 70, -0.2, 1.2);
1289     mHFHFrac_mediumPt_Forward = ibooker.book1D("HFHFrac_mediumPt_Forward", "HFHFrac_mediumPt_Forward", 70, -0.2, 1.2);
1290     mHFEFrac_highPt_Forward = ibooker.book1D("HFEFrac_highPt_Forward", "HFEFrac_highPt_Forward", 70, -0.2, 1.2);
1291     mHFHFrac_highPt_Forward = ibooker.book1D("HFHFrac_highPt_Forward", "HFHFrac_highPt_Forward", 70, -0.2, 1.2);
1292     map_of_MEs.insert(
1293         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFrac_lowPt_Forward", mHFHFrac_lowPt_Forward));
1294     map_of_MEs.insert(
1295         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEFrac_lowPt_Forward", mHFEFrac_lowPt_Forward));
1296     map_of_MEs.insert(
1297         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFrac_mediumPt_Forward", mHFHFrac_mediumPt_Forward));
1298     map_of_MEs.insert(
1299         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEFrac_mediumPt_Forward", mHFEFrac_mediumPt_Forward));
1300     map_of_MEs.insert(
1301         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFrac_highPt_Forward", mHFHFrac_highPt_Forward));
1302     map_of_MEs.insert(
1303         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEFrac_highPt_Forward", mHFEFrac_highPt_Forward));
1304 
1305     //energies
1306     mHFEEn_lowPt_Forward = ibooker.book1D("HFEEn_lowPt_Forward", "HFEEn_lowPt_Forward", ptBin_, 0., ptMax_);
1307     mHFHEn_lowPt_Forward = ibooker.book1D("HFHEn_lowPt_Forward", "HFHEn_lowPt_Forward", ptBin_, 0., 2.0 * ptMax_);
1308     mHFEEn_mediumPt_Forward =
1309         ibooker.book1D("HFEEn_mediumPt_Forward", "HFEEn_mediumPt_Forward", ptBin_, 0., 1.5 * ptMax_);
1310     mHFHEn_mediumPt_Forward =
1311         ibooker.book1D("HFHEn_mediumPt_Forward", "HFHEn_mediumPt_Forward", ptBin_, 0., 2.5 * ptMax_);
1312     mHFEEn_highPt_Forward = ibooker.book1D("HFEEn_highPt_Forward", "HFEEn_highPt_Forward", ptBin_, 0., 1.5 * ptMax_);
1313     mHFHEn_highPt_Forward = ibooker.book1D("HFHEn_highPt_Forward", "HFHEn_highPt_Forward", ptBin_, 0., 5.0 * ptMax_);
1314     map_of_MEs.insert(
1315         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHEn_lowPt_Forward", mHFHEn_lowPt_Forward));
1316     map_of_MEs.insert(
1317         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEEn_lowPt_Forward", mHFEEn_lowPt_Forward));
1318     map_of_MEs.insert(
1319         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHEn_mediumPt_Forward", mHFHEn_mediumPt_Forward));
1320     map_of_MEs.insert(
1321         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEEn_mediumPt_Forward", mHFEEn_mediumPt_Forward));
1322     map_of_MEs.insert(
1323         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHEn_highPt_Forward", mHFHEn_highPt_Forward));
1324     map_of_MEs.insert(
1325         std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEEn_highPt_Forward", mHFEEn_highPt_Forward));
1326     //multiplicities
1327     mNeutMultiplicity_lowPt_Forward =
1328         ibooker.book1D("NeutMultiplicity_lowPt_Forward", "NeutMultiplicity_lowPt_Forward", 60, 0, 60);
1329     mNeutMultiplicity_mediumPt_Forward =
1330         ibooker.book1D("NeutMultiplicity_mediumPt_Forward", "NeutMultiplicity_mediumPt_Forward", 60, 0, 60);
1331     mNeutMultiplicity_highPt_Forward =
1332         ibooker.book1D("NeutMultiplicity_highPt_Forward", "NeutMultiplicity_highPt_Forward", 60, 0, 60);
1333 
1334     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_lowPt_Forward",
1335                                                               mNeutMultiplicity_lowPt_Forward));
1336     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_mediumPt_Forward",
1337                                                               mNeutMultiplicity_mediumPt_Forward));
1338     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutMultiplicity_highPt_Forward",
1339                                                               mNeutMultiplicity_highPt_Forward));
1340 
1341     mChargedHadronEnergy = ibooker.book1D("ChargedHadronEnergy", "charged HAD energy", 50, 0, 100);
1342     mNeutralHadronEnergy = ibooker.book1D("NeutralHadronEnergy", "neutral HAD energy", 50, 0, 100);
1343     mChargedEmEnergy = ibooker.book1D("ChargedEmEnergy", "charged EM energy ", 50, 0, 100);
1344     mChargedMuEnergy = ibooker.book1D("ChargedMuEnergy", "charged Mu energy", 50, 0, 100);
1345     mNeutralEmEnergy = ibooker.book1D("NeutralEmEnergy", "neutral EM energy", 50, 0, 100);
1346     mChargedMultiplicity = ibooker.book1D("ChargedMultiplicity", "charged multiplicity ", 50, 0, 100);
1347     mNeutralMultiplicity = ibooker.book1D("NeutralMultiplicity", "neutral multiplicity", 50, 0, 100);
1348     mMuonMultiplicity = ibooker.book1D("MuonMultiplicity", "muon multiplicity", 50, 0, 100);
1349     map_of_MEs.insert(
1350         std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedHadronEnergy", mChargedHadronEnergy));
1351     map_of_MEs.insert(
1352         std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralHadronEnergy", mNeutralHadronEnergy));
1353     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedEmEnergy", mChargedEmEnergy));
1354     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedMuEnergy", mChargedMuEnergy));
1355     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralEmEnergy", mNeutralEmEnergy));
1356     map_of_MEs.insert(
1357         std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedMultiplicity", mChargedMultiplicity));
1358     map_of_MEs.insert(
1359         std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralMultiplicity", mNeutralMultiplicity));
1360     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuonMultiplicity", mMuonMultiplicity));
1361 
1362     // Book NPV profiles
1363     //----------------------------------------------------------------------------
1364     mChargedHadronEnergy_profile = ibooker.bookProfile(
1365         "ChargedHadronEnergy_profile", "charged HAD energy", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1366     mNeutralHadronEnergy_profile = ibooker.bookProfile(
1367         "NeutralHadronEnergy_profile", "neutral HAD energy", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1368     mChargedEmEnergy_profile =
1369         ibooker.bookProfile("ChargedEmEnergy_profile", "charged EM energy", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1370     mChargedMuEnergy_profile =
1371         ibooker.bookProfile("ChargedMuEnergy_profile", "charged Mu energy", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1372     mNeutralEmEnergy_profile =
1373         ibooker.bookProfile("NeutralEmEnergy_profile", "neutral EM energy", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1374     mChargedMultiplicity_profile = ibooker.bookProfile(
1375         "ChargedMultiplicity_profile", "charged multiplicity", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1376     mNeutralMultiplicity_profile = ibooker.bookProfile(
1377         "NeutralMultiplicity_profile", "neutral multiplicity", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1378     mMuonMultiplicity_profile =
1379         ibooker.bookProfile("MuonMultiplicity_profile", "muon multiplicity", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1380 
1381     // Set NPV profiles x-axis title
1382     //----------------------------------------------------------------------------
1383     mChargedHadronEnergy_profile->setAxisTitle("nvtx", 1);
1384     mNeutralHadronEnergy_profile->setAxisTitle("nvtx", 1);
1385     mChargedEmEnergy_profile->setAxisTitle("nvtx", 1);
1386     mChargedMuEnergy_profile->setAxisTitle("nvtx", 1);
1387     mNeutralEmEnergy_profile->setAxisTitle("nvtx", 1);
1388     mChargedMultiplicity_profile->setAxisTitle("nvtx", 1);
1389     mNeutralMultiplicity_profile->setAxisTitle("nvtx", 1);
1390     mMuonMultiplicity_profile->setAxisTitle("nvtx", 1);
1391 
1392     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedHadronEnergy_profile",
1393                                                               mChargedHadronEnergy_profile));
1394     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralHadronEnergy_profile",
1395                                                               mNeutralHadronEnergy_profile));
1396     map_of_MEs.insert(
1397         std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedEmEnergy_profile", mChargedEmEnergy_profile));
1398     map_of_MEs.insert(
1399         std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedMuEnergy_profile", mChargedMuEnergy_profile));
1400     map_of_MEs.insert(
1401         std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralEmEnergy_profile", mNeutralEmEnergy_profile));
1402     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedMultiplicity_profile",
1403                                                               mChargedMultiplicity_profile));
1404     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralMultiplicity_profile",
1405                                                               mNeutralMultiplicity_profile));
1406     map_of_MEs.insert(
1407         std::pair<std::string, MonitorElement*>(DirName + "/" + "MuonMultiplicity_profile", mMuonMultiplicity_profile));
1408 
1409     mNeutralFraction = ibooker.book1D("NeutralConstituentsFraction", "Neutral Constituents Fraction", 100, 0, 1);
1410     map_of_MEs.insert(
1411         std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralConstituentsFraction", mNeutralFraction));
1412   }
1413 
1414   //
1415   if (isMiniAODJet_) {
1416     mMass_Barrel = ibooker.book1D("JetMass_Barrel", "JetMass_Barrel", 50, 0, 250);
1417     mMass_EndCap = ibooker.book1D("JetMass_EndCap", "JetMass_EndCap", 50, 0, 250);
1418     mMass_Forward = ibooker.book1D("JetMass_Forward", "JetMass_Forward", 50, 0, 250);
1419 
1420     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_Barrel", mMass_Barrel));
1421     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_EndCap", mMass_EndCap));
1422     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetMass_Forward", mMass_Forward));
1423     if (!filljetsubstruc_) {
1424       //done only for MINIAOD
1425       mPt_CaloJet = ibooker.book1D("Pt_CaloJet", "Pt_CaloJet", ptBin_, 10, ptMax_);
1426       mEMF_CaloJet = ibooker.book1D("EMF_CaloJet", "EMF_CaloJet", 52, -0.02, 1.02);
1427       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_CaloJet", mPt_CaloJet));
1428       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EMF_CaloJet", mEMF_CaloJet));
1429     }
1430     if (filljetsubstruc_) {
1431       //miniaod specific variables, especially for substructure
1432       mSoftDropMass = ibooker.book1D("SoftDropMass", "SoftDropMass", 50, 0, 250);
1433       mPrunedMass = ibooker.book1D("PrunedMass", "PrunedMass", 50, 0, 250);
1434       mTrimmedMass = ibooker.book1D("TrimmedMass", "TrimmedMass", 50, 0, 250);
1435       mFilteredMass = ibooker.book1D("FilteredMass", "FilteredMass", 50, 0, 250);
1436       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SoftDropMass", mSoftDropMass));
1437       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PrunedMass", mPrunedMass));
1438       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "TrimmedMass", mTrimmedMass));
1439       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "FilteredMass", mFilteredMass));
1440 
1441       mtau2_over_tau1 = ibooker.book1D("tau2_over_tau1", "tau2_over_tau1", 50, 0, 1);
1442       mtau3_over_tau2 = ibooker.book1D("tau3_over_tau2", "tau3_over_tau2", 50, 0, 1);
1443       mCATopTag_topMass = ibooker.book1D("CATopTag_topMass", "CATopTag_topMass", 50, 50, 250);
1444       mCATopTag_minMass = ibooker.book1D("CATopTag_minMass", "CATopTag_minMass", 50, 0, 250);
1445       mCATopTag_nSubJets = ibooker.book1D("nSubJets_CATopTag", "nSubJets_CATopTag", 10, 0, 10);
1446       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "tau2_over_tau1", mtau2_over_tau1));
1447       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "tau3_over_tau2", mtau3_over_tau2));
1448       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CATopTag_topMass", mCATopTag_topMass));
1449       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CATopTag_minMass", mCATopTag_minMass));
1450       map_of_MEs.insert(
1451           std::pair<std::string, MonitorElement*>(DirName + "/" + "nSubJets_CATopTag", mCATopTag_nSubJets));
1452 
1453       mnSubJetsCMSTopTag = ibooker.book1D("nSubJets_CMSTopTag", "nSubJets_CMSTopTag", 10, 0, 10);
1454       mSubJet1_CMSTopTag_pt = ibooker.book1D("SubJet1_CMSTopTag_pt", "SubJet1_CMSTopTag_pt", ptBin_, ptMin_, ptMax_);
1455       mSubJet1_CMSTopTag_eta =
1456           ibooker.book1D("SubJet1_CMSTopTag_eta", "SubJet1_CMSTopTag_eta", etaBin_, etaMin_, etaMax_);
1457       mSubJet1_CMSTopTag_phi =
1458           ibooker.book1D("SubJet1_CMSTopTag_phi", "SubJet1_CMSTopTag_phi", phiBin_, phiMin_, phiMax_);
1459       mSubJet1_CMSTopTag_mass = ibooker.book1D("SubJet1_CMSTopTag_mass", "SubJet1_CMSTopTag_mass", 50, 0, 250);
1460       mSubJet2_CMSTopTag_pt = ibooker.book1D("SubJet2_CMSTopTag_pt", "SubJet2_CMSTopTag_pt", ptBin_, ptMin_, ptMax_);
1461       mSubJet2_CMSTopTag_eta =
1462           ibooker.book1D("SubJet2_CMSTopTag_eta", "SubJet2_CMSTopTag_eta", etaBin_, etaMin_, etaMax_);
1463       mSubJet2_CMSTopTag_phi =
1464           ibooker.book1D("SubJet2_CMSTopTag_phi", "SubJet2_CMSTopTag_phi", phiBin_, phiMin_, phiMax_);
1465       mSubJet2_CMSTopTag_mass = ibooker.book1D("SubJet2_CMSTopTag_mass", "SubJet2_CMSTopTag_mass", 50, 0, 250);
1466       mSubJet3_CMSTopTag_pt = ibooker.book1D("SubJet3_CMSTopTag_pt", "SubJet3_CMSTopTag_pt", ptBin_, ptMin_, ptMax_);
1467       mSubJet3_CMSTopTag_eta =
1468           ibooker.book1D("SubJet3_CMSTopTag_eta", "SubJet3_CMSTopTag_eta", etaBin_, etaMin_, etaMax_);
1469       mSubJet3_CMSTopTag_phi =
1470           ibooker.book1D("SubJet3_CMSTopTag_phi", "SubJet3_CMSTopTag_phi", phiBin_, phiMin_, phiMax_);
1471       mSubJet3_CMSTopTag_mass = ibooker.book1D("SubJet3_CMSTopTag_mass", "SubJet3_CMSTopTag_mass", 50, 0, 250);
1472       mSubJet4_CMSTopTag_pt = ibooker.book1D("SubJet4_CMSTopTag_pt", "SubJet4_CMSTopTag_pt", ptBin_, ptMin_, ptMax_);
1473       mSubJet4_CMSTopTag_eta =
1474           ibooker.book1D("SubJet4_CMSTopTag_eta", "SubJet4_CMSTopTag_eta", etaBin_, etaMin_, etaMax_);
1475       mSubJet4_CMSTopTag_phi =
1476           ibooker.book1D("SubJet4_CMSTopTag_phi", "SubJet4_CMSTopTag_phi", phiBin_, phiMin_, phiMax_);
1477       mSubJet4_CMSTopTag_mass = ibooker.book1D("SubJet4_CMSTopTag_mass", "SubJet4_CMSTopTag_mass", 50, 0, 250);
1478 
1479       map_of_MEs.insert(
1480           std::pair<std::string, MonitorElement*>(DirName + "/" + "nSubJets_CMSTopTag", mnSubJetsCMSTopTag));
1481       map_of_MEs.insert(
1482           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_CMSTopTag_pt", mSubJet1_CMSTopTag_pt));
1483       map_of_MEs.insert(
1484           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_CMSTopTag_eta", mSubJet1_CMSTopTag_eta));
1485       map_of_MEs.insert(
1486           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_CMSTopTag_phi", mSubJet1_CMSTopTag_phi));
1487       map_of_MEs.insert(
1488           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_CMSTopTag_mass", mSubJet1_CMSTopTag_mass));
1489       map_of_MEs.insert(
1490           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_CMSTopTag_pt", mSubJet2_CMSTopTag_pt));
1491       map_of_MEs.insert(
1492           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_CMSTopTag_eta", mSubJet2_CMSTopTag_eta));
1493       map_of_MEs.insert(
1494           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_CMSTopTag_phi", mSubJet2_CMSTopTag_phi));
1495       map_of_MEs.insert(
1496           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_CMSTopTag_mass", mSubJet2_CMSTopTag_mass));
1497       map_of_MEs.insert(
1498           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet3_CMSTopTag_pt", mSubJet3_CMSTopTag_pt));
1499       map_of_MEs.insert(
1500           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet3_CMSTopTag_eta", mSubJet3_CMSTopTag_eta));
1501       map_of_MEs.insert(
1502           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet3_CMSTopTag_phi", mSubJet3_CMSTopTag_phi));
1503       map_of_MEs.insert(
1504           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet3_CMSTopTag_mass", mSubJet3_CMSTopTag_mass));
1505       map_of_MEs.insert(
1506           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet4_CMSTopTag_pt", mSubJet4_CMSTopTag_pt));
1507       map_of_MEs.insert(
1508           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet4_CMSTopTag_eta", mSubJet4_CMSTopTag_eta));
1509       map_of_MEs.insert(
1510           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet4_CMSTopTag_phi", mSubJet4_CMSTopTag_phi));
1511       map_of_MEs.insert(
1512           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet4_CMSTopTag_mass", mSubJet4_CMSTopTag_mass));
1513 
1514       mnSubJetsSoftDrop = ibooker.book1D("nSubJets_SoftDrop", "nSubJets_SoftDrop", 10, 0, 10);
1515       mSubJet1_SoftDrop_pt = ibooker.book1D("SubJet1_SoftDrop_pt", "SubJet1_SoftDrop_pt", ptBin_, ptMin_, ptMax_);
1516       mSubJet1_SoftDrop_eta = ibooker.book1D("SubJet1_SoftDrop_eta", "SubJet1_SoftDrop_eta", etaBin_, etaMin_, etaMax_);
1517       mSubJet1_SoftDrop_phi = ibooker.book1D("SubJet1_SoftDrop_phi", "SubJet1_SoftDrop_phi", phiBin_, phiMin_, phiMax_);
1518       mSubJet1_SoftDrop_mass = ibooker.book1D("SubJet1_SoftDrop_mass", "SubJet1_SoftDrop_mass", 50, 0, 250);
1519       mSubJet2_SoftDrop_pt = ibooker.book1D("SubJet2_SoftDrop_pt", "SubJet2_SoftDrop_pt", ptBin_, ptMin_, ptMax_);
1520       mSubJet2_SoftDrop_eta = ibooker.book1D("SubJet2_SoftDrop_eta", "SubJet2_SoftDrop_eta", etaBin_, etaMin_, etaMax_);
1521       mSubJet2_SoftDrop_phi = ibooker.book1D("SubJet2_SoftDrop_phi", "SubJet2_SoftDrop_phi", phiBin_, phiMin_, phiMax_);
1522       mSubJet2_SoftDrop_mass = ibooker.book1D("SubJet2_SoftDrop_mass", "SubJet2_SoftDrop_mass", 50, 0, 250);
1523 
1524       map_of_MEs.insert(
1525           std::pair<std::string, MonitorElement*>(DirName + "/" + "nSubJets_SoftDrop", mnSubJetsSoftDrop));
1526       map_of_MEs.insert(
1527           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_SoftDrop_pt", mSubJet1_SoftDrop_pt));
1528       map_of_MEs.insert(
1529           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_SoftDrop_eta", mSubJet1_SoftDrop_eta));
1530       map_of_MEs.insert(
1531           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_SoftDrop_phi", mSubJet1_SoftDrop_phi));
1532       map_of_MEs.insert(
1533           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_SoftDrop_mass", mSubJet1_SoftDrop_mass));
1534       map_of_MEs.insert(
1535           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_SoftDrop_pt", mSubJet2_SoftDrop_pt));
1536       map_of_MEs.insert(
1537           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_SoftDrop_eta", mSubJet2_SoftDrop_eta));
1538       map_of_MEs.insert(
1539           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_SoftDrop_phi", mSubJet2_SoftDrop_phi));
1540       map_of_MEs.insert(
1541           std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_SoftDrop_mass", mSubJet2_SoftDrop_mass));
1542       //miniaod specific variables, especially for substructure for boosted stuff
1543       mSoftDropMass_boosted = ibooker.book1D("SoftDropMass_boosted", "SoftDropMass_boosted", 50, 0, 250);
1544       mPrunedMass_boosted = ibooker.book1D("PrunedMass_boosted", "PrunedMass_boosted", 50, 0, 250);
1545       mTrimmedMass_boosted = ibooker.book1D("TrimmedMass_boosted", "TrimmedMass_boosted", 50, 0, 250);
1546       mFilteredMass_boosted = ibooker.book1D("FilteredMass_boosted", "FilteredMass_boosted", 50, 0, 250);
1547       map_of_MEs.insert(
1548           std::pair<std::string, MonitorElement*>(DirName + "/" + "SoftDropMass_boosted", mSoftDropMass_boosted));
1549       map_of_MEs.insert(
1550           std::pair<std::string, MonitorElement*>(DirName + "/" + "PrunedMass_boosted", mPrunedMass_boosted));
1551       map_of_MEs.insert(
1552           std::pair<std::string, MonitorElement*>(DirName + "/" + "TrimmedMass_boosted", mTrimmedMass_boosted));
1553       map_of_MEs.insert(
1554           std::pair<std::string, MonitorElement*>(DirName + "/" + "FilteredMass_boosted", mFilteredMass_boosted));
1555 
1556       mtau2_over_tau1_boosted = ibooker.book1D("tau2_over_tau1_boosted", "tau2_over_tau1_boosted", 50, 0, 1);
1557       mtau3_over_tau2_boosted = ibooker.book1D("tau3_over_tau2_boosted", "tau3_over_tau2_boosted", 50, 0, 1);
1558       mCATopTag_topMass_boosted = ibooker.book1D("CATopTag_topMass_boosted", "CATopTag_topMass_boosted", 50, 50, 250);
1559       mCATopTag_minMass_boosted = ibooker.book1D("CATopTag_minMass_boosted", "CATopTag_minMass_boosted", 50, 0, 250);
1560       mCATopTag_nSubJets_boosted = ibooker.book1D("nSubJets_CATopTag_boosted", "nSubJets_CATopTag_boosted", 10, 0, 10);
1561       map_of_MEs.insert(
1562           std::pair<std::string, MonitorElement*>(DirName + "/" + "tau2_over_tau1_boosted", mtau2_over_tau1_boosted));
1563       map_of_MEs.insert(
1564           std::pair<std::string, MonitorElement*>(DirName + "/" + "tau3_over_tau2_boosted", mtau3_over_tau2_boosted));
1565       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CATopTag_topMass_boosted",
1566                                                                 mCATopTag_topMass_boosted));
1567       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CATopTag_minMass_boosted",
1568                                                                 mCATopTag_minMass_boosted));
1569       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "nSubJets_CATopTag_boosted",
1570                                                                 mCATopTag_nSubJets_boosted));
1571 
1572       mnSubJetsCMSTopTag_boosted =
1573           ibooker.book1D("nSubJets_CMSTopTag_boosted", "nSubJets_CMSTopTag_boosted", 10, 0, 10);
1574       mSubJet1_CMSTopTag_pt_boosted =
1575           ibooker.book1D("SubJet1_CMSTopTag_pt_boosted", "SubJet1_CMSTopTag_pt_boosted", ptBin_, ptMin_, 2 * ptMax_);
1576       mSubJet1_CMSTopTag_eta_boosted =
1577           ibooker.book1D("SubJet1_CMSTopTag_eta_boosted", "SubJet1_CMSTopTag_eta_boosted", etaBin_, etaMin_, etaMax_);
1578       mSubJet1_CMSTopTag_phi_boosted =
1579           ibooker.book1D("SubJet1_CMSTopTag_phi_boosted", "SubJet1_CMSTopTag_phi_boosted", phiBin_, phiMin_, phiMax_);
1580       mSubJet1_CMSTopTag_mass_boosted =
1581           ibooker.book1D("SubJet1_CMSTopTag_mass_boosted", "SubJet1_CMSTopTag_mass_boosted", 50, 0, 250);
1582       mSubJet2_CMSTopTag_pt_boosted =
1583           ibooker.book1D("SubJet2_CMSTopTag_pt_boosted", "SubJet2_CMSTopTag_pt_boosted", ptBin_, ptMin_, 2 * ptMax_);
1584       mSubJet2_CMSTopTag_eta_boosted =
1585           ibooker.book1D("SubJet2_CMSTopTag_eta_boosted", "SubJet2_CMSTopTag_eta_boosted", etaBin_, etaMin_, etaMax_);
1586       mSubJet2_CMSTopTag_phi_boosted =
1587           ibooker.book1D("SubJet2_CMSTopTag_phi_boosted", "SubJet2_CMSTopTag_phi_boosted", phiBin_, phiMin_, phiMax_);
1588       mSubJet2_CMSTopTag_mass_boosted =
1589           ibooker.book1D("SubJet2_CMSTopTag_mass_boosted", "SubJet2_CMSTopTag_mass_boosted", 50, 0, 250);
1590       mSubJet3_CMSTopTag_pt_boosted =
1591           ibooker.book1D("SubJet3_CMSTopTag_pt_boosted", "SubJet3_CMSTopTag_pt_boosted", ptBin_, ptMin_, ptMax_);
1592       mSubJet3_CMSTopTag_eta_boosted =
1593           ibooker.book1D("SubJet3_CMSTopTag_eta_boosted", "SubJet3_CMSTopTag_eta_boosted", etaBin_, etaMin_, etaMax_);
1594       mSubJet3_CMSTopTag_phi_boosted =
1595           ibooker.book1D("SubJet3_CMSTopTag_phi_boosted", "SubJet3_CMSTopTag_phi_boosted", phiBin_, phiMin_, phiMax_);
1596       mSubJet3_CMSTopTag_mass_boosted =
1597           ibooker.book1D("SubJet3_CMSTopTag_mass_boosted", "SubJet3_CMSTopTag_mass_boosted", 50, 0, 250);
1598       mSubJet4_CMSTopTag_pt_boosted =
1599           ibooker.book1D("SubJet4_CMSTopTag_pt_boosted", "SubJet4_CMSTopTag_pt_boosted", ptBin_, ptMin_, ptMax_);
1600       mSubJet4_CMSTopTag_eta_boosted =
1601           ibooker.book1D("SubJet4_CMSTopTag_eta_boosted", "SubJet4_CMSTopTag_eta_boosted", etaBin_, etaMin_, etaMax_);
1602       mSubJet4_CMSTopTag_phi_boosted =
1603           ibooker.book1D("SubJet4_CMSTopTag_phi_boosted", "SubJet4_CMSTopTag_phi_boosted", phiBin_, phiMin_, phiMax_);
1604       mSubJet4_CMSTopTag_mass_boosted =
1605           ibooker.book1D("SubJet4_CMSTopTag_mass_boosted", "SubJet4_CMSTopTag_mass_boosted", 50, 0, 250);
1606 
1607       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "nSubJets_CMSTopTag_boosted",
1608                                                                 mnSubJetsCMSTopTag_boosted));
1609       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_CMSTopTag_pt_boosted",
1610                                                                 mSubJet1_CMSTopTag_pt_boosted));
1611       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_CMSTopTag_eta_boosted",
1612                                                                 mSubJet1_CMSTopTag_eta_boosted));
1613       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_CMSTopTag_phi_boosted",
1614                                                                 mSubJet1_CMSTopTag_phi_boosted));
1615       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_CMSTopTag_mass_boosted",
1616                                                                 mSubJet1_CMSTopTag_mass_boosted));
1617       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_CMSTopTag_pt_boosted",
1618                                                                 mSubJet2_CMSTopTag_pt_boosted));
1619       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_CMSTopTag_eta_boosted",
1620                                                                 mSubJet2_CMSTopTag_eta_boosted));
1621       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_CMSTopTag_phi_boosted",
1622                                                                 mSubJet2_CMSTopTag_phi_boosted));
1623       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_CMSTopTag_mass_boosted",
1624                                                                 mSubJet2_CMSTopTag_mass_boosted));
1625       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet3_CMSTopTag_pt_boosted",
1626                                                                 mSubJet3_CMSTopTag_pt_boosted));
1627       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet3_CMSTopTag_eta_boosted",
1628                                                                 mSubJet3_CMSTopTag_eta_boosted));
1629       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet3_CMSTopTag_phi_boosted",
1630                                                                 mSubJet3_CMSTopTag_phi_boosted));
1631       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet3_CMSTopTag_mass_boosted",
1632                                                                 mSubJet3_CMSTopTag_mass_boosted));
1633       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet4_CMSTopTag_pt_boosted",
1634                                                                 mSubJet4_CMSTopTag_pt_boosted));
1635       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet4_CMSTopTag_eta_boosted",
1636                                                                 mSubJet4_CMSTopTag_eta_boosted));
1637       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet4_CMSTopTag_phi_boosted",
1638                                                                 mSubJet4_CMSTopTag_phi_boosted));
1639       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet4_CMSTopTag_mass_boosted",
1640                                                                 mSubJet4_CMSTopTag_mass_boosted));
1641 
1642       mnSubJetsSoftDrop_boosted = ibooker.book1D("nSubJets_SoftDrop_boosted", "nSubJets_SoftDrop_boosted", 10, 0, 10);
1643       mSubJet1_SoftDrop_pt_boosted =
1644           ibooker.book1D("SubJet1_SoftDrop_pt_boosted", "SubJet1_SoftDrop_pt_boosted", ptBin_, ptMin_, 2 * ptMax_);
1645       mSubJet1_SoftDrop_eta_boosted =
1646           ibooker.book1D("SubJet1_SoftDrop_eta_boosted", "SubJet1_SoftDrop_eta_boosted", etaBin_, etaMin_, etaMax_);
1647       mSubJet1_SoftDrop_phi_boosted =
1648           ibooker.book1D("SubJet1_SoftDrop_phi_boosted", "SubJet1_SoftDrop_phi_boosted", phiBin_, phiMin_, phiMax_);
1649       mSubJet1_SoftDrop_mass_boosted =
1650           ibooker.book1D("SubJet1_SoftDrop_mass_boosted", "SubJet1_SoftDrop_mass_boosted", 50, 0, 250);
1651       mSubJet2_SoftDrop_pt_boosted =
1652           ibooker.book1D("SubJet2_SoftDrop_pt_boosted", "SubJet2_SoftDrop_pt_boosted", ptBin_, ptMin_, 2 * ptMax_);
1653       mSubJet2_SoftDrop_eta_boosted =
1654           ibooker.book1D("SubJet2_SoftDrop_eta_boosted", "SubJet2_SoftDrop_eta_boosted", etaBin_, etaMin_, etaMax_);
1655       mSubJet2_SoftDrop_phi_boosted =
1656           ibooker.book1D("SubJet2_SoftDrop_phi_boosted", "SubJet2_SoftDrop_phi_boosted", phiBin_, phiMin_, phiMax_);
1657       mSubJet2_SoftDrop_mass_boosted =
1658           ibooker.book1D("SubJet2_SoftDrop_mass_boosted", "SubJet2_SoftDrop_mass_boosted", 50, 0, 250);
1659 
1660       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "nSubJets_SoftDrop_boosted",
1661                                                                 mnSubJetsSoftDrop_boosted));
1662       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_SoftDrop_pt_boosted",
1663                                                                 mSubJet1_SoftDrop_pt_boosted));
1664       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_SoftDrop_eta_boosted",
1665                                                                 mSubJet1_SoftDrop_eta_boosted));
1666       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_SoftDrop_phi_boosted",
1667                                                                 mSubJet1_SoftDrop_phi_boosted));
1668       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet1_SoftDrop_mass_boosted",
1669                                                                 mSubJet1_SoftDrop_mass_boosted));
1670       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_SoftDrop_pt_boosted",
1671                                                                 mSubJet2_SoftDrop_pt_boosted));
1672       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_SoftDrop_eta_boosted",
1673                                                                 mSubJet2_SoftDrop_eta_boosted));
1674       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_SoftDrop_phi_boosted",
1675                                                                 mSubJet2_SoftDrop_phi_boosted));
1676       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "SubJet2_SoftDrop_mass_boosted",
1677                                                                 mSubJet2_SoftDrop_mass_boosted));
1678     }
1679   }
1680 
1681   if (jetCleaningFlag_) {
1682     //so far we have only one additional selection -> implement to make it expandable
1683     folderNames_.push_back("DiJet");
1684     if (isPFJet_) {  //check for now only for PFJets
1685       folderNames_.push_back("ZJets");
1686     }
1687     //book for each of these selection default histograms
1688     for (std::vector<std::string>::const_iterator ic = folderNames_.begin(); ic != folderNames_.end(); ic++) {
1689       bookMESetSelection(DirName + "/" + *ic, ibooker);
1690     }
1691   }
1692 
1693   ibooker.setCurrentFolder("JetMET");
1694   cleanupME = ibooker.book1D("cleanup", "cleanup", 10, 0., 10.);
1695   cleanupME->setBinLabel(1, "Primary Vertex");
1696   cleanupME->setBinLabel(2, "DCS::Pixel");
1697   cleanupME->setBinLabel(3, "DCS::SiStrip");
1698   cleanupME->setBinLabel(4, "DCS::ECAL");
1699   cleanupME->setBinLabel(5, "DCS::ES");
1700   cleanupME->setBinLabel(6, "DCS::HBHE");
1701   cleanupME->setBinLabel(7, "DCS::HF");
1702   cleanupME->setBinLabel(8, "DCS::HO");
1703   cleanupME->setBinLabel(9, "DCS::Muon");
1704   map_of_MEs.insert(std::pair<std::string, MonitorElement*>("JetMET/cleanup", cleanupME));
1705 
1706   verticesME = ibooker.book1D("vertices", "vertices", 100, 0, 100);
1707   map_of_MEs.insert(std::pair<std::string, MonitorElement*>("JetMET/vertices", verticesME));
1708 }
1709 
1710 void JetAnalyzer::bookMESetSelection(std::string DirName, DQMStore::IBooker& ibooker) {
1711   ibooker.setCurrentFolder(DirName);
1712   // Generic jet parameters
1713   mPt = ibooker.book1D("Pt", "pt", ptBin_, ptMin_, ptMax_);
1714   mEta = ibooker.book1D("Eta", "eta", etaBin_, etaMin_, etaMax_);
1715   mPhi = ibooker.book1D("Phi", "phi", phiBin_, phiMin_, phiMax_);
1716   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt", mPt));
1717   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta", mEta));
1718   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi", mPhi));
1719   //if(!isJPTJet_){
1720   mConstituents = ibooker.book1D("Constituents", "# of constituents", 50, 0, 100);
1721   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Constituents", mConstituents));
1722   //}
1723   mJetEnergyCorr = ibooker.book1D("JetEnergyCorr", "jet energy correction factor", 50, 0.0, 3.0);
1724   mJetEnergyCorrVSEta = ibooker.bookProfile(
1725       "JetEnergyCorrVSEta", "jet energy correction factor VS eta", etaBin_, etaMin_, etaMax_, 0.0, 3.0);
1726   mJetEnergyCorrVSPt =
1727       ibooker.bookProfile("JetEnergyCorrVSPt", "jet energy correction factor VS pt", ptBin_, ptMin_, ptMax_, 0.0, 3.0);
1728 
1729   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetEnergyCorr", mJetEnergyCorr));
1730   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetEnergyCorrVSEta", mJetEnergyCorrVSEta));
1731   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JetEnergyCorrVSPt", mJetEnergyCorrVSPt));
1732 
1733   //fill for Dijets: concentrates on gluon jets -> fill leading two jets
1734   //fill for ZJets: concentrates on quark jets -> fill leading jet
1735   if (fill_CHS_histos && isPFJet_) {
1736     mAxis2_lowPt_Barrel = ibooker.book1D("qg_Axis2_lowPt_Barrel", "qg Axis2 #sigma_{2} lowPt Barrel", 50, 0., 0.20);
1737     mpTD_lowPt_Barrel =
1738         ibooker.book1D("qg_pTD_lowPt_Barrel", "qg fragmentation function p_{T}^{D} lowPt Barrel", 50, 0.15, 1.05);
1739     mMultiplicityQG_lowPt_Barrel =
1740         ibooker.book1D("qg_multiplicity_lowPt_Barrel", "qg multiplicity lowPt Barrel", 50, 0, 50);
1741     mqgLikelihood_lowPt_Barrel =
1742         ibooker.book1D("qg_Likelihood_lowPt_Barrel", "qg likelihood lowPt Barrel", 50, -1.1, 1.1);
1743     mAxis2_lowPt_EndCap = ibooker.book1D("qg_Axis2_lowPt_EndCap", "qg Axis2 #sigma_{2} lowPt EndCap", 50, 0., 0.20);
1744     mpTD_lowPt_EndCap =
1745         ibooker.book1D("qg_pTD_lowPt_EndCap", "qg fragmentation function p_{T}^{D} lowPt EndCap", 50, 0.15, 1.05);
1746     mMultiplicityQG_lowPt_EndCap =
1747         ibooker.book1D("qg_multiplicity_lowPt_EndCap", "qg multiplicity lowPt EndCap", 50, 0, 100);
1748     mqgLikelihood_lowPt_EndCap =
1749         ibooker.book1D("qg_Likelihood_lowPt_EndCap", "qg likelihood lowPt EndCap", 50, -1.1, 1.1);
1750     mAxis2_lowPt_Forward = ibooker.book1D("qg_Axis2_lowPt_Forward", "qg Axis2 #sigma_{2} lowPt Forward", 50, 0., 0.20);
1751     mpTD_lowPt_Forward =
1752         ibooker.book1D("qg_pTD_lowPt_Forward", "qg fragmentation function p_{T}^{D} lowPt Forward", 50, 0.15, 1.05);
1753     mMultiplicityQG_lowPt_Forward =
1754         ibooker.book1D("qg_multiplicity_lowPt_Forward", "qg multiplicity lowPt Forward", 50, 0, 100);
1755     mqgLikelihood_lowPt_Forward =
1756         ibooker.book1D("qg_Likelihood_lowPt_Forward", "qg likelihood lowPt Forward", 50, -1.1, 1.1);
1757 
1758     map_of_MEs.insert(
1759         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_lowPt_Barrel", mAxis2_lowPt_Barrel));
1760     map_of_MEs.insert(
1761         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_lowPt_Barrel", mpTD_lowPt_Barrel));
1762     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_lowPt_Barrel",
1763                                                               mMultiplicityQG_lowPt_Barrel));
1764     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_lowPt_Barrel",
1765                                                               mqgLikelihood_lowPt_Barrel));
1766     map_of_MEs.insert(
1767         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_lowPt_EndCap", mAxis2_lowPt_EndCap));
1768     map_of_MEs.insert(
1769         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_lowPt_EndCap", mpTD_lowPt_EndCap));
1770     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_lowPt_EndCap",
1771                                                               mMultiplicityQG_lowPt_EndCap));
1772     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_lowPt_EndCap",
1773                                                               mqgLikelihood_lowPt_EndCap));
1774     map_of_MEs.insert(
1775         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_lowPt_Forward", mAxis2_lowPt_Forward));
1776     map_of_MEs.insert(
1777         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_lowPt_Forward", mpTD_lowPt_Forward));
1778     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_lowPt_Forward",
1779                                                               mMultiplicityQG_lowPt_Forward));
1780     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_lowPt_Forward",
1781                                                               mqgLikelihood_lowPt_Forward));
1782 
1783     mAxis2_mediumPt_Barrel =
1784         ibooker.book1D("qg_Axis2_mediumPt_Barrel", "qg Axis2 #sigma_{2} mediumPt Barrel", 50, 0., 0.20);
1785     mpTD_mediumPt_Barrel =
1786         ibooker.book1D("qg_pTD_mediumPt_Barrel", "qg fragmentation function p_{T}^{D} mediumPt Barrel", 50, 0.15, 1.05);
1787     mMultiplicityQG_mediumPt_Barrel =
1788         ibooker.book1D("qg_multiplicity_mediumPt_Barrel", "qg multiplicity mediumPt Barrel", 50, 0, 100);
1789     mqgLikelihood_mediumPt_Barrel =
1790         ibooker.book1D("qg_Likelihood_mediumPt_Barrel", "qg likelihood mediumPt Barrel", 50, -1.1, 1.1);
1791     mAxis2_mediumPt_EndCap =
1792         ibooker.book1D("qg_Axis2_mediumPt_EndCap", "qg Axis2 #sigma_{2} mediumPt EndCap", 50, 0., 0.20);
1793     mpTD_mediumPt_EndCap =
1794         ibooker.book1D("qg_pTD_mediumPt_EndCap", "qg fragmentation function p_{T}^{D} mediumPt EndCap", 50, 0.15, 1.05);
1795     mMultiplicityQG_mediumPt_EndCap =
1796         ibooker.book1D("qg_multiplicity_mediumPt_EndCap", "qg multiplicity mediumPt EndCap", 50, 0, 100);
1797     mqgLikelihood_mediumPt_EndCap =
1798         ibooker.book1D("qg_Likelihood_mediumPt_EndCap", "qg likelihood mediumPt EndCap", 50, -1.1, 1.1);
1799     mAxis2_mediumPt_Forward =
1800         ibooker.book1D("qg_Axis2_mediumPt_Forward", "qg Axis2 #sigma_{2} mediumPt Forward", 50, 0., 0.20);
1801     mpTD_mediumPt_Forward = ibooker.book1D(
1802         "qg_pTD_mediumPt_Forward", "qg fragmentation function p_{T}^{D} mediumPt Forward", 50, 0.15, 1.05);
1803     mMultiplicityQG_mediumPt_Forward =
1804         ibooker.book1D("qg_multiplicity_mediumPt_Forward", "qg multiplicity mediumPt Forward", 50, 0, 100);
1805     mqgLikelihood_mediumPt_Forward =
1806         ibooker.book1D("qg_Likelihood_mediumPt_Forward", "qg likelihood mediumPt Forward", 50, -1.1, 1.1);
1807 
1808     map_of_MEs.insert(
1809         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_mediumPt_Barrel", mAxis2_mediumPt_Barrel));
1810     map_of_MEs.insert(
1811         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_mediumPt_Barrel", mpTD_mediumPt_Barrel));
1812     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_mediumPt_Barrel",
1813                                                               mMultiplicityQG_mediumPt_Barrel));
1814     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_mediumPt_Barrel",
1815                                                               mqgLikelihood_mediumPt_Barrel));
1816     map_of_MEs.insert(
1817         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_mediumPt_EndCap", mAxis2_mediumPt_EndCap));
1818     map_of_MEs.insert(
1819         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_mediumPt_EndCap", mpTD_mediumPt_EndCap));
1820     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_mediumPt_EndCap",
1821                                                               mMultiplicityQG_mediumPt_EndCap));
1822     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_mediumPt_EndCap",
1823                                                               mqgLikelihood_mediumPt_EndCap));
1824     map_of_MEs.insert(
1825         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_mediumPt_Forward", mAxis2_mediumPt_Forward));
1826     map_of_MEs.insert(
1827         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_mediumPt_Forward", mpTD_mediumPt_Forward));
1828     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_mediumPt_Forward",
1829                                                               mMultiplicityQG_mediumPt_Forward));
1830     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_mediumPt_Forward",
1831                                                               mqgLikelihood_mediumPt_Forward));
1832 
1833     mAxis2_highPt_Barrel = ibooker.book1D("qg_Axis2_highPt_Barrel", "qg Axis2 #sigma_{2} highPt Barrel", 50, 0., 0.20);
1834     mpTD_highPt_Barrel =
1835         ibooker.book1D("qg_pTD_highPt_Barrel", "qg fragmentation function p_{T}^{D} highPt Barrel", 50, 0.15, 1.05);
1836     mMultiplicityQG_highPt_Barrel =
1837         ibooker.book1D("qg_multiplicity_highPt_Barrel", "qg multiplicity highPt Barrel", 50, 0, 100);
1838     mqgLikelihood_highPt_Barrel =
1839         ibooker.book1D("qg_Likelihood_highPt_Barrel", "qg likelihood highPt Barrel", 50, -1.1, 1.1);
1840     mAxis2_highPt_EndCap = ibooker.book1D("qg_Axis2_highPt_EndCap", "qg Axis2 #sigma_{2} highPt EndCap", 50, 0., 0.20);
1841     mpTD_highPt_EndCap =
1842         ibooker.book1D("qg_pTD_highPt_EndCap", "qg fragmentation function p_{T}^{D} highPt EndCap", 50, 0.15, 1.05);
1843     mMultiplicityQG_highPt_EndCap =
1844         ibooker.book1D("qg_multiplicity_highPt_EndCap", "qg multiplicity highPt EndCap", 50, 0, 100);
1845     mqgLikelihood_highPt_EndCap =
1846         ibooker.book1D("qg_Likelihood_highPt_EndCap", "qg likelihood highPt EndCap", 50, -1.1, 1.1);
1847     mAxis2_highPt_Forward =
1848         ibooker.book1D("qg_Axis2_highPt_Forward", "qg Axis2 #sigma_{2} highPt Forward", 50, 0., 0.20);
1849     mpTD_highPt_Forward =
1850         ibooker.book1D("qg_pTD_highPt_Forward", "qg fragmentation function p_{T}^{D} highPt Forward", 50, 0.15, 1.05);
1851     mMultiplicityQG_highPt_Forward =
1852         ibooker.book1D("qg_multiplicity_highPt_Forward", "qg multiplicity highPt Forward", 50, 0, 100);
1853     mqgLikelihood_highPt_Forward =
1854         ibooker.book1D("qg_Likelihood_highPt_Forward", "qg likelihood highPt Forward", 50, -1.1, 1.1);
1855 
1856     map_of_MEs.insert(
1857         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_highPt_Barrel", mAxis2_highPt_Barrel));
1858     map_of_MEs.insert(
1859         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_highPt_Barrel", mpTD_highPt_Barrel));
1860     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_highPt_Barrel",
1861                                                               mMultiplicityQG_highPt_Barrel));
1862     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_highPt_Barrel",
1863                                                               mqgLikelihood_highPt_Barrel));
1864     map_of_MEs.insert(
1865         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_highPt_EndCap", mAxis2_highPt_EndCap));
1866     map_of_MEs.insert(
1867         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_highPt_EndCap", mpTD_highPt_EndCap));
1868     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_highPt_EndCap",
1869                                                               mMultiplicityQG_highPt_EndCap));
1870     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_highPt_EndCap",
1871                                                               mqgLikelihood_highPt_EndCap));
1872     map_of_MEs.insert(
1873         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Axis2_highPt_Forward", mAxis2_highPt_Forward));
1874     map_of_MEs.insert(
1875         std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_pTD_highPt_Forward", mpTD_highPt_Forward));
1876     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_multiplicity_highPt_Forward",
1877                                                               mMultiplicityQG_highPt_Forward));
1878     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "qg_Likelihood_highPt_Forward",
1879                                                               mqgLikelihood_highPt_Forward));
1880   }
1881 
1882   if (DirName.find("DiJet") != std::string::npos) {
1883     mDPhi = ibooker.book1D("DPhi", "dPhi btw the two leading jets", 100, 0., acos(-1.));
1884     mDijetAsymmetry = ibooker.book1D("DijetAsymmetry", "DijetAsymmetry", 100, -1., 1.);
1885     mDijetBalance = ibooker.book1D("DijetBalance", "DijetBalance", 100, -2., 2.);
1886     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DPhi", mDPhi));
1887     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DijetAsymmetry", mDijetAsymmetry));
1888     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DijetBalance", mDijetBalance));
1889 
1890     if (isPFJet_ || isMiniAODJet_) {
1891       mChargedMultiplicity = ibooker.book1D("ChargedMultiplicity", "charged multiplicity ", 50, 0, 100);
1892       mNeutralMultiplicity = ibooker.book1D("NeutralMultiplicity", "neutral multiplicity", 50, 0, 100);
1893       mMuonMultiplicity = ibooker.book1D("MuonMultiplicity", "muon multiplicity", 50, 0, 100);
1894 
1895       map_of_MEs.insert(
1896           std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedMultiplicity", mChargedMultiplicity));
1897       map_of_MEs.insert(
1898           std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralMultiplicity", mNeutralMultiplicity));
1899       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuonMultiplicity", mMuonMultiplicity));
1900 
1901       mChargedMultiplicity_profile = ibooker.bookProfile(
1902           "ChargedMultiplicity_profile", "charged multiplicity", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1903       mNeutralMultiplicity_profile = ibooker.bookProfile(
1904           "NeutralMultiplicity_profile", "neutral multiplicity", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1905       mMuonMultiplicity_profile =
1906           ibooker.bookProfile("MuonMultiplicity_profile", "muon multiplicity", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
1907       mChargedMultiplicity_profile->setAxisTitle("nvtx", 1);
1908       mNeutralMultiplicity_profile->setAxisTitle("nvtx", 1);
1909       mMuonMultiplicity_profile->setAxisTitle("nvtx", 1);
1910 
1911       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ChargedMultiplicity_profile",
1912                                                                 mChargedMultiplicity_profile));
1913       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralMultiplicity_profile",
1914                                                                 mNeutralMultiplicity_profile));
1915       map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MuonMultiplicity_profile",
1916                                                                 mMuonMultiplicity_profile));
1917 
1918       mNeutralFraction = ibooker.book1D("NeutralConstituentsFraction", "Neutral Constituents Fraction", 100, 0, 1);
1919       map_of_MEs.insert(
1920           std::pair<std::string, MonitorElement*>(DirName + "/" + "NeutralConstituentsFraction", mNeutralFraction));
1921     }
1922   }
1923 
1924   if (DirName.find("ZJets") != std::string::npos) {
1925     mZMass = ibooker.book1D("DiMuonMass", "DiMuonMass", 50, 71., 111.);
1926     mDPhiZJet = ibooker.book1D("DPhiZJ", "dPhi btw Z and Jet1", 100, 0., acos(-1.));
1927     mZJetAsymmetry = ibooker.book1D("ZJetAsymmetry", "ZJetAsymmetry", 100, -1., 1.);
1928     mJetZBalance_lowZPt_J_Barrel =
1929         ibooker.book1D("JZB_lowZPt_J_Barrel", "ZJetBalance (pTJet1-pTZ) (30<pTZ<90), |#eta_{jet}|<1.3", 50, -75., 75);
1930     mJetZBalance_mediumZPt_J_Barrel =
1931         ibooker.book1D("JZB_mediumZPt_J_Barrel", "ZJetBalance (90<pTZ<140), |#eta_{jet}|<1.3", 50, -75., 75);
1932     mJetZBalance_highZPt_J_Barrel =
1933         ibooker.book1D("JZB_highZPt_J_Barrel", "ZJetBalance (pTZ>140), |#eta_{jet}|<1.3", 50, -75., 75.);
1934     mJetZBalance_lowZPt_J_EndCap =
1935         ibooker.book1D("JZB_lowZPt_J_EndCap", "ZJetBalance (30<pTZ<90), 1.3<|#eta_{jet}|<3.0", 50, -75., 75);
1936     mJetZBalance_mediumZPt_J_EndCap =
1937         ibooker.book1D("JZB_mediumZPt_J_EndCap", "ZJetBalance (90<pTZ<140), 1.3<|#eta_{jet}|<3.0", 50, -75., 75);
1938     mJetZBalance_highZPt_J_EndCap =
1939         ibooker.book1D("JZB_highZPt_J_EndCap", "ZJetBalance (pTZ>140), 1.3<|#eta_{jet}|<3.0", 50, -75., 75.);
1940     mJetZBalance_lowZPt_J_Forward =
1941         ibooker.book1D("JZB_lowZPt_J_Forward", "ZJetBalance (30<pTZ<90), |#eta_{jet}|>3.0", 50, -75., 75);
1942     mJetZBalance_mediumZPt_J_Forward =
1943         ibooker.book1D("JZB_mediumZPt_J_Forward", "ZJetBalance (90<pTZ<140), |#eta_{jet}|>3.0", 50, -75., 75);
1944     mJetZBalance_highZPt_J_Forward =
1945         ibooker.book1D("JZB_highZPt_J_Forward", "ZJetBalance (pTZ>140), |#eta_{jet}|>3.0", 50, -75., 75.);
1946 
1947     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DiMuonMass", mZMass));
1948     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DPhiZJ", mDPhiZJet));
1949     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "ZJetAsymmetry", mZJetAsymmetry));
1950     map_of_MEs.insert(
1951         std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_lowZPt_J_Barrel", mJetZBalance_lowZPt_J_Barrel));
1952     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_mediumZPt_J_Barrel",
1953                                                               mJetZBalance_mediumZPt_J_Barrel));
1954     map_of_MEs.insert(
1955         std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_highZPt_J_Barrel", mJetZBalance_highZPt_J_Barrel));
1956     map_of_MEs.insert(
1957         std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_lowZPt_J_EndCap", mJetZBalance_lowZPt_J_EndCap));
1958     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_mediumZPt_J_EndCap",
1959                                                               mJetZBalance_mediumZPt_J_EndCap));
1960     map_of_MEs.insert(
1961         std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_highZPt_J_EndCap", mJetZBalance_highZPt_J_EndCap));
1962     map_of_MEs.insert(
1963         std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_lowZPt_J_Forward", mJetZBalance_lowZPt_J_Forward));
1964     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_mediumZPt_J_Forward",
1965                                                               mJetZBalance_mediumZPt_J_Forward));
1966     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "JZB_highZPt_J_Forward",
1967                                                               mJetZBalance_highZPt_J_Forward));
1968 
1969     mJ1Pt_over_ZPt_J_Barrel = ibooker.book1D("J1Pt_over_ZPt_J_Barrel", "Jet1_Pt/ZPt, Barrel", 50, 0., 3.0);
1970     mJ1Pt_over_ZPt_J_EndCap = ibooker.book1D("J1Pt_over_ZPt_J_EndCap", "Jet1_Pt/ZPt, EndCap", 50, 0., 3.0);
1971     mJ1Pt_over_ZPt_J_Forward = ibooker.book1D("J1Pt_over_ZPt_J_Forward", "Jet1_Pt/ZPt, Forward", 50, 0., 3.0);
1972 
1973     map_of_MEs.insert(
1974         std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_J_Barrel", mJ1Pt_over_ZPt_J_Barrel));
1975     map_of_MEs.insert(
1976         std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_J_EndCap", mJ1Pt_over_ZPt_J_EndCap));
1977     map_of_MEs.insert(
1978         std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_J_Forward", mJ1Pt_over_ZPt_J_Forward));
1979 
1980     mJ1Pt_over_ZPt_lowZPt_J_Barrel =
1981         ibooker.book1D("J1Pt_over_ZPt_lowZPt_J_Barrel", "Jet1_Pt/ZPt (30<pTZ<90), |#eta_{jet}|<1.3", 50, 0., 3.0);
1982     mJ1Pt_over_ZPt_mediumZPt_J_Barrel =
1983         ibooker.book1D("J1Pt_over_ZPt_mediumZPt_J_Barrel", "Jet1_Pt/ZPt (90<pTZ<140), |#eta_{jet}|<1.3", 50, 0., 3.0);
1984     mJ1Pt_over_ZPt_highZPt_J_Barrel =
1985         ibooker.book1D("J1Pt_over_ZPt_highPt_J_Barrel", "Jet1_Pt/ZPt (pTZ>140), |#eta_{jet}|<1.3", 50, 0., 3.0);
1986     mJ1Pt_over_ZPt_lowZPt_J_EndCap =
1987         ibooker.book1D("J1Pt_over_ZPt_lowZPt_J_EndCap", "Jet1_Pt/ZPt (30<pTZ<90), 1.3<|#eta_{jet}|<3.0", 50, 0., 3.0);
1988     mJ1Pt_over_ZPt_mediumZPt_J_EndCap = ibooker.book1D(
1989         "J1Pt_over_ZPt_mediumZPt_J_EndCap", "Jet1_Pt/ZPt (90<pTZ<140), 1.3<|#eta_{jet}|<3.0", 50, 0., 3.0);
1990     mJ1Pt_over_ZPt_highZPt_J_EndCap =
1991         ibooker.book1D("J1Pt_over_ZPt_highZPt_J_EndCap", "Jet1_Pt/ZPt (pTZ>140), 1.3<|#eta_{jet}|<3.0", 50, 0., 3.0);
1992     mJ1Pt_over_ZPt_lowZPt_J_Forward =
1993         ibooker.book1D("J1Pt_over_ZPt_lowZPt_J_Forward", "Jet1_Pt/ZPt (30<pTZ<90), |#eta_{jet}|>3.0", 50, 0., 3.0);
1994     mJ1Pt_over_ZPt_mediumZPt_J_Forward =
1995         ibooker.book1D("J1Pt_over_ZPt_mediumPt_J_Forward", "Jet1_Pt/ZPt (90<pTZ<140), |#eta_{jet}|>3.0", 50, 0., 3.0);
1996     mJ1Pt_over_ZPt_highZPt_J_Forward =
1997         ibooker.book1D("J1Pt_over_ZPt_highZPt_J_Forward", "Jet1_Pt/ZPt (pTZ>140), |#eta_{jet}|>3.0", 50, 0., 3.0);
1998 
1999     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_lowZPt_J_Barrel",
2000                                                               mJ1Pt_over_ZPt_lowZPt_J_Barrel));
2001     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_mediumZPt_J_Barrel",
2002                                                               mJ1Pt_over_ZPt_mediumZPt_J_Barrel));
2003     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_highZPt_J_Barrel",
2004                                                               mJ1Pt_over_ZPt_highZPt_J_Barrel));
2005     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_lowZPt_J_EndCap",
2006                                                               mJ1Pt_over_ZPt_lowZPt_J_EndCap));
2007     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_mediumZPt_J_EndCap",
2008                                                               mJ1Pt_over_ZPt_mediumZPt_J_EndCap));
2009     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_highZPt_J_EndCap",
2010                                                               mJ1Pt_over_ZPt_highZPt_J_EndCap));
2011     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_lowZPt_J_Forward",
2012                                                               mJ1Pt_over_ZPt_lowZPt_J_Forward));
2013     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_mediumZPt_J_Forward",
2014                                                               mJ1Pt_over_ZPt_mediumZPt_J_Forward));
2015     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "J1Pt_over_ZPt_highZPt_J_Forward",
2016                                                               mJ1Pt_over_ZPt_highZPt_J_Forward));
2017 
2018     mMPF_J_Barrel = ibooker.book1D("MPF_J_Barrel", "Jet1_Pt/ZPt, Barrel", 50, 0., 2.0);
2019     mMPF_J_EndCap = ibooker.book1D("MPF_J_EndCap", "Jet1_Pt/ZPt, EndCap", 50, 0., 2.0);
2020     mMPF_J_Forward = ibooker.book1D("MPF_J_Forward", "Jet1_Pt/ZPt, Forward", 50, 0., 2.0);
2021 
2022     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_J_Barrel", mMPF_J_Barrel));
2023     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_J_EndCap", mMPF_J_EndCap));
2024     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_J_Forward", mMPF_J_Forward));
2025 
2026     mMPF_lowZPt_J_Barrel =
2027         ibooker.book1D("MPF_lowZPt_J_Barrel", "Jet1_Pt/ZPt (30<pTZ<90), |#eta_{jet}|<1.3", 50, 0., 2.0);
2028     mMPF_mediumZPt_J_Barrel =
2029         ibooker.book1D("MPF_mediumZPt_J_Barrel", "Jet1_Pt/ZPt (90<pTZ<140), |#eta_{jet}|<1.3", 50, 0., 2.0);
2030     mMPF_highZPt_J_Barrel =
2031         ibooker.book1D("MPF_highPt_J_Barrel", "Jet1_Pt/ZPt (pTZ>140), |#eta_{jet}|<1.3", 50, 0., 2.0);
2032     mMPF_lowZPt_J_EndCap =
2033         ibooker.book1D("MPF_lowZPt_J_EndCap", "Jet1_Pt/ZPt (30<pTZ<90), 1.3<|#eta_{jet}|<3.0", 50, 0., 2.0);
2034     mMPF_mediumZPt_J_EndCap =
2035         ibooker.book1D("MPF_mediumZPt_J_EndCap", "Jet1_Pt/ZPt (90<pTZ<140), 1.3<|#eta_{jet}|<3.0", 50, 0., 2.0);
2036     mMPF_highZPt_J_EndCap =
2037         ibooker.book1D("MPF_highZPt_J_EndCap", "Jet1_Pt/ZPt (pTZ>140), 1.3<|#eta_{jet}|<3.0", 50, 0., 2.0);
2038     mMPF_lowZPt_J_Forward =
2039         ibooker.book1D("MPF_lowZPt_J_Forward", "Jet1_Pt/ZPt (30<pTZ<90), |#eta_{jet}|>3.0", 50, 0., 2.0);
2040     mMPF_mediumZPt_J_Forward =
2041         ibooker.book1D("MPF_mediumPt_J_Forward", "Jet1_Pt/ZPt (90<pTZ<140), |#eta_{jet}|>3.0", 50, 0., 2.0);
2042     mMPF_highZPt_J_Forward =
2043         ibooker.book1D("MPF_highZPt_J_Forward", "Jet1_Pt/ZPt (pTZ>140), |#eta_{jet}|>3.0", 50, 0., 2.0);
2044 
2045     map_of_MEs.insert(
2046         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_lowZPt_J_Barrel", mMPF_lowZPt_J_Barrel));
2047     map_of_MEs.insert(
2048         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_mediumZPt_J_Barrel", mMPF_mediumZPt_J_Barrel));
2049     map_of_MEs.insert(
2050         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_highZPt_J_Barrel", mMPF_highZPt_J_Barrel));
2051     map_of_MEs.insert(
2052         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_lowZPt_J_EndCap", mMPF_lowZPt_J_EndCap));
2053     map_of_MEs.insert(
2054         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_mediumZPt_J_EndCap", mMPF_mediumZPt_J_EndCap));
2055     map_of_MEs.insert(
2056         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_highZPt_J_EndCap", mMPF_highZPt_J_EndCap));
2057     map_of_MEs.insert(
2058         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_lowZPt_J_Forward", mMPF_lowZPt_J_Forward));
2059     map_of_MEs.insert(
2060         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_mediumZPt_J_Forward", mMPF_mediumZPt_J_Forward));
2061     map_of_MEs.insert(
2062         std::pair<std::string, MonitorElement*>(DirName + "/" + "MPF_highZPt_J_Forward", mMPF_highZPt_J_Forward));
2063 
2064     mDeltaPt_Z_j1_over_ZPt_30_55_J_Barrel =
2065         ibooker.book1D("DeltaPt_Z_j1_over_ZPt_30_55_J_Barrel", "DeltaPt_Z_j1_over_ZPt_30_55_J_Barrel", 50, -1.00, 1.00);
2066     mDeltaPt_Z_j1_over_ZPt_55_75_J_Barrel =
2067         ibooker.book1D("DeltaPt_Z_j1_over_ZPt_55_75_J_Barrel", "DeltaPt_Z_j1_over_ZPt_55_75_J_Barrel", 50, -1.00, 1.00);
2068     mDeltaPt_Z_j1_over_ZPt_75_150_J_Barrel = ibooker.book1D(
2069         "DeltaPt_Z_j1_over_ZPt_75_150_J_Barrel", "DeltaPt_Z_j1_over_ZPt_75_150_J_Barrel", 50, -1.00, 1.00);
2070     mDeltaPt_Z_j1_over_ZPt_150_290_J_Barrel = ibooker.book1D(
2071         "DeltaPt_Z_j1_over_ZPt_150_290_J_Barrel", "DeltaPt_Z_j1_over_ZPt_150_290_J_Barrel", 50, -1.00, 1.00);
2072     mDeltaPt_Z_j1_over_ZPt_290_J_Barrel =
2073         ibooker.book1D("DeltaPt_Z_j1_over_ZPt_290_J_Barrel", "DeltaPt_Z_j1_over_ZPt_290_J_Barrel", 50, -1.00, 1.00);
2074     mDeltaPt_Z_j1_over_ZPt_30_55_J_EndCap =
2075         ibooker.book1D("DeltaPt_Z_j1_over_ZPt_30_55_J_EndCap", "DeltaPt_Z_j1_over_ZPt_30_55_J_EndCap", 50, -1.00, 1.00);
2076     mDeltaPt_Z_j1_over_ZPt_55_75_J_EndCap =
2077         ibooker.book1D("DeltaPt_Z_j1_over_ZPt_55_75_J_EndCap", "DeltaPt_Z_j1_over_ZPt_55_75_J_EndCap", 50, -1.00, 1.00);
2078     mDeltaPt_Z_j1_over_ZPt_75_150_J_EndCap = ibooker.book1D(
2079         "DeltaPt_Z_j1_over_ZPt_75_150_J_EndCap", "DeltaPt_Z_j1_over_ZPt_75_150_J_EndCap", 50, -1.00, 1.00);
2080     mDeltaPt_Z_j1_over_ZPt_150_290_J_EndCap = ibooker.book1D(
2081         "DeltaPt_Z_j1_over_ZPt_150_290_J_EndCap", "DeltaPt_Z_j1_over_ZPt_150_290_J_EndCap", 50, -1.00, 1.00);
2082     mDeltaPt_Z_j1_over_ZPt_290_J_EndCap =
2083         ibooker.book1D("DeltaPt_Z_j1_over_ZPt_290_J_EndCap", "DeltaPt_Z_j1_over_ZPt_290_J_EndCap", 50, -1.00, 1.00);
2084     mDeltaPt_Z_j1_over_ZPt_30_55_J_Forward = ibooker.book1D(
2085         "DeltaPt_Z_j1_over_ZPt_30_55_J_Forward", "DeltaPt_Z_j1_over_ZPt_30_55_J_Forward", 50, -1.00, 1.00);
2086     mDeltaPt_Z_j1_over_ZPt_55_100_J_Forward = ibooker.book1D(
2087         "DeltaPt_Z_j1_over_ZPt_55_100_J_Forward", "DeltaPt_Z_j1_over_ZPt_55_100_J_Forward", 50, -1.00, 1.00);
2088     mDeltaPt_Z_j1_over_ZPt_100_J_Forward =
2089         ibooker.book1D("DeltaPt_Z_j1_over_ZPt_100_J_Forward", "DeltaPt_Z_j1_over_ZPt_100_J_Forward", 50, -1.00, 1.00);
2090 
2091     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_30_55_J_Barrel",
2092                                                               mDeltaPt_Z_j1_over_ZPt_30_55_J_Barrel));
2093     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_55_75_J_Barrel",
2094                                                               mDeltaPt_Z_j1_over_ZPt_55_75_J_Barrel));
2095     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_75_150_J_Barrel",
2096                                                               mDeltaPt_Z_j1_over_ZPt_75_150_J_Barrel));
2097     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_150_290_J_Barrel",
2098                                                               mDeltaPt_Z_j1_over_ZPt_150_290_J_Barrel));
2099     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_290_J_Barrel",
2100                                                               mDeltaPt_Z_j1_over_ZPt_290_J_Barrel));
2101     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_30_55_J_EndCap",
2102                                                               mDeltaPt_Z_j1_over_ZPt_30_55_J_EndCap));
2103     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_55_75_J_EndCap",
2104                                                               mDeltaPt_Z_j1_over_ZPt_55_75_J_EndCap));
2105     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_75_150_J_EndCap",
2106                                                               mDeltaPt_Z_j1_over_ZPt_75_150_J_EndCap));
2107     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_150_290_J_EndCap",
2108                                                               mDeltaPt_Z_j1_over_ZPt_150_290_J_EndCap));
2109     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_290_J_EndCap",
2110                                                               mDeltaPt_Z_j1_over_ZPt_290_J_EndCap));
2111     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_30_55_J_Forward",
2112                                                               mDeltaPt_Z_j1_over_ZPt_30_55_J_Forward));
2113     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_55_100_J_Forward",
2114                                                               mDeltaPt_Z_j1_over_ZPt_55_100_J_Forward));
2115     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "DeltaPt_Z_j1_over_ZPt_100_J_Forward",
2116                                                               mDeltaPt_Z_j1_over_ZPt_100_J_Forward));
2117   }
2118   // Book NPV profiles
2119   //----------------------------------------------------------------------------
2120   mPt_profile = ibooker.bookProfile("Pt_profile", "pt", nbinsPV_, nPVlow_, nPVhigh_, ptBin_, ptMin_, ptMax_);
2121   mEta_profile = ibooker.bookProfile("Eta_profile", "eta", nbinsPV_, nPVlow_, nPVhigh_, etaBin_, etaMin_, etaMax_);
2122   mPhi_profile = ibooker.bookProfile("Phi_profile", "phi", nbinsPV_, nPVlow_, nPVhigh_, phiBin_, phiMin_, phiMax_);
2123   //if(!isJPTJet_){
2124   mConstituents_profile =
2125       ibooker.bookProfile("Constituents_profile", "# of constituents", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 100);
2126   //}
2127   // met NPV profiles x-axis title
2128   //----------------------------------------------------------------------------
2129   mPt_profile->setAxisTitle("nvtx", 1);
2130   mEta_profile->setAxisTitle("nvtx", 1);
2131   mPhi_profile->setAxisTitle("nvtx", 1);
2132   //if(!isJPTJet_){
2133   mConstituents_profile->setAxisTitle("nvtx", 1);
2134   map_of_MEs.insert(
2135       std::pair<std::string, MonitorElement*>(DirName + "/" + "Constituents_profile", mConstituents_profile));
2136   //}
2137 
2138   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Pt_profile", mPt_profile));
2139   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Eta_profile", mEta_profile));
2140   map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "Phi_profile", mPhi_profile));
2141   //
2142   //--- Calo jet melection only
2143 
2144   if (isCaloJet_) {
2145     mHFrac = ibooker.book1D("HFrac", "HFrac", 140, -0.2, 1.2);
2146     mEFrac = ibooker.book1D("EFrac", "EFrac", 140, -0.2, 1.2);
2147     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFrac", mHFrac));
2148     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EFrac", mEFrac));
2149 
2150     mHFrac_profile = ibooker.bookProfile("HFrac_profile", "HFrac", nbinsPV_, nPVlow_, nPVhigh_, 140, -0.2, 1.2);
2151     mEFrac_profile = ibooker.bookProfile("EFrac_profile", "EFrac", nbinsPV_, nPVlow_, nPVhigh_, 140, -0.2, 1.2);
2152     mHFrac_profile->setAxisTitle("nvtx", 1);
2153     mEFrac_profile->setAxisTitle("nvtx", 1);
2154     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFrac_profile", mHFrac_profile));
2155     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "EFrac_profile", mEFrac_profile));
2156 
2157     // CaloJet specific
2158     //JetID variables
2159     mresEMF = ibooker.book1D("resEMF", "resEMF", 50, 0., 1.);
2160     mN90Hits = ibooker.book1D("N90Hits", "N90Hits", 50, 0., 100);
2161     mfHPD = ibooker.book1D("fHPD", "fHPD", 50, 0., 1.);
2162     mfRBX = ibooker.book1D("fRBX", "fRBX", 50, 0., 1.);
2163 
2164     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "resEMF", mresEMF));
2165     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "N90Hits", mN90Hits));
2166     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "fHPD", mfHPD));
2167     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "fRBX", mfRBX));
2168   }
2169 
2170   if (isPFJet_ || isMiniAODJet_) {
2171     //barrel histograms for PFJets
2172     // energy fractions
2173     mCHFrac = ibooker.book1D("CHFrac", "CHFrac", 120, -0.1, 1.1);
2174     mNHFrac = ibooker.book1D("NHFrac", "NHFrac", 120, -0.1, 1.1);
2175     mPhFrac = ibooker.book1D("PhFrac", "PhFrac", 120, -0.1, 1.1);
2176     mHFEMFrac = ibooker.book1D("HFEMFrac", "HFEMFrac", 120, -0.1, 1.1);
2177     mHFHFrac = ibooker.book1D("HFHFrac", "HFHFrac", 120, -0.1, 1.1);
2178 
2179     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFrac", mCHFrac));
2180     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFrac", mNHFrac));
2181     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFrac", mPhFrac));
2182     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEMFrac", mHFEMFrac));
2183     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFrac", mHFHFrac));
2184 
2185     // Book NPV profiles
2186     //----------------------------------------------------------------------------
2187     mCHFrac_profile =
2188         ibooker.bookProfile("CHFrac_profile", "charged HAD fraction profile", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 1);
2189     mNHFrac_profile =
2190         ibooker.bookProfile("NHFrac_profile", "neutral HAD fraction profile", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 1);
2191     mPhFrac_profile =
2192         ibooker.bookProfile("PhFrac_profile", "Photon Fraction Profile", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 1);
2193     mHFEMFrac_profile = ibooker.bookProfile(
2194         "HFEMFrac_profile", "HF electomagnetic fraction Profile", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 1);
2195     mHFHFrac_profile =
2196         ibooker.bookProfile("HFHFrac_profile", "HF hadronic fraction profile", nbinsPV_, nPVlow_, nPVhigh_, 50, 0, 1);
2197 
2198     // met NPV profiles x-axis title
2199     //----------------------------------------------------------------------------
2200     mCHFrac_profile->setAxisTitle("nvtx", 1);
2201     mNHFrac_profile->setAxisTitle("nvtx", 1);
2202     mPhFrac_profile->setAxisTitle("nvtx", 1);
2203     mHFEMFrac_profile->setAxisTitle("nvtx", 1);
2204     mHFHFrac_profile->setAxisTitle("nvtx", 1);
2205 
2206     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "CHFrac_profile", mCHFrac_profile));
2207     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "NHFrac_profile", mNHFrac_profile));
2208     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "PhFrac_profile", mPhFrac_profile));
2209     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFEMFrac_profile", mHFEMFrac_profile));
2210     map_of_MEs.insert(std::pair<std::string, MonitorElement*>(DirName + "/" + "HFHFrac_profile", mHFHFrac_profile));
2211   }
2212 }
2213 
2214 // ***********************************************************
2215 void JetAnalyzer::dqmBeginRun(const edm::Run& iRun, const edm::EventSetup& iSetup) {
2216   //LogDebug("JetAnalyzer") << "beginRun, run " << run.id();
2217   //
2218 
2219   if (highPtJetEventFlag_->on())
2220     highPtJetEventFlag_->initRun(iRun, iSetup);
2221   if (lowPtJetEventFlag_->on())
2222     lowPtJetEventFlag_->initRun(iRun, iSetup);
2223 
2224   if (highPtJetEventFlag_->on() &&
2225       highPtJetEventFlag_->expressionsFromDB(highPtJetEventFlag_->hltDBKey(), iSetup)[0] != "CONFIG_ERROR")
2226     highPtJetExpr_ = highPtJetEventFlag_->expressionsFromDB(highPtJetEventFlag_->hltDBKey(), iSetup);
2227   if (lowPtJetEventFlag_->on() &&
2228       lowPtJetEventFlag_->expressionsFromDB(lowPtJetEventFlag_->hltDBKey(), iSetup)[0] != "CONFIG_ERROR")
2229     lowPtJetExpr_ = lowPtJetEventFlag_->expressionsFromDB(lowPtJetEventFlag_->hltDBKey(), iSetup);
2230   //  if (!jetCorrectionService_.empty()){
2231   //    energycorrected=true;
2232   //  }
2233   //--- htlConfig_
2234   //processname_="HLT";
2235   bool changed(true);
2236   hltInitialized_ = hltConfig_.init(iRun, iSetup, processname_, changed);
2237   if (!hltInitialized_) {
2238     //if (!hltConfig_.init(iRun,iSetup,processname_,changed)) {
2239     processname_ = "FU";
2240     hltInitialized_ = hltConfig_.init(iRun, iSetup, processname_, changed);
2241     if (!hltInitialized_) {
2242       //if (!hltConfig_.init(iRun,iSetup,processname_,changed)){
2243       LogDebug("JetAnalyzer") << "HLTConfigProvider failed to initialize.";
2244     }
2245   }
2246 
2247   const L1GtTriggerMenu* menu = &iSetup.getData(l1gtTrigMenuToken_);
2248   for (CItAlgo techTrig = menu->gtTechnicalTriggerMap().begin(); techTrig != menu->gtTechnicalTriggerMap().end();
2249        ++techTrig) {
2250     if ((techTrig->second).algoName() == m_l1algoname_) {
2251       m_bitAlgTechTrig_ = (techTrig->second).algoBitNumber();
2252       break;
2253     }
2254   }
2255 }
2256 
2257 // ***********************************************************
2258 void JetAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
2259   //set general folders first --> change later on for different folders
2260   if (jetCleaningFlag_) {
2261     //dbe_->setCurrentFolder("JetMET/Jet/Cleaned"+mInputCollection_.label());
2262     DirName = "JetMET/Jet/Cleaned" + mInputCollection_.label();
2263   } else {
2264     //dbe_->setCurrentFolder("JetMET/Jet/Uncleaned"+mInputCollection_.label());
2265     DirName = "JetMET/Jet/Uncleaned" + mInputCollection_.label();
2266   }
2267 
2268   Handle<ValueMap<float> > puJetIdMva;
2269   Handle<ValueMap<int> > puJetIdFlagMva;
2270   Handle<ValueMap<float> > puJetId;
2271   Handle<ValueMap<int> > puJetIdFlag;
2272 
2273   Handle<ValueMap<int> > qgMultiplicity;
2274   Handle<ValueMap<float> > qgLikelihood;
2275   Handle<ValueMap<float> > qgptD;
2276   Handle<ValueMap<float> > qgaxis2;
2277 
2278   //should insure we have a PFJet in with CHS
2279   if (fill_CHS_histos) {
2280     iEvent.getByToken(qgMultiplicityToken_, qgMultiplicity);
2281     iEvent.getByToken(qgLikelihoodToken_, qgLikelihood);
2282     iEvent.getByToken(qgptDToken_, qgptD);
2283     iEvent.getByToken(qgaxis2Token_, qgaxis2);
2284   }
2285 
2286   if (!isMiniAODJet_) {
2287     iEvent.getByToken(mvaPUIDToken_, puJetIdFlagMva);
2288     iEvent.getByToken(cutBasedPUDiscriminantToken_, puJetId);
2289     iEvent.getByToken(cutBasedPUIDToken_, puJetIdFlag);
2290     iEvent.getByToken(mvaFullPUDiscriminantToken_, puJetIdMva);
2291   }
2292 
2293   // **** Get the TriggerResults container
2294   edm::Handle<edm::TriggerResults> triggerResults;
2295   iEvent.getByToken(triggerResultsToken_, triggerResults);
2296 
2297   Int_t JetLoPass = 0;
2298   Int_t JetHiPass = 0;
2299 
2300   if (triggerResults.isValid()) {
2301     const edm::TriggerNames& triggerNames = iEvent.triggerNames(*triggerResults);
2302 
2303     const unsigned int nTrig(triggerNames.size());
2304     for (unsigned int i = 0; i < nTrig; ++i) {
2305       if (triggerNames.triggerName(i).find(highPtJetExpr_[0].substr(0, highPtJetExpr_[0].rfind("_v") + 2)) !=
2306               std::string::npos &&
2307           triggerResults->accept(i))
2308         JetHiPass = 1;
2309       else if (triggerNames.triggerName(i).find(lowPtJetExpr_[0].substr(0, lowPtJetExpr_[0].rfind("_v") + 2)) !=
2310                    std::string::npos &&
2311                triggerResults->accept(i))
2312         JetLoPass = 1;
2313     }
2314   }
2315 
2316   if (verbose_)
2317     std::cout << "trigger label " << theTriggerResultsLabel_ << std::endl;
2318 
2319   if (verbose_) {
2320     std::cout << ">>> Trigger  Lo = " << JetLoPass << " Hi = " << JetHiPass << std::endl;
2321   }
2322 
2323   // ==========================================================
2324   //Vertex information
2325   Handle<VertexCollection> vertexHandle;
2326   iEvent.getByToken(vertexToken_, vertexHandle);
2327 
2328   if (!vertexHandle.isValid()) {
2329     LogDebug("") << "CaloMETAnalyzer: Could not find vertex collection" << std::endl;
2330     if (verbose_)
2331       std::cout << "CaloMETAnalyzer: Could not find vertex collection" << std::endl;
2332   }
2333   int numPV = 0;
2334   if (vertexHandle.isValid()) {
2335     VertexCollection vertexCollection = *(vertexHandle.product());
2336     numPV = vertexCollection.size();
2337   }
2338   bool bPrimaryVertex = (bypassAllPVChecks_ || (numPV > 0));
2339   if (fill_jet_high_level_histo) {  //should be filled for all events, no selection up to this point
2340     verticesME = map_of_MEs["JetMET/vertices"];
2341     if (verticesME && verticesME->getRootObject())
2342       verticesME->Fill(numPV);
2343   }
2344   // ==========================================================
2345   edm::Handle<L1GlobalTriggerReadoutRecord> gtReadoutRecord;
2346   iEvent.getByToken(gtToken_, gtReadoutRecord);
2347 
2348   if (!gtReadoutRecord.isValid()) {
2349     LogInfo("JetAnalyzer") << "JetAnalyzer: Could not find GT readout record" << std::endl;
2350     if (verbose_)
2351       std::cout << "JetAnalyzer: Could not find GT readout record product" << std::endl;
2352   }
2353 
2354   //bool techTriggerResultBxE = false;
2355   bool techTriggerResultBxF = false;
2356   bool techTriggerResultBx0 = false;
2357 
2358   if (!gtReadoutRecord.isValid()) {
2359     LogDebug("") << "CaloMETAnalyzer: Could not find GT readout record" << std::endl;
2360     if (verbose_)
2361       std::cout << "CaloMETAnalyzer: Could not find GT readout record product" << std::endl;
2362   } else {
2363     // trigger results before mask for BxInEvent -2 (E), -1 (F), 0 (L1A), 1, 2
2364     //const TechnicalTriggerWord&  technicalTriggerWordBeforeMaskBxE = gtReadoutRecord->technicalTriggerWord(-2);
2365     const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBxF = gtReadoutRecord->technicalTriggerWord(-1);
2366     const TechnicalTriggerWord& technicalTriggerWordBeforeMaskBx0 = gtReadoutRecord->technicalTriggerWord();
2367     //const TechnicalTriggerWord&  technicalTriggerWordBeforeMaskBxG = gtReadoutRecord->technicalTriggerWord(1);
2368     //const TechnicalTriggerWord&  technicalTriggerWordBeforeMaskBxH = gtReadoutRecord->technicalTriggerWord(2);
2369     if (m_bitAlgTechTrig_ > -1 && !technicalTriggerWordBeforeMaskBx0.empty()) {
2370       techTriggerResultBx0 = technicalTriggerWordBeforeMaskBx0.at(m_bitAlgTechTrig_);
2371       if (techTriggerResultBx0 != 0) {
2372         //techTriggerResultBxE = technicalTriggerWordBeforeMaskBxE.at(m_bitAlgTechTrig_);
2373         techTriggerResultBxF = technicalTriggerWordBeforeMaskBxF.at(m_bitAlgTechTrig_);
2374       }
2375     }
2376   }
2377 
2378   DCSFilterForDCSMonitoring_->filter(iEvent, iSetup);
2379   if (fill_jet_high_level_histo) {  //should be filled only once
2380     cleanupME = map_of_MEs["JetMET/cleanup"];
2381     if (cleanupME && cleanupME->getRootObject()) {
2382       if (bPrimaryVertex)
2383         cleanupME->Fill(0.5);
2384       if (DCSFilterForDCSMonitoring_->passPIX)
2385         cleanupME->Fill(1.5);
2386       if (DCSFilterForDCSMonitoring_->passSiStrip)
2387         cleanupME->Fill(2.5);
2388       if (DCSFilterForDCSMonitoring_->passECAL)
2389         cleanupME->Fill(3.5);
2390       if (DCSFilterForDCSMonitoring_->passES)
2391         cleanupME->Fill(4.5);
2392       if (DCSFilterForDCSMonitoring_->passHBHE)
2393         cleanupME->Fill(5.5);
2394       if (DCSFilterForDCSMonitoring_->passHF)
2395         cleanupME->Fill(6.5);
2396       if (DCSFilterForDCSMonitoring_->passHO)
2397         cleanupME->Fill(7.5);
2398       if (DCSFilterForDCSMonitoring_->passMuon)
2399         cleanupME->Fill(8.5);
2400     }
2401   }
2402   edm::Handle<CaloJetCollection> caloJets;
2403   edm::Handle<JPTJetCollection> jptJets;
2404   edm::Handle<PFJetCollection> pfJets;
2405   edm::Handle<pat::JetCollection> patJets;
2406   edm::Handle<PFJetCollection> puppiJets;
2407 
2408   edm::Handle<MuonCollection> Muons;
2409 
2410   bool pass_Z_selection = false;
2411   reco::Candidate::PolarLorentzVector zCand;
2412 
2413   int mu_index0 = -1;
2414   int mu_index1 = -1;
2415 
2416   if (isCaloJet_)
2417     iEvent.getByToken(caloJetsToken_, caloJets);
2418   //if (isJPTJet_) iEvent.getByToken(jptJetsToken_, jptJets);
2419   if (isPFJet_) {
2420     iEvent.getByToken(pfJetsToken_, pfJets);
2421     iEvent.getByToken(MuonsToken_, Muons);
2422     double pt0 = -1;
2423     double pt1 = -1;
2424     //fill it only for cleaned jets
2425     if (jetCleaningFlag_ && Muons.isValid() && Muons->size() > 1) {
2426       for (unsigned int i = 0; i < Muons->size(); i++) {
2427         bool pass_muon_id = false;
2428         bool pass_muon_iso = false;
2429         double dxy = fabs((*Muons)[i].muonBestTrack()->dxy());
2430         double dz = fabs((*Muons)[i].muonBestTrack()->dz());
2431         if (numPV > 0) {
2432           dxy = fabs((*Muons)[i].muonBestTrack()->dxy((*vertexHandle)[0].position()));
2433           dz = fabs((*Muons)[i].muonBestTrack()->dz((*vertexHandle)[0].position()));
2434         }
2435         if ((*Muons)[i].pt() > 20 && fabs((*Muons)[i].eta()) < 2.3) {
2436           if ((*Muons)[i].isGlobalMuon() && (*Muons)[i].isPFMuon() &&
2437               (*Muons)[i].globalTrack()->hitPattern().numberOfValidMuonHits() > 0 &&
2438               (*Muons)[i].numberOfMatchedStations() > 1 && dxy < 0.2 && (*Muons)[i].numberOfMatchedStations() > 1 &&
2439               dz < 0.5 && (*Muons)[i].innerTrack()->hitPattern().numberOfValidPixelHits() > 0 &&
2440               (*Muons)[i].innerTrack()->hitPattern().trackerLayersWithMeasurement() > 5) {
2441             pass_muon_id = true;
2442           }
2443           // Muon pf isolation DB corrected
2444           float muonIsoPFdb =
2445               ((*Muons)[i].pfIsolationR04().sumChargedHadronPt +
2446                std::max(0.,
2447                         (*Muons)[i].pfIsolationR04().sumNeutralHadronEt + (*Muons)[i].pfIsolationR04().sumPhotonEt -
2448                             0.5 * (*Muons)[i].pfIsolationR04().sumPUPt)) /
2449               (*Muons)[i].pt();
2450           if (muonIsoPFdb < 0.12) {
2451             pass_muon_iso = true;
2452           }
2453 
2454           if (pass_muon_id && pass_muon_iso) {
2455             if ((*Muons)[i].pt() > pt0) {
2456               mu_index1 = mu_index0;
2457               pt1 = pt0;
2458               mu_index0 = i;
2459               pt0 = (*Muons)[i].pt();
2460             } else if ((*Muons)[i].pt() > pt1) {
2461               mu_index1 = i;
2462               pt1 = (*Muons)[i].pt();
2463             }
2464           }
2465         }
2466       }
2467       if (mu_index0 >= 0 && mu_index1 >= 0) {
2468         if ((*Muons)[mu_index0].charge() * (*Muons)[mu_index1].charge() < 0) {
2469           zCand = (*Muons)[mu_index0].polarP4() + (*Muons)[mu_index1].polarP4();
2470           if (fabs(zCand.M() - 91.) < 20 && zCand.Pt() > 30) {
2471             pass_Z_selection = true;
2472           }
2473         }
2474       }
2475     }
2476   }
2477   if (isPUPPIJet_) {
2478     iEvent.getByToken(puppiJetsToken_, puppiJets);
2479     double pt0 = -1;
2480     double pt1 = -1;
2481     //fill it only for cleaned jets
2482     if (jetCleaningFlag_ && Muons.isValid() && Muons->size() > 1) {
2483       for (unsigned int i = 0; i < Muons->size(); i++) {
2484         bool pass_muon_id = false;
2485         bool pass_muon_iso = false;
2486         double dxy = fabs((*Muons)[i].muonBestTrack()->dxy());
2487         double dz = fabs((*Muons)[i].muonBestTrack()->dz());
2488         if (numPV > 0) {
2489           dxy = fabs((*Muons)[i].muonBestTrack()->dxy((*vertexHandle)[0].position()));
2490           dz = fabs((*Muons)[i].muonBestTrack()->dz((*vertexHandle)[0].position()));
2491         }
2492         if ((*Muons)[i].pt() > 20 && fabs((*Muons)[i].eta()) < 2.3) {
2493           if ((*Muons)[i].isGlobalMuon() && (*Muons)[i].isPFMuon() &&
2494               (*Muons)[i].globalTrack()->hitPattern().numberOfValidMuonHits() > 0 &&
2495               (*Muons)[i].numberOfMatchedStations() > 1 && dxy < 0.2 && (*Muons)[i].numberOfMatchedStations() > 1 &&
2496               dz < 0.5 && (*Muons)[i].innerTrack()->hitPattern().numberOfValidPixelHits() > 0 &&
2497               (*Muons)[i].innerTrack()->hitPattern().trackerLayersWithMeasurement() > 5) {
2498             pass_muon_id = true;
2499           }
2500           // Muon pf isolation DB corrected
2501           float muonIsoPFdb =
2502               ((*Muons)[i].pfIsolationR04().sumChargedHadronPt +
2503                std::max(0.,
2504                         (*Muons)[i].pfIsolationR04().sumNeutralHadronEt + (*Muons)[i].pfIsolationR04().sumPhotonEt -
2505                             0.5 * (*Muons)[i].pfIsolationR04().sumPUPt)) /
2506               (*Muons)[i].pt();
2507           if (muonIsoPFdb < 0.12) {
2508             pass_muon_iso = true;
2509           }
2510 
2511           if (pass_muon_id && pass_muon_iso) {
2512             if ((*Muons)[i].pt() > pt0) {
2513               mu_index1 = mu_index0;
2514               pt1 = pt0;
2515               mu_index0 = i;
2516               pt0 = (*Muons)[i].pt();
2517             } else if ((*Muons)[i].pt() > pt1) {
2518               mu_index1 = i;
2519               pt1 = (*Muons)[i].pt();
2520             }
2521           }
2522         }
2523       }
2524       if (mu_index0 >= 0 && mu_index1 >= 0) {
2525         if ((*Muons)[mu_index0].charge() * (*Muons)[mu_index1].charge() < 0) {
2526           zCand = (*Muons)[mu_index0].polarP4() + (*Muons)[mu_index1].polarP4();
2527           if (fabs(zCand.M() - 91.) < 20 && zCand.Pt() > 30) {
2528             pass_Z_selection = true;
2529           }
2530         }
2531       }
2532     }
2533   }
2534   if (isMiniAODJet_)
2535     iEvent.getByToken(patJetsToken_, patJets);
2536 
2537   edm::Handle<edm::ValueMap<reco::JetID> > jetID_ValueMap_Handle;
2538   if (/*isJPTJet_ || */ isCaloJet_) {
2539     if (!runcosmics_) {
2540       iEvent.getByToken(jetID_ValueMapToken_, jetID_ValueMap_Handle);
2541     }
2542   }
2543 
2544   //check for collections AND DCS filters
2545   bool dcsDecision = DCSFilterForJetMonitoring_->filter(iEvent, iSetup);
2546   bool jetCollectionIsValid = false;
2547   if (isCaloJet_)
2548     jetCollectionIsValid = caloJets.isValid();
2549   //if (isJPTJet_)   jetCollectionIsValid = jptJets.isValid();
2550   if (isPFJet_)
2551     jetCollectionIsValid = pfJets.isValid();
2552   if (isPUPPIJet_)
2553     jetCollectionIsValid = puppiJets.isValid();
2554   if (isMiniAODJet_)
2555     jetCollectionIsValid = patJets.isValid();
2556 
2557   if (jetCleaningFlag_ && (!jetCollectionIsValid || !bPrimaryVertex || !dcsDecision))
2558     return;
2559 
2560   unsigned int collSize = -1;
2561   if (isCaloJet_)
2562     collSize = caloJets->size();
2563   //if (isJPTJet_) {
2564   //collSize=jptJets->size();
2565   //if(collSize>0){
2566   //  //update the track propagator and strip noise calculator
2567   //  trackPropagator_->update(iSetup);
2568   //  //sOverNCalculator_->update(iSetup);
2569   //}
2570   //}
2571   if (isPFJet_)
2572     collSize = pfJets->size();
2573   if (isMiniAODJet_)
2574     collSize = patJets->size();
2575   if (isPUPPIJet_)
2576     collSize = puppiJets->size();
2577 
2578   double scale = -1;
2579   //now start changes for jets
2580   std::vector<Jet> corJets;
2581   corJets.clear();
2582 
2583   //maybe not most elegant solution, but works for sure
2584   int ind1 = -1;
2585   double pt1 = -1;
2586   int ind2 = -1;
2587   double pt2 = -1;
2588   int ind3 = -1;
2589   double pt3 = -1;
2590 
2591   bool cleaned_first_jet = false;
2592   bool cleaned_second_jet = false;
2593   //bool cleaned_third_jet=false;
2594   //for ZJets selection check for muon jet overlap
2595   int ind1_mu_vetoed = -1;
2596   double pt1_mu_vetoed = -1;
2597   int ind2_mu_vetoed = -1;
2598   double pt2_mu_vetoed = -1;
2599   bool cleaned_first_jet_mu_vetoed = false;
2600   bool cleaned_second_jet_mu_vetoed = false;
2601 
2602   //now start changes for jets
2603   std::vector<Jet> recoJets;
2604   recoJets.clear();
2605 
2606   int numofjets = 0;
2607 
2608   edm::Handle<reco::JetCorrector> jetCorr;
2609   bool pass_correction_flag = false;
2610   if (!isMiniAODJet_ && !jetCorrectorTag_.label().empty()) {
2611     iEvent.getByToken(jetCorrectorToken_, jetCorr);
2612     if (jetCorr.isValid()) {
2613       pass_correction_flag = true;
2614     } else {
2615       LogWarning("JetAnalyzer") << "Jet corrector service not found!";
2616     }
2617   }
2618   if (isMiniAODJet_) {
2619     pass_correction_flag = true;
2620   }
2621 
2622   for (unsigned int ijet = 0; ijet < collSize; ijet++) {
2623     //bool thiscleaned=false;
2624     Jet correctedJet;
2625     bool pass_uncorrected = false;
2626     bool pass_corrected = false;
2627     if (isCaloJet_) {
2628       correctedJet = (*caloJets)[ijet];
2629     }
2630     //if (isJPTJet_){
2631     //correctedJet=(*jptJets)[ijet];
2632     //}
2633     if (isPFJet_) {
2634       correctedJet = (*pfJets)[ijet];
2635     }
2636     if (isPUPPIJet_) {
2637       correctedJet = (*puppiJets)[ijet];
2638     }
2639     if (isMiniAODJet_) {
2640       correctedJet = (*patJets)[ijet];
2641     }
2642     if (!isMiniAODJet_ && correctedJet.pt() > ptThresholdUnc_) {
2643       pass_uncorrected = true;
2644     }
2645     if (isMiniAODJet_ && (correctedJet.pt() * (*patJets)[ijet].jecFactor("Uncorrected")) > ptThresholdUnc_) {
2646       pass_uncorrected = true;
2647     }
2648     if (pass_correction_flag && !isMiniAODJet_) {
2649       if (isCaloJet_) {
2650         scale = jetCorr->correction((*caloJets)[ijet]);
2651       }
2652       if (isPFJet_) {
2653         scale = jetCorr->correction((*pfJets)[ijet]);
2654       }
2655       if (isPUPPIJet_) {
2656         scale = jetCorr->correction((*puppiJets)[ijet]);
2657       }
2658       correctedJet.scaleEnergy(scale);
2659     }
2660     if (correctedJet.pt() > ptThreshold_) {
2661       pass_corrected = true;
2662     }
2663     //if (!pass_corrected && !pass_uncorrected) continue;
2664     //remove the continue line, for physics selections we might losen the pt-thresholds as we care only about leading jets
2665     //fill only corrected jets -> check ID for uncorrected jets
2666     if (pass_corrected) {
2667       recoJets.push_back(correctedJet);
2668     }
2669     bool jetpassid = true;
2670     bool Thiscleaned = true;
2671     bool JetIDWPU = true;
2672     //jet ID for calojets
2673     if (isCaloJet_) {
2674       reco::CaloJetRef calojetref(caloJets, ijet);
2675       if (!runcosmics_) {
2676         reco::JetID jetID = (*jetID_ValueMap_Handle)[calojetref];
2677         jetpassid = jetIDFunctor((*caloJets)[ijet], jetID);
2678         JetIDWPU = jetpassid;
2679         if (jetCleaningFlag_) {
2680           Thiscleaned = jetpassid;
2681         }
2682         if (Thiscleaned && pass_corrected) {  //if cleaning requested->jet passes a loose ID
2683           mN90Hits = map_of_MEs[DirName + "/" + "N90Hits"];
2684           if (mN90Hits && mN90Hits->getRootObject())
2685             mN90Hits->Fill(jetID.n90Hits);
2686           mfHPD = map_of_MEs[DirName + "/" + "fHPD"];
2687           if (mfHPD && mfHPD->getRootObject())
2688             mfHPD->Fill(jetID.fHPD);
2689           mresEMF = map_of_MEs[DirName + "/" + "resEMF"];
2690           if (mresEMF && mresEMF->getRootObject())
2691             mresEMF->Fill(jetID.restrictedEMF);
2692           mfRBX = map_of_MEs[DirName + "/" + "fRBX"];
2693           if (mfRBX && mfRBX->getRootObject())
2694             mfRBX->Fill(jetID.fRBX);
2695         }
2696       }
2697       if (jetCleaningFlag_) {
2698         Thiscleaned = jetpassid;
2699       }
2700       if (Thiscleaned && pass_uncorrected) {
2701         mPt_uncor = map_of_MEs[DirName + "/" + "Pt_uncor"];
2702         if (mPt_uncor && mPt_uncor->getRootObject())
2703           mPt_uncor->Fill((*caloJets)[ijet].pt());
2704         mEta_uncor = map_of_MEs[DirName + "/" + "Eta_uncor"];
2705         if (mEta_uncor && mEta_uncor->getRootObject())
2706           mEta_uncor->Fill((*caloJets)[ijet].eta());
2707         mPhi_uncor = map_of_MEs[DirName + "/" + "Phi_uncor"];
2708         if (mPhi_uncor && mPhi_uncor->getRootObject())
2709           mPhi_uncor->Fill((*caloJets)[ijet].phi());
2710         mConstituents_uncor = map_of_MEs[DirName + "/" + "Constituents_uncor"];
2711         if (mConstituents_uncor && mConstituents_uncor->getRootObject())
2712           mConstituents_uncor->Fill((*caloJets)[ijet].nConstituents());
2713       }
2714       //now do calojet specific fractions and histograms ->H and E fracs
2715       if (Thiscleaned && pass_corrected) {  //if cleaning requested->jet passes a loose ID
2716         mHFrac = map_of_MEs[DirName + "/" + "HFrac"];
2717         if (mHFrac && mHFrac->getRootObject())
2718           mHFrac->Fill((*caloJets)[ijet].energyFractionHadronic());
2719         mEFrac = map_of_MEs[DirName + "/" + "EFrac"];
2720         if (mEFrac && mHFrac->getRootObject())
2721           mEFrac->Fill((*caloJets)[ijet].emEnergyFraction());
2722         mHFrac_profile = map_of_MEs[DirName + "/" + "HFrac_profile"];
2723         if (mHFrac_profile && mHFrac_profile->getRootObject())
2724           mHFrac_profile->Fill(numPV, (*caloJets)[ijet].energyFractionHadronic());
2725         mEFrac_profile = map_of_MEs[DirName + "/" + "EFrac_profile"];
2726         if (mEFrac_profile && mEFrac_profile->getRootObject())
2727           mEFrac_profile->Fill(numPV, (*caloJets)[ijet].emEnergyFraction());
2728         if (fabs((*caloJets)[ijet].eta()) <= 1.3) {
2729           mHFrac_Barrel = map_of_MEs[DirName + "/" + "HFrac_Barrel"];
2730           if (mHFrac_Barrel && mHFrac_Barrel->getRootObject())
2731             mHFrac_Barrel->Fill((*caloJets)[ijet].energyFractionHadronic());
2732           mEFrac_Barrel = map_of_MEs[DirName + "/" + "EFrac_Barrel"];
2733           if (mEFrac_Barrel && mEFrac_Barrel->getRootObject())
2734             mEFrac_Barrel->Fill((*caloJets)[ijet].emEnergyFraction());
2735         } else if (fabs((*caloJets)[ijet].eta()) < 3.0) {
2736           mHFrac_EndCap = map_of_MEs[DirName + "/" + "HFrac_EndCap"];
2737           if (mHFrac_EndCap && mHFrac_EndCap->getRootObject())
2738             mHFrac_EndCap->Fill((*caloJets)[ijet].energyFractionHadronic());
2739           mEFrac_EndCap = map_of_MEs[DirName + "/" + "EFrac_EndCap"];
2740           if (mEFrac_EndCap && mEFrac_EndCap->getRootObject())
2741             mEFrac_EndCap->Fill((*caloJets)[ijet].emEnergyFraction());
2742         } else {
2743           mHFrac_Forward = map_of_MEs[DirName + "/" + "HFrac_Forward"];
2744           if (mHFrac_Forward && mHFrac_Forward->getRootObject())
2745             mHFrac_Forward->Fill((*caloJets)[ijet].energyFractionHadronic());
2746           mEFrac_Forward = map_of_MEs[DirName + "/" + "EFrac_Forward"];
2747           if (mEFrac_Forward && mEFrac_Forward->getRootObject())
2748             mEFrac_Forward->Fill((*caloJets)[ijet].emEnergyFraction());
2749         }
2750         mHadEnergyInHO = map_of_MEs[DirName + "/" + "HadEnergyInHO"];
2751         if (mHadEnergyInHO && mHadEnergyInHO->getRootObject())
2752           mHadEnergyInHO->Fill((*caloJets)[ijet].hadEnergyInHO());
2753         mHadEnergyInHB = map_of_MEs[DirName + "/" + "HadEnergyInHB"];
2754         if (mHadEnergyInHB && mHadEnergyInHB->getRootObject())
2755           mHadEnergyInHB->Fill((*caloJets)[ijet].hadEnergyInHB());
2756         mHadEnergyInHF = map_of_MEs[DirName + "/" + "HadEnergyInHF"];
2757         if (mHadEnergyInHF && mHadEnergyInHF->getRootObject())
2758           mHadEnergyInHF->Fill((*caloJets)[ijet].hadEnergyInHF());
2759         mHadEnergyInHE = map_of_MEs[DirName + "/" + "HadEnergyInHE"];
2760         if (mHadEnergyInHE && mHadEnergyInHE->getRootObject())
2761           mHadEnergyInHE->Fill((*caloJets)[ijet].hadEnergyInHE());
2762         mEmEnergyInEB = map_of_MEs[DirName + "/" + "EmEnergyInEB"];
2763         if (mEmEnergyInEB && mEmEnergyInEB->getRootObject())
2764           mEmEnergyInEB->Fill((*caloJets)[ijet].emEnergyInEB());
2765         mEmEnergyInEE = map_of_MEs[DirName + "/" + "EmEnergyInEE"];
2766         if (mEmEnergyInEE && mEmEnergyInEE->getRootObject())
2767           mEmEnergyInEE->Fill((*caloJets)[ijet].emEnergyInEE());
2768         mEmEnergyInHF = map_of_MEs[DirName + "/" + "EmEnergyInHF"];
2769         if (mEmEnergyInHF && mEmEnergyInHF->getRootObject())
2770           mEmEnergyInHF->Fill((*caloJets)[ijet].emEnergyInHF());
2771       }
2772     }
2773     if (isMiniAODJet_ && (*patJets)[ijet].isPFJet()) {
2774       // You can't check the jet ID without the specifics. If they were dropped for space savings,
2775       // don't monitor this jet.
2776       if (!(*patJets)[ijet].hasPFSpecific())
2777         continue;
2778 
2779       pat::strbitset stringbitset = pfjetIDFunctor.getBitTemplate();
2780       jetpassid = pfjetIDFunctor((*patJets)[ijet], stringbitset);
2781       if (jetCleaningFlag_) {
2782         Thiscleaned = jetpassid;
2783         JetIDWPU = jetpassid;
2784       }
2785       if (Thiscleaned && pass_uncorrected) {
2786         mPt_uncor = map_of_MEs[DirName + "/" + "Pt_uncor"];
2787         if (mPt_uncor && mPt_uncor->getRootObject())
2788           if (mPt_uncor)
2789             mPt_uncor->Fill((*patJets)[ijet].pt() * (*patJets)[ijet].jecFactor("Uncorrected"));
2790         mEta_uncor = map_of_MEs[DirName + "/" + "Eta_uncor"];
2791         if (mEta_uncor && mEta_uncor->getRootObject())
2792           if (mEta_uncor)
2793             mEta_uncor->Fill((*patJets)[ijet].eta());
2794         mPhi_uncor = map_of_MEs[DirName + "/" + "Phi_uncor"];
2795         if (mPhi_uncor && mPhi_uncor->getRootObject())
2796           if (mPhi_uncor)
2797             mPhi_uncor->Fill((*patJets)[ijet].phi());
2798         mConstituents_uncor = map_of_MEs[DirName + "/" + "Constituents_uncor"];
2799         if (mConstituents_uncor && mConstituents_uncor->getRootObject())
2800           if (mConstituents_uncor)
2801             mConstituents_uncor->Fill((*patJets)[ijet].nConstituents());
2802       }
2803       if (Thiscleaned && pass_corrected) {
2804         mPt_CaloJet = map_of_MEs[DirName + "/" + "Pt_CaloJet"];
2805         if (mPt_CaloJet && mPt_CaloJet->getRootObject() && (*patJets)[ijet].hasUserFloat("caloJetMap:pt"))
2806           mPt_CaloJet->Fill((*patJets)[ijet].userFloat("caloJetMap:pt"));
2807         mEMF_CaloJet = map_of_MEs[DirName + "/" + "EMF_CaloJet"];
2808         if (mEMF_CaloJet && mEMF_CaloJet->getRootObject() &&
2809             (*patJets)[ijet].hasUserFloat("caloJetMap:emEnergyFraction"))
2810           mEMF_CaloJet->Fill((*patJets)[ijet].userFloat("caloJetMap:emEnergyFraction"));
2811         if (fabs(correctedJet.eta()) <= 1.3) {
2812           if (correctedJet.pt() <= 50.) {
2813             mMVAPUJIDDiscriminant_lowPt_Barrel = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_lowPt_Barrel"];
2814             if (mMVAPUJIDDiscriminant_lowPt_Barrel && mMVAPUJIDDiscriminant_lowPt_Barrel->getRootObject()) {
2815               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2816                 mMVAPUJIDDiscriminant_lowPt_Barrel->Fill((*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2817             }
2818           }
2819           if (correctedJet.pt() > 50. && correctedJet.pt() <= 140.) {
2820             mMVAPUJIDDiscriminant_mediumPt_Barrel = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_Barrel"];
2821             if (mMVAPUJIDDiscriminant_mediumPt_Barrel && mMVAPUJIDDiscriminant_mediumPt_Barrel->getRootObject()) {
2822               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2823                 mMVAPUJIDDiscriminant_mediumPt_Barrel->Fill((*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2824             }
2825           }
2826           if (correctedJet.pt() > 140.) {
2827             mMVAPUJIDDiscriminant_highPt_Barrel = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_highPt_Barrel"];
2828             if (mMVAPUJIDDiscriminant_highPt_Barrel && mMVAPUJIDDiscriminant_highPt_Barrel->getRootObject()) {
2829               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2830                 mMVAPUJIDDiscriminant_highPt_Barrel->Fill((*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2831             }
2832           }
2833           mMass_Barrel = map_of_MEs[DirName + "/" + "JetMass_Barrel"];
2834           if (mMass_Barrel && mMass_Barrel->getRootObject())
2835             mMass_Barrel->Fill((*patJets)[ijet].mass());
2836           mCHFracVSpT_Barrel = map_of_MEs[DirName + "/" + "CHFracVSpT_Barrel"];
2837           if (mCHFracVSpT_Barrel && mCHFracVSpT_Barrel->getRootObject())
2838             mCHFracVSpT_Barrel->Fill(correctedJet.pt(), (*patJets)[ijet].chargedHadronEnergyFraction());
2839           mNHFracVSpT_Barrel = map_of_MEs[DirName + "/" + "NHFracVSpT_Barrel"];
2840           if (mNHFracVSpT_Barrel && mNHFracVSpT_Barrel->getRootObject())
2841             mNHFracVSpT_Barrel->Fill(correctedJet.pt(), (*patJets)[ijet].neutralHadronEnergyFraction());
2842           mPhFracVSpT_Barrel = map_of_MEs[DirName + "/" + "PhFracVSpT_Barrel"];
2843           if (mPhFracVSpT_Barrel && mPhFracVSpT_Barrel->getRootObject())
2844             mPhFracVSpT_Barrel->Fill(correctedJet.pt(), (*patJets)[ijet].neutralEmEnergyFraction());
2845         } else if (fabs(correctedJet.eta()) <= 3) {
2846           if (correctedJet.pt() <= 50.) {
2847             mMVAPUJIDDiscriminant_lowPt_EndCap = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_lowPt_EndCap"];
2848             if (mMVAPUJIDDiscriminant_lowPt_EndCap && mMVAPUJIDDiscriminant_lowPt_EndCap->getRootObject()) {
2849               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2850                 mMVAPUJIDDiscriminant_lowPt_EndCap->Fill((*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2851             }
2852           }
2853           if (correctedJet.pt() > 50. && correctedJet.pt() <= 140.) {
2854             mMVAPUJIDDiscriminant_mediumPt_EndCap = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_EndCap"];
2855             if (mMVAPUJIDDiscriminant_mediumPt_EndCap && mMVAPUJIDDiscriminant_mediumPt_EndCap->getRootObject()) {
2856               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2857                 mMVAPUJIDDiscriminant_mediumPt_EndCap->Fill((*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2858             }
2859           }
2860           if (correctedJet.pt() > 140.) {
2861             mMVAPUJIDDiscriminant_highPt_EndCap = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_highPt_EndCap"];
2862             if (mMVAPUJIDDiscriminant_highPt_EndCap && mMVAPUJIDDiscriminant_highPt_EndCap->getRootObject()) {
2863               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2864                 mMVAPUJIDDiscriminant_highPt_EndCap->Fill((*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2865             }
2866           }
2867           mMass_EndCap = map_of_MEs[DirName + "/" + "JetMass_EndCap"];
2868           if (mMass_EndCap && mMass_EndCap->getRootObject())
2869             mMass_EndCap->Fill((*patJets)[ijet].mass());
2870           mCHFracVSpT_EndCap = map_of_MEs[DirName + "/" + "CHFracVSpT_EndCap"];
2871           if (mCHFracVSpT_EndCap && mCHFracVSpT_EndCap->getRootObject())
2872             mCHFracVSpT_EndCap->Fill(correctedJet.pt(), (*patJets)[ijet].chargedHadronEnergyFraction());
2873           mNHFracVSpT_EndCap = map_of_MEs[DirName + "/" + "NHFracVSpT_EndCap"];
2874           if (mNHFracVSpT_EndCap && mNHFracVSpT_EndCap->getRootObject())
2875             mNHFracVSpT_EndCap->Fill(correctedJet.pt(), (*patJets)[ijet].neutralHadronEnergyFraction());
2876           mPhFracVSpT_EndCap = map_of_MEs[DirName + "/" + "PhFracVSpT_EndCap"];
2877           if (mPhFracVSpT_EndCap && mPhFracVSpT_EndCap->getRootObject())
2878             mPhFracVSpT_EndCap->Fill(correctedJet.pt(), (*patJets)[ijet].neutralEmEnergyFraction());
2879         } else if (fabs(correctedJet.eta()) <= 5) {
2880           if (correctedJet.pt() <= 50.) {
2881             mMVAPUJIDDiscriminant_lowPt_Forward = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_lowPt_Forward"];
2882             if (mMVAPUJIDDiscriminant_lowPt_Forward && mMVAPUJIDDiscriminant_lowPt_Forward->getRootObject()) {
2883               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2884                 mMVAPUJIDDiscriminant_lowPt_Forward->Fill((*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2885             }
2886           }
2887           if (correctedJet.pt() > 50. && correctedJet.pt() <= 140.) {
2888             mMVAPUJIDDiscriminant_mediumPt_Forward =
2889                 map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_Forward"];
2890             if (mMVAPUJIDDiscriminant_mediumPt_Forward && mMVAPUJIDDiscriminant_mediumPt_Forward->getRootObject()) {
2891               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2892                 mMVAPUJIDDiscriminant_mediumPt_Forward->Fill(
2893                     (*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2894             }
2895           }
2896           if (correctedJet.pt() > 140.) {
2897             mMVAPUJIDDiscriminant_highPt_Forward = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_highPt_Forward"];
2898             if (mMVAPUJIDDiscriminant_highPt_Forward && mMVAPUJIDDiscriminant_highPt_Forward->getRootObject()) {
2899               if ((*patJets)[ijet].hasUserFloat("pileupJetId:fullDiscriminant"))
2900                 mMVAPUJIDDiscriminant_highPt_Forward->Fill((*patJets)[ijet].userFloat("pileupJetId:fullDiscriminant"));
2901             }
2902           }
2903           mMass_Forward = map_of_MEs[DirName + "/" + "JetMass_Forward"];
2904           if (mMass_Forward && mMass_Forward->getRootObject())
2905             mMass_Forward->Fill((*patJets)[ijet].mass());
2906           mHFHFracVSpT_Forward = map_of_MEs[DirName + "/" + "HFHFracVSpT_Forward"];
2907           if (mHFHFracVSpT_Forward && mHFHFracVSpT_Forward->getRootObject())
2908             mHFHFracVSpT_Forward->Fill(correctedJet.pt(), (*patJets)[ijet].HFHadronEnergyFraction());
2909           mHFEFracVSpT_Forward = map_of_MEs[DirName + "/" + "HFEFracVSpT_Forward"];
2910           if (mHFEFracVSpT_Forward && mHFEFracVSpT_Forward->getRootObject())
2911             mHFEFracVSpT_Forward->Fill(correctedJet.pt(), (*patJets)[ijet].HFEMEnergyFraction());
2912         }
2913       }
2914     }
2915     if (isPFJet_) {
2916       reco::PFJetRef pfjetref(pfJets, ijet);
2917       float puidmva = -1;
2918       float puidcut = -1;
2919       int puidmvaflag = -10;
2920       int puidcutflag = -10;
2921       puidmva = (*puJetIdMva)[pfjetref];
2922       puidcut = (*puJetId)[pfjetref];
2923       puidmvaflag = (*puJetIdFlagMva)[pfjetref];
2924       puidcutflag = (*puJetIdFlag)[pfjetref];
2925       jetpassid = pfjetIDFunctor((*pfJets)[ijet]);
2926       if (jetCleaningFlag_) {
2927         Thiscleaned = jetpassid;
2928         JetIDWPU = jetpassid;  // && PileupJetIdentifier::passJetId( puidmvaflag, PileupJetIdentifier::kLoose )
2929       }
2930       if (Thiscleaned && pass_uncorrected) {
2931         mPt_uncor = map_of_MEs[DirName + "/" + "Pt_uncor"];
2932         if (mPt_uncor && mPt_uncor->getRootObject())
2933           mPt_uncor->Fill((*pfJets)[ijet].pt());
2934         mEta_uncor = map_of_MEs[DirName + "/" + "Eta_uncor"];
2935         if (mEta_uncor && mEta_uncor->getRootObject())
2936           mEta_uncor->Fill((*pfJets)[ijet].eta());
2937         mPhi_uncor = map_of_MEs[DirName + "/" + "Phi_uncor"];
2938         if (mPhi_uncor && mPhi_uncor->getRootObject())
2939           mPhi_uncor->Fill((*pfJets)[ijet].phi());
2940         mConstituents_uncor = map_of_MEs[DirName + "/" + "Constituents_uncor"];
2941         if (mConstituents_uncor && mConstituents_uncor->getRootObject())
2942           mConstituents_uncor->Fill((*pfJets)[ijet].nConstituents());
2943       }
2944       if (Thiscleaned && pass_corrected) {
2945         if (PileupJetIdentifier::passJetId(puidcutflag, PileupJetIdentifier::kLoose)) {
2946           mLooseCutPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "LooseCutPUIDPassFractionVSeta"];
2947           if (mLooseCutPUJIDPassFractionVSeta && mLooseCutPUJIDPassFractionVSeta->getRootObject())
2948             mLooseCutPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 1.);
2949           mLooseCutPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "LooseCutPUIDPassFractionVSpt"];
2950           if (mLooseCutPUJIDPassFractionVSpt && mLooseCutPUJIDPassFractionVSpt->getRootObject())
2951             mLooseCutPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 1.);
2952         } else {
2953           mLooseCutPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "LooseCutPUIDPassFractionVSeta"];
2954           if (mLooseCutPUJIDPassFractionVSeta && mLooseCutPUJIDPassFractionVSeta->getRootObject())
2955             mLooseCutPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 0.);
2956           mLooseCutPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "LooseCutPUIDPassFractionVSpt"];
2957           if (mLooseCutPUJIDPassFractionVSpt && mLooseCutPUJIDPassFractionVSpt->getRootObject())
2958             mLooseCutPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 0.);
2959         }
2960         if (PileupJetIdentifier::passJetId(puidcutflag, PileupJetIdentifier::kMedium)) {
2961           mMediumCutPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "MediumCutPUIDPassFractionVSeta"];
2962           if (mMediumCutPUJIDPassFractionVSeta && mMediumCutPUJIDPassFractionVSeta->getRootObject())
2963             mMediumCutPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 1.);
2964           mMediumCutPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "MediumCutPUIDPassFractionVSpt"];
2965           if (mMediumCutPUJIDPassFractionVSpt && mMediumCutPUJIDPassFractionVSpt->getRootObject())
2966             mMediumCutPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 1.);
2967         } else {
2968           mMediumCutPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "MediumCutPUIDPassFractionVSeta"];
2969           if (mMediumCutPUJIDPassFractionVSeta && mMediumCutPUJIDPassFractionVSeta->getRootObject())
2970             mMediumCutPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 0.);
2971           mMediumCutPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "MediumCutPUIDPassFractionVSpt"];
2972           if (mMediumCutPUJIDPassFractionVSpt && mMediumCutPUJIDPassFractionVSpt->getRootObject())
2973             mMediumCutPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 0.);
2974         }
2975         if (PileupJetIdentifier::passJetId(puidcutflag, PileupJetIdentifier::kTight)) {
2976           mTightCutPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "TightCutPUIDPassFractionVSeta"];
2977           if (mTightCutPUJIDPassFractionVSeta && mTightCutPUJIDPassFractionVSeta->getRootObject())
2978             mTightCutPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 1.);
2979           mTightCutPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "TightCutPUIDPassFractionVSpt"];
2980           if (mTightCutPUJIDPassFractionVSpt && mTightCutPUJIDPassFractionVSpt->getRootObject())
2981             mTightCutPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 1.);
2982         } else {
2983           mTightCutPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "TightCutPUIDPassFractionVSeta"];
2984           if (mTightCutPUJIDPassFractionVSeta && mTightCutPUJIDPassFractionVSeta->getRootObject())
2985             mTightCutPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 0.);
2986           mTightCutPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "TightCutPUIDPassFractionVSpt"];
2987           if (mTightCutPUJIDPassFractionVSpt && mTightCutPUJIDPassFractionVSpt->getRootObject())
2988             mTightCutPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 0.);
2989         }
2990         if (PileupJetIdentifier::passJetId(puidmvaflag, PileupJetIdentifier::kLoose)) {
2991           mLooseMVAPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "LooseMVAPUIDPassFractionVSeta"];
2992           if (mLooseMVAPUJIDPassFractionVSeta && mLooseMVAPUJIDPassFractionVSeta->getRootObject())
2993             mLooseMVAPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 1.);
2994           mLooseMVAPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "LooseMVAPUIDPassFractionVSpt"];
2995           if (mLooseMVAPUJIDPassFractionVSpt && mLooseMVAPUJIDPassFractionVSpt->getRootObject())
2996             mLooseMVAPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 1.);
2997         } else {
2998           mLooseMVAPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "LooseMVAPUIDPassFractionVSeta"];
2999           if (mLooseMVAPUJIDPassFractionVSeta && mLooseMVAPUJIDPassFractionVSeta->getRootObject())
3000             mLooseMVAPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 0.);
3001           mLooseMVAPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "LooseMVAPUIDPassFractionVSpt"];
3002           if (mLooseMVAPUJIDPassFractionVSpt && mLooseMVAPUJIDPassFractionVSpt->getRootObject())
3003             mLooseMVAPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 0.);
3004         }
3005         if (PileupJetIdentifier::passJetId(puidmvaflag, PileupJetIdentifier::kMedium)) {
3006           mMediumMVAPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "MediumMVAPUIDPassFractionVSeta"];
3007           if (mMediumMVAPUJIDPassFractionVSeta && mMediumMVAPUJIDPassFractionVSeta->getRootObject())
3008             mMediumMVAPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 1.);
3009           mMediumMVAPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "MediumMVAPUIDPassFractionVSpt"];
3010           if (mMediumMVAPUJIDPassFractionVSpt && mMediumMVAPUJIDPassFractionVSpt->getRootObject())
3011             mMediumMVAPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 1.);
3012         } else {
3013           mMediumMVAPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "MediumMVAPUIDPassFractionVSeta"];
3014           if (mMediumMVAPUJIDPassFractionVSeta && mMediumMVAPUJIDPassFractionVSeta->getRootObject())
3015             mMediumMVAPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 0.);
3016           mMediumMVAPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "MediumMVAPUIDPassFractionVSpt"];
3017           if (mMediumMVAPUJIDPassFractionVSpt && mMediumMVAPUJIDPassFractionVSpt->getRootObject())
3018             mMediumMVAPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 0.);
3019         }
3020         if (PileupJetIdentifier::passJetId(puidmvaflag, PileupJetIdentifier::kTight)) {
3021           mTightMVAPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "TightMVAPUIDPassFractionVSeta"];
3022           if (mTightMVAPUJIDPassFractionVSeta && mTightMVAPUJIDPassFractionVSeta->getRootObject())
3023             mTightMVAPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 1.);
3024           mTightMVAPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "TightMVAPUIDPassFractionVSpt"];
3025           if (mTightMVAPUJIDPassFractionVSpt && mTightMVAPUJIDPassFractionVSpt->getRootObject())
3026             mTightMVAPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 1.);
3027         } else {
3028           mTightMVAPUJIDPassFractionVSeta = map_of_MEs[DirName + "/" + "TightMVAPUIDPassFractionVSeta"];
3029           if (mTightMVAPUJIDPassFractionVSeta && mTightMVAPUJIDPassFractionVSeta->getRootObject())
3030             mTightMVAPUJIDPassFractionVSeta->Fill(correctedJet.eta(), 0.);
3031           mTightMVAPUJIDPassFractionVSpt = map_of_MEs[DirName + "/" + "TightMVAPUIDPassFractionVSpt"];
3032           if (mTightMVAPUJIDPassFractionVSpt && mTightMVAPUJIDPassFractionVSpt->getRootObject())
3033             mTightMVAPUJIDPassFractionVSpt->Fill(correctedJet.pt(), 0.);
3034         }
3035         if (correctedJet.pt() <= 50) {
3036           mCHFracVSeta_lowPt = map_of_MEs[DirName + "/" + "CHFracVSeta_lowPt"];
3037           if (mCHFracVSeta_lowPt && mCHFracVSeta_lowPt->getRootObject())
3038             mCHFracVSeta_lowPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].chargedHadronEnergyFraction());
3039           mNHFracVSeta_lowPt = map_of_MEs[DirName + "/" + "NHFracVSeta_lowPt"];
3040           if (mNHFracVSeta_lowPt && mNHFracVSeta_lowPt->getRootObject())
3041             mNHFracVSeta_lowPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].neutralHadronEnergyFraction());
3042           mPhFracVSeta_lowPt = map_of_MEs[DirName + "/" + "PhFracVSeta_lowPt"];
3043           if (mPhFracVSeta_lowPt && mPhFracVSeta_lowPt->getRootObject())
3044             mPhFracVSeta_lowPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].neutralEmEnergyFraction());
3045         }
3046         if (correctedJet.pt() > 50. && correctedJet.pt() <= 140.) {
3047           mCHFracVSeta_mediumPt = map_of_MEs[DirName + "/" + "CHFracVSeta_mediumPt"];
3048           if (mCHFracVSeta_mediumPt && mCHFracVSeta_mediumPt->getRootObject())
3049             mCHFracVSeta_mediumPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].chargedHadronEnergyFraction());
3050           mNHFracVSeta_mediumPt = map_of_MEs[DirName + "/" + "NHFracVSeta_mediumPt"];
3051           if (mNHFracVSeta_mediumPt && mNHFracVSeta_mediumPt->getRootObject())
3052             mNHFracVSeta_mediumPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].neutralHadronEnergyFraction());
3053           mPhFracVSeta_mediumPt = map_of_MEs[DirName + "/" + "PhFracVSeta_mediumPt"];
3054           if (mPhFracVSeta_mediumPt && mPhFracVSeta_mediumPt->getRootObject())
3055             mPhFracVSeta_mediumPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].neutralEmEnergyFraction());
3056         }
3057         if (correctedJet.pt() > 140.) {
3058           mCHFracVSeta_highPt = map_of_MEs[DirName + "/" + "CHFracVSeta_highPt"];
3059           if (mCHFracVSeta_highPt && mCHFracVSeta_highPt->getRootObject())
3060             mCHFracVSeta_highPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].chargedHadronEnergyFraction());
3061           mNHFracVSeta_highPt = map_of_MEs[DirName + "/" + "NHFracVSeta_highPt"];
3062           if (mNHFracVSeta_highPt && mNHFracVSeta_highPt->getRootObject())
3063             mNHFracVSeta_highPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].neutralHadronEnergyFraction());
3064           mPhFracVSeta_highPt = map_of_MEs[DirName + "/" + "PhFracVSeta_highPt"];
3065           if (mPhFracVSeta_highPt && mPhFracVSeta_highPt->getRootObject())
3066             mPhFracVSeta_highPt->Fill((*pfJets)[ijet].eta(), (*pfJets)[ijet].neutralEmEnergyFraction());
3067         }
3068         if (fabs(correctedJet.eta()) <= 1.3) {
3069           //fractions for barrel
3070           if (correctedJet.pt() <= 50.) {
3071             //mAxis2_lowPt_Barrel = map_of_MEs[DirName+"/"+"qg_Axis2_lowPt_Barrel"];if(mAxis2_lowPt_Barrel && mAxis2_lowPt_Barrel->getRootObject()) mAxis2_lowPt_Barrel->Fill(QGaxis2);
3072             //mpTD_lowPt_Barrel = map_of_MEs[DirName+"/"+"qg_pTD_lowPt_Barrel"]; if(mpTD_lowPt_Barrel && mpTD_lowPt_Barrel->getRootObject()) mpTD_lowPt_Barrel->Fill(QGptD);
3073             //mMultiplicityQG_lowPt_Barrel = map_of_MEs[DirName+"/"+"qg_multiplicity_lowPt_Barrel"]; if(mMultiplicityQG_lowPt_Barrel && mMultiplicityQG_lowPt_Barrel->getRootObject()) mMultiplicityQG_lowPt_Barrel->Fill(QGmulti);
3074             //mqgLikelihood_lowPt_Barrel = map_of_MEs[DirName+"/"+"qg_Likelihood_lowPt_Barrel"]; if(mqgLikelihood_lowPt_Barrel && mqgLikelihood_lowPt_Barrel->getRootObject()) mqgLikelihood_lowPt_Barrel->Fill(QGLikelihood);
3075             mMass_lowPt_Barrel = map_of_MEs[DirName + "/" + "JetMass_lowPt_Barrel"];
3076             if (mMass_lowPt_Barrel && mMass_lowPt_Barrel->getRootObject())
3077               mMass_lowPt_Barrel->Fill((*pfJets)[ijet].mass());
3078             mMVAPUJIDDiscriminant_lowPt_Barrel = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_lowPt_Barrel"];
3079             if (mMVAPUJIDDiscriminant_lowPt_Barrel && mMVAPUJIDDiscriminant_lowPt_Barrel->getRootObject())
3080               mMVAPUJIDDiscriminant_lowPt_Barrel->Fill(puidmva);
3081             mCutPUJIDDiscriminant_lowPt_Barrel = map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_lowPt_Barrel"];
3082             if (mCutPUJIDDiscriminant_lowPt_Barrel && mCutPUJIDDiscriminant_lowPt_Barrel->getRootObject())
3083               mCutPUJIDDiscriminant_lowPt_Barrel->Fill(puidcut);
3084             mCHFrac_lowPt_Barrel = map_of_MEs[DirName + "/" + "CHFrac_lowPt_Barrel"];
3085             if (mCHFrac_lowPt_Barrel && mCHFrac_lowPt_Barrel->getRootObject())
3086               mCHFrac_lowPt_Barrel->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3087             mNHFrac_lowPt_Barrel = map_of_MEs[DirName + "/" + "NHFrac_lowPt_Barrel"];
3088             if (mNHFrac_lowPt_Barrel && mNHFrac_lowPt_Barrel->getRootObject())
3089               mNHFrac_lowPt_Barrel->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3090             mPhFrac_lowPt_Barrel = map_of_MEs[DirName + "/" + "PhFrac_lowPt_Barrel"];
3091             if (mPhFrac_lowPt_Barrel && mPhFrac_lowPt_Barrel->getRootObject())
3092               mPhFrac_lowPt_Barrel->Fill((*pfJets)[ijet].neutralEmEnergyFraction());
3093             mCHEn_lowPt_Barrel = map_of_MEs[DirName + "/" + "CHEn_lowPt_Barrel"];
3094             if (mCHEn_lowPt_Barrel && mCHEn_lowPt_Barrel->getRootObject())
3095               mCHEn_lowPt_Barrel->Fill((*pfJets)[ijet].chargedHadronEnergy());
3096             mNHEn_lowPt_Barrel = map_of_MEs[DirName + "/" + "NHEn_lowPt_Barrel"];
3097             if (mNHEn_lowPt_Barrel && mNHEn_lowPt_Barrel->getRootObject())
3098               mNHEn_lowPt_Barrel->Fill((*pfJets)[ijet].neutralHadronEnergy());
3099             mPhEn_lowPt_Barrel = map_of_MEs[DirName + "/" + "PhEn_lowPt_Barrel"];
3100             if (mPhEn_lowPt_Barrel && mPhEn_lowPt_Barrel->getRootObject())
3101               mPhEn_lowPt_Barrel->Fill((*pfJets)[ijet].neutralEmEnergy());
3102             mElEn_lowPt_Barrel = map_of_MEs[DirName + "/" + "ElEn_lowPt_Barrel"];
3103             if (mElEn_lowPt_Barrel && mElEn_lowPt_Barrel->getRootObject())
3104               mElEn_lowPt_Barrel->Fill((*pfJets)[ijet].chargedEmEnergy());
3105             mMuEn_lowPt_Barrel = map_of_MEs[DirName + "/" + "MuEn_lowPt_Barrel"];
3106             if (mMuEn_lowPt_Barrel && mMuEn_lowPt_Barrel->getRootObject())
3107               mMuEn_lowPt_Barrel->Fill((*pfJets)[ijet].chargedMuEnergy());
3108             mChMultiplicity_lowPt_Barrel = map_of_MEs[DirName + "/" + "ChMultiplicity_lowPt_Barrel"];
3109             if (mChMultiplicity_lowPt_Barrel && mChMultiplicity_lowPt_Barrel->getRootObject())
3110               mChMultiplicity_lowPt_Barrel->Fill((*pfJets)[ijet].chargedMultiplicity());
3111             mNeutMultiplicity_lowPt_Barrel = map_of_MEs[DirName + "/" + "NeutMultiplicity_lowPt_Barrel"];
3112             if (mNeutMultiplicity_lowPt_Barrel && mNeutMultiplicity_lowPt_Barrel->getRootObject())
3113               mNeutMultiplicity_lowPt_Barrel->Fill((*pfJets)[ijet].neutralMultiplicity());
3114             mMuMultiplicity_lowPt_Barrel = map_of_MEs[DirName + "/" + "MuMultiplicity_lowPt_Barrel"];
3115             if (mMuMultiplicity_lowPt_Barrel && mMuMultiplicity_lowPt_Barrel->getRootObject())
3116               mMuMultiplicity_lowPt_Barrel->Fill((*pfJets)[ijet].muonMultiplicity());
3117           }
3118           if (correctedJet.pt() > 50. && correctedJet.pt() <= 140.) {
3119             //mAxis2_mediumPt_Barrel = map_of_MEs[DirName+"/"+"qg_Axis2_mediumPt_Barrel"];if(mAxis2_mediumPt_Barrel && mAxis2_mediumPt_Barrel->getRootObject()) mAxis2_mediumPt_Barrel->Fill(QGaxis2);
3120             //mpTD_mediumPt_Barrel = map_of_MEs[DirName+"/"+"qg_pTD_mediumPt_Barrel"]; if(mpTD_mediumPt_Barrel && mpTD_mediumPt_Barrel->getRootObject()) mpTD_mediumPt_Barrel->Fill(QGptD);
3121             //mMultiplicityQG_mediumPt_Barrel = map_of_MEs[DirName+"/"+"qg_multiplicity_mediumPt_Barrel"]; if(mMultiplicityQG_mediumPt_Barrel && mMultiplicityQG_mediumPt_Barrel->getRootObject()) mMultiplicityQG_mediumPt_Barrel->Fill(QGmulti);
3122             //mqgLikelihood_mediumPt_Barrel = map_of_MEs[DirName+"/"+"qg_Likelihood_mediumPt_Barrel"]; if(mqgLikelihood_mediumPt_Barrel && mqgLikelihood_mediumPt_Barrel->getRootObject()) mqgLikelihood_mediumPt_Barrel->Fill(QGLikelihood);
3123             mMass_mediumPt_Barrel = map_of_MEs[DirName + "/" + "JetMass_mediumPt_Barrel"];
3124             if (mMass_mediumPt_Barrel && mMass_mediumPt_Barrel->getRootObject())
3125               mMass_mediumPt_Barrel->Fill((*pfJets)[ijet].mass());
3126             mMVAPUJIDDiscriminant_mediumPt_Barrel = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_Barrel"];
3127             if (mMVAPUJIDDiscriminant_mediumPt_Barrel && mMVAPUJIDDiscriminant_mediumPt_Barrel->getRootObject())
3128               mMVAPUJIDDiscriminant_mediumPt_Barrel->Fill(puidmva);
3129             mCutPUJIDDiscriminant_mediumPt_Barrel = map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_mediumPt_Barrel"];
3130             if (mCutPUJIDDiscriminant_mediumPt_Barrel && mCutPUJIDDiscriminant_mediumPt_Barrel->getRootObject())
3131               mCutPUJIDDiscriminant_mediumPt_Barrel->Fill(puidcut);
3132             mCHFrac_mediumPt_Barrel = map_of_MEs[DirName + "/" + "CHFrac_mediumPt_Barrel"];
3133             if (mCHFrac_mediumPt_Barrel && mCHFrac_mediumPt_Barrel->getRootObject())
3134               mCHFrac_mediumPt_Barrel->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3135             mNHFrac_mediumPt_Barrel = map_of_MEs[DirName + "/" + "NHFrac_mediumPt_Barrel"];
3136             if (mNHFrac_mediumPt_Barrel && mNHFrac_mediumPt_Barrel->getRootObject())
3137               mNHFrac_mediumPt_Barrel->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3138             mPhFrac_mediumPt_Barrel = map_of_MEs[DirName + "/" + "PhFrac_mediumPt_Barrel"];
3139             if (mPhFrac_mediumPt_Barrel && mPhFrac_mediumPt_Barrel->getRootObject())
3140               mPhFrac_mediumPt_Barrel->Fill((*pfJets)[ijet].neutralEmEnergyFraction());
3141             mCHEn_mediumPt_Barrel = map_of_MEs[DirName + "/" + "CHEn_mediumPt_Barrel"];
3142             if (mCHEn_mediumPt_Barrel && mCHEn_mediumPt_Barrel->getRootObject())
3143               mCHEn_mediumPt_Barrel->Fill((*pfJets)[ijet].chargedHadronEnergy());
3144             mNHEn_mediumPt_Barrel = map_of_MEs[DirName + "/" + "NHEn_mediumPt_Barrel"];
3145             if (mNHEn_mediumPt_Barrel && mNHEn_mediumPt_Barrel->getRootObject())
3146               mNHEn_mediumPt_Barrel->Fill((*pfJets)[ijet].neutralHadronEnergy());
3147             mPhEn_mediumPt_Barrel = map_of_MEs[DirName + "/" + "PhEn_mediumPt_Barrel"];
3148             if (mPhEn_mediumPt_Barrel && mPhEn_mediumPt_Barrel->getRootObject())
3149               mPhEn_mediumPt_Barrel->Fill((*pfJets)[ijet].neutralEmEnergy());
3150             mElEn_mediumPt_Barrel = map_of_MEs[DirName + "/" + "ElEn_mediumPt_Barrel"];
3151             if (mElEn_mediumPt_Barrel && mElEn_mediumPt_Barrel->getRootObject())
3152               mElEn_mediumPt_Barrel->Fill((*pfJets)[ijet].chargedEmEnergy());
3153             mMuEn_mediumPt_Barrel = map_of_MEs[DirName + "/" + "MuEn_mediumPt_Barrel"];
3154             if (mMuEn_mediumPt_Barrel && mMuEn_mediumPt_Barrel->getRootObject())
3155               mMuEn_mediumPt_Barrel->Fill((*pfJets)[ijet].chargedMuEnergy());
3156             mChMultiplicity_mediumPt_Barrel = map_of_MEs[DirName + "/" + "ChMultiplicity_mediumPt_Barrel"];
3157             if (mChMultiplicity_mediumPt_Barrel && mChMultiplicity_mediumPt_Barrel->getRootObject())
3158               mChMultiplicity_mediumPt_Barrel->Fill((*pfJets)[ijet].chargedMultiplicity());
3159             mNeutMultiplicity_mediumPt_Barrel = map_of_MEs[DirName + "/" + "NeutMultiplicity_mediumPt_Barrel"];
3160             if (mNeutMultiplicity_mediumPt_Barrel && mNeutMultiplicity_mediumPt_Barrel->getRootObject())
3161               mNeutMultiplicity_mediumPt_Barrel->Fill((*pfJets)[ijet].neutralMultiplicity());
3162             mMuMultiplicity_mediumPt_Barrel = map_of_MEs[DirName + "/" + "MuMultiplicity_mediumPt_Barrel"];
3163             if (mMuMultiplicity_mediumPt_Barrel && mMuMultiplicity_mediumPt_Barrel->getRootObject())
3164               mMuMultiplicity_mediumPt_Barrel->Fill((*pfJets)[ijet].muonMultiplicity());
3165           }
3166           if (correctedJet.pt() > 140.) {
3167             //mAxis2_highPt_Barrel = map_of_MEs[DirName+"/"+"qg_Axis2_highPt_Barrel"];if(mAxis2_highPt_Barrel && mAxis2_highPt_Barrel->getRootObject()) mAxis2_highPt_Barrel->Fill(QGaxis2);
3168             //mpTD_highPt_Barrel = map_of_MEs[DirName+"/"+"qg_pTD_highPt_Barrel"]; if(mpTD_highPt_Barrel && mpTD_highPt_Barrel->getRootObject()) mpTD_highPt_Barrel->Fill(QGptD);
3169             //mMultiplicityQG_highPt_Barrel = map_of_MEs[DirName+"/"+"qg_multiplicity_highPt_Barrel"]; if(mMultiplicityQG_highPt_Barrel && mMultiplicityQG_highPt_Barrel->getRootObject()) mMultiplicityQG_highPt_Barrel->Fill(QGmulti);
3170             //mqgLikelihood_highPt_Barrel = map_of_MEs[DirName+"/"+"qg_Likelihood_highPt_Barrel"]; if(mqgLikelihood_highPt_Barrel && mqgLikelihood_highPt_Barrel->getRootObject()) mqgLikelihood_highPt_Barrel->Fill(QGLikelihood);
3171             mMass_highPt_Barrel = map_of_MEs[DirName + "/" + "JetMass_highPt_Barrel"];
3172             if (mMass_highPt_Barrel && mMass_highPt_Barrel->getRootObject())
3173               mMass_highPt_Barrel->Fill((*pfJets)[ijet].mass());
3174             mMVAPUJIDDiscriminant_highPt_Barrel = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_highPt_Barrel"];
3175             if (mMVAPUJIDDiscriminant_highPt_Barrel && mMVAPUJIDDiscriminant_highPt_Barrel->getRootObject())
3176               mMVAPUJIDDiscriminant_highPt_Barrel->Fill(puidmva);
3177             mCutPUJIDDiscriminant_highPt_Barrel = map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_highPt_Barrel"];
3178             if (mCutPUJIDDiscriminant_highPt_Barrel && mCutPUJIDDiscriminant_highPt_Barrel->getRootObject())
3179               mCutPUJIDDiscriminant_highPt_Barrel->Fill(puidcut);
3180             mCHFrac_highPt_Barrel = map_of_MEs[DirName + "/" + "CHFrac_highPt_Barrel"];
3181             if (mCHFrac_highPt_Barrel && mCHFrac_highPt_Barrel->getRootObject())
3182               mCHFrac_highPt_Barrel->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3183             mNHFrac_highPt_Barrel = map_of_MEs[DirName + "/" + "NHFrac_highPt_Barrel"];
3184             if (mNHFrac_highPt_Barrel && mNHFrac_highPt_Barrel->getRootObject())
3185               mNHFrac_highPt_Barrel->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3186             mPhFrac_highPt_Barrel = map_of_MEs[DirName + "/" + "PhFrac_highPt_Barrel"];
3187             if (mPhFrac_highPt_Barrel && mPhFrac_highPt_Barrel->getRootObject())
3188               mPhFrac_highPt_Barrel->Fill((*pfJets)[ijet].neutralEmEnergyFraction());
3189             mCHEn_highPt_Barrel = map_of_MEs[DirName + "/" + "CHEn_highPt_Barrel"];
3190             if (mCHEn_highPt_Barrel && mCHEn_highPt_Barrel->getRootObject())
3191               mCHEn_highPt_Barrel->Fill((*pfJets)[ijet].chargedHadronEnergy());
3192             mNHEn_highPt_Barrel = map_of_MEs[DirName + "/" + "NHEn_highPt_Barrel"];
3193             if (mNHEn_highPt_Barrel && mNHEn_highPt_Barrel->getRootObject())
3194               mNHEn_highPt_Barrel->Fill((*pfJets)[ijet].neutralHadronEnergy());
3195             mPhEn_highPt_Barrel = map_of_MEs[DirName + "/" + "PhEn_highPt_Barrel"];
3196             if (mPhEn_highPt_Barrel && mPhEn_highPt_Barrel->getRootObject())
3197               mPhEn_highPt_Barrel->Fill((*pfJets)[ijet].neutralEmEnergy());
3198             mElEn_highPt_Barrel = map_of_MEs[DirName + "/" + "ElEn_highPt_Barrel"];
3199             if (mElEn_highPt_Barrel && mElEn_highPt_Barrel->getRootObject())
3200               mElEn_highPt_Barrel->Fill((*pfJets)[ijet].chargedEmEnergy());
3201             mMuEn_highPt_Barrel = map_of_MEs[DirName + "/" + "MuEn_highPt_Barrel"];
3202             if (mMuEn_highPt_Barrel && mMuEn_highPt_Barrel->getRootObject())
3203               mMuEn_highPt_Barrel->Fill((*pfJets)[ijet].chargedMuEnergy());
3204             mChMultiplicity_highPt_Barrel = map_of_MEs[DirName + "/" + "ChMultiplicity_highPt_Barrel"];
3205             if (mChMultiplicity_highPt_Barrel && mChMultiplicity_highPt_Barrel->getRootObject())
3206               mChMultiplicity_highPt_Barrel->Fill((*pfJets)[ijet].chargedMultiplicity());
3207             mNeutMultiplicity_highPt_Barrel = map_of_MEs[DirName + "/" + "NeutMultiplicity_highPt_Barrel"];
3208             if (mNeutMultiplicity_highPt_Barrel && mNeutMultiplicity_highPt_Barrel->getRootObject())
3209               mNeutMultiplicity_highPt_Barrel->Fill((*pfJets)[ijet].neutralMultiplicity());
3210             mMuMultiplicity_highPt_Barrel = map_of_MEs[DirName + "/" + "MuMultiplicity_highPt_Barrel"];
3211             if (mMuMultiplicity_highPt_Barrel && mMuMultiplicity_highPt_Barrel->getRootObject())
3212               mMuMultiplicity_highPt_Barrel->Fill((*pfJets)[ijet].muonMultiplicity());
3213           }
3214           mCHFracVSpT_Barrel = map_of_MEs[DirName + "/" + "CHFracVSpT_Barrel"];
3215           if (mCHFracVSpT_Barrel && mCHFracVSpT_Barrel->getRootObject())
3216             mCHFracVSpT_Barrel->Fill(correctedJet.pt(), (*pfJets)[ijet].chargedHadronEnergyFraction());
3217           mNHFracVSpT_Barrel = map_of_MEs[DirName + "/" + "NHFracVSpT_Barrel"];
3218           if (mNHFracVSpT_Barrel && mNHFracVSpT_Barrel->getRootObject())
3219             mNHFracVSpT_Barrel->Fill(correctedJet.pt(), (*pfJets)[ijet].neutralHadronEnergyFraction());
3220           mPhFracVSpT_Barrel = map_of_MEs[DirName + "/" + "PhFracVSpT_Barrel"];
3221           if (mPhFracVSpT_Barrel && mPhFracVSpT_Barrel->getRootObject())
3222             mPhFracVSpT_Barrel->Fill(correctedJet.pt(), (*pfJets)[ijet].neutralEmEnergyFraction());
3223         } else if (fabs(correctedJet.eta()) <= 3) {
3224           //fractions for endcap
3225           if (correctedJet.pt() <= 50.) {
3226             //mAxis2_lowPt_EndCap = map_of_MEs[DirName+"/"+"qg_Axis2_lowPt_EndCap"];if(mAxis2_lowPt_EndCap && mAxis2_lowPt_EndCap->getRootObject()) mAxis2_lowPt_EndCap->Fill(QGaxis2);
3227             //mpTD_lowPt_EndCap = map_of_MEs[DirName+"/"+"qg_pTD_lowPt_EndCap"]; if(mpTD_lowPt_EndCap && mpTD_lowPt_EndCap->getRootObject()) mpTD_lowPt_EndCap->Fill(QGptD);
3228             //mMultiplicityQG_lowPt_EndCap = map_of_MEs[DirName+"/"+"qg_multiplicity_lowPt_EndCap"]; if(mMultiplicityQG_lowPt_EndCap && mMultiplicityQG_lowPt_EndCap->getRootObject()) mMultiplicityQG_lowPt_EndCap->Fill(QGmulti);
3229             //mqgLikelihood_lowPt_EndCap = map_of_MEs[DirName+"/"+"qg_Likelihood_lowPt_EndCap"]; if(mqgLikelihood_lowPt_EndCap && mqgLikelihood_lowPt_EndCap->getRootObject()) mqgLikelihood_lowPt_EndCap->Fill(QGLikelihood);
3230             mMass_lowPt_EndCap = map_of_MEs[DirName + "/" + "JetMass_lowPt_EndCap"];
3231             if (mMass_lowPt_EndCap && mMass_lowPt_EndCap->getRootObject())
3232               mMass_lowPt_EndCap->Fill((*pfJets)[ijet].mass());
3233             mMVAPUJIDDiscriminant_lowPt_EndCap = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_lowPt_EndCap"];
3234             if (mMVAPUJIDDiscriminant_lowPt_EndCap && mMVAPUJIDDiscriminant_lowPt_EndCap->getRootObject())
3235               mMVAPUJIDDiscriminant_lowPt_EndCap->Fill(puidmva);
3236             mCutPUJIDDiscriminant_lowPt_EndCap = map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_lowPt_EndCap"];
3237             if (mCutPUJIDDiscriminant_lowPt_EndCap && mCutPUJIDDiscriminant_lowPt_EndCap->getRootObject())
3238               mCutPUJIDDiscriminant_lowPt_EndCap->Fill(puidcut);
3239             mCHFrac_lowPt_EndCap = map_of_MEs[DirName + "/" + "CHFrac_lowPt_EndCap"];
3240             if (mCHFrac_lowPt_EndCap && mCHFrac_lowPt_EndCap->getRootObject())
3241               mCHFrac_lowPt_EndCap->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3242             mNHFrac_lowPt_EndCap = map_of_MEs[DirName + "/" + "NHFrac_lowPt_EndCap"];
3243             if (mNHFrac_lowPt_EndCap && mNHFrac_lowPt_EndCap->getRootObject())
3244               mNHFrac_lowPt_EndCap->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3245             mPhFrac_lowPt_EndCap = map_of_MEs[DirName + "/" + "PhFrac_lowPt_EndCap"];
3246             if (mPhFrac_lowPt_EndCap && mPhFrac_lowPt_EndCap->getRootObject())
3247               mPhFrac_lowPt_EndCap->Fill((*pfJets)[ijet].neutralEmEnergyFraction());
3248             mCHEn_lowPt_EndCap = map_of_MEs[DirName + "/" + "CHEn_lowPt_EndCap"];
3249             if (mCHEn_lowPt_EndCap && mCHEn_lowPt_EndCap->getRootObject())
3250               mCHEn_lowPt_EndCap->Fill((*pfJets)[ijet].chargedHadronEnergy());
3251             mNHEn_lowPt_EndCap = map_of_MEs[DirName + "/" + "NHEn_lowPt_EndCap"];
3252             if (mNHEn_lowPt_EndCap && mNHEn_lowPt_EndCap->getRootObject())
3253               mNHEn_lowPt_EndCap->Fill((*pfJets)[ijet].neutralHadronEnergy());
3254             mPhEn_lowPt_EndCap = map_of_MEs[DirName + "/" + "PhEn_lowPt_EndCap"];
3255             if (mPhEn_lowPt_EndCap && mPhEn_lowPt_EndCap->getRootObject())
3256               mPhEn_lowPt_EndCap->Fill((*pfJets)[ijet].neutralEmEnergy());
3257             mElEn_lowPt_EndCap = map_of_MEs[DirName + "/" + "ElEn_lowPt_EndCap"];
3258             if (mElEn_lowPt_EndCap && mElEn_lowPt_EndCap->getRootObject())
3259               mElEn_lowPt_EndCap->Fill((*pfJets)[ijet].chargedEmEnergy());
3260             mMuEn_lowPt_EndCap = map_of_MEs[DirName + "/" + "MuEn_lowPt_EndCap"];
3261             if (mMuEn_lowPt_EndCap && mMuEn_lowPt_EndCap->getRootObject())
3262               mMuEn_lowPt_EndCap->Fill((*pfJets)[ijet].chargedMuEnergy());
3263             mChMultiplicity_lowPt_EndCap = map_of_MEs[DirName + "/" + "ChMultiplicity_lowPt_EndCap"];
3264             if (mChMultiplicity_lowPt_EndCap && mChMultiplicity_lowPt_EndCap->getRootObject())
3265               mChMultiplicity_lowPt_EndCap->Fill((*pfJets)[ijet].chargedMultiplicity());
3266             mNeutMultiplicity_lowPt_EndCap = map_of_MEs[DirName + "/" + "NeutMultiplicity_lowPt_EndCap"];
3267             if (mNeutMultiplicity_lowPt_EndCap && mNeutMultiplicity_lowPt_EndCap->getRootObject())
3268               mNeutMultiplicity_lowPt_EndCap->Fill((*pfJets)[ijet].neutralMultiplicity());
3269             mMuMultiplicity_lowPt_EndCap = map_of_MEs[DirName + "/" + "MuMultiplicity_lowPt_EndCap"];
3270             if (mMuMultiplicity_lowPt_EndCap && mMuMultiplicity_lowPt_EndCap->getRootObject())
3271               mMuMultiplicity_lowPt_EndCap->Fill((*pfJets)[ijet].muonMultiplicity());
3272           }
3273           if (correctedJet.pt() > 50. && correctedJet.pt() <= 140.) {
3274             //mAxis2_mediumPt_EndCap = map_of_MEs[DirName+"/"+"qg_Axis2_mediumPt_EndCap"];if(mAxis2_mediumPt_EndCap && mAxis2_mediumPt_EndCap->getRootObject()) mAxis2_mediumPt_EndCap->Fill(QGaxis2);
3275             //mpTD_mediumPt_EndCap = map_of_MEs[DirName+"/"+"qg_pTD_mediumPt_EndCap"]; if(mpTD_mediumPt_EndCap && mpTD_mediumPt_EndCap->getRootObject()) mpTD_mediumPt_EndCap->Fill(QGptD);
3276             //mMultiplicityQG_mediumPt_EndCap = map_of_MEs[DirName+"/"+"qg_multiplicity_mediumPt_EndCap"]; if(mMultiplicityQG_mediumPt_EndCap && mMultiplicityQG_mediumPt_EndCap->getRootObject()) mMultiplicityQG_mediumPt_EndCap->Fill(QGmulti);
3277             //mqgLikelihood_mediumPt_EndCap = map_of_MEs[DirName+"/"+"qg_Likelihood_mediumPt_EndCap"]; if(mqgLikelihood_mediumPt_EndCap && mqgLikelihood_mediumPt_EndCap->getRootObject()) mqgLikelihood_mediumPt_EndCap->Fill(QGLikelihood);
3278             mMass_mediumPt_EndCap = map_of_MEs[DirName + "/" + "JetMass_mediumPt_EndCap"];
3279             if (mMass_mediumPt_EndCap && mMass_mediumPt_EndCap->getRootObject())
3280               mMass_mediumPt_EndCap->Fill((*pfJets)[ijet].mass());
3281             mMVAPUJIDDiscriminant_mediumPt_EndCap = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_EndCap"];
3282             if (mMVAPUJIDDiscriminant_mediumPt_EndCap && mMVAPUJIDDiscriminant_mediumPt_EndCap->getRootObject())
3283               mMVAPUJIDDiscriminant_mediumPt_EndCap->Fill(puidmva);
3284             mCutPUJIDDiscriminant_mediumPt_EndCap = map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_mediumPt_EndCap"];
3285             if (mCutPUJIDDiscriminant_mediumPt_EndCap && mCutPUJIDDiscriminant_mediumPt_EndCap->getRootObject())
3286               mCutPUJIDDiscriminant_mediumPt_EndCap->Fill(puidcut);
3287             mCHFrac_mediumPt_EndCap = map_of_MEs[DirName + "/" + "CHFrac_mediumPt_EndCap"];
3288             if (mCHFrac_mediumPt_EndCap && mCHFrac_mediumPt_EndCap->getRootObject())
3289               mCHFrac_mediumPt_EndCap->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3290             mNHFrac_mediumPt_EndCap = map_of_MEs[DirName + "/" + "NHFrac_mediumPt_EndCap"];
3291             if (mNHFrac_mediumPt_EndCap && mNHFrac_mediumPt_EndCap->getRootObject())
3292               mNHFrac_mediumPt_EndCap->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3293             mPhFrac_mediumPt_EndCap = map_of_MEs[DirName + "/" + "PhFrac_mediumPt_EndCap"];
3294             if (mPhFrac_mediumPt_EndCap && mPhFrac_mediumPt_EndCap->getRootObject())
3295               mPhFrac_mediumPt_EndCap->Fill((*pfJets)[ijet].neutralEmEnergyFraction());
3296             mCHEn_mediumPt_EndCap = map_of_MEs[DirName + "/" + "CHEn_mediumPt_EndCap"];
3297             if (mCHEn_mediumPt_EndCap && mCHEn_mediumPt_EndCap->getRootObject())
3298               mCHEn_mediumPt_EndCap->Fill((*pfJets)[ijet].chargedHadronEnergy());
3299             mNHEn_mediumPt_EndCap = map_of_MEs[DirName + "/" + "NHEn_mediumPt_EndCap"];
3300             if (mNHEn_mediumPt_EndCap && mNHEn_mediumPt_EndCap->getRootObject())
3301               mNHEn_mediumPt_EndCap->Fill((*pfJets)[ijet].neutralHadronEnergy());
3302             mPhEn_mediumPt_EndCap = map_of_MEs[DirName + "/" + "PhEn_mediumPt_EndCap"];
3303             if (mPhEn_mediumPt_EndCap && mPhEn_mediumPt_EndCap->getRootObject())
3304               mPhEn_mediumPt_EndCap->Fill((*pfJets)[ijet].neutralEmEnergy());
3305             mElEn_mediumPt_EndCap = map_of_MEs[DirName + "/" + "ElEn_mediumPt_EndCap"];
3306             if (mElEn_mediumPt_EndCap && mElEn_mediumPt_EndCap->getRootObject())
3307               mElEn_mediumPt_EndCap->Fill((*pfJets)[ijet].chargedEmEnergy());
3308             mMuEn_mediumPt_EndCap = map_of_MEs[DirName + "/" + "MuEn_mediumPt_EndCap"];
3309             if (mMuEn_mediumPt_EndCap && mMuEn_mediumPt_EndCap->getRootObject())
3310               mMuEn_mediumPt_EndCap->Fill((*pfJets)[ijet].chargedMuEnergy());
3311             mChMultiplicity_mediumPt_EndCap = map_of_MEs[DirName + "/" + "ChMultiplicity_mediumPt_EndCap"];
3312             if (mChMultiplicity_mediumPt_EndCap && mChMultiplicity_mediumPt_EndCap->getRootObject())
3313               mChMultiplicity_mediumPt_EndCap->Fill((*pfJets)[ijet].chargedMultiplicity());
3314             mNeutMultiplicity_mediumPt_EndCap = map_of_MEs[DirName + "/" + "NeutMultiplicity_mediumPt_EndCap"];
3315             if (mNeutMultiplicity_mediumPt_EndCap && mNeutMultiplicity_mediumPt_EndCap->getRootObject())
3316               mNeutMultiplicity_mediumPt_EndCap->Fill((*pfJets)[ijet].neutralMultiplicity());
3317             mMuMultiplicity_mediumPt_EndCap = map_of_MEs[DirName + "/" + "MuMultiplicity_mediumPt_EndCap"];
3318             if (mMuMultiplicity_mediumPt_EndCap && mMuMultiplicity_mediumPt_EndCap->getRootObject())
3319               mMuMultiplicity_mediumPt_EndCap->Fill((*pfJets)[ijet].muonMultiplicity());
3320           }
3321           if (correctedJet.pt() > 140.) {
3322             //mAxis2_highPt_EndCap = map_of_MEs[DirName+"/"+"qg_Axis2_highPt_EndCap"];if(mAxis2_highPt_EndCap && mAxis2_highPt_EndCap->getRootObject()) mAxis2_highPt_EndCap->Fill(QGaxis2);
3323             //mpTD_highPt_EndCap = map_of_MEs[DirName+"/"+"qg_pTD_highPt_EndCap"]; if(mpTD_highPt_EndCap && mpTD_highPt_EndCap->getRootObject()) mpTD_highPt_EndCap->Fill(QGptD);
3324             //mMultiplicityQG_highPt_EndCap = map_of_MEs[DirName+"/"+"qg_multiplicity_highPt_EndCap"]; if(mMultiplicityQG_highPt_EndCap && mMultiplicityQG_highPt_EndCap->getRootObject()) mMultiplicityQG_highPt_EndCap->Fill(QGmulti);
3325             //mqgLikelihood_highPt_EndCap = map_of_MEs[DirName+"/"+"qg_Likelihood_highPt_EndCap"]; if(mqgLikelihood_highPt_EndCap && mqgLikelihood_highPt_EndCap->getRootObject()) mqgLikelihood_highPt_EndCap->Fill(QGLikelihood);
3326             mMass_highPt_EndCap = map_of_MEs[DirName + "/" + "JetMass_highPt_EndCap"];
3327             if (mMass_highPt_EndCap && mMass_highPt_EndCap->getRootObject())
3328               mMass_highPt_EndCap->Fill((*pfJets)[ijet].mass());
3329             mMVAPUJIDDiscriminant_highPt_EndCap = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_highPt_EndCap"];
3330             if (mMVAPUJIDDiscriminant_highPt_EndCap && mMVAPUJIDDiscriminant_highPt_EndCap->getRootObject())
3331               mMVAPUJIDDiscriminant_highPt_EndCap->Fill(puidmva);
3332             mCutPUJIDDiscriminant_highPt_EndCap = map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_highPt_EndCap"];
3333             if (mCutPUJIDDiscriminant_highPt_EndCap && mCutPUJIDDiscriminant_highPt_EndCap->getRootObject())
3334               mCutPUJIDDiscriminant_highPt_EndCap->Fill(puidcut);
3335             mCHFrac_highPt_EndCap = map_of_MEs[DirName + "/" + "CHFrac_highPt_EndCap"];
3336             if (mCHFrac_highPt_EndCap && mCHFrac_highPt_EndCap->getRootObject())
3337               mCHFrac_highPt_EndCap->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3338             mNHFrac_highPt_EndCap = map_of_MEs[DirName + "/" + "NHFrac_highPt_EndCap"];
3339             if (mNHFrac_highPt_EndCap && mNHFrac_highPt_EndCap->getRootObject())
3340               mNHFrac_highPt_EndCap->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3341             mPhFrac_highPt_EndCap = map_of_MEs[DirName + "/" + "PhFrac_highPt_EndCap"];
3342             if (mPhFrac_highPt_EndCap && mPhFrac_highPt_EndCap->getRootObject())
3343               mPhFrac_highPt_EndCap->Fill((*pfJets)[ijet].neutralEmEnergyFraction());
3344             mCHEn_highPt_EndCap = map_of_MEs[DirName + "/" + "CHEn_highPt_EndCap"];
3345             if (mCHEn_highPt_EndCap && mCHEn_highPt_EndCap->getRootObject())
3346               mCHEn_highPt_EndCap->Fill((*pfJets)[ijet].chargedHadronEnergy());
3347             mNHEn_highPt_EndCap = map_of_MEs[DirName + "/" + "NHEn_highPt_EndCap"];
3348             if (mNHEn_highPt_EndCap && mNHEn_highPt_EndCap->getRootObject())
3349               mNHEn_highPt_EndCap->Fill((*pfJets)[ijet].neutralHadronEnergy());
3350             mPhEn_highPt_EndCap = map_of_MEs[DirName + "/" + "PhEn_highPt_EndCap"];
3351             if (mPhEn_highPt_EndCap && mPhEn_highPt_EndCap->getRootObject())
3352               mPhEn_highPt_EndCap->Fill((*pfJets)[ijet].neutralEmEnergy());
3353             mElEn_highPt_EndCap = map_of_MEs[DirName + "/" + "ElEn_highPt_EndCap"];
3354             if (mElEn_highPt_EndCap && mElEn_highPt_EndCap->getRootObject())
3355               mElEn_highPt_EndCap->Fill((*pfJets)[ijet].chargedEmEnergy());
3356             mMuEn_highPt_EndCap = map_of_MEs[DirName + "/" + "MuEn_highPt_EndCap"];
3357             if (mMuEn_highPt_EndCap && mMuEn_highPt_EndCap->getRootObject())
3358               mMuEn_highPt_EndCap->Fill((*pfJets)[ijet].chargedMuEnergy());
3359             mChMultiplicity_highPt_EndCap = map_of_MEs[DirName + "/" + "ChMultiplicity_highPt_EndCap"];
3360             if (mChMultiplicity_highPt_EndCap && mChMultiplicity_highPt_EndCap->getRootObject())
3361               mChMultiplicity_highPt_EndCap->Fill((*pfJets)[ijet].chargedMultiplicity());
3362             mNeutMultiplicity_highPt_EndCap = map_of_MEs[DirName + "/" + "NeutMultiplicity_highPt_EndCap"];
3363             if (mNeutMultiplicity_highPt_EndCap && mNeutMultiplicity_highPt_EndCap->getRootObject())
3364               mNeutMultiplicity_highPt_EndCap->Fill((*pfJets)[ijet].neutralMultiplicity());
3365             mMuMultiplicity_highPt_EndCap = map_of_MEs[DirName + "/" + "MuMultiplicity_highPt_EndCap"];
3366             if (mMuMultiplicity_highPt_EndCap && mMuMultiplicity_highPt_EndCap->getRootObject())
3367               mMuMultiplicity_highPt_EndCap->Fill((*pfJets)[ijet].muonMultiplicity());
3368           }
3369           mCHFracVSpT_EndCap = map_of_MEs[DirName + "/" + "CHFracVSpT_EndCap"];
3370           if (mCHFracVSpT_EndCap && mCHFracVSpT_EndCap->getRootObject())
3371             mCHFracVSpT_EndCap->Fill(correctedJet.pt(), (*pfJets)[ijet].chargedHadronEnergyFraction());
3372           mNHFracVSpT_EndCap = map_of_MEs[DirName + "/" + "NHFracVSpT_EndCap"];
3373           if (mNHFracVSpT_EndCap && mNHFracVSpT_EndCap->getRootObject())
3374             mNHFracVSpT_EndCap->Fill(correctedJet.pt(), (*pfJets)[ijet].neutralHadronEnergyFraction());
3375           mPhFracVSpT_EndCap = map_of_MEs[DirName + "/" + "PhFracVSpT_EndCap"];
3376           if (mPhFracVSpT_EndCap && mPhFracVSpT_EndCap->getRootObject())
3377             mPhFracVSpT_EndCap->Fill(correctedJet.pt(), (*pfJets)[ijet].neutralEmEnergyFraction());
3378         } else {
3379           mHFHFracVSpT_Forward = map_of_MEs[DirName + "/" + "HFHFracVSpT_Forward"];
3380           if (mHFHFracVSpT_Forward && mHFHFracVSpT_Forward->getRootObject())
3381             mHFHFracVSpT_Forward->Fill(correctedJet.pt(), (*pfJets)[ijet].HFHadronEnergyFraction());
3382           mHFEFracVSpT_Forward = map_of_MEs[DirName + "/" + "HFEFracVSpT_Forward"];
3383           if (mHFEFracVSpT_Forward && mHFEFracVSpT_Forward->getRootObject())
3384             mHFEFracVSpT_Forward->Fill(correctedJet.pt(), (*pfJets)[ijet].HFEMEnergyFraction());
3385           //fractions
3386           if (correctedJet.pt() <= 50.) {
3387             //mAxis2_lowPt_Forward = map_of_MEs[DirName+"/"+"qg_Axis2_lowPt_Forward"];if(mAxis2_lowPt_Forward && mAxis2_lowPt_Forward->getRootObject()) mAxis2_lowPt_Forward->Fill(QGaxis2);
3388             //mpTD_lowPt_Forward = map_of_MEs[DirName+"/"+"qg_pTD_lowPt_Forward"]; if(mpTD_lowPt_Forward && mpTD_lowPt_Forward->getRootObject()) mpTD_lowPt_Forward->Fill(QGptD);
3389             //mMultiplicityQG_lowPt_Forward = map_of_MEs[DirName+"/"+"qg_multiplicity_lowPt_Forward"]; if(mMultiplicityQG_lowPt_Forward && mMultiplicityQG_lowPt_Forward->getRootObject()) mMultiplicityQG_lowPt_Forward->Fill(QGmulti);
3390             //mqgLikelihood_lowPt_Forward = map_of_MEs[DirName+"/"+"qg_Likelihood_lowPt_Forward"]; if(mqgLikelihood_lowPt_Forward && mqgLikelihood_lowPt_Forward->getRootObject()) mqgLikelihood_lowPt_Forward->Fill(QGLikelihood);
3391             mMass_lowPt_Forward = map_of_MEs[DirName + "/" + "JetMass_lowPt_Forward"];
3392             if (mMass_lowPt_Forward && mMass_lowPt_Forward->getRootObject())
3393               mMass_lowPt_Forward->Fill((*pfJets)[ijet].mass());
3394             mMVAPUJIDDiscriminant_lowPt_Forward = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_lowPt_Forward"];
3395             if (mMVAPUJIDDiscriminant_lowPt_Forward && mMVAPUJIDDiscriminant_lowPt_Forward->getRootObject())
3396               mMVAPUJIDDiscriminant_lowPt_Forward->Fill(puidmva);
3397             mCutPUJIDDiscriminant_lowPt_Forward = map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_lowPt_Forward"];
3398             if (mCutPUJIDDiscriminant_lowPt_Forward && mCutPUJIDDiscriminant_lowPt_Forward->getRootObject())
3399               mCutPUJIDDiscriminant_lowPt_Forward->Fill(puidcut);
3400             mHFEFrac_lowPt_Forward = map_of_MEs[DirName + "/" + "HFEFrac_lowPt_Forward"];
3401             if (mHFEFrac_lowPt_Forward && mHFEFrac_lowPt_Forward->getRootObject())
3402               mHFEFrac_lowPt_Forward->Fill((*pfJets)[ijet].HFEMEnergyFraction());
3403             mHFHFrac_lowPt_Forward = map_of_MEs[DirName + "/" + "HFHFrac_lowPt_Forward"];
3404             if (mHFHFrac_lowPt_Forward && mHFHFrac_lowPt_Forward->getRootObject())
3405               mHFHFrac_lowPt_Forward->Fill((*pfJets)[ijet].HFHadronEnergyFraction());
3406             mHFEEn_lowPt_Forward = map_of_MEs[DirName + "/" + "HFEEn_lowPt_Forward"];
3407             if (mHFEEn_lowPt_Forward && mHFEEn_lowPt_Forward->getRootObject())
3408               mHFEEn_lowPt_Forward->Fill((*pfJets)[ijet].HFEMEnergy());
3409             mHFHEn_lowPt_Forward = map_of_MEs[DirName + "/" + "HFHEn_lowPt_Forward"];
3410             if (mHFHEn_lowPt_Forward && mHFHEn_lowPt_Forward->getRootObject())
3411               mHFHEn_lowPt_Forward->Fill((*pfJets)[ijet].HFHadronEnergy());
3412             mNeutMultiplicity_lowPt_Forward = map_of_MEs[DirName + "/" + "NeutMultiplicity_lowPt_Forward"];
3413             if (mNeutMultiplicity_lowPt_Forward && mNeutMultiplicity_lowPt_Forward->getRootObject())
3414               mNeutMultiplicity_lowPt_Forward->Fill((*pfJets)[ijet].neutralMultiplicity());
3415           }
3416           if (correctedJet.pt() > 50. && correctedJet.pt() <= 140.) {
3417             //mAxis2_mediumPt_Forward = map_of_MEs[DirName+"/"+"qg_Axis2_mediumPt_Forward"];if(mAxis2_mediumPt_Forward && mAxis2_mediumPt_Forward->getRootObject()) mAxis2_mediumPt_Forward->Fill(QGaxis2);
3418             //mpTD_mediumPt_Forward = map_of_MEs[DirName+"/"+"qg_pTD_mediumPt_Forward"]; if(mpTD_mediumPt_Forward && mpTD_mediumPt_Forward->getRootObject()) mpTD_mediumPt_Forward->Fill(QGptD);
3419             //mMultiplicityQG_mediumPt_Forward = map_of_MEs[DirName+"/"+"qg_multiplicity_mediumPt_Forward"]; if(mMultiplicityQG_mediumPt_Forward && mMultiplicityQG_mediumPt_Forward->getRootObject()) mMultiplicityQG_mediumPt_Forward->Fill(QGmulti);
3420             //mqgLikelihood_mediumPt_Forward = map_of_MEs[DirName+"/"+"qg_Likelihood_mediumPt_Forward"]; if(mqgLikelihood_mediumPt_Forward && mqgLikelihood_mediumPt_Forward->getRootObject()) mqgLikelihood_mediumPt_Forward->Fill(QGLikelihood);
3421             mMass_mediumPt_Forward = map_of_MEs[DirName + "/" + "JetMass_mediumPt_Forward"];
3422             if (mMass_mediumPt_Forward && mMass_mediumPt_Forward->getRootObject())
3423               mMass_mediumPt_Forward->Fill((*pfJets)[ijet].mass());
3424             mMVAPUJIDDiscriminant_mediumPt_Forward =
3425                 map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_mediumPt_Forward"];
3426             if (mMVAPUJIDDiscriminant_mediumPt_Forward && mMVAPUJIDDiscriminant_mediumPt_Forward->getRootObject())
3427               mMVAPUJIDDiscriminant_mediumPt_Forward->Fill(puidmva);
3428             mCutPUJIDDiscriminant_mediumPt_Forward =
3429                 map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_mediumPt_Forward"];
3430             if (mCutPUJIDDiscriminant_mediumPt_Forward && mCutPUJIDDiscriminant_mediumPt_Forward->getRootObject())
3431               mCutPUJIDDiscriminant_mediumPt_Forward->Fill(puidcut);
3432             mHFEFrac_mediumPt_Forward = map_of_MEs[DirName + "/" + "HFEFrac_mediumPt_Forward"];
3433             if (mHFEFrac_mediumPt_Forward && mHFEFrac_mediumPt_Forward->getRootObject())
3434               mHFEFrac_mediumPt_Forward->Fill((*pfJets)[ijet].HFEMEnergyFraction());
3435             mHFHFrac_mediumPt_Forward = map_of_MEs[DirName + "/" + "HFHFrac_mediumPt_Forward"];
3436             if (mHFHFrac_mediumPt_Forward && mHFHFrac_mediumPt_Forward->getRootObject())
3437               mHFHFrac_mediumPt_Forward->Fill((*pfJets)[ijet].HFHadronEnergyFraction());
3438             mHFEEn_mediumPt_Forward = map_of_MEs[DirName + "/" + "HFEEn_mediumPt_Forward"];
3439             if (mHFEEn_mediumPt_Forward && mHFEEn_mediumPt_Forward->getRootObject())
3440               mHFEEn_mediumPt_Forward->Fill((*pfJets)[ijet].HFEMEnergy());
3441             mHFHEn_mediumPt_Forward = map_of_MEs[DirName + "/" + "HFHEn_mediumPt_Forward"];
3442             if (mHFHEn_mediumPt_Forward && mHFHEn_mediumPt_Forward->getRootObject())
3443               mHFHEn_mediumPt_Forward->Fill((*pfJets)[ijet].HFHadronEnergy());
3444             mNeutMultiplicity_mediumPt_Forward = map_of_MEs[DirName + "/" + "NeutMultiplicity_mediumPt_Forward"];
3445             if (mNeutMultiplicity_mediumPt_Forward && mNeutMultiplicity_mediumPt_Forward->getRootObject())
3446               mNeutMultiplicity_mediumPt_Forward->Fill((*pfJets)[ijet].neutralMultiplicity());
3447           }
3448           if (correctedJet.pt() > 140.) {
3449             //mAxis2_highPt_Forward = map_of_MEs[DirName+"/"+"qg_Axis2_highPt_Forward"];if(mAxis2_highPt_Forward && mAxis2_highPt_Forward->getRootObject()) mAxis2_highPt_Forward->Fill(QGaxis2);
3450             //mpTD_highPt_Forward = map_of_MEs[DirName+"/"+"qg_pTD_highPt_Forward"]; if(mpTD_highPt_Forward && mpTD_highPt_Forward->getRootObject()) mpTD_highPt_Forward->Fill(QGptD);
3451             //mMultiplicityQG_highPt_Forward = map_of_MEs[DirName+"/"+"qg_multiplicity_highPt_Forward"]; if(mMultiplicityQG_highPt_Forward && mMultiplicityQG_highPt_Forward->getRootObject()) mMultiplicityQG_highPt_Forward->Fill(QGmulti);
3452             //mqgLikelihood_highPt_Forward = map_of_MEs[DirName+"/"+"qg_Likelihood_highPt_Forward"]; if(mqgLikelihood_highPt_Forward && mqgLikelihood_highPt_Forward->getRootObject()) mqgLikelihood_highPt_Forward->Fill(QGLikelihood);
3453             mMass_highPt_Forward = map_of_MEs[DirName + "/" + "JetMass_highPt_Forward"];
3454             if (mMass_highPt_Forward && mMass_highPt_Forward->getRootObject())
3455               mMass_highPt_Forward->Fill((*pfJets)[ijet].mass());
3456             mMVAPUJIDDiscriminant_highPt_Forward = map_of_MEs[DirName + "/" + "MVAPUJIDDiscriminant_highPt_Forward"];
3457             if (mMVAPUJIDDiscriminant_highPt_Forward && mMVAPUJIDDiscriminant_highPt_Forward->getRootObject())
3458               mMVAPUJIDDiscriminant_highPt_Forward->Fill(puidmva);
3459             mCutPUJIDDiscriminant_highPt_Forward = map_of_MEs[DirName + "/" + "CutPUJIDDiscriminant_highPt_Forward"];
3460             if (mCutPUJIDDiscriminant_highPt_Forward && mCutPUJIDDiscriminant_highPt_Forward->getRootObject())
3461               mCutPUJIDDiscriminant_highPt_Forward->Fill(puidcut);
3462             mHFEFrac_highPt_Forward = map_of_MEs[DirName + "/" + "HFEFrac_highPt_Forward"];
3463             if (mHFEFrac_highPt_Forward && mHFEFrac_highPt_Forward->getRootObject())
3464               mHFEFrac_highPt_Forward->Fill((*pfJets)[ijet].HFEMEnergyFraction());
3465             mHFHFrac_highPt_Forward = map_of_MEs[DirName + "/" + "HFHFrac_highPt_Forward"];
3466             if (mHFHFrac_highPt_Forward && mHFHFrac_highPt_Forward->getRootObject())
3467               mHFHFrac_highPt_Forward->Fill((*pfJets)[ijet].HFHadronEnergyFraction());
3468             mHFEEn_highPt_Forward = map_of_MEs[DirName + "/" + "HFEEn_highPt_Forward"];
3469             if (mHFEEn_highPt_Forward && mHFEEn_highPt_Forward->getRootObject())
3470               mHFEEn_highPt_Forward->Fill((*pfJets)[ijet].HFEMEnergy());
3471             mHFHEn_highPt_Forward = map_of_MEs[DirName + "/" + "HFHEn_highPt_Forward"];
3472             if (mHFHEn_highPt_Forward && mHFHEn_highPt_Forward->getRootObject())
3473               mHFHEn_highPt_Forward->Fill((*pfJets)[ijet].HFHadronEnergy());
3474             mNeutMultiplicity_highPt_Forward = map_of_MEs[DirName + "/" + "NeutMultiplicity_highPt_Forward"];
3475             if (mNeutMultiplicity_highPt_Forward && mNeutMultiplicity_highPt_Forward->getRootObject())
3476               mNeutMultiplicity_highPt_Forward->Fill((*pfJets)[ijet].neutralMultiplicity());
3477           }
3478         }
3479         //OOT plots
3480         /*
3481     if(techTriggerResultBx0 && techTriggerResultBxE && techTriggerResultBxF){
3482       meEta_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"Eta_BXm2BXm1Filled"];     if (  meEta_BXm2BXm1Filled  && meEta_BXm2BXm1Filled ->getRootObject())  meEta_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].eta());
3483       if(fabs(correctedJet.eta()) <= 1.3) {
3484         mePhFracBarrel_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"PhFracBarrel_BXm2BXm1Filled"];     if (  mePhFracBarrel_BXm2BXm1Filled  && mePhFracBarrel_BXm2BXm1Filled ->getRootObject())  mePhFracBarrel_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].photonEnergyFraction());
3485         meNHFracBarrel_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"NHFracBarrel_BXm2BXm1Filled"];     if (  meNHFracBarrel_BXm2BXm1Filled  && meNHFracBarrel_BXm2BXm1Filled ->getRootObject())  meNHFracBarrel_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3486         meCHFracBarrel_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"CHFracBarrel_BXm2BXm1Filled"];     if (  meCHFracBarrel_BXm2BXm1Filled  && meCHFracBarrel_BXm2BXm1Filled ->getRootObject())  meCHFracBarrel_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3487         mePtBarrel_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"PtBarrel_BXm2BXm1Filled"];     if (  mePtBarrel_BXm2BXm1Filled  && mePtBarrel_BXm2BXm1Filled ->getRootObject())  mePtBarrel_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].pt());
3488       }else if (correctedJet.eta() > -3.0 && correctedJet.eta() <= -1.3) {
3489         mePhFracEndCapMinus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"PhFracEndCapMinus_BXm2BXm1Filled"];     if (  mePhFracEndCapMinus_BXm2BXm1Filled  && mePhFracEndCapMinus_BXm2BXm1Filled ->getRootObject())  mePhFracEndCapMinus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].photonEnergyFraction());
3490         meNHFracEndCapMinus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"NHFracEndCapMinus_BXm2BXm1Filled"];     if (  meNHFracEndCapMinus_BXm2BXm1Filled  && meNHFracEndCapMinus_BXm2BXm1Filled ->getRootObject())  meNHFracEndCapMinus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3491         meCHFracEndCapMinus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"CHFracEndCapMinus_BXm2BXm1Filled"];     if (  meCHFracEndCapMinus_BXm2BXm1Filled  && meCHFracEndCapMinus_BXm2BXm1Filled ->getRootObject())  meCHFracEndCapMinus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3492         mePtEndCapMinus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"PtEndCapMinus_BXm2BXm1Filled"];     if (  mePtEndCapMinus_BXm2BXm1Filled  && mePtEndCapMinus_BXm2BXm1Filled ->getRootObject())  mePtEndCapMinus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].pt());
3493       }else if (correctedJet.eta() >= 1.3 && correctedJet.eta() < 3.0) {
3494         mePhFracEndCapPlus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"PhFracEndCapPlus_BXm2BXm1Filled"];     if (  mePhFracEndCapPlus_BXm2BXm1Filled  && mePhFracEndCapPlus_BXm2BXm1Filled ->getRootObject())  mePhFracEndCapPlus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].photonEnergyFraction());
3495         meNHFracEndCapPlus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"NHFracEndCapPlus_BXm2BXm1Filled"];     if (  meNHFracEndCapPlus_BXm2BXm1Filled  && meNHFracEndCapPlus_BXm2BXm1Filled ->getRootObject())  meNHFracEndCapPlus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3496         meCHFracEndCapPlus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"CHFracEndCapPlus_BXm2BXm1Filled"];     if (  meCHFracEndCapPlus_BXm2BXm1Filled  && meCHFracEndCapPlus_BXm2BXm1Filled ->getRootObject())  meCHFracEndCapPlus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3497         mePtEndCapPlus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"PtEndCapPlus_BXm2BXm1Filled"];     if (  mePtEndCapPlus_BXm2BXm1Filled  && mePtEndCapPlus_BXm2BXm1Filled ->getRootObject())  mePtEndCapPlus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].pt());
3498       }else if (correctedJet.eta() > -5.0 && correctedJet.eta() <= -3.0) {
3499         mePtForwardMinus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"PtForwardMinus_BXm2BXm1Filled"];     if (  mePtForwardMinus_BXm2BXm1Filled  && mePtForwardMinus_BXm2BXm1Filled ->getRootObject())  mePtForwardMinus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].pt());
3500         meHFHFracMinus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"HFHFracMinus_BXm2BXm1Filled"];     if (  meHFHFracMinus_BXm2BXm1Filled  && meHFHFracMinus_BXm2BXm1Filled ->getRootObject())  meHFHFracMinus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].HFHadronEnergyFraction());
3501         meHFEMFracMinus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"HFEMFracMinus_BXm2BXm1Filled"];     if (  meHFEMFracMinus_BXm2BXm1Filled  && meHFEMFracMinus_BXm2BXm1Filled ->getRootObject())  meHFEMFracMinus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].HFEMEnergyFraction());
3502       }else if (correctedJet.eta() >= 3.0 && correctedJet.eta() < 5.0) {
3503         mePtForwardPlus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"PtForwardPlus_BXm2BXm1Filled"];     if (  mePtForwardPlus_BXm2BXm1Filled  && mePtForwardPlus_BXm2BXm1Filled ->getRootObject())  mePtForwardPlus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].pt());
3504         meHFHFracPlus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"HFHFracPlus_BXm2BXm1Filled"];     if (  meHFHFracPlus_BXm2BXm1Filled  && meHFHFracPlus_BXm2BXm1Filled ->getRootObject())  meHFHFracPlus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].HFHadronEnergyFraction());
3505         meHFEMFracPlus_BXm2BXm1Filled    = map_of_MEs[DirName+"/"+"HFEMFracPlus_BXm2BXm1Filled"];     if (  meHFEMFracPlus_BXm2BXm1Filled  && meHFEMFracPlus_BXm2BXm1Filled ->getRootObject())  meHFEMFracPlus_BXm2BXm1Filled  ->Fill((*pfJets)[ijet].HFEMEnergyFraction());
3506       }
3507       }*/
3508         if (techTriggerResultBx0 && techTriggerResultBxF) {
3509           meEta_BXm1Filled = map_of_MEs[DirName + "/" + "Eta_BXm1Filled"];
3510           if (meEta_BXm1Filled && meEta_BXm1Filled->getRootObject())
3511             meEta_BXm1Filled->Fill((*pfJets)[ijet].eta());
3512           if (fabs(correctedJet.eta()) <= 1.3) {
3513             mePhFracBarrel_BXm1Filled = map_of_MEs[DirName + "/" + "PhFracBarrel_BXm1Filled"];
3514             if (mePhFracBarrel_BXm1Filled && mePhFracBarrel_BXm1Filled->getRootObject())
3515               mePhFracBarrel_BXm1Filled->Fill((*pfJets)[ijet].photonEnergyFraction());
3516             meNHFracBarrel_BXm1Filled = map_of_MEs[DirName + "/" + "NHFracBarrel_BXm1Filled"];
3517             if (meNHFracBarrel_BXm1Filled && meNHFracBarrel_BXm1Filled->getRootObject())
3518               meNHFracBarrel_BXm1Filled->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3519             meCHFracBarrel_BXm1Filled = map_of_MEs[DirName + "/" + "CHFracBarrel_BXm1Filled"];
3520             if (meCHFracBarrel_BXm1Filled && meCHFracBarrel_BXm1Filled->getRootObject())
3521               meCHFracBarrel_BXm1Filled->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3522             mePtBarrel_BXm1Filled = map_of_MEs[DirName + "/" + "PtBarrel_BXm1Filled"];
3523             if (mePtBarrel_BXm1Filled && mePtBarrel_BXm1Filled->getRootObject())
3524               mePtBarrel_BXm1Filled->Fill((*pfJets)[ijet].pt());
3525           } else if (correctedJet.eta() > -3.0 && correctedJet.eta() <= -1.3) {
3526             mePhFracEndCapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PhFracEndCapMinus_BXm1Filled"];
3527             if (mePhFracEndCapMinus_BXm1Filled && mePhFracEndCapMinus_BXm1Filled->getRootObject())
3528               mePhFracEndCapMinus_BXm1Filled->Fill((*pfJets)[ijet].photonEnergyFraction());
3529             meNHFracEndCapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "NHFracEndCapMinus_BXm1Filled"];
3530             if (meNHFracEndCapMinus_BXm1Filled && meNHFracEndCapMinus_BXm1Filled->getRootObject())
3531               meNHFracEndCapMinus_BXm1Filled->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3532             meCHFracEndCapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "CHFracEndCapMinus_BXm1Filled"];
3533             if (meCHFracEndCapMinus_BXm1Filled && meCHFracEndCapMinus_BXm1Filled->getRootObject())
3534               meCHFracEndCapMinus_BXm1Filled->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3535             mePtEndCapMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PtEndCapMinus_BXm1Filled"];
3536             if (mePtEndCapMinus_BXm1Filled && mePtEndCapMinus_BXm1Filled->getRootObject())
3537               mePtEndCapMinus_BXm1Filled->Fill((*pfJets)[ijet].pt());
3538           } else if (correctedJet.eta() >= 1.3 && correctedJet.eta() < 3.0) {
3539             mePhFracEndCapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "PhFracEndCapPlus_BXm1Filled"];
3540             if (mePhFracEndCapPlus_BXm1Filled && mePhFracEndCapPlus_BXm1Filled->getRootObject())
3541               mePhFracEndCapPlus_BXm1Filled->Fill((*pfJets)[ijet].photonEnergyFraction());
3542             meNHFracEndCapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "NHFracEndCapPlus_BXm1Filled"];
3543             if (meNHFracEndCapPlus_BXm1Filled && meNHFracEndCapPlus_BXm1Filled->getRootObject())
3544               meNHFracEndCapPlus_BXm1Filled->Fill((*pfJets)[ijet].neutralHadronEnergyFraction());
3545             meCHFracEndCapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "CHFracEndCapPlus_BXm1Filled"];
3546             if (meCHFracEndCapPlus_BXm1Filled && meCHFracEndCapPlus_BXm1Filled->getRootObject())
3547               meCHFracEndCapPlus_BXm1Filled->Fill((*pfJets)[ijet].chargedHadronEnergyFraction());
3548             mePtEndCapPlus_BXm1Filled = map_of_MEs[DirName + "/" + "PtEndCapPlus_BXm1Filled"];
3549             if (mePtEndCapPlus_BXm1Filled && mePtEndCapPlus_BXm1Filled->getRootObject())
3550               mePtEndCapPlus_BXm1Filled->Fill((*pfJets)[ijet].pt());
3551           } else if (correctedJet.eta() > -5.0 && correctedJet.eta() <= -3.0) {
3552             mePtForwardMinus_BXm1Filled = map_of_MEs[DirName + "/" + "PtForwardMinus_BXm1Filled"];
3553             if (