Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-10-25 09:44:14

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