Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2022-04-29 23:10:29

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