CMS 3D CMS Logo

Classes | Public Member Functions | Private Member Functions | Private Attributes

JetMETHLTOfflineSource Class Reference

#include <JetMETHLTOfflineSource.h>

Inheritance diagram for JetMETHLTOfflineSource:
edm::EDAnalyzer

List of all members.

Classes

class  PathInfo
class  PathInfoCollection

Public Member Functions

 JetMETHLTOfflineSource (const edm::ParameterSet &)
 ~JetMETHLTOfflineSource ()

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
virtual void beginJob ()
void beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
void beginRun (const edm::Run &run, const edm::EventSetup &c)
virtual void endJob ()
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 DQM Client Diagnostic.
void endRun (const edm::Run &run, const edm::EventSetup &c)
virtual void fillMEforEffAllTrigger (const edm::Event &iEvent, const edm::EventSetup &)
virtual void fillMEforEffWrtMBTrigger (const edm::Event &iEvent, const edm::EventSetup &)
virtual void fillMEforEffWrtMuTrigger (const edm::Event &iEvent, const edm::EventSetup &)
virtual void fillMEforMonAllTrigger (const edm::Event &iEvent, const edm::EventSetup &)
virtual void fillMEforMonAllTriggerwrtMuonTrigger (const edm::Event &iEvent, const edm::EventSetup &)
virtual void fillMEforMonTriggerSummary (const edm::Event &iEvent, const edm::EventSetup &)
virtual void fillMEforTriggerNTfired ()
const std::string getL1ConditionModuleName (const std::string &pathname)
void histobooking (const edm::EventSetup &c)
virtual bool isBarrel (double eta)
virtual bool isEndCap (double eta)
virtual bool isForward (double eta)
virtual bool isHLTPathAccepted (std::string pathName)
virtual bool isTriggerObjectFound (std::string objectName)
virtual double TriggerPosition (std::string trigName)
virtual bool validPathHLT (std::string path)

Private Attributes

double _fEMF
double _feta
double _fHPD
double _max_CEMF
double _max_CHEF
double _max_NEMF
double _max_NHEF
double _min_CEMF
double _min_CHEF
double _min_NEMF
double _min_NHEF
double _n90Hits
double _pfMHT
reco::CaloJetCollection calojet
edm::Handle
< reco::CaloJetCollection
calojetColl_
std::string CaloJetCorService_
double CaloJetEMF [2]
double CaloJetEta [2]
double CaloJetfHPD [2]
double CaloJetn90 [2]
double CaloJetPhi [2]
double CaloJetPt [2]
double CaloJetPx [2]
double CaloJetPy [2]
edm::InputTag caloJetsTag_
edm::Handle
< reco::CaloMETCollection
calometColl_
edm::InputTag caloMETTag_
MonitorElementcorrelation_All
MonitorElementcorrelation_AllWrtMB
MonitorElementcorrelation_AllWrtMu
std::vector< std::pair
< std::string, std::string > > 
custompathnamepairs_
DQMStoredbe
std::string dirname_
HLTConfigProvider hltConfig_
PathInfoCollection hltPathsAll_
PathInfoCollection hltPathsAllTriggerSummary_
PathInfoCollection hltPathsAllWrtMu_
PathInfoCollection hltPathsEff_
PathInfoCollection hltPathsEffWrtMB_
PathInfoCollection hltPathsEffWrtMu_
bool isSetup_
reco::helper::JetIDHelperjetID
std::vector< std::string > MBTrigPaths_
std::vector< std::string > MuonTrigPaths_
bool nameForEff_
int nev_
MonitorElementNVertices
std::vector< std::string > pathFilter_
std::vector< std::string > pathRejectKeyword_
reco::PFJetCollection pfjet
double PFJetCEMF [2]
double PFJetCHEF [2]
edm::Handle
< reco::PFJetCollection
pfjetColl_
std::string PFJetCorService_
double PFJetEta [2]
double PFJetNEMF [2]
double PFJetNHEF [2]
double PFJetPhi [2]
double PFJetPt [2]
double PFJetPx [2]
double PFJetPy [2]
edm::InputTag pfJetsTag_
edm::Handle
< reco::PFMETCollection
pfmetColl_
edm::InputTag pfMETTag_
double pfMHTx_All
double pfMHTy_All
bool plotAll_
bool plotAllwrtMu_
bool plotEff_
bool plotEffwrtMB_
bool plotEffwrtMu_
std::vector< int > prescUsed_
std::string processname_
MonitorElementPVZ
MonitorElementrate_All
MonitorElementrate_AllWrtMB
MonitorElementrate_AllWrtMu
bool runStandalone_
MonitorElementscalersSelect
MonitorElementtotal_
edm::TriggerNames triggerNames_
edm::Handle
< trigger::TriggerEvent
triggerObj_
edm::Handle< edm::TriggerResultstriggerResults_
edm::InputTag triggerResultsLabel_
edm::InputTag triggerSummaryLabel_
bool verbose_

Detailed Description

Definition at line 65 of file JetMETHLTOfflineSource.h.


Constructor & Destructor Documentation

JetMETHLTOfflineSource::JetMETHLTOfflineSource ( const edm::ParameterSet iConfig) [explicit]

Definition at line 45 of file JetMETHLTOfflineSource.cc.

References _fEMF, _feta, _fHPD, _max_CEMF, _max_CHEF, _max_NEMF, _max_NHEF, _min_CEMF, _min_CHEF, _min_NEMF, _min_NHEF, _n90Hits, CaloJetCorService_, caloJetsTag_, caloMETTag_, custompathnamepairs_, dbe, dirname_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), jetID, LogDebug, MBTrigPaths_, MuonTrigPaths_, nameForEff_, cppFunctionSkipper::operator, pathFilter_, pathRejectKeyword_, EgammaValidation_cff::paths, PFJetCorService_, pfJetsTag_, pfMETTag_, plotAll_, plotAllwrtMu_, plotEff_, plotEffwrtMB_, plotEffwrtMu_, processname_, runStandalone_, DQMStore::setVerbose(), AlCaHLTBitMon_QueryRunRegistry::string, triggerResultsLabel_, triggerSummaryLabel_, and verbose_.

                                                                            :
  isSetup_(false)
{
  LogDebug("JetMETHLTOfflineSource") << "constructor....";
  
  dbe = Service < DQMStore > ().operator->();
  if ( ! dbe ) {
    LogDebug("JetMETHLTOfflineSource") << "unabel to get DQMStore service?";
  }
  if (iConfig.getUntrackedParameter < bool > ("DQMStore", false)) {
    dbe->setVerbose(0);
  }
  //
  dirname_             = iConfig.getUntrackedParameter("dirname",std::string("HLT/JetMET/"));
  processname_         = iConfig.getParameter<std::string>("processname");
  triggerSummaryLabel_ = iConfig.getParameter<edm::InputTag>("triggerSummaryLabel");
  triggerResultsLabel_ = iConfig.getParameter<edm::InputTag>("triggerResultsLabel");
  //
  verbose_             = iConfig.getUntrackedParameter< bool >("verbose", false);
  runStandalone_       = iConfig.getUntrackedParameter< bool >("runStandalone", false);
  //
  plotAll_             = iConfig.getUntrackedParameter< bool >("plotAll", true);
  plotAllwrtMu_        = iConfig.getUntrackedParameter< bool >("plotAllwrtMu", false);
  plotEff_             = iConfig.getUntrackedParameter< bool >("plotEff", true); 
  plotEffwrtMu_        = iConfig.getUntrackedParameter< bool >("plotEffwrtMu", false); 
  plotEffwrtMB_        = iConfig.getUntrackedParameter< bool >("plotEffwrtMB", false);
  nameForEff_          = iConfig.getUntrackedParameter< bool >("nameForEff", true); 
  MuonTrigPaths_       = iConfig.getUntrackedParameter<vector<std::string> >("pathnameMuon");
  MBTrigPaths_         = iConfig.getUntrackedParameter<vector<std::string> >("pathnameMB");
  //CaloJet, CaloMET
  caloJetsTag_         = iConfig.getParameter<edm::InputTag>("CaloJetCollectionLabel");
  caloMETTag_          = iConfig.getParameter<edm::InputTag>("CaloMETCollectionLabel");
  //PFJet, PFMET
  pfJetsTag_           = iConfig.getParameter<edm::InputTag>("PFJetCollectionLabel");
  pfMETTag_            = iConfig.getParameter<edm::InputTag>("PFMETCollectionLabel");
  //pfmhtTag_       = iConfig.getParameter<edm::InputTag>("PFMHTCollectionLabel");
  //
  CaloJetCorService_   = iConfig.getParameter<std::string>("CaloJetCorService");
  PFJetCorService_     = iConfig.getParameter<std::string>("PFJetCorService");
  //JetID
  jetID                = new reco::helper::JetIDHelper(iConfig.getParameter<ParameterSet>("JetIDParams"));
  _fEMF                = iConfig.getUntrackedParameter< double >("fEMF", 0.01);
  _feta                = iConfig.getUntrackedParameter< double >("feta", 2.60);
  _fHPD                = iConfig.getUntrackedParameter< double >("fHPD", 0.98);
  _n90Hits             = iConfig.getUntrackedParameter< double >("n90Hits", 1.0);
  _min_NHEF            = iConfig.getUntrackedParameter< double >("minNHEF",0.); 
  _max_NHEF            = iConfig.getUntrackedParameter< double >("maxNHEF",0.99);
  _min_CHEF            = iConfig.getUntrackedParameter< double >("minCHEF",0.);
  _max_CHEF            = iConfig.getUntrackedParameter< double >("maxCHEF",1.);
  _min_NEMF            = iConfig.getUntrackedParameter< double >("minNEMF",0.);
  _max_NEMF            = iConfig.getUntrackedParameter< double >("maxNEMF",0.99);
  _min_CEMF            = iConfig.getUntrackedParameter< double >("minCEMF",0.);
  _max_CEMF            = iConfig.getUntrackedParameter< double >("maxCEMF",0.99);
  //Paths
  pathFilter_          = iConfig.getUntrackedParameter<vector<std::string> >("pathFilter");
  pathRejectKeyword_   = iConfig.getUntrackedParameter<vector<std::string> >("pathRejectKeyword");
  std::vector<edm::ParameterSet> paths =  iConfig.getParameter<std::vector<edm::ParameterSet> >("pathPairs");
  for(std::vector<edm::ParameterSet>::iterator pathconf = paths.begin() ; pathconf != paths.end();  pathconf++) { 
    custompathnamepairs_.push_back(make_pair(
                                             pathconf->getParameter<std::string>("pathname"),
                                             pathconf->getParameter<std::string>("denompathname")
                                             ));
  }
}
JetMETHLTOfflineSource::~JetMETHLTOfflineSource ( )

Definition at line 111 of file JetMETHLTOfflineSource.cc.

{ 
  //
  // do anything here that needs to be done at desctruction time
  // (e.g. close files, deallocate resources etc.)
}

Member Function Documentation

void JetMETHLTOfflineSource::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Implements edm::EDAnalyzer.

Definition at line 120 of file JetMETHLTOfflineSource.cc.

References reco::helper::JetIDHelper::calculate(), calojet, calojetColl_, CaloJetCorService_, CaloJetEMF, CaloJetEta, CaloJetfHPD, CaloJetn90, CaloJetPhi, CaloJetPt, CaloJetPx, CaloJetPy, caloJetsTag_, calometColl_, caloMETTag_, JetCorrector::correction(), gather_cfg::cout, edm::EventID::event(), reco::helper::JetIDHelper::fHPD(), fillMEforEffAllTrigger(), fillMEforEffWrtMBTrigger(), fillMEforEffWrtMuTrigger(), fillMEforMonAllTrigger(), fillMEforMonAllTriggerwrtMuonTrigger(), fillMEforMonTriggerSummary(), fillMEforTriggerNTfired(), edm::Event::getByLabel(), JetCorrector::getJetCorrector(), i, edm::EventBase::id(), edm::InputTag::instance(), edm::HandleBase::isValid(), jetID, edm::InputTag::label(), edm::EventBase::luminosityBlock(), reco::helper::JetIDHelper::n90Hits(), pfjet, PFJetCEMF, PFJetCHEF, pfjetColl_, PFJetCorService_, PFJetEta, PFJetNEMF, PFJetNHEF, PFJetPhi, PFJetPt, PFJetPx, PFJetPy, pfJetsTag_, pfmetColl_, pfMETTag_, pfMHTx_All, pfMHTy_All, plotAll_, plotAllwrtMu_, plotEff_, plotEffwrtMB_, plotEffwrtMu_, edm::EventID::run(), runStandalone_, pileupReCalc_HLTpaths::scale, edm::Event::triggerNames(), triggerNames_, triggerObj_, triggerResults_, triggerResultsLabel_, triggerSummaryLabel_, and verbose_.

{ 
  //---------- triggerResults ----------
  iEvent.getByLabel(triggerResultsLabel_, triggerResults_);
  if(!triggerResults_.isValid()) {
    edm::InputTag triggerResultsLabelFU(triggerResultsLabel_.label(),triggerResultsLabel_.instance(), "FU");
    iEvent.getByLabel(triggerResultsLabelFU,triggerResults_);
    if(!triggerResults_.isValid()) {
      edm::LogInfo("FourVectorHLTOffline") << "TriggerResults not found, "
        "skipping event";
      return;
    }
  }
  
  //---------- triggerResults ----------
  //int npath;
  if(&triggerResults_) {  
    // Check how many HLT triggers are in triggerResults
    //npath = triggerResults_->size();
    triggerNames_ = iEvent.triggerNames(*triggerResults_);
  } 
  else {
    edm::LogInfo("CaloMETHLTOfflineSource") << "TriggerResults::HLT not found, "
      "automatically select events";
    return;
  } 
  
  //---------- triggerSummary ----------
  iEvent.getByLabel(triggerSummaryLabel_,triggerObj_);
  if(!triggerObj_.isValid()) {
    edm::InputTag triggerSummaryLabelFU(triggerSummaryLabel_.label(),triggerSummaryLabel_.instance(), "FU");
    iEvent.getByLabel(triggerSummaryLabelFU,triggerObj_);
    if(!triggerObj_.isValid()) {
      edm::LogInfo("FourVectorHLTOffline") << "TriggerEvent not found, "
        "skipping event";
      return;
    }
  } 
  
  //------------ Offline Objects -------
  bool ValidJetColl_ = iEvent.getByLabel(caloJetsTag_,calojetColl_);
  if(!ValidJetColl_) return;
  calojet = *calojetColl_; 
  //std::stable_sort( calojet.begin(), calojet.end(), PtSorter() ); 
  
  bool ValidPFJetColl_ = iEvent.getByLabel(pfJetsTag_,pfjetColl_);
  if(!ValidPFJetColl_) return;
  pfjet = *pfjetColl_; 
  //std::stable_sort( pfjet.begin(), pfjet.end(), PtSorter() );
  
  bool ValidMETColl_ = iEvent.getByLabel(caloMETTag_, calometColl_);
  if(!ValidMETColl_) return;
  
  bool ValidPFMETColl_ = iEvent.getByLabel(pfMETTag_, pfmetColl_);
  if(!ValidPFMETColl_) return; 
  
  //---------- Event counting (DEBUG) ----------
  if(verbose_ && iEvent.id().event()%10000==0)
    cout<<"Run = "<<iEvent.id().run()<<", LS = "<<iEvent.luminosityBlock()<<", Event = "<<iEvent.id().event()<<endl;  
  
  //Define on-the-fly correction Jet
  for(int i=0; i<2; i++){
    CaloJetPx[i]   = 0.;
    CaloJetPy[i]   = 0.;
    CaloJetPt[i]   = 0.;
    CaloJetEta[i]  = 0.;
    CaloJetPhi[i]  = 0.;
    CaloJetEMF[i]  = 0.;
    CaloJetfHPD[i] = 0.;
    CaloJetn90[i]  = 0.;
    PFJetPx[i]     = 0.;
    PFJetPy[i]     = 0.;
    PFJetPt[i]     = 0.;
    PFJetEta[i]    = 0.;
    PFJetPhi[i]    = 0.;
    PFJetNHEF[i]   = 0.;
    PFJetCHEF[i]   = 0.;
    PFJetNEMF[i]   = 0.;
    PFJetCEMF[i]   = 0.;
  }

  //---------- CaloJet Correction (on-the-fly) ----------
  const JetCorrector* calocorrector = JetCorrector::getJetCorrector(CaloJetCorService_,iSetup);
  CaloJetCollection::const_iterator calojet_ = calojet.begin();
  for(; calojet_ != calojet.end(); ++calojet_){
    double scale = calocorrector->correction(*calojet_,iEvent, iSetup); 
    jetID->calculate(iEvent, *calojet_);
    
    if(scale*calojet_->pt()>CaloJetPt[0]){
      CaloJetPt[1]   = CaloJetPt[0]; 
      CaloJetPx[1]   = CaloJetPx[0];
      CaloJetPy[1]   = CaloJetPy[0];
      CaloJetEta[1]  = CaloJetEta[0];
      CaloJetPhi[1]  = CaloJetPhi[0];
      CaloJetEMF[1]  = CaloJetEMF[0];
      CaloJetfHPD[1] = CaloJetfHPD[0];
      CaloJetn90[1]  = CaloJetn90[0];
      //
      CaloJetPt[0]   = scale*calojet_->pt();
      CaloJetPx[0]   = scale*calojet_->px();
      CaloJetPy[0]   = scale*calojet_->py();
      CaloJetEta[0]  = calojet_->eta();
      CaloJetPhi[0]  = calojet_->phi();
      CaloJetEMF[0]  = calojet_->emEnergyFraction();
      CaloJetfHPD[0] = jetID->fHPD();
      CaloJetn90[0]  = jetID->n90Hits();
    }
    else if(scale*calojet_->pt()<CaloJetPt[0] && scale*calojet_->pt()>CaloJetPt[1] ){
      CaloJetPt[1]   = scale*calojet_->pt();
      CaloJetPx[1]   = scale*calojet_->px();
      CaloJetPy[1]   = scale*calojet_->py();
      CaloJetEta[1]  = calojet_->eta();
      CaloJetPhi[1]  = calojet_->phi();
      CaloJetEMF[1]  = calojet_->emEnergyFraction();
      CaloJetfHPD[1] = jetID->fHPD();
      CaloJetn90[1]  = jetID->n90Hits();
    }
    else{}
  }
  
  //---------- PFJet Correction (on-the-fly) ----------
  pfMHTx_All = 0.;
  pfMHTy_All = 0.;
  const JetCorrector* pfcorrector = JetCorrector::getJetCorrector(PFJetCorService_,iSetup);
  PFJetCollection::const_iterator pfjet_ = pfjet.begin();
  for(; pfjet_ != pfjet.end(); ++pfjet_){
    double scale = pfcorrector->correction(*pfjet_,iEvent, iSetup);
    pfMHTx_All = pfMHTx_All + scale*pfjet_->px();
    pfMHTy_All = pfMHTy_All + scale*pfjet_->py();
    if(scale*pfjet_->pt()>PFJetPt[0]){
      PFJetPt[1]   = PFJetPt[0];
      PFJetPx[1]   = PFJetPx[0];
      PFJetPy[1]   = PFJetPy[0];
      PFJetEta[1]  = PFJetEta[0];
      PFJetPhi[1]  = PFJetPhi[0];
      PFJetNHEF[1] = PFJetNHEF[0]; 
      PFJetCHEF[1] = PFJetCHEF[0];
      PFJetNEMF[1] = PFJetNEMF[0]; 
      PFJetCEMF[1] = PFJetCEMF[0];
      //
      PFJetPt[0]   = scale*pfjet_->pt();
      PFJetPx[0]   = scale*pfjet_->px();
      PFJetPy[0]   = scale*pfjet_->py();
      PFJetEta[0]  = pfjet_->eta();
      PFJetPhi[0]  = pfjet_->phi();
      PFJetNHEF[0] = pfjet_->neutralHadronEnergyFraction();
      PFJetCHEF[0] = pfjet_->chargedHadronEnergyFraction();
      PFJetNEMF[0] = pfjet_->neutralEmEnergyFraction();
      PFJetCEMF[0] = pfjet_->chargedEmEnergyFraction();
    }
    else if(scale*pfjet_->pt()<PFJetPt[0] && scale*pfjet_->pt()>PFJetPt[1] ){
      PFJetPt[1]   = scale*pfjet_->pt();
      PFJetPx[1]   = scale*pfjet_->px();
      PFJetPy[1]   = scale*pfjet_->py();
      PFJetEta[1]  = pfjet_->eta();
      PFJetPhi[1]  = pfjet_->phi(); 
      PFJetNHEF[1] = pfjet_->neutralHadronEnergyFraction();
      PFJetCHEF[1] = pfjet_->chargedHadronEnergyFraction();
      PFJetNEMF[1] = pfjet_->neutralEmEnergyFraction();
      PFJetCEMF[1] = pfjet_->chargedEmEnergyFraction();
    }
    else{}
  }
  
  if(verbose_){
    for(int i = 0; i<2; i++){
      cout<<"CaloJet-0: "<<CaloJetPt[i]<<", Eta = "<<CaloJetEta[i]<<", Phi = "<<CaloJetPhi[i]<<endl;
      cout<<"fHPD = "<<CaloJetfHPD[0]<<", n90 = "<<CaloJetn90[0]<<endl;
    }
    for(int i = 0; i<2; i++){
      cout<<"PFJet-0: "<<PFJetPt[i]<<", Eta = "<<PFJetEta[i]<<", Phi = "<<PFJetPhi[i]<<endl;
    }
  }

  //---------- RUN ----------
  fillMEforMonTriggerSummary(iEvent, iSetup);
  if(plotAll_)                  fillMEforMonAllTrigger(iEvent, iSetup);
  if(plotAllwrtMu_)             fillMEforMonAllTriggerwrtMuonTrigger(iEvent,iSetup);
  if(plotEff_)                  fillMEforEffAllTrigger(iEvent,iSetup);
  if(plotEff_ && plotEffwrtMu_) fillMEforEffWrtMuTrigger(iEvent,iSetup); 
  if(plotEff_ && plotEffwrtMB_) fillMEforEffWrtMBTrigger(iEvent,iSetup);
  if(runStandalone_)            fillMEforTriggerNTfired();
}
void JetMETHLTOfflineSource::beginJob ( void  ) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 2682 of file JetMETHLTOfflineSource.cc.

{
}
void JetMETHLTOfflineSource::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 6267 of file JetMETHLTOfflineSource.cc.

                                                                             {
}
void JetMETHLTOfflineSource::beginRun ( const edm::Run run,
const edm::EventSetup c 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 2688 of file JetMETHLTOfflineSource.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookFloat(), config::checkPath, correlation_All, correlation_AllWrtMB, correlation_AllWrtMu, gather_cfg::cout, custompathnamepairs_, dbe, TrackerOfflineValidation_Dqm_cff::dirName, dirname_, reco::tau::disc::Eta(), SingleJetValidation_cfi::foldernm, getL1ConditionModuleName(), MonitorElement::getTH1(), hltConfig_, hltPathsAll_, hltPathsAllTriggerSummary_, hltPathsAllWrtMu_, hltPathsEff_, hltPathsEffWrtMB_, hltPathsEffWrtMu_, i, HLTConfigProvider::init(), isSetup_, reco::tau::disc::JetPt(), LogDebug, MBTrigPaths_, CaloMET_cfi::met, HLTConfigProvider::moduleLabels(), HLTConfigProvider::moduleType(), MuonTrigPaths_, N, n, nameForEff_, pileupCalc::nbins, NVertices, cppFunctionSkipper::operator, pathFilter_, timingPdfMaker::pathname, pathRejectKeyword_, colinearityKinematic::Phi, plotAll_, plotAllwrtMu_, plotEff_, plotEffwrtMB_, plotEffwrtMu_, processname_, reco::tau::disc::Pt(), PVZ, rate_All, rate_AllWrtMB, rate_AllWrtMu, HLTConfigProvider::removeVersion(), DQMStore::rmdir(), runStandalone_, MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), HLTConfigProvider::size(), AlCaHLTBitMon_QueryRunRegistry::string, indexGen::title, trigger::TriggerJet, trigger::TriggerMET, HLTConfigProvider::triggerName(), trigger::TriggerTET, v, and verbose_.

{
  if(!isSetup_){ 
    DQMStore *dbe = 0;
    dbe = Service<DQMStore>().operator->();
    if (dbe) {
      dbe->setCurrentFolder(dirname_);
      dbe->rmdir(dirname_);
    }
    if (dbe) {
      dbe->setCurrentFolder(dirname_);
    }
    
    //--- htlConfig_
    bool changed(true);
    if (!hltConfig_.init(run, c, processname_, changed)) {
      LogDebug("HLTJetMETDQMSource") << "HLTConfigProvider failed to initialize.";
    }
    
    /*
      Here we select the Single Jet, DiJet, MET trigger. SingleJet and DiJet trigger are saved under same object type "TriggerJet". We can easily separate out sing
      le   and di jet trigger later. For the first trigger in the list, denominator trigger is dummy (empty) whereas for other triggers denom is previous trigger o
      f same type. e.g. SingleJet50 has singleJet30 as denominator.
      For defining histos wrt muon trigger, denominator is always set "MuonTrigger". This string later can be checked and condition can be applied on muon triggers
      .
    */
    
    const unsigned int n(hltConfig_.size());
    int singleJet = 0;
    int diJet     = 0;
    int met       = 0;
    int tet       = 0;
    for (unsigned int i=0; i!=n; ++i) {
      bool denomFound = false;
      bool numFound   = false; 
      bool mbFound    = false;
      bool muFound    = false;
      bool checkPath  = false;

      //Look for paths if "path name fraction" is found in the pathname
      std::string pathname = hltConfig_.triggerName(i);
      //Filter only paths JetMET triggers are interested in
      std::vector<std::string>::const_iterator controlPathname = pathFilter_.begin();
      for(;controlPathname!=pathFilter_.end(); ++controlPathname){
        if(pathname.find((*controlPathname)) != std::string::npos){
          checkPath = true;
          break;
        }
      }
      if(checkPath==false) continue;
      
      //Reject if keyword(s) is found in the pathname
      std::vector<std::string>::const_iterator rejectPathname = pathRejectKeyword_.begin();
      for(; rejectPathname!=pathRejectKeyword_.end();++rejectPathname){
        if(pathname.find((*rejectPathname)) != std::string::npos){
          checkPath = false;
          break;
        }
      }
      if(checkPath==false) continue;
      
      
      //
      if(verbose_) cout<<"==pathname=="<<pathname<<endl;
      std::string dpathname = MuonTrigPaths_[0];
      std::string l1pathname = "dummy";
      std::string denompathname = "";
      unsigned int usedPrescale = 1;
      unsigned int objectType = 0;
      std::string triggerType = "";
      std::string filtername("dummy");
      std::string Denomfiltername("denomdummy");
  
      if(pathname.find("Jet")            != std::string::npos 
         && !(pathname.find("DoubleJet") != std::string::npos) 
         && !(pathname.find("DiJet")     != std::string::npos)
         && !(pathname.find("DiPFJet")   != std::string::npos) 
         && !(pathname.find("BTag")      != std::string::npos) 
         && !(pathname.find("Mu")        != std::string::npos) 
         && !(pathname.find("Fwd")       != std::string::npos)){
        triggerType = "SingleJet_Trigger"; 
        objectType = trigger::TriggerJet;
      }
      if(pathname.find("DiJet") != std::string::npos 
         || pathname.find("DiPFJet") != std::string::npos
         || pathname.find("DoubleJet") != std::string::npos){
        triggerType = "DiJet_Trigger";
        objectType = trigger::TriggerJet;
      }
      if(pathname.find("MET") != std::string::npos){
        triggerType = "MET_Trigger";  
        objectType = trigger::TriggerMET;
      }
      if(pathname.find("HT") != std::string::npos) {
        triggerType = "TET_Trigger";
        objectType = trigger::TriggerTET;
      }
      
      //
      if(objectType == trigger::TriggerJet  
         && !(pathname.find("DiJet") != std::string::npos)
         && !(pathname.find("DiPFJet") != std::string::npos) 
         && !(pathname.find("DoubleJet") != std::string::npos)){
        singleJet++;
        if(singleJet > 1)  dpathname = dpathname = hltConfig_.triggerName(i-1);
        if(singleJet == 1) dpathname = MuonTrigPaths_[0];
      }  
      if(objectType == trigger::TriggerJet  
         && ((pathname.find("DiJet") != std::string::npos) 
             || (pathname.find("DiPFJet") != std::string::npos))){
        diJet++;
        if(diJet > 1)  dpathname = dpathname = hltConfig_.triggerName(i-1);
        if(diJet == 1) dpathname = MuonTrigPaths_[0];
      } 
      if(objectType == trigger::TriggerMET  ){
        met++;
        if(met > 1)  dpathname = dpathname = hltConfig_.triggerName(i-1);
        if(met == 1) dpathname = MuonTrigPaths_[0];
      }
      if(objectType == trigger::TriggerTET  ){
        tet++;
        if(tet > 1)  dpathname = dpathname = hltConfig_.triggerName(i-1);
        if(tet == 1) dpathname = MuonTrigPaths_[0];
      }
      
      // find L1 condition for numpath with numpath objecttype 
      // find PSet for L1 global seed for numpath,sss 
      // list module labels for numpath
      
      // Checking if the trigger exist in HLT table or not
      for (unsigned int i=0; i!=n; ++i){
        std::string HLTname = hltConfig_.triggerName(i);
        if(HLTname == pathname)          numFound   = true;
        if(HLTname == dpathname)         denomFound = true;
        if(HLTname.find(MBTrigPaths_[0])   != std::string::npos) mbFound = true;
        if(HLTname.find(MuonTrigPaths_[0]) != std::string::npos) muFound = true;
        //if(HLTname == MBTrigPaths_[0])   mbFound    = true;
        //if(HLTname == MuonTrigPaths_[0]) muFound    = true; 
      }
      
      if(numFound){ //make trigger exist in the menu
        //ml needs change l1pathname
        l1pathname = getL1ConditionModuleName(pathname); //ml added L1conditionmodulename       
        //ml added
        std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
        for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin(); numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
          edm::InputTag testTag(*numpathmodule,"",processname_);
          if ((hltConfig_.moduleType(*numpathmodule)    == "HLT1CaloJet")
              || (hltConfig_.moduleType(*numpathmodule) == "HLT1PFJet")
              || (hltConfig_.moduleType(*numpathmodule) == "HLTDiJetAveFilter")
              || (hltConfig_.moduleType(*numpathmodule) == "HLTDiPFJetAveFilter") 
              || (hltConfig_.moduleType(*numpathmodule) == "HLT1CaloMET") 
              || (hltConfig_.moduleType(*numpathmodule) == "HLTMhtFilter") 
              || (hltConfig_.moduleType(*numpathmodule) == "HLTPrescaler"))
            filtername = *numpathmodule;
        }
        /*
          std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
          for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin(); numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
          edm::InputTag testTag(*numpathmodule,"",processname_);
          if ((hltConfig_.moduleType(*numpathmodule) == "HLT1CaloJet")
          || (hltConfig_.moduleType(*numpathmodule) == "HLTDiJetAveFilter") 
          || (hltConfig_.moduleType(*numpathmodule) == "HLT1CaloMET" ) 
          || (hltConfig_.moduleType(*numpathmodule) == "HLTPrescaler"))
          filtername = *numpathmodule;
          if (hltConfig_.moduleType(*numpathmodule) == "HLTLevel1GTSeed")l1pathname = *numpathmodule;
          }
        */
      }

      if(objectType != 0 && denomFound){
        std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(dpathname);
        for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin(); numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
          edm::InputTag testTag(*numpathmodule,"",processname_);
          if ((hltConfig_.moduleType(*numpathmodule)    == "HLT1CaloJet")
              || (hltConfig_.moduleType(*numpathmodule) == "HLT1PFJet")
              || (hltConfig_.moduleType(*numpathmodule) == "HLTDiJetAveFilter") 
              || (hltConfig_.moduleType(*numpathmodule) == "HLTDiPFJetAveFilter") 
              || (hltConfig_.moduleType(*numpathmodule) == "HLT1CaloMET" ) 
              || (hltConfig_.moduleType(*numpathmodule) == "HLTMhtFilter") 
              || (hltConfig_.moduleType(*numpathmodule) == "HLTPrescaler") )
            Denomfiltername = *numpathmodule;
        }
      }

      if(objectType != 0 && numFound){
        if(verbose_)
          cout<<"=Pathname= "<<pathname
              <<" | =Denompath= "<<dpathname
              <<" | =Filtername= "<<filtername
              <<" | =Denomfiltername= "<<Denomfiltername
              <<" | =L1pathname= "<<l1pathname
              <<" | =ObjectType= "<<objectType<<endl;    
        if(!((pathname.find("HT") != std::string::npos) || (pathname.find("Quad") != std::string::npos))){     
          hltPathsAll_.push_back(PathInfo(usedPrescale, dpathname, pathname, l1pathname, filtername, Denomfiltername, processname_, objectType, triggerType));
          if(muFound)hltPathsAllWrtMu_.push_back(PathInfo(usedPrescale, dpathname, pathname, l1pathname, 
                                                          filtername, Denomfiltername, processname_, objectType, triggerType));
          if(muFound)hltPathsEffWrtMu_.push_back(PathInfo(usedPrescale, dpathname, pathname, l1pathname, 
                                                          filtername, Denomfiltername, processname_, objectType, triggerType));
          if(mbFound)hltPathsEffWrtMB_.push_back(PathInfo(usedPrescale, dpathname, pathname, l1pathname, 
                                                          filtername, Denomfiltername, processname_, objectType, triggerType));
          if(!nameForEff_ && denomFound) hltPathsEff_.push_back(PathInfo(usedPrescale, dpathname, pathname, l1pathname, 
                                                                         filtername, Denomfiltername, processname_, objectType, triggerType));
        }
        hltPathsAllTriggerSummary_.push_back(PathInfo(usedPrescale, dpathname, pathname, l1pathname, 
                                                      filtername, Denomfiltername, processname_, objectType, triggerType));
      }
    } //Loop over paths

    if (verbose_) cout << "get names for efficicncy------------------"<< endl;
    //---------bool to pick trigger names pair from config file-------------
    if(nameForEff_){
      std::string l1pathname = "dummy";
      std::string denompathname = "";
      unsigned int usedPrescale = 1;
      unsigned int objectType = 0;
      std::string triggerType = "";
      std::string filtername("dummy");
      std::string Denomfiltername("denomdummy");
      for (std::vector<std::pair<std::string, std::string> >::iterator custompathnamepair = custompathnamepairs_.begin(); 
           custompathnamepair != custompathnamepairs_.end(); ++custompathnamepair){
        std::string pathname  = custompathnamepair->first;
        std::string dpathname = custompathnamepair->second;
        bool numFound = false;
        bool denomFound = false;
        // Checking if the trigger exist in HLT table or not
        for (unsigned int i=0; i!=n; ++i) {
          std::string HLTname = hltConfig_.triggerName(i);
          if(HLTname.find(pathname)!=std::string::npos){numFound = true; pathname = HLTname;} //changed to get versions 
          if(HLTname.find(dpathname)!=std::string::npos){denomFound = true; dpathname = HLTname;} //changed
        }
        if(numFound && denomFound){
          if (pathname.find("Jet")            != std::string::npos 
              && !(pathname.find("DiJet")     != std::string::npos)
              && !(pathname.find("DiPFJet")   != std::string::npos) 
              && !(pathname.find("DoubleJet") != std::string::npos) 
              && !(pathname.find("BTag")      != std::string::npos) 
              && !(pathname.find("Mu")        != std::string::npos) 
              && !(pathname.find("Fwd")       != std::string::npos)){
            triggerType = "SingleJet_Trigger";
            objectType = trigger::TriggerJet;
          }
          if (pathname.find("DiJet")        != std::string::npos
              || pathname.find("DiPFJet")   != std::string::npos
              || pathname.find("DoubleJet") != std::string::npos ){
            triggerType = "DiJet_Trigger";
            objectType = trigger::TriggerJet;
          }
          if (pathname.find("MET") != std::string::npos ){
            triggerType = "MET_Trigger";
            objectType = trigger::TriggerMET;
          }
          if (pathname.find("TET") != std::string::npos ){
            triggerType = "TET_Trigger";
            objectType = trigger::TriggerTET;
          }
          
          l1pathname = getL1ConditionModuleName(pathname); //ml added L1conditionmodulename
          std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(pathname);
          for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin(); numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
            edm::InputTag testTag(*numpathmodule,"",processname_);
            if ((hltConfig_.moduleType(*numpathmodule) == "HLT1CaloJet")
                || (hltConfig_.moduleType(*numpathmodule) == "HLT1PFJet")
                || (hltConfig_.moduleType(*numpathmodule) == "HLTDiJetAveFilter") 
                || (hltConfig_.moduleType(*numpathmodule) == "HLTDiPFJetAveFilter") 
                || (hltConfig_.moduleType(*numpathmodule) == "HLT1CaloMET" ) 
                || (hltConfig_.moduleType(*numpathmodule) == "HLTMhtFilter") 
                || (hltConfig_.moduleType(*numpathmodule) == "HLTPrescaler") )
              filtername = *numpathmodule;
          }
          
          if(objectType != 0){
            std::vector<std::string> numpathmodules = hltConfig_.moduleLabels(dpathname);
            for(std::vector<std::string>::iterator numpathmodule = numpathmodules.begin(); numpathmodule!= numpathmodules.end(); ++numpathmodule ) {
              edm::InputTag testTag(*numpathmodule,"",processname_);
              if ((hltConfig_.moduleType(*numpathmodule)    == "HLT1CaloJet")
                  || (hltConfig_.moduleType(*numpathmodule) == "HLT1PFJet")
                  || (hltConfig_.moduleType(*numpathmodule) == "HLTDiJetAveFilter")
                  || (hltConfig_.moduleType(*numpathmodule) == "HLTDiPFJetAveFilter")  
                  || (hltConfig_.moduleType(*numpathmodule) == "HLT1CaloMET" ) 
                  || (hltConfig_.moduleType(*numpathmodule) == "HLTMhtFilter") 
                  || (hltConfig_.moduleType(*numpathmodule) == "HLTPrescaler") )
                Denomfiltername = *numpathmodule;
            }
     
            if(verbose_)cout<<"==pathname=="<<pathname
                            <<"==denompath=="<<dpathname
                            <<"==filtername=="<<filtername
                            <<"==denomfiltername=="<<Denomfiltername
                            <<"==l1pathname=="<<l1pathname
                            <<"==objectType=="<<objectType<<endl;
            hltPathsEff_.push_back(PathInfo(usedPrescale, dpathname, pathname, l1pathname, 
                                            filtername, Denomfiltername, processname_, objectType, triggerType)); 
          }
        }
      }
    }
    
    if(verbose_)cout<<"== end hltPathsEff_.push_back ======" << endl;
    
    //-----------------------------------------------------------------
    //---book trigger summary histos
    if(!isSetup_){
      std::string foldernm = "/TriggerSummary/";
      if (dbe){
        dbe->setCurrentFolder(dirname_ + foldernm);
      }
      int     TrigBins_ = hltPathsAllTriggerSummary_.size();
      double  TrigMin_ = -0.5;
      double  TrigMax_ = hltPathsAllTriggerSummary_.size()-0.5;
      
      std::string histonm="JetMET_TriggerRate";
      std::string histot="JetMET TriggerRate Summary";
      rate_All = dbe->book1D(histonm.c_str(),histot.c_str(),TrigBins_,TrigMin_,TrigMax_);
      
      histonm = "JetMET_TriggerRate_Correlation";
      histot  = "JetMET TriggerRate Correlation Summary;y&&!x;x&&y";
      correlation_All = dbe->book2D(histonm.c_str(),histot.c_str(),TrigBins_,TrigMin_,TrigMax_,TrigBins_,TrigMin_,TrigMax_);
      
      histonm   = "JetMET_NVertices";
      histot    = "No. of vertices";
      NVertices = dbe->book1D(histonm.c_str(),histot.c_str(),100,0,50);
      
      histonm   = "JetMET_PVZ";
      histot    = "Primary Vertex Z pos";
      PVZ       = dbe->book1D(histonm.c_str(),histot.c_str(),100,-50.,50.);
      
      if(runStandalone_){
        histonm="JetMET_TriggerRate_WrtMuTrigger";
        histot="JetMET TriggerRate Summary Wrt Muon Trigger ";    
        rate_AllWrtMu = dbe->book1D(histonm.c_str(),histot.c_str(),TrigBins_,TrigMin_,TrigMax_);
        
        histonm="JetMET_TriggerRate_Correlation_WrtMuTrigger";
        histot="JetMET TriggerRate Correlation Summary Wrt Muon Trigger;y&&!x;x&&y";
        correlation_AllWrtMu = dbe->book2D(histonm.c_str(),histot.c_str(),TrigBins_,TrigMin_,TrigMax_,TrigBins_,TrigMin_,TrigMax_);
        
        histonm="JetMET_TriggerRate_WrtMBTrigger";
        histot="JetMET TriggerRate Summary Wrt MB Trigger";
        rate_AllWrtMB = dbe->book1D(histonm.c_str(),histot.c_str(),TrigBins_,TrigMin_,TrigMax_);
      
        histonm="JetMET_TriggerRate_Correlation_WrtMBTrigger";
        histot="JetMET TriggerRate Correlation Wrt MB Trigger;y&&!x;x&&y";
        correlation_AllWrtMB = dbe->book2D(histonm.c_str(),histot.c_str(),TrigBins_,TrigMin_,TrigMax_,TrigBins_,TrigMin_,TrigMax_);
      }
      isSetup_ = true;
    }
    //---Set bin label
    
    for(PathInfoCollection::iterator v = hltPathsAllTriggerSummary_.begin(); v!= hltPathsAllTriggerSummary_.end(); ++v ){
      std::string labelnm("dummy");
      labelnm = v->getPath(); 
      int nbins = rate_All->getTH1()->GetNbinsX();
      for(int ibin=1; ibin<nbins+1; ibin++){
        const char * binLabel = rate_All->getTH1()->GetXaxis()->GetBinLabel(ibin);
        std::string binLabel_str = string(binLabel);
        if(binLabel_str.compare(labelnm)==0)break;
        if(binLabel[0]=='\0'){
          rate_All->setBinLabel(ibin,labelnm);  
          correlation_All->setBinLabel(ibin,labelnm,1);
          correlation_All->setBinLabel(ibin,labelnm,2);
          if(runStandalone_){
            rate_AllWrtMu->setBinLabel(ibin,labelnm);
            rate_AllWrtMB->setBinLabel(ibin,labelnm);
            correlation_AllWrtMu->setBinLabel(ibin,labelnm,1);
            correlation_AllWrtMB->setBinLabel(ibin,labelnm,1);
            correlation_AllWrtMu->setBinLabel(ibin,labelnm,2);
            correlation_AllWrtMB->setBinLabel(ibin,labelnm,2);
          }
          break; 
        } 
      }
    }

    // Now define histos for All triggers
    if(plotAll_){
      //
      int Nbins_       = 10;
      int Nmin_        = -0.5;
      int Nmax_        = 9.5;
      //
      int Ptbins_      = 100;
      if(runStandalone_) Ptbins_ = 1000;
      double PtMin_    = 0.;
      double PtMax_    = 1000.;
      //
      int Etabins_     = 50;
      if(runStandalone_) Etabins_ = 100;
      double EtaMin_   = -5.;
      double EtaMax_   =  5.;
      //
      int Phibins_     = 35;
      double PhiMin_   = -3.5;
      double PhiMax_   = 3.5;

      int Resbins_     = 30;
      double ResMin_   =  -1.5;
      double ResMax_   =   1.5;
      //
      std::string dirName = dirname_ + "/MonitorAllTriggers/";
      for(PathInfoCollection::iterator v = hltPathsAll_.begin(); v!= hltPathsAll_.end(); ++v ){
        //
        std::string trgPathName = HLTConfigProvider::removeVersion(v->getPath());
        std::string subdirName  = dirName + trgPathName;
        std::string trigPath    = "("+trgPathName+")";
        dbe->setCurrentFolder(subdirName);  
        
        std::string labelname("ME");
        std::string histoname(labelname+"");
        std::string title(labelname+"");

        MonitorElement *dummy;
        dummy =  dbe->bookFloat("dummy");  
        
        if(v->getObjectType() == trigger::TriggerJet && v->getTriggerType().compare("SingleJet_Trigger") == 0){
          
          histoname = labelname+"_recObjN";
          title     = labelname+"_recObjN;Reco multiplicity()"+trigPath;
          MonitorElement * N = dbe->book1D(histoname.c_str(),title.c_str(),Nbins_,Nmin_,Nmax_);
          N->getTH1();
          
          histoname = labelname+"_recObjPt";
          title = labelname+"_recObjPt; Reco Pt[GeV/c]"+trigPath;
          MonitorElement * Pt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt->getTH1();
          
          histoname = labelname+"_recObjPtBarrel";
          title = labelname+"_recObjPtBarrel;Reco Pt[GeV/c]"+trigPath;
          MonitorElement * PtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtBarrel->getTH1();
          
          histoname = labelname+"_recObjPtEndcap";
          title = labelname+"_recObjPtEndcap;Reco Pt[GeV/c]"+trigPath;
          MonitorElement * PtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtEndcap->getTH1();
          
          histoname = labelname+"_recObjPtForward";
          title = labelname+"_recObjPtForward;Reco Pt[GeV/c]"+trigPath;
          MonitorElement * PtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtForward->getTH1();
          
          histoname = labelname+"_recObjEta";
          title = labelname+"_recObjEta;Reco #eta"+trigPath;
          MonitorElement * Eta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          Eta->getTH1();
          
          histoname = labelname+"_recObjPhi";
          title = labelname+"_recObjPhi;Reco #Phi"+trigPath;
          MonitorElement * Phi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi->getTH1();
          
          histoname = labelname+"_recObjEtaPhi";
          title = labelname+"_recObjEtaPhi;Reco #eta;Reco #Phi"+trigPath;
          MonitorElement * EtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          EtaPhi->getTH1();
          
          histoname = labelname+"_l1ObjPt";
          title = labelname+"_l1ObjPt;L1 Pt[GeV/c]"+trigPath;
          MonitorElement * Pt_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt_L1->getTH1(); 

          histoname = labelname+"_l1ObjEta";
          title = labelname+"_l1ObjEta;L1 #eta"+trigPath;
          MonitorElement * Eta_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          Eta_L1->getTH1();                                                               
                                                                      
          histoname = labelname+"_l1ObjPhi";
          title = labelname+"_l1ObjPhi;L1 #Phi"+trigPath;
          MonitorElement * Phi_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi_L1->getTH1();                                                               
                                                                      
          histoname = labelname+"_l1ObjEtaPhi";
          title = labelname+"_l1ObjEtaPhi;L1 #eta;L1 #Phi"+trigPath;
          MonitorElement * EtaPhi_L1 =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          EtaPhi_L1->getTH1();

          histoname = labelname+"_l1ObjN";         
          title     = labelname+"_l1ObjN;L1 multiplicity"+trigPath;
          MonitorElement * N_L1 = dbe->book1D(histoname.c_str(),title.c_str(),Nbins_,Nmin_,Nmax_);
          N_L1->getTH1();   
          
          histoname = labelname+"_l1ObjPtBarrel";                                    
          title = labelname+"_l1ObjPtBarrel;L1 Pt[GeV/c]"+trigPath;                              
          MonitorElement * PtBarrel_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtBarrel_L1->getTH1();                                                            
          
          histoname = labelname+"_l1ObjPtEndcap";
          title = labelname+"_l1ObjPtEndcap;L1 Pt[GeV/c]"+trigPath;
          MonitorElement * PtEndcap_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtEndcap_L1->getTH1();                                                            
          
          histoname = labelname+"_l1ObjPtForward";
          title = labelname+"_l1ObjPtForward;L1 Pt[GeV/c]"+trigPath;
          MonitorElement * PtForward_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtForward_L1->getTH1();
          
          histoname = labelname+"_hltObjN";         
          title     = labelname+"_hltObjN;HLT multiplicity"+trigPath;
          MonitorElement * N_HLT = dbe->book1D(histoname.c_str(),title.c_str(),Nbins_,Nmin_,Nmax_);
          N_HLT->getTH1();                                                                    
          
          histoname = labelname+"_hltObjPtBarrel";                                    
          title = labelname+"_hltObjPtBarrel;HLT Pt[GeV/c]"+trigPath;                              
          MonitorElement * PtBarrel_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtBarrel_HLT->getTH1();                                                            
          
          histoname = labelname+"_hltObjPtEndcap";
          title = labelname+"_hltObjPtEndcap;HLT Pt[GeV/c]"+trigPath;
          MonitorElement * PtEndcap_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtEndcap_HLT->getTH1();                                                            
          
          histoname = labelname+"_hltObjPtForward";
          title = labelname+"_hltObjPtForward;HLT Pt[GeV/c]"+trigPath;
          MonitorElement * PtForward_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtForward_HLT->getTH1();                                                                                                        
          
          histoname = labelname+"_hltObjPt";
          title = labelname+"_hltObjPt;HLT Pt[GeV/c]"+trigPath;
          MonitorElement * Pt_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt_HLT->getTH1(); 

          histoname = labelname+"_hltObjEta";
          title = labelname+"_hltObjEta;HLT #eta"+trigPath;
          MonitorElement * Eta_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          Eta_HLT->getTH1();                                                               
                                                                      
          histoname = labelname+"_hltObjPhi";
          title = labelname+"_hltObjPhi;HLT #Phi"+trigPath;
          MonitorElement *  Phi_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi_HLT->getTH1();                                                               
                                                                      
          histoname = labelname+"_hltObjEtaPhi";
          title = labelname+"_hltObjEtaPhi;HLT #eta;HLT #Phi"+trigPath;
          MonitorElement * EtaPhi_HLT =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          EtaPhi_HLT->getTH1();                                                                                        
                                      
          histoname = labelname+"_l1HLTPtResolution";
          title = labelname+"_l1HLTPtResolution;(Pt(L1)-Pt(HLT))/Pt(L1)"+trigPath;
          MonitorElement * PtResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PtResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTEtaResolution";
          title = labelname+"_l1HLTEtaResolution;(#eta(L1)-#eta(HLT))/#eta(L1)"+trigPath;
          MonitorElement * EtaResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          EtaResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPhiResolution";
          title = labelname+"_l1HLTPhiResolution;(#Phi(L1)-#Phi(HLT))/#Phi(L1)"+trigPath;
          MonitorElement * PhiResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PhiResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPtCorrelation";
          title = labelname+"_l1HLTPtCorrelation;Pt(L1)[GeV/c];Pt(HLT)[GeV/c]"+trigPath;
          MonitorElement * PtCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          PtCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTEtaCorrelation";
          title = labelname+"_l1HLTEtaCorrelation;#eta(L1);#eta(HLT)"+trigPath;
          MonitorElement * EtaCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Etabins_,EtaMin_,EtaMax_);
          EtaCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPhiCorrelation";
          title = labelname+"_l1HLTPhiCorrelation;#Phi(L1);#Phi(HLT)"+trigPath;
          MonitorElement * PhiCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Phibins_,PhiMin_,PhiMax_);
          PhiCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_hltRecObjPtResolution";
          title = labelname+"_hltRecObjPtResolution;(Pt(HLT)-Pt(Reco))/Pt(HLT)"+trigPath;
          MonitorElement * PtResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PtResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjEtaResolution";
          title = labelname+"_hltRecObjEtaResolution;(#eta(HLT)-#eta(Reco))/#eta(HLT)"+trigPath;
          MonitorElement * EtaResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          EtaResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPhiResolution";
          title = labelname+"_hltRecObjPhiResolution;(#Phi(HLT)-#Phi(Reco))/#Phi(HLT)"+trigPath;
          MonitorElement * PhiResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PhiResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPtCorrelation";
          title = labelname+"_hltRecObjPtCorrelation;Pt(HLT)[GeV/c];Pt(Reco)[GeV/c]"+trigPath;
          MonitorElement * PtCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          PtCorrelation_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjEtaCorrelation";
          title = labelname+"_hltRecObjEtaCorrelation;#eta(HLT);#eta(Reco)"+trigPath;
          MonitorElement * EtaCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Etabins_,EtaMin_,EtaMax_);
          EtaCorrelation_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPhiCorrelation";
          title = labelname+"_hltRecObjPhiCorrelation;#Phi(HLT);#Phi(Reco)"+trigPath;
          MonitorElement * PhiCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Phibins_,PhiMin_,PhiMax_);
          PhiCorrelation_HLTRecObj->getTH1();
          
          v->setHistos(N, 
                       Pt,  
                       PtBarrel, 
                       PtEndcap, 
                       PtForward, 
                       Eta, 
                       Phi, 
                       EtaPhi,
                       N_L1, 
                       Pt_L1,  
                       PtBarrel_L1, 
                       PtEndcap_L1, 
                       PtForward_L1, 
                       Eta_L1, 
                       Phi_L1, 
                       EtaPhi_L1,
                       N_HLT, 
                       Pt_HLT,  
                       PtBarrel_HLT, 
                       PtEndcap_HLT, 
                       PtForward_HLT, 
                       Eta_HLT, 
                       Phi_HLT, 
                       EtaPhi_HLT,
                       PtResolution_L1HLT, 
                       EtaResolution_L1HLT,
                       PhiResolution_L1HLT,
                       PtResolution_HLTRecObj,
                       EtaResolution_HLTRecObj,
                       PhiResolution_HLTRecObj,
                       PtCorrelation_L1HLT,
                       EtaCorrelation_L1HLT,
                       PhiCorrelation_L1HLT,
                       PtCorrelation_HLTRecObj,
                       EtaCorrelation_HLTRecObj,
                       PhiCorrelation_HLTRecObj,
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy, 
                       dummy 
                       );
        }// histos for SingleJet Triggers

        if(v->getObjectType() == trigger::TriggerJet && v->getTriggerType().compare("DiJet_Trigger") == 0){
          
          histoname = labelname+"_RecObjAveragePt";
          title     = labelname+"_RecObjAveragePt;Reco Average Pt[GeV/c]"+trigPath;
          MonitorElement * jetAveragePt = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          jetAveragePt->getTH1();
          
          histoname = labelname+"_RecObjAverageEta";
          title     = labelname+"_RecObjAverageEta;Reco Average #eta"+trigPath;
          MonitorElement * jetAverageEta = dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          jetAverageEta->getTH1();
          
          histoname = labelname+"_RecObjPhiDifference";
          title     = labelname+"_RecObjPhiDifference;Reco #Delta#Phi"+trigPath;
          MonitorElement * jetPhiDifference = dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          jetPhiDifference->getTH1();
          
          histoname = labelname+"_hltObjAveragePt";
          title     = labelname+"_hltObjAveragePt;HLT Average Pt[GeV/c]"+trigPath;
          MonitorElement * hltAveragePt = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          hltAveragePt->getTH1();
          
          histoname = labelname+"_hltObjAverageEta";
          title     = labelname+"_hltObjAverageEta;HLT Average #eta"+trigPath;
          MonitorElement * hltAverageEta = dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          hltAverageEta->getTH1();
          
          histoname = labelname+"_hltObjPhiDifference";
          title     = labelname+"_hltObjPhiDifference;Reco #Delta#Phi"+trigPath;
          MonitorElement * hltPhiDifference = dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          hltPhiDifference->getTH1();

          v->setHistos(dummy, 
                       dummy,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       jetAveragePt, 
                       jetAverageEta, 
                       jetPhiDifference, 
                       hltAveragePt, 
                       hltAverageEta, 
                       hltPhiDifference,
                       dummy, 
                       dummy, 
                       dummy 
                       );  
        }// histos for DiJet Triggers

        if(v->getObjectType() == trigger::TriggerMET || (v->getObjectType() == trigger::TriggerTET)){ 
          
          histoname = labelname+"_recObjPt";
          title = labelname+"_recObjPt;Reco Pt[GeV/c]"+trigPath;
          MonitorElement * Pt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt->getTH1();
           
          histoname = labelname+"_recObjPhi";
          title = labelname+"_recObjPhi;Reco #Phi"+trigPath;
          MonitorElement * Phi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi->getTH1();
          
          histoname = labelname+"_l1ObjPt";
          title = labelname+"_l1ObjPt;L1 Pt[GeV/c]"+trigPath;
          MonitorElement * Pt_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt_L1->getTH1();                                                            
                                                                  
          histoname = labelname+"_l1ObjPhi";
          title = labelname+"_l1ObjPhi;L1 #Phi"+trigPath;
          MonitorElement * Phi_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi_L1->getTH1();                                                               
                                                                      
          histoname = labelname+"_hltObjPt";
          title = labelname+"_hltObjPt;HLT Pt[GeV/c]"+trigPath;
          MonitorElement *  Pt_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt_HLT->getTH1();                                                            
          
          histoname = labelname+"_hltObjPhi";
          title = labelname+"_hltObjPhi;HLT #Phi"+trigPath;
          MonitorElement * Phi_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi_HLT->getTH1();                                                               
          
          histoname = labelname+"_l1HLTPtResolution";
          title = labelname+"_l1HLTPtResolution;(Pt(L1)-Pt(HLT))/Pt(L1)"+trigPath;
          MonitorElement * PtResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PtResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPhiResolution";
          title = labelname+"_l1HLTPhiResolution;(#Phi(L1)-#Phi(HLT))/#Phi(L1)"+trigPath;
          MonitorElement * PhiResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PhiResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPtCorrelation";
          title = labelname+"_l1HLTPtCorrelation;Pt(L1)[GeV/c];Pt(HLT)[GeV/c]"+trigPath;
          MonitorElement * PtCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          PtCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPhiCorrelation";
          title = labelname+"_l1HLTPhiCorrelation;#Phi(L1);#Phi(HLT)"+trigPath;
          MonitorElement * PhiCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Phibins_,PhiMin_,PhiMax_);
          PhiCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_hltRecObjPtResolution";
          title = labelname+"_hltRecObjPtResolution;(Pt(HLT)-Pt(Reco))/Pt(HLT)"+trigPath;
          MonitorElement * PtResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PtResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPhiResolution";
          title = labelname+"_hltRecObjPhiResolution;(#Phi(HLT)-#Phi(Reco))/#Phi(HLT)"+trigPath;
          MonitorElement * PhiResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PhiResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPtCorrelation";
          title = labelname+"_hltRecObjPtCorrelation;Pt(HLT)[GeV/c];Pt(Reco)[GeV/c]"+trigPath;
          MonitorElement * PtCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          PtCorrelation_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPhiCorrelation";
          title = labelname+"_hltRecObjPhiCorrelation;#Phi(HLT);#Phi(Reco)"+trigPath;
          MonitorElement * PhiCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Phibins_,PhiMin_,PhiMax_);
          PhiCorrelation_HLTRecObj->getTH1();
          
          v->setHistos(dummy, 
                       Pt,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       Phi, 
                       dummy,
                       dummy, 
                       Pt_L1,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       Phi_L1, 
                       dummy,
                       dummy, 
                       Pt_HLT,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       Phi_HLT, 
                       dummy,
                       PtResolution_L1HLT, 
                       dummy,
                       PhiResolution_L1HLT,
                       PtResolution_HLTRecObj,
                       dummy,
                       PhiResolution_HLTRecObj,
                       PtCorrelation_L1HLT,
                       dummy,
                       PhiCorrelation_L1HLT,
                       PtCorrelation_HLTRecObj,
                       dummy,
                       PhiCorrelation_HLTRecObj,
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy, 
                       dummy 
                       );
        }// histos for MET Triggers 
      }
    }
    
    if(plotAllwrtMu_){
      int Nbins_       = 10;
      int Nmin_        = -0.5;
      int Nmax_        = 9.5;
      //
      int Ptbins_      = 100;
      if(runStandalone_) Ptbins_ = 1000;
      double PtMin_    = 0.;
      double PtMax_    = 1000.;
      //
      int Etabins_     = 50;
      double EtaMin_   = -5.;
      double EtaMax_   =  5.;
      //
      int Phibins_     = 35;
      double PhiMin_   = -3.5;
      double PhiMax_   = 3.5;
      //
      int Resbins_     = 30;
      double ResMin_   = -1.5;
      double ResMax_   = 1.5;
      
      // Now define histos wrt Muon trigger
      std::string dirName = dirname_ + "/MonitorAllTriggersWrtMuonTrigger/";
      for(PathInfoCollection::iterator v = hltPathsAllWrtMu_.begin(); v!= hltPathsAllWrtMu_.end(); ++v ){       
        //
        std::string trgPathName    = HLTConfigProvider::removeVersion(v->getPath());
        std::string subdirName = dirName + trgPathName;
        std::string trigPath = "("+trgPathName+")";
        dbe->setCurrentFolder(subdirName); 
        //
        MonitorElement * dummy;
        dummy =  dbe->bookFloat("dummy");            
        //
        std::string labelname("ME");
        std::string histoname(labelname+"");
        std::string title(labelname+"");
        //
        if(v->getObjectType() == trigger::TriggerJet && v->getTriggerType().compare("SingleJet_Trigger") == 0){  
          
          histoname = labelname+"_recObjN";
          title     = labelname+"_recObjN;Reco multiplicity()"+trigPath;
          MonitorElement * N = dbe->book1D(histoname.c_str(),title.c_str(),Nbins_,Nmin_,Nmax_);
          N->getTH1();
          
          histoname = labelname+"_recObjPt";
          title = labelname+"_recObjPt; Reco Pt[GeV/c]"+trigPath;
          MonitorElement * Pt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt->getTH1();
          
          histoname = labelname+"_recObjPtBarrel";
          title = labelname+"_recObjPtBarrel;Reco Pt[GeV/c]"+trigPath;
          MonitorElement * PtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtBarrel->getTH1();
          
          histoname = labelname+"_recObjPtEndcap";
          title = labelname+"_recObjPtEndcap;Reco Pt[GeV/c]"+trigPath;
          MonitorElement * PtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtEndcap->getTH1();
          
          histoname = labelname+"_recObjPtForward";
          title = labelname+"_recObjPtForward;Reco Pt[GeV/c]"+trigPath;
          MonitorElement * PtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtForward->getTH1();
          
          histoname = labelname+"_recObjEta";
          title = labelname+"_recObjEta;Reco #eta"+trigPath;
          MonitorElement * Eta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          Eta->getTH1();
          
          histoname = labelname+"_recObjPhi";
          title = labelname+"_recObjPhi;Reco #Phi"+trigPath;
          MonitorElement * Phi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi->getTH1();
          
          histoname = labelname+"_recObjEtaPhi";
          title = labelname+"_recObjEtaPhi;Reco #eta;Reco #Phi"+trigPath;
          MonitorElement * EtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          EtaPhi->getTH1();
          
          histoname = labelname+"_l1ObjN";         
          title     = labelname+"_l1ObjN;L1 multiplicity"+trigPath;
          MonitorElement * N_L1 = dbe->book1D(histoname.c_str(),title.c_str(),Nbins_,Nmin_,Nmax_);
          N_L1->getTH1();                                              
                                                     
          histoname = labelname+"_l1ObjPt";
          title = labelname+"_l1ObjPt;L1 Pt[GeV/c]"+trigPath;
          MonitorElement * Pt_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt_L1->getTH1();                                                            
          
          histoname = labelname+"_l1ObjPtBarrel";                                 
          title = labelname+"_l1ObjPtBarrel;L1 Pt[GeV/c]"+trigPath;                              
          MonitorElement * PtBarrel_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtBarrel_L1->getTH1();                                                            
          
          histoname = labelname+"_l1ObjPtEndcap";
          title = labelname+"_l1ObjPtEndcap;L1 Pt[GeV/c]"+trigPath;
          MonitorElement * PtEndcap_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtEndcap_L1->getTH1();                                                            
          
          histoname = labelname+"_l1ObjPtForward";
          title = labelname+"_l1ObjPtForward;L1 Pt[GeV/c]"+trigPath;
          MonitorElement * PtForward_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtForward_L1->getTH1();                                                            
          
          histoname = labelname+"_l1ObjEta";
          title = labelname+"_l1ObjEta;L1 #eta"+trigPath;
          MonitorElement * Eta_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          Eta_L1->getTH1();                                                               
          
          histoname = labelname+"_l1ObjPhi";
          title = labelname+"_l1ObjPhi;L1 #Phi"+trigPath;
          MonitorElement * Phi_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi_L1->getTH1();                                                               
          
          histoname = labelname+"_l1ObjEtaPhi";
          title = labelname+"_l1ObjEtaPhi;L1 #eta;L1 #Phi"+trigPath;
          MonitorElement * EtaPhi_L1 =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          EtaPhi_L1->getTH1();                                                                                        
          
          histoname = labelname+"_hltObjN";         
          title     = labelname+"_hltObjN;HLT multiplicity"+trigPath;
          MonitorElement * N_HLT = dbe->book1D(histoname.c_str(),title.c_str(),Nbins_,Nmin_,Nmax_);
          N_HLT->getTH1();                                              
          
          histoname = labelname+"_hltObjPt";
          title = labelname+"_hltObjPt;HLT Pt[GeV/c]"+trigPath;
          MonitorElement * Pt_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt_HLT->getTH1();                                                            
          
          histoname = labelname+"_hltObjPtBarrel";                                    
          title = labelname+"_hltObjPtBarrel;HLT Pt[GeV/c]"+trigPath;                              
          MonitorElement * PtBarrel_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtBarrel_HLT->getTH1();                                                            
          
          histoname = labelname+"_hltObjPtEndcap";
          title = labelname+"_hltObjPtEndcap;HLT Pt[GeV/c]"+trigPath;
          MonitorElement * PtEndcap_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtEndcap_HLT->getTH1();                                                            
          
          histoname = labelname+"_hltObjPtForward";
          title = labelname+"_hltObjPtForward;HLT Pt[GeV/c]"+trigPath;
          MonitorElement * PtForward_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          PtForward_HLT->getTH1();                                                            
          
          histoname = labelname+"_hltObjEta";
          title = labelname+"_hltObjEta;HLT #eta"+trigPath;
          MonitorElement * Eta_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          Eta_HLT->getTH1();                                                               
          
          histoname = labelname+"_hltObjPhi";
          title = labelname+"_hltObjPhi;HLT #Phi"+trigPath;
          MonitorElement * Phi_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi_HLT->getTH1();                                                               
          
          histoname = labelname+"_hltObjEtaPhi";
          title = labelname+"_hltObjEtaPhi;HLT #eta;HLT #Phi"+trigPath;
          MonitorElement * EtaPhi_HLT =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          EtaPhi_HLT->getTH1();                                                                                        
          
          histoname = labelname+"_l1HLTPtResolution";
          title = labelname+"_l1HLTPtResolution;(Pt(L1)-Pt(HLT))/Pt(L1)"+trigPath;
          MonitorElement * PtResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PtResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTEtaResolution";
          title = labelname+"_l1HLTEtaResolution;(#eta(L1)-#eta(HLT))/#eta(L1)"+trigPath;
          MonitorElement * EtaResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          EtaResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPhiResolution";
          title = labelname+"_l1HLTPhiResolution;(#Phi(L1)-#Phi(HLT))/#Phi(L1)"+trigPath;
          MonitorElement * PhiResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PhiResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPtCorrelation";
          title = labelname+"_l1HLTPtCorrelation;Pt(L1)[GeV/c];Pt(HLT)[GeV/c]"+trigPath;
          MonitorElement * PtCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          PtCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTEtaCorrelation";
          title = labelname+"_l1HLTEtaCorrelation;#eta(L1);#eta(HLT)"+trigPath;
          MonitorElement * EtaCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Etabins_,EtaMin_,EtaMax_);
          EtaCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPhiCorrelation";
          title = labelname+"_l1HLTPhiCorrelation;#Phi(L1);#Phi(HLT)"+trigPath;
          MonitorElement * PhiCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Phibins_,PhiMin_,PhiMax_);
          PhiCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_hltRecObjPtResolution";
          title = labelname+"_hltRecObjPtResolution;(Pt(HLT)-Pt(Reco))/Pt(HLT)"+trigPath;
          MonitorElement * PtResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PtResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjEtaResolution";
          title = labelname+"_hltRecObjEtaResolution;(#eta(HLT)-#eta(Reco))/#eta(HLT)"+trigPath;
          MonitorElement * EtaResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          EtaResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPhiResolution";
          title = labelname+"_hltRecObjPhiResolution;(#Phi(HLT)-#Phi(Reco))/#Phi(HLT)"+trigPath;
          MonitorElement * PhiResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PhiResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPtCorrelation";
          title = labelname+"_hltRecObjPtCorrelation;Pt(HLT)[GeV/c];Pt(Reco)[GeV/c]"+trigPath;
          MonitorElement * PtCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          PtCorrelation_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjEtaCorrelation";
          title = labelname+"_hltRecObjEtaCorrelation;#eta(HLT);#eta(Reco)"+trigPath;
          MonitorElement * EtaCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Etabins_,EtaMin_,EtaMax_);
          EtaCorrelation_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPhiCorrelation";
          title = labelname+"_hltRecObjPhiCorrelation;#Phi(HLT);#Phi(Reco)"+trigPath;
          MonitorElement * PhiCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Phibins_,PhiMin_,PhiMax_);
          PhiCorrelation_HLTRecObj->getTH1();

          v->setHistos(N, 
                       Pt,  
                       PtBarrel, 
                       PtEndcap, 
                       PtForward, 
                       Eta, 
                       Phi, 
                       EtaPhi,
                       N_L1, 
                       Pt_L1,  
                       PtBarrel_L1, 
                       PtEndcap_L1, 
                       PtForward_L1, 
                       Eta_L1, 
                       Phi_L1, 
                       EtaPhi_L1,
                       N_HLT, 
                       Pt_HLT,  
                       PtBarrel_HLT, 
                       PtEndcap_HLT, 
                       PtForward_HLT, 
                       Eta_HLT, 
                       Phi_HLT, 
                       EtaPhi_HLT,
                       PtResolution_L1HLT, 
                       EtaResolution_L1HLT,
                       PhiResolution_L1HLT,
                       PtResolution_HLTRecObj,
                       EtaResolution_HLTRecObj,
                       PhiResolution_HLTRecObj,
                       PtCorrelation_L1HLT,
                       EtaCorrelation_L1HLT,
                       PhiCorrelation_L1HLT,
                       PtCorrelation_HLTRecObj,
                       EtaCorrelation_HLTRecObj,
                       PhiCorrelation_HLTRecObj,
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy, 
                       dummy 
                       );
        }// histos for SingleJet Triggers
          
        if(v->getObjectType() == trigger::TriggerJet && v->getTriggerType().compare("DiJet_Trigger") == 0){
          
          histoname = labelname+"_RecObjAveragePt";
          title     = labelname+"_RecObjAveragePt;Reco Average Pt[GeV/c]"+trigPath;
          MonitorElement * jetAveragePt = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          jetAveragePt->getTH1();
          
          histoname = labelname+"_RecObjAverageEta";
          title     = labelname+"_RecObjAverageEta;Reco Average #eta"+trigPath;
          MonitorElement *  jetAverageEta = dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          jetAverageEta->getTH1();
          
          histoname = labelname+"_RecObjPhiDifference";
          title     = labelname+"_RecObjPhiDifference;Reco #Delta#Phi"+trigPath;
          MonitorElement * jetPhiDifference = dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          jetPhiDifference->getTH1();
          
          histoname = labelname+"_hltObjAveragePt";
          title     = labelname+"_hltObjAveragePt;HLT Average Pt[GeV/c]"+trigPath;
          MonitorElement * hltAveragePt = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          hltAveragePt->getTH1();
          
          histoname = labelname+"_hltObjAverageEta";
          title     = labelname+"_hltObjAverageEta;HLT Average #eta"+trigPath;
          MonitorElement * hltAverageEta = dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          hltAverageEta->getTH1();
          
          histoname = labelname+"_hltObjPhiDifference";
          title     = labelname+"_hltObjPhiDifference;Reco #Delta#Phi"+trigPath;
          MonitorElement * hltPhiDifference = dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          hltPhiDifference->getTH1();
        
          v->setHistos(dummy, 
                       dummy,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       dummy,
                       jetAveragePt, 
                       jetAverageEta, 
                       jetPhiDifference, 
                       hltAveragePt, 
                       hltAverageEta, 
                       hltPhiDifference,
                       dummy, 
                       dummy, 
                       dummy 
                       );  
        }// histos for DiJet Triggers
        
        if(v->getObjectType() == trigger::TriggerMET || (v->getObjectType() == trigger::TriggerTET)){   
          
          histoname = labelname+"_recObjPt";
          title = labelname+"_recObjPt;Reco Pt[GeV/c]"+trigPath;
          MonitorElement * Pt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt->getTH1();
          
          histoname = labelname+"_recObjPhi";
          title = labelname+"_recObjPhi;Reco #Phi"+trigPath;
          MonitorElement * Phi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi->getTH1();
          
          histoname = labelname+"_l1ObjPt";
          title = labelname+"_l1ObjPt;L1 Pt[GeV/c]"+trigPath;
          MonitorElement * Pt_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt_L1->getTH1();                                                            
                                                                   
          histoname = labelname+"_l1ObjPhi";
          title = labelname+"_l1ObjPhi;L1 #Phi"+trigPath;
          MonitorElement * Phi_L1 =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi_L1->getTH1();                                                               
                                                                      
          histoname = labelname+"_hltObjPt";
          title = labelname+"_hltObjPt;HLT Pt[GeV/c]"+trigPath;
          MonitorElement * Pt_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt_HLT->getTH1();                                                            
          
          histoname = labelname+"_hltObjPhi";
          title = labelname+"_hltObjPhi;HLT #Phi"+trigPath;
          MonitorElement * Phi_HLT =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi_HLT->getTH1();                                                            
          
          histoname = labelname+"_l1HLTPtResolution";
          title = labelname+"_l1HLTPtResolution;(Pt(L1)-Pt(HLT))/Pt(L1)"+trigPath;
          MonitorElement * PtResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PtResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPhiResolution";
          title = labelname+"_l1HLTPhiResolution;(#Phi(L1)-#Phi(HLT))/#Phi(L1)"+trigPath;
          MonitorElement * PhiResolution_L1HLT = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PhiResolution_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPtCorrelation";
          title = labelname+"_l1HLTPtCorrelation;Pt(L1)[GeV/c];Pt(HLT)[GeV/c]"+trigPath;
          MonitorElement * PtCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          PtCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_l1HLTPhiCorrelation";
          title = labelname+"_l1HLTPhiCorrelation;#Phi(L1);#Phi(HLT)"+trigPath;
          MonitorElement * PhiCorrelation_L1HLT = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Phibins_,PhiMin_,PhiMax_);
          PhiCorrelation_L1HLT->getTH1();
          
          histoname = labelname+"_hltRecObjPtResolution";
          title = labelname+"_hltRecObjPtResolution;(Pt(HLT)-Pt(Reco))/Pt(HLT)"+trigPath;
          MonitorElement * PtResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PtResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPhiResolution";
          title = labelname+"_hltRecObjPhiResolution;(#Phi(HLT)-#Phi(Reco))/#Phi(HLT)"+trigPath;
          MonitorElement * PhiResolution_HLTRecObj = dbe->book1D(histoname.c_str(),title.c_str(),Resbins_,ResMin_,ResMax_);
          PhiResolution_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPtCorrelation";
          title = labelname+"_hltRecObjPtCorrelation;Pt(HLT)[GeV/c];Pt(Reco)[GeV/c]"+trigPath;
          MonitorElement * PtCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          PtCorrelation_HLTRecObj->getTH1();
          
          histoname = labelname+"_hltRecObjPhiCorrelation";
          title = labelname+"_hltRecObjPhiCorrelation;#Phi(HLT);#Phi(Reco)"+trigPath;
          MonitorElement * PhiCorrelation_HLTRecObj = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Phibins_,PhiMin_,PhiMax_);
          PhiCorrelation_HLTRecObj->getTH1(); 

          v->setHistos(dummy, 
                       Pt,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       Phi, 
                       dummy,
                       dummy, 
                       Pt_L1,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       Phi_L1, 
                       dummy,
                       dummy, 
                       Pt_HLT,  
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       Phi_HLT, 
                       dummy,
                       PtResolution_L1HLT, 
                       dummy,
                       PhiResolution_L1HLT,
                       PtResolution_HLTRecObj,
                       dummy,
                       PhiResolution_HLTRecObj,
                       PtCorrelation_L1HLT,
                       dummy,
                       PhiCorrelation_L1HLT,
                       PtCorrelation_HLTRecObj,
                       dummy,
                       PhiCorrelation_HLTRecObj,
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy, 
                       dummy,
                       dummy, 
                       dummy, 
                       dummy 
                       );
        }// histos for MET Triggers
      }
    }
    
    //-------Now Efficiency histos--------
    if(plotEff_){ 
      int Ptbins_      = 100;
      if(runStandalone_) Ptbins_ = 1000;
      double PtMin_    = 0.;
      double PtMax_    = 1000.;
      //
      int Etabins_     = 50;
      double EtaMin_   = -5.;
      double EtaMax_   = 5.;
      //
      int Phibins_     = 35;
      double PhiMin_   = -3.5;
      double PhiMax_   = 3.5;
      // Now define histos wrt lower threshold trigger
      std::string dirName1 = dirname_ + "/RelativeTriggerEff/";
      for(PathInfoCollection::iterator v = hltPathsEff_.begin(); v!= hltPathsEff_.end(); ++v ){
        //
        std::string trgPathName    = HLTConfigProvider::removeVersion(v->getPath());
        std::string trgPathNameD   = HLTConfigProvider::removeVersion(v->getDenomPath());
        //
        std::string labelname("ME") ;
        std::string subdirName = dirName1 + trgPathName + "_wrt_" + trgPathNameD;
        dbe->setCurrentFolder(subdirName);
        std::string histoname(labelname+"");
        std::string title(labelname+"");

        MonitorElement *dummy;
        dummy =  dbe->bookFloat("dummy");   
    
        if((v->getObjectType() == trigger::TriggerJet) && (v->getTriggerType().compare("SingleJet_Trigger") == 0)){   
          
          histoname = labelname+"_NumeratorPt";
          title     = labelname+"NumeratorPt;Calo Pt[GeV/c]";
          MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPt->getTH1();
          
          histoname = labelname+"_NumeratorPtBarrel";
          title     = labelname+"NumeratorPtBarrel;Calo Pt[GeV/c] ";
          MonitorElement * NumeratorPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPtBarrel->getTH1();
          
          histoname = labelname+"_NumeratorPtEndcap";
          title     = labelname+"NumeratorPtEndcap;Calo Pt[GeV/c]";
          MonitorElement * NumeratorPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPtEndcap->getTH1();
          
          histoname = labelname+"_NumeratorPtForward";
          title     = labelname+"NumeratorPtForward;Calo Pt[GeV/c]";
          MonitorElement * NumeratorPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPtForward->getTH1();
          
          histoname = labelname+"_NumeratorEta";
          title     = labelname+"NumeratorEta;Calo #eta ";
          MonitorElement * NumeratorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorEta->getTH1();
          
          histoname = labelname+"_NumeratorPhi";
          title     = labelname+"NumeratorPhi;Calo #Phi";
          MonitorElement * NumeratorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPhi->getTH1();
          
          histoname = labelname+"_NumeratorEtaPhi";
          title     = labelname+"NumeratorEtaPhi;Calo #eta;Calo #Phi";
          MonitorElement * NumeratorEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          NumeratorEtaPhi->getTH1();
          
          histoname = labelname+"_NumeratorEtaBarrel";
          title     = labelname+"NumeratorEtaBarrel;Calo #eta ";
          MonitorElement * NumeratorEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorEtaBarrel->getTH1();
          
          histoname = labelname+"_NumeratorPhiBarrel";
          title     = labelname+"NumeratorPhiBarrel;Calo #Phi";
          MonitorElement * NumeratorPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPhiBarrel->getTH1();
          
          histoname = labelname+"_NumeratorEtaEndcap";
          title     = labelname+"NumeratorEtaEndcap;Calo #eta ";
          MonitorElement * NumeratorEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorEtaEndcap->getTH1();
          
          histoname = labelname+"_NumeratorPhiEndcap";
          title     = labelname+"NumeratorPhiEndcap;Calo #Phi";
          MonitorElement * NumeratorPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPhiEndcap->getTH1();
          
          histoname = labelname+"_NumeratorEtaForward";
          title     = labelname+"NumeratorEtaForward;Calo #eta ";
          MonitorElement * NumeratorEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorEtaForward->getTH1();
          
          histoname = labelname+"_NumeratorPhiForward";
          title     = labelname+"NumeratorPhiForward;Calo #Phi";
          MonitorElement * NumeratorPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPhiForward->getTH1();
          
          histoname = labelname+"_NumeratorEta_LowpTcut";
          title     = labelname+"NumeratorEta_LowpTcut;Calo #eta ";
          MonitorElement * NumeratorEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorEta_LowpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPhi_LowpTcut";
          title     = labelname+"NumeratorPhi_LowpTcut;Calo #Phi";
          MonitorElement * NumeratorPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPhi_LowpTcut->getTH1();
          
          histoname = labelname+"_NumeratorEtaPhi_LowpTcut";
          title     = labelname+"NumeratorEtaPhi_LowpTcut;Calo #eta;Calo #Phi";
          MonitorElement * NumeratorEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          NumeratorEtaPhi_LowpTcut->getTH1();
          
          histoname = labelname+"_NumeratorEta_MedpTcut";
          title     = labelname+"NumeratorEta_MedpTcut;Calo #eta ";
          MonitorElement * NumeratorEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorEta_MedpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPhi_MedpTcut";
          title     = labelname+"NumeratorPhi_MedpTcut;Calo #Phi";
          MonitorElement * NumeratorPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPhi_MedpTcut->getTH1();
          
          histoname = labelname+"_NumeratorEtaPhi_MedpTcut";
          title     = labelname+"NumeratorEtaPhi_MedpTcut;Calo #eta;Calo #Phi";
          MonitorElement * NumeratorEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          NumeratorEtaPhi_MedpTcut->getTH1();
          
          histoname = labelname+"_NumeratorEta_HighpTcut";
          title     = labelname+"NumeratorEta_HighpTcut;Calo #eta ";
          MonitorElement * NumeratorEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorEta_HighpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPhi_HighpTcut";
          title     = labelname+"NumeratorPhi_HighpTcut;Calo #Phi";
          MonitorElement * NumeratorPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPhi_HighpTcut->getTH1();
          
          histoname = labelname+"_NumeratorEtaPhi_HighpTcut";
          title     = labelname+"NumeratorEtaPhi_HighpTcut;Calo #eta;Calo #Phi";
          MonitorElement * NumeratorEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          NumeratorEtaPhi_HighpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPt";
          title     = labelname+"DenominatorPt;Calo Pt[GeV/c]";
          MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPt->getTH1();
          
          histoname = labelname+"_DenominatorPtBarrel";
          title     = labelname+"DenominatorPtBarrel;Calo Pt[GeV/c]";
          MonitorElement * DenominatorPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPtBarrel->getTH1();
          
          histoname = labelname+"_DenominatorPtEndcap";
          title     = labelname+"DenominatorPtEndcap;Calo Pt[GeV/c]";
          MonitorElement * DenominatorPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPtEndcap->getTH1();
          
          histoname = labelname+"_DenominatorPtForward";
          title     = labelname+"DenominatorPtForward;Calo Pt[GeV/c] ";
          MonitorElement * DenominatorPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPtForward->getTH1();
          
          histoname = labelname+"_DenominatorEta";
          title     = labelname+"DenominatorEta;Calo #eta ";
          MonitorElement * DenominatorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorEta->getTH1();
          
          histoname = labelname+"_DenominatorPhi";
          title     = labelname+"DenominatorPhi;Calo #Phi";
          MonitorElement * DenominatorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPhi->getTH1();
          
          histoname = labelname+"_DenominatorEtaPhi";
          title     = labelname+"DenominatorEtaPhi;Calo #eta; Calo #Phi";
          MonitorElement * DenominatorEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          DenominatorEtaPhi->getTH1();
          
          histoname = labelname+"_DenominatorEtaBarrel";
          title     = labelname+"DenominatorEtaBarrel;Calo #eta ";
          MonitorElement * DenominatorEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorEtaBarrel->getTH1();
          
          histoname = labelname+"_DenominatorPhiBarrel";
          title     = labelname+"DenominatorPhiBarrel;Calo #Phi";
          MonitorElement * DenominatorPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPhiBarrel->getTH1();
          
          histoname = labelname+"_DenominatorEtaEndcap";
          title     = labelname+"DenominatorEtaEndcap;Calo #eta ";
          MonitorElement * DenominatorEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorEtaEndcap->getTH1();
          
          histoname = labelname+"_DenominatorPhiEndcap";
          title     = labelname+"DenominatorPhiEndcap;Calo #Phi";
          MonitorElement * DenominatorPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPhiEndcap->getTH1();
          
          histoname = labelname+"_DenominatorEtaForward";
          title     = labelname+"DenominatorEtaForward;Calo #eta ";
          MonitorElement * DenominatorEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorEtaForward->getTH1();
          
          histoname = labelname+"_DenominatorPhiForward";
          title     = labelname+"DenominatorPhiForward;Calo #Phi";
          MonitorElement * DenominatorPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPhiForward->getTH1();
          
          histoname = labelname+"_DenominatorEta_LowpTcut";
          title     = labelname+"DenominatorEta_LowpTcut;Calo #eta ";
          MonitorElement * DenominatorEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorEta_LowpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPhi_LowpTcut";
          title     = labelname+"DenominatorPhi_LowpTcut;Calo #Phi";
          MonitorElement * DenominatorPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPhi_LowpTcut->getTH1();
          
          histoname = labelname+"_DenominatorEtaPhi_LowpTcut";
          title     = labelname+"DenominatorEtaPhi_LowpTcut;Calo #eta;Calo #Phi";
          MonitorElement * DenominatorEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          DenominatorEtaPhi_LowpTcut->getTH1();
          
          histoname = labelname+"_DenominatorEta_MedpTcut";
          title     = labelname+"DenominatorEta_MedpTcut;Calo #eta ";
          MonitorElement * DenominatorEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorEta_MedpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPhi_MedpTcut";
          title     = labelname+"DenominatorPhi_MedpTcut;Calo #Phi";
          MonitorElement * DenominatorPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPhi_MedpTcut->getTH1();
          
          histoname = labelname+"_DenominatorEtaPhi_MedpTcut";
          title     = labelname+"DenominatorEtaPhi_MedpTcut;Calo #eta;Calo #Phi";
          MonitorElement * DenominatorEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          DenominatorEtaPhi_MedpTcut->getTH1();
          
          histoname = labelname+"_DenominatorEta_HighpTcut";
          title     = labelname+"DenominatorEta_HighpTcut;Calo #eta ";
          MonitorElement * DenominatorEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorEta_HighpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPhi_HighpTcut";
          title     = labelname+"DenominatorPhi_HighpTcut;Calo #Phi";
          MonitorElement * DenominatorPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPhi_HighpTcut->getTH1();
          
          histoname = labelname+"_DenominatorEtaPhi_HighpTcut";
          title     = labelname+"DenominatorEtaPhi_HighpTcut;Calo #eta;Calo #Phi";
          MonitorElement * DenominatorEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          DenominatorEtaPhi_HighpTcut->getTH1();
          
          histoname = labelname+"_DeltaR";
          title     = labelname+"DeltaR;";
          MonitorElement * DeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
          DeltaR->getTH1();
          
          histoname = labelname+"_DeltaPhi";
          title     = labelname+"DeltaPhi;";
          MonitorElement * DeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.0,5.0);
          DeltaPhi->getTH1();
          
          histoname = labelname+"_NumeratorPFMHT";
          title     = labelname+"NumeratorPFMHT;PFMHT[GeV/c]";
          MonitorElement * NumeratorPFMHT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPFMHT->getTH1();
          
          histoname = labelname+"_NumeratorPFPt";
          title     = labelname+"NumeratorPFPt;PF Pt[GeV/c]";
          MonitorElement * NumeratorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPFPt->getTH1();
          
          histoname = labelname+"_NumeratorPFPtBarrel";
          title     = labelname+"NumeratorPFPtBarrel;PF Pt[GeV/c] ";
          MonitorElement * NumeratorPFPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPFPtBarrel->getTH1();
          
          histoname = labelname+"_NumeratorPFPtEndcap";
          title     = labelname+"NumeratorPFPtEndcap;PF Pt[GeV/c]";
          MonitorElement * NumeratorPFPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPFPtEndcap->getTH1();
          
          histoname = labelname+"_NumeratorPFPtForward";
          title     = labelname+"NumeratorPFPtForward;PF Pt[GeV/c]";
          MonitorElement * NumeratorPFPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPFPtForward->getTH1();
          
          histoname = labelname+"_NumeratorPFEta";
          title     = labelname+"NumeratorPFEta;PF #eta ";
          MonitorElement * NumeratorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorPFEta->getTH1();
          
          histoname = labelname+"_NumeratorPFPhi";
          title     = labelname+"NumeratorPFPhi;Calo #Phi";
          MonitorElement * NumeratorPFPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPFPhi->getTH1();
          
          histoname = labelname+"_NumeratorPFEtaPhi";
          title     = labelname+"NumeratorPFEtaPhi;PF #eta;Calo #Phi";
          MonitorElement * NumeratorPFEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          NumeratorPFEtaPhi->getTH1();
          
          histoname = labelname+"_NumeratorPFEtaBarrel";
          title     = labelname+"NumeratorPFEtaBarrel;PF #eta ";
          MonitorElement * NumeratorPFEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorPFEtaBarrel->getTH1();
          
          histoname = labelname+"_NumeratorPFPhiBarrel";
          title     = labelname+"NumeratorPFPhiBarrel;PF #Phi";
          MonitorElement * NumeratorPFPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPFPhiBarrel->getTH1();
          
          histoname = labelname+"_NumeratorPFEtaEndcap";
          title     = labelname+"NumeratorPFEtaEndcap;Calo #eta ";
          MonitorElement * NumeratorPFEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorPFEtaEndcap->getTH1();
          
          histoname = labelname+"_NumeratorPFPhiEndcap";
          title     = labelname+"NumeratorPFPhiEndcap;PF #Phi";
          MonitorElement * NumeratorPFPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPFPhiEndcap->getTH1();
          
          histoname = labelname+"_NumeratorPFEtaForward";
          title     = labelname+"NumeratorPFEtaForward;Calo #eta ";
          MonitorElement * NumeratorPFEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorPFEtaForward->getTH1();
          
          histoname = labelname+"_NumeratorPFPhiForward";
          title     = labelname+"NumeratorPFPhiForward;PF #Phi";
          MonitorElement * NumeratorPFPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPFPhiForward->getTH1();
          
          histoname = labelname+"_NumeratorPFEta_LowpTcut";
          title     = labelname+"NumeratorPFEta_LowpTcut;PF #eta ";
          MonitorElement * NumeratorPFEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorPFEta_LowpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPFPhi_LowpTcut";
          title     = labelname+"NumeratorPFPhi_LowpTcut;PF #Phi";
          MonitorElement * NumeratorPFPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPFPhi_LowpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPFEtaPhi_LowpTcut";
          title     = labelname+"NumeratorPFEtaPhi_LowpTcut;PF #eta;Calo #Phi";
          MonitorElement * NumeratorPFEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          NumeratorPFEtaPhi_LowpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPFEta_MedpTcut";
          title     = labelname+"NumeratorPFEta_MedpTcut;PF #eta ";
          MonitorElement * NumeratorPFEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorPFEta_MedpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPFPhi_MedpTcut";
          title     = labelname+"NumeratorPFPhi_MedpTcut;PF #Phi";
          MonitorElement * NumeratorPFPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPFPhi_MedpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPFEtaPhi_MedpTcut";
          title     = labelname+"NumeratorPFEtaPhi_MedpTcut;PF #eta;PF #Phi";
          MonitorElement * NumeratorPFEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          NumeratorPFEtaPhi_MedpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPFEta_HighpTcut";
          title     = labelname+"NumeratorPFEta_HighpTcut;Calo #eta ";
          MonitorElement * NumeratorPFEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorPFEta_HighpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPFPhi_HighpTcut";
          title     = labelname+"NumeratorPFPhi_HighpTcut;PF #Phi";
          MonitorElement * NumeratorPFPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPFPhi_HighpTcut->getTH1();
          
          histoname = labelname+"_NumeratorPFEtaPhi_HighpTcut";
          title     = labelname+"NumeratorPFEtaPhi_HighpTcut;PF #eta;PF #Phi";
          MonitorElement * NumeratorPFEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          NumeratorPFEtaPhi_HighpTcut->getTH1();
                  
          histoname = labelname+"_DenominatorPFMHT";
          title     = labelname+"DenominatorPFMHT;PF Pt[GeV/c]";
          MonitorElement * DenominatorPFMHT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPFMHT->getTH1();
          
          histoname = labelname+"_DenominatorPFPt";
          title     = labelname+"DenominatorPFPt;PF Pt[GeV/c]";
          MonitorElement * DenominatorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPFPt->getTH1();
          
          histoname = labelname+"_DenominatorPFPtBarrel";
          title     = labelname+"DenominatorPFPtBarrel;Calo Pt[GeV/c]";
          MonitorElement * DenominatorPFPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPFPtBarrel->getTH1();
          
          histoname = labelname+"_DenominatorPFPtEndcap";
          title     = labelname+"DenominatorPFPtEndcap;PF Pt[GeV/c]";
          MonitorElement * DenominatorPFPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPFPtEndcap->getTH1();
          
          histoname = labelname+"_DenominatorPFPtForward";
          title     = labelname+"DenominatorPFPtForward;PF Pt[GeV/c] ";
          MonitorElement * DenominatorPFPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPFPtForward->getTH1();
          
          histoname = labelname+"_DenominatorPFEta";
          title     = labelname+"DenominatorPFEta;PF #eta ";
          MonitorElement * DenominatorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorPFEta->getTH1();
          
          histoname = labelname+"_DenominatorPFPhi";
          title     = labelname+"DenominatorPFPhi;PF #Phi";
          MonitorElement * DenominatorPFPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPFPhi->getTH1();
          
          histoname = labelname+"_DenominatorPFEtaPhi";
          title     = labelname+"DenominatorPFEtaPhi;PF #eta; Calo #Phi";
          MonitorElement * DenominatorPFEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          DenominatorPFEtaPhi->getTH1();
          
          histoname = labelname+"_DenominatorPFEtaBarrel";
          title     = labelname+"DenominatorPFEtaBarrel;Calo #eta ";
          MonitorElement * DenominatorPFEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorPFEtaBarrel->getTH1();
          
          histoname = labelname+"_DenominatorPFPhiBarrel";
          title     = labelname+"DenominatorPFPhiBarrel;PF #Phi";
          MonitorElement * DenominatorPFPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPFPhiBarrel->getTH1();
          
          histoname = labelname+"_DenominatorPFEtaEndcap";
          title     = labelname+"DenominatorPFEtaEndcap;PF #eta ";
          MonitorElement * DenominatorPFEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorPFEtaEndcap->getTH1();
          
          histoname = labelname+"_DenominatorPFPhiEndcap";
          title     = labelname+"DenominatorPFPhiEndcap;Calo #Phi";
          MonitorElement * DenominatorPFPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPFPhiEndcap->getTH1();
          
          histoname = labelname+"_DenominatorPFEtaForward";
          title     = labelname+"DenominatorPFEtaForward;PF #eta ";
          MonitorElement * DenominatorPFEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorPFEtaForward->getTH1();
          
          histoname = labelname+"_DenominatorPFPhiForward";
          title     = labelname+"DenominatorPFPhiForward;PF #Phi";
          MonitorElement * DenominatorPFPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPFPhiForward->getTH1();
          
          histoname = labelname+"_DenominatorPFEta_LowpTcut";
          title     = labelname+"DenominatorPFEta_LowpTcut;PF #eta ";
          MonitorElement * DenominatorPFEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorPFEta_LowpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPFPhi_LowpTcut";
          title     = labelname+"DenominatorPFPhi_LowpTcut;PF #Phi";
          MonitorElement * DenominatorPFPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPFPhi_LowpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPFEtaPhi_LowpTcut";
          title     = labelname+"DenominatorPFEtaPhi_LowpTcut;PF #eta;Calo #Phi";
          MonitorElement * DenominatorPFEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          DenominatorPFEtaPhi_LowpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPFEta_MedpTcut";
          title     = labelname+"DenominatorPFEta_MedpTcut;PF #eta ";
          MonitorElement * DenominatorPFEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorPFEta_MedpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPFPhi_MedpTcut";
          title     = labelname+"DenominatorPFPhi_MedpTcut;PF #Phi";
          MonitorElement * DenominatorPFPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPFPhi_MedpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPFEtaPhi_MedpTcut";
          title     = labelname+"DenominatorPFEtaPhi_MedpTcut;PF #eta;Calo #Phi";
          MonitorElement * DenominatorPFEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          DenominatorPFEtaPhi_MedpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPFEta_HighpTcut";
          title     = labelname+"DenominatorPFEta_HighpTcut;PF #eta ";
          MonitorElement * DenominatorPFEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorPFEta_HighpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPFPhi_HighpTcut";
          title     = labelname+"DenominatorPFPhi_HighpTcut;PF #Phi";
          MonitorElement * DenominatorPFPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPFPhi_HighpTcut->getTH1();
          
          histoname = labelname+"_DenominatorPFEtaPhi_HighpTcut";
          title     = labelname+"DenominatorPFEtaPhi_HighpTcut;PF #eta;Calo #Phi";
          MonitorElement * DenominatorPFEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
          DenominatorPFEtaPhi_HighpTcut->getTH1();
          
          histoname = labelname+"_PFDeltaR";
          title     = labelname+"PFDeltaR;";
          MonitorElement * PFDeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
          PFDeltaR->getTH1();
          
          histoname = labelname+"_PFDeltaPhi";
          title     = labelname+"PFDeltaPhi;";
          MonitorElement * PFDeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.0,5.0);
          PFDeltaPhi->getTH1();
          
          v->setEffHistos(NumeratorPt,
                          NumeratorPtBarrel,
                          NumeratorPtEndcap,
                          NumeratorPtForward,
                          NumeratorEta,
                          NumeratorPhi,
                          NumeratorEtaPhi,
                          //
                          NumeratorEtaBarrel,
                          NumeratorPhiBarrel,
                          NumeratorEtaEndcap,
                          NumeratorPhiEndcap,
                          NumeratorEtaForward,
                          NumeratorPhiForward,
                          NumeratorEta_LowpTcut,
                          NumeratorPhi_LowpTcut,
                          NumeratorEtaPhi_LowpTcut,
                          NumeratorEta_MedpTcut,
                          NumeratorPhi_MedpTcut,
                          NumeratorEtaPhi_MedpTcut,
                          NumeratorEta_HighpTcut,
                          NumeratorPhi_HighpTcut,
                          NumeratorEtaPhi_HighpTcut,      
                          //
                          DenominatorPt,
                          DenominatorPtBarrel,
                          DenominatorPtEndcap,
                          DenominatorPtForward,
                          DenominatorEta,
                          DenominatorPhi,
                          DenominatorEtaPhi,
                          //
                          DenominatorEtaBarrel,
                          DenominatorPhiBarrel,
                          DenominatorEtaEndcap,
                          DenominatorPhiEndcap,
                          DenominatorEtaForward,
                          DenominatorPhiForward,
                          DenominatorEta_LowpTcut,
                          DenominatorPhi_LowpTcut,
                          DenominatorEtaPhi_LowpTcut,
                          DenominatorEta_MedpTcut,
                          DenominatorPhi_MedpTcut,
                          DenominatorEtaPhi_MedpTcut,
                          DenominatorEta_HighpTcut,
                          DenominatorPhi_HighpTcut,
                          DenominatorEtaPhi_HighpTcut,
                          DeltaR,
                          DeltaPhi,
                          //
                          NumeratorPFPt,
                          NumeratorPFMHT,
                          NumeratorPFPtBarrel,
                          NumeratorPFPtEndcap,
                          NumeratorPFPtForward,
                          NumeratorPFEta,
                          NumeratorPFPhi,
                          NumeratorPFEtaPhi,
                          NumeratorPFEtaBarrel,
                          NumeratorPFPhiBarrel,
                          NumeratorPFEtaEndcap,
                          NumeratorPFPhiEndcap,
                          NumeratorPFEtaForward,
                          NumeratorPFPhiForward,
                          NumeratorPFEta_LowpTcut,
                          NumeratorPFPhi_LowpTcut,
                          NumeratorPFEtaPhi_LowpTcut,
                          NumeratorPFEta_MedpTcut,
                          NumeratorPFPhi_MedpTcut,
                          NumeratorPFEtaPhi_MedpTcut,
                          NumeratorPFEta_HighpTcut,
                          NumeratorPFPhi_HighpTcut,
                          NumeratorPFEtaPhi_HighpTcut,      
                          DenominatorPFPt,
                          DenominatorPFMHT,
                          DenominatorPFPtBarrel,
                          DenominatorPFPtEndcap,
                          DenominatorPFPtForward,
                          DenominatorPFEta,
                          DenominatorPFPhi,
                          DenominatorPFEtaPhi,
                          DenominatorPFEtaBarrel,
                          DenominatorPFPhiBarrel,
                          DenominatorPFEtaEndcap,
                          DenominatorPFPhiEndcap,
                          DenominatorPFEtaForward,
                          DenominatorPFPhiForward,
                          DenominatorPFEta_LowpTcut,
                          DenominatorPFPhi_LowpTcut,
                          DenominatorPFEtaPhi_LowpTcut,
                          DenominatorPFEta_MedpTcut,
                          DenominatorPFPhi_MedpTcut,
                          DenominatorPFEtaPhi_MedpTcut,
                          DenominatorPFEta_HighpTcut,
                          DenominatorPFPhi_HighpTcut,
                          DenominatorPFEtaPhi_HighpTcut,
                          PFDeltaR,
                          PFDeltaPhi
                          );
          
        }// Loop over Jet Trigger
        
        if((v->getObjectType() == trigger::TriggerJet) && (v->getTriggerType().compare("DiJet_Trigger") == 0)){
          
          histoname = labelname+"_NumeratorAvrgPt";
          title     = labelname+"NumeratorAvrgPt;Calo Pt[GeV/c]";
          MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPt->getTH1();
          
          histoname = labelname+"_NumeratorAvrgEta";
          title     = labelname+"NumeratorAvrgEta;Calo #eta";
          MonitorElement * NumeratorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorEta->getTH1();
          
          histoname = labelname+"_DenominatorAvrgPt";
          title     = labelname+"DenominatorAvrgPt;Calo Pt[GeV/c] ";
          MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPt->getTH1();
          
          histoname = labelname+"_DenominatorAvrgEta";
          title     = labelname+"DenominatorAvrgEta;Calo #eta";
          MonitorElement * DenominatorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorEta->getTH1();
          
          histoname = labelname+"_DeltaR";
          title     = labelname+"DeltaR;";
          MonitorElement * DeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
          DeltaR->getTH1();
          
          histoname = labelname+"_DeltaPhi";
          title     = labelname+"DeltaPhi;";
          MonitorElement * DeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.,5.);
          DeltaPhi->getTH1();
          
          //add PF histo: SJ
          histoname = labelname+"_NumeratorAvrgPFPt";
          title     = labelname+"NumeratorAvrgPFPt;PF Pt[GeV/c]";
          MonitorElement * NumeratorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPFPt->getTH1();
          
          histoname = labelname+"_NumeratorAvrgPFEta";
          title     = labelname+"NumeratorAvrgPFEta;PF #eta";
          MonitorElement * NumeratorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          NumeratorPFEta->getTH1();
          
          histoname = labelname+"_DenominatorAvrgPFPt";
          title     = labelname+"DenominatorAvrgPFPt;PF Pt[GeV/c] ";
          MonitorElement * DenominatorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPFPt->getTH1();
          
          histoname = labelname+"_DenominatorAvrgPFEta";
          title     = labelname+"DenominatorAvrgPFEta;PF #eta";
          MonitorElement * DenominatorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          DenominatorPFEta->getTH1();
          
          histoname = labelname+"_PFDeltaR";
          title     = labelname+"PFDeltaR;";
          MonitorElement * PFDeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
          PFDeltaR->getTH1();
          
          histoname = labelname+"_PFDeltaPhi";
          title     = labelname+"PFDeltaPhi;";
          MonitorElement * PFDeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.,5.);
          PFDeltaPhi->getTH1();
          
          v->setEffHistos(  dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy 
                            );
        }
        
        if(v->getObjectType() == trigger::TriggerMET || (v->getObjectType() == trigger::TriggerTET)){
          
          histoname = labelname+"_NumeratorPt";
          if(v->getPath().find("HLT_PFMET")==std::string::npos)
            title     = labelname+"NumeratorPt; CaloMET[GeV/c]";
          else
            title     = labelname+"NumeratorPt; PFMET[GeV/c]"; 
          MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          NumeratorPt->getTH1();
          
          histoname = labelname+"_NumeratorPhi";
          title     = labelname+"NumeratorPhi; #Phi";
          MonitorElement * NumeratorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          NumeratorPhi->getTH1();
          
          histoname = labelname+"_DenominatorPt";
          if(v->getPath().find("HLT_PFMET")==std::string::npos)
            title     = labelname+"DenominatorPt; CaloMET[GeV/c]";
          else
            title     = labelname+"DenominatorPt; PFMET[GeV/c]"; 
          MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          DenominatorPt->getTH1();
          
          histoname = labelname+"_DenominatorPhi";
          title     = labelname+"DenominatorPhi; #Phi";
          MonitorElement * DenominatorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          DenominatorPhi->getTH1();
          
          v->setEffHistos(  NumeratorPt, dummy, dummy, dummy, dummy, NumeratorPhi, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, DenominatorPt, dummy, dummy, dummy, dummy, DenominatorPhi, dummy, dummy, 
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                            dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                            dummy, dummy, dummy, dummy
                            );
        }// Loop over MET trigger
      }
      
      //------Efficiency wrt Muon trigger-----------------------
      if(plotEffwrtMu_){
        std::string dirName2 = dirname_ + "/EffWrtMuonTrigger/";
        for(PathInfoCollection::iterator v = hltPathsEffWrtMu_.begin(); v!= hltPathsEffWrtMu_.end(); ++v ){
          //
          std::string trgPathName    = HLTConfigProvider::removeVersion(v->getPath());
          //
          std::string labelname("ME") ;
          std::string subdirName = dirName2 + trgPathName;
          std::string histoname(labelname+"");
          std::string title(labelname+"");
          dbe->setCurrentFolder(subdirName);

          MonitorElement *dummy;
          dummy =  dbe->bookFloat("dummy");   
          
          if((v->getObjectType() == trigger::TriggerJet) && (v->getTriggerType().compare("SingleJet_Trigger") == 0)){ 
            
            histoname = labelname+"_NumeratorPt";
            title     = labelname+"NumeratorPt;Pt[GeV/c]";
            MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPt->getTH1();
            
            histoname = labelname+"_NumeratorPtBarrel";
            title     = labelname+"NumeratorPtBarrel;Calo Pt[GeV/c]";
            MonitorElement * NumeratorPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPtBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPtEndcap";
            title     = labelname+"NumeratorPtEndcap;Calo Pt[GeV/c]";
            MonitorElement * NumeratorPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPtEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPtForward";
            title     = labelname+"NumeratorPtForward;Calo Pt[GeV/c]";
            MonitorElement * NumeratorPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPtForward->getTH1();
            
            histoname = labelname+"_NumeratorEta";
            title     = labelname+"NumeratorEta;Calo #eta ";
            MonitorElement * NumeratorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta->getTH1();
            
            histoname = labelname+"_NumeratorPhi";
            title     = labelname+"NumeratorPhi;Calo #Phi";
            MonitorElement * NumeratorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi->getTH1();
            
            histoname = labelname+"_NumeratorEtaPhi";
            title     = labelname+"NumeratorEtaPhi;Calo #eta;Calo #Phi";
            MonitorElement * NumeratorEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorEtaPhi->getTH1();
            
            histoname = labelname+"_NumeratorEtaBarrel";
            title     = labelname+"NumeratorEtaBarrel;Calo #eta ";
            MonitorElement * NumeratorEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEtaBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPhiBarrel";
            title     = labelname+"NumeratorPhiBarrel;Calo #Phi";
            MonitorElement * NumeratorPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhiBarrel->getTH1();
            
            histoname = labelname+"_NumeratorEtaEndcap";
            title     = labelname+"NumeratorEtaEndcap;Calo #eta ";
            MonitorElement * NumeratorEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEtaEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPhiEndcap";
            title     = labelname+"NumeratorPhiEndcap;Calo #Phi";
            MonitorElement * NumeratorPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhiEndcap->getTH1();
            
            histoname = labelname+"_NumeratorEtaForward";
            title     = labelname+"NumeratorEtaForward;Calo #eta ";
            MonitorElement * NumeratorEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEtaForward->getTH1();
            
            histoname = labelname+"_NumeratorPhiForward";
            title     = labelname+"NumeratorPhiForward;Calo #Phi";
            MonitorElement * NumeratorPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhiForward->getTH1();
            
            histoname = labelname+"_NumeratorEta_LowpTcut";
            title     = labelname+"NumeratorEta_LowpTcut;Calo #eta ";
            MonitorElement * NumeratorEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPhi_LowpTcut";
            title     = labelname+"NumeratorPhi_LowpTcut;Calo #Phi";
            MonitorElement * NumeratorPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEtaPhi_LowpTcut";
            title     = labelname+"NumeratorEtaPhi_LowpTcut;Calo #eta;Calo #Phi";
            MonitorElement * NumeratorEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorEtaPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEta_MedpTcut";
            title     = labelname+"NumeratorEta_MedpTcut;Calo #eta ";
            MonitorElement * NumeratorEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPhi_MedpTcut";
            title     = labelname+"NumeratorPhi_MedpTcut;Calo #Phi";
            MonitorElement * NumeratorPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEtaPhi_MedpTcut";
            title     = labelname+"NumeratorEtaPhi_MedpTcut;Calo #eta;Calo #Phi";
            MonitorElement * NumeratorEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorEtaPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEta_HighpTcut";
            title     = labelname+"NumeratorEta_HighpTcut;Calo #eta ";
            MonitorElement * NumeratorEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta_HighpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPhi_HighpTcut";
            title     = labelname+"NumeratorPhi_HighpTcut;Calo #Phi";
            MonitorElement * NumeratorPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEtaPhi_HighpTcut";
            title     = labelname+"NumeratorEtaPhi_HighpTcut;Calo #eta;Calo #Phi";
            MonitorElement * NumeratorEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorEtaPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPt";
            title     = labelname+"DenominatorPt;Calo Pt[GeV/c]";
            MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPt->getTH1();
            
            histoname = labelname+"_DenominatorPtBarrel";
            title     = labelname+"DenominatorPtBarrel;Calo Pt[GeV/c]";
            MonitorElement * DenominatorPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPtBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPtEndcap";
            title     = labelname+"DenominatorPtEndcap;Calo Pt[GeV/c]";
            MonitorElement * DenominatorPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPtEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPtForward";
            title     = labelname+"DenominatorPtForward;Calo Pt[GeV/c] ";
            MonitorElement * DenominatorPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPtForward->getTH1();
            
            histoname = labelname+"_DenominatorEta";
            title     = labelname+"DenominatorEta;Calo #eta";
            MonitorElement * DenominatorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta->getTH1();
            
            histoname = labelname+"_DenominatorPhi";
            title     = labelname+"DenominatorPhi;Calo #Phi";
            MonitorElement * DenominatorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi->getTH1();
            
            histoname = labelname+"_DenominatorEtaPhi";
            title     = labelname+"DenominatorEtaPhi;Calo #eta (IC5);Calo #Phi ";
            MonitorElement * DenominatorEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorEtaPhi->getTH1();
            
            histoname = labelname+"_DenominatorEtaBarrel";
            title     = labelname+"DenominatorEtaBarrel;Calo #eta ";
            MonitorElement * DenominatorEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEtaBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPhiBarrel";
            title     = labelname+"DenominatorPhiBarrel;Calo #Phi";
            MonitorElement * DenominatorPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhiBarrel->getTH1();
            
            histoname = labelname+"_DenominatorEtaEndcap";
            title     = labelname+"DenominatorEtaEndcap;Calo #eta ";
            MonitorElement * DenominatorEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEtaEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPhiEndcap";
            title     = labelname+"DenominatorPhiEndcap;Calo #Phi";
            MonitorElement * DenominatorPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhiEndcap->getTH1();
            
            histoname = labelname+"_DenominatorEtaForward";
            title     = labelname+"DenominatorEtaForward;Calo #eta ";
            MonitorElement * DenominatorEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEtaForward->getTH1();
            
            histoname = labelname+"_DenominatorPhiForward";
            title     = labelname+"DenominatorPhiForward;Calo #Phi";
            MonitorElement * DenominatorPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhiForward->getTH1();
            
            histoname = labelname+"_DenominatorEta_LowpTcut";
            title     = labelname+"DenominatorEta_LowpTcut;Calo #eta ";
            MonitorElement * DenominatorEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta_LowpTcut->getTH1();
          
            histoname = labelname+"_DenominatorPhi_LowpTcut";
            title     = labelname+"DenominatorPhi_LowpTcut;Calo #Phi";
            MonitorElement * DenominatorPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEtaPhi_LowpTcut";
            title     = labelname+"DenominatorEtaPhi_LowpTcut;Calo #eta;Calo #Phi";
            MonitorElement * DenominatorEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorEtaPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEta_MedpTcut";
            title     = labelname+"DenominatorEta_MedpTcut;Calo #eta ";
            MonitorElement * DenominatorEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPhi_MedpTcut";
            title     = labelname+"DenominatorPhi_MedpTcut;Calo #Phi";
            MonitorElement * DenominatorPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEtaPhi_MedpTcut";
            title     = labelname+"DenominatorEtaPhi_MedpTcut;Calo #eta;Calo #Phi";
            MonitorElement * DenominatorEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorEtaPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEta_HighpTcut";
            title     = labelname+"DenominatorEta_HighpTcut;Calo #eta ";
            MonitorElement * DenominatorEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPhi_HighpTcut";
            title     = labelname+"DenominatorPhi_HighpTcut;Calo #Phi";
            MonitorElement * DenominatorPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEtaPhi_HighpTcut";
            title     = labelname+"DenominatorEtaPhi_HighpTcut;Calo #eta;Calo #Phi";
            MonitorElement * DenominatorEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorEtaPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DeltaR";
            title     = labelname+"DeltaR;";
            MonitorElement * DeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            DeltaR->getTH1();
            
            histoname = labelname+"_DeltaPhi";
            title     = labelname+"DeltaPhi;";
            MonitorElement * DeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.0,5.0);
            DeltaPhi->getTH1();
            
            histoname = labelname+"_NumeratorPFPt";
            title     = labelname+"NumeratorPFPt;PFPt[GeV/c]";
            MonitorElement * NumeratorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPt->getTH1();
            
            histoname = labelname+"_NumeratorPFMHT";
            title     = labelname+"NumeratorPFMHT;PFMHT[GeV/c]";
            MonitorElement * NumeratorPFMHT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFMHT->getTH1();
            
            histoname = labelname+"_NumeratorPFPtBarrel";
            title     = labelname+"NumeratorPFPtBarrel;PF Pt[GeV/c]";
            MonitorElement * NumeratorPFPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPtBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPFPtEndcap";
            title     = labelname+"NumeratorPFPtEndcap;PF Pt[GeV/c]";
            MonitorElement * NumeratorPFPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPtEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPFPtForward";
            title     = labelname+"NumeratorPFPtForward;PF Pt[GeV/c]";
            MonitorElement * NumeratorPFPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPtForward->getTH1();
            
            histoname = labelname+"_NumeratorPFEta";
            title     = labelname+"NumeratorPFEta;PF #eta ";
            MonitorElement * NumeratorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta->getTH1();
            
            histoname = labelname+"_NumeratorPFPhi";
            title     = labelname+"NumeratorPFPhi;PF #Phi";
            MonitorElement * NumeratorPFPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhi->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaPhi";
            title     = labelname+"NumeratorPFEtaPhi;PF #eta;PF #Phi";
            MonitorElement * NumeratorPFEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorPFEtaPhi->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaBarrel";
            title     = labelname+"NumeratorPFEtaBarrel;PF #eta ";
            MonitorElement * NumeratorPFEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEtaBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPFPhiBarrel";
            title     = labelname+"NumeratorPFPhiBarrel;PF #Phi";
            MonitorElement * NumeratorPFPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhiBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaEndcap";
            title     = labelname+"NumeratorPFEtaEndcap;PF #eta ";
            MonitorElement * NumeratorPFEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEtaEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPFPhiEndcap";
            title     = labelname+"NumeratorPFPhiEndcap;PF #Phi";
            MonitorElement * NumeratorPFPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhiEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaForward";
            title     = labelname+"NumeratorPFEtaForward;PF #eta ";
            MonitorElement * NumeratorPFEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEtaForward->getTH1();
            
            histoname = labelname+"_NumeratorPFPhiForward";
            title     = labelname+"NumeratorPFPhiForward;PF #Phi";
            MonitorElement * NumeratorPFPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhiForward->getTH1();
            
            histoname = labelname+"_NumeratorPFEta_LowpTcut";
            title     = labelname+"NumeratorPFEta_LowpTcut;PF #eta ";
            MonitorElement * NumeratorPFEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFPhi_LowpTcut";
            title     = labelname+"NumeratorPFPhi_LowpTcut;PF #Phi";
            MonitorElement * NumeratorPFPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaPhi_LowpTcut";
            title     = labelname+"NumeratorPFEtaPhi_LowpTcut;PF #eta;PF #Phi";
            MonitorElement * NumeratorPFEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorPFEtaPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEta_MedpTcut";
            title     = labelname+"NumeratorPFEta_MedpTcut;PF #eta ";
            MonitorElement * NumeratorPFEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFPhi_MedpTcut";
            title     = labelname+"NumeratorPFPhi_MedpTcut;PF #Phi";
            MonitorElement * NumeratorPFPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaPhi_MedpTcut";
            title     = labelname+"NumeratorPFEtaPhi_MedpTcut;PF #eta;PF #Phi";
            MonitorElement * NumeratorPFEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorPFEtaPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEta_HighpTcut";
            title     = labelname+"NumeratorPFEta_HighpTcut;PF #eta ";
            MonitorElement * NumeratorPFEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta_HighpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFPhi_HighpTcut";
            title     = labelname+"NumeratorPFPhi_HighpTcut;PF #Phi";
            MonitorElement * NumeratorPFPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaPhi_HighpTcut";
            title     = labelname+"NumeratorPFEtaPhi_HighpTcut;PF #eta;PF #Phi";
            MonitorElement * NumeratorPFEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorPFEtaPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFMHT";
            title     = labelname+"DenominatorPFMHT;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFMHT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFMHT->getTH1();
            
            histoname = labelname+"_DenominatorPFPt";
            title     = labelname+"DenominatorPFPt;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPt->getTH1();
            
            histoname = labelname+"_DenominatorPFPtBarrel";
            title     = labelname+"DenominatorPFPtBarrel;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPtBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPFPtEndcap";
            title     = labelname+"DenominatorPFPtEndcap;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPtEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPFPtForward";
            title     = labelname+"DenominatorPFPtForward;PF Pt[GeV/c] ";
            MonitorElement * DenominatorPFPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPtForward->getTH1();
            
            histoname = labelname+"_DenominatorPFEta";
            title     = labelname+"DenominatorPFEta;PF #eta";
            MonitorElement * DenominatorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta->getTH1();
            
            histoname = labelname+"_DenominatorPFPhi";
            title     = labelname+"DenominatorPFPhi;PF #Phi";
            MonitorElement * DenominatorPFPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhi->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaPhi";
            title     = labelname+"DenominatorPFEtaPhi;PF #eta (IC5);PF #Phi ";
            MonitorElement * DenominatorPFEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorPFEtaPhi->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaBarrel";
            title     = labelname+"DenominatorPFEtaBarrel;PF #eta ";
            MonitorElement * DenominatorPFEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEtaBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPFPhiBarrel";
            title     = labelname+"DenominatorPFPhiBarrel;PF #Phi";
            MonitorElement * DenominatorPFPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhiBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaEndcap";
            title     = labelname+"DenominatorPFEtaEndcap;PF #eta ";
            MonitorElement * DenominatorPFEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEtaEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPFPhiEndcap";
            title     = labelname+"DenominatorPFPhiEndcap;PF #Phi";
            MonitorElement * DenominatorPFPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhiEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaForward";
            title     = labelname+"DenominatorPFEtaForward;PF #eta ";
            MonitorElement * DenominatorPFEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEtaForward->getTH1();
            
            histoname = labelname+"_DenominatorPFPhiForward";
            title     = labelname+"DenominatorPFPhiForward;PF #Phi";
            MonitorElement * DenominatorPFPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhiForward->getTH1();
            
            histoname = labelname+"_DenominatorPFEta_LowpTcut";
            title     = labelname+"DenominatorPFEta_LowpTcut;PF #eta ";
            MonitorElement * DenominatorPFEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFPhi_LowpTcut";
            title     = labelname+"DenominatorPFPhi_LowpTcut;PF #Phi";
            MonitorElement * DenominatorPFPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaPhi_LowpTcut";
            title     = labelname+"DenominatorPFEtaPhi_LowpTcut;PF #eta;PF #Phi";
            MonitorElement * DenominatorPFEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorPFEtaPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEta_MedpTcut";
            title     = labelname+"DenominatorPFEta_MedpTcut;PF #eta ";
            MonitorElement * DenominatorPFEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFPhi_MedpTcut";
            title     = labelname+"DenominatorPFPhi_MedpTcut;PF #Phi";
            MonitorElement * DenominatorPFPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaPhi_MedpTcut";
            title     = labelname+"DenominatorPFEtaPhi_MedpTcut;PF #eta;PF #Phi";
            MonitorElement * DenominatorPFEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorPFEtaPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEta_HighpTcut";
            title     = labelname+"DenominatorPFEta_HighpTcut;PF #eta ";
            MonitorElement * DenominatorPFEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta_HighpTcut->getTH1();
          
            histoname = labelname+"_DenominatorPFPhi_HighpTcut";
            title     = labelname+"DenominatorPFPhi_HighpTcut;PF #Phi";
            MonitorElement * DenominatorPFPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaPhi_HighpTcut";
            title     = labelname+"DenominatorPFEtaPhi_HighpTcut;PF #eta;PF #Phi";
            MonitorElement * DenominatorPFEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorPFEtaPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_PFDeltaR";
            title     = labelname+"PFDeltaR;";
            MonitorElement * PFDeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            PFDeltaR->getTH1();
            
            histoname = labelname+"_PFDeltaPhi";
            title     = labelname+"PFDeltaPhi;";
            MonitorElement * PFDeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.0,5.0);
            PFDeltaPhi->getTH1();
          
            v->setEffHistos(NumeratorPt,
                            NumeratorPtBarrel,
                            NumeratorPtEndcap,
                            NumeratorPtForward,
                            NumeratorEta,
                            NumeratorPhi,
                            NumeratorEtaPhi,
                            //ml Additional Phi and Eta histos
                            NumeratorEtaBarrel,
                            NumeratorPhiBarrel,
                            NumeratorEtaEndcap,
                            NumeratorPhiEndcap,
                            NumeratorEtaForward,
                            NumeratorPhiForward,
                            NumeratorEta_LowpTcut,
                            NumeratorPhi_LowpTcut,
                            NumeratorEtaPhi_LowpTcut,
                            NumeratorEta_MedpTcut,
                            NumeratorPhi_MedpTcut,
                            NumeratorEtaPhi_MedpTcut,
                            NumeratorEta_HighpTcut,
                            NumeratorPhi_HighpTcut,
                            NumeratorEtaPhi_HighpTcut,      
                            //ml 15 new numerator histograms.
                            DenominatorPt,
                            DenominatorPtBarrel,
                            DenominatorPtEndcap,
                            DenominatorPtForward,
                            DenominatorEta,
                            DenominatorPhi,
                            DenominatorEtaPhi,
                            //ml new denom histos
                            DenominatorEtaBarrel,
                            DenominatorPhiBarrel,
                            DenominatorEtaEndcap,
                            DenominatorPhiEndcap,
                            DenominatorEtaForward,
                            DenominatorPhiForward,
                            DenominatorEta_LowpTcut,
                            DenominatorPhi_LowpTcut,
                            DenominatorEtaPhi_LowpTcut,
                            DenominatorEta_MedpTcut,
                            DenominatorPhi_MedpTcut,
                            DenominatorEtaPhi_MedpTcut,
                            DenominatorEta_HighpTcut,
                            DenominatorPhi_HighpTcut,
                            DenominatorEtaPhi_HighpTcut,
                            DeltaR,
                            DeltaPhi,
                            //ml
                            //adding PF histograms  SJ:
                            NumeratorPFPt,
                            NumeratorPFMHT,
                            NumeratorPFPtBarrel,
                            NumeratorPFPtEndcap,
                            NumeratorPFPtForward,
                            NumeratorPFEta,
                            NumeratorPFPhi,
                            NumeratorPFEtaPhi,
                            NumeratorPFEtaBarrel,
                            NumeratorPFPhiBarrel,
                            NumeratorPFEtaEndcap,
                            NumeratorPFPhiEndcap,
                            NumeratorPFEtaForward,
                            NumeratorPFPhiForward,
                            NumeratorPFEta_LowpTcut,
                            NumeratorPFPhi_LowpTcut,
                            NumeratorPFEtaPhi_LowpTcut,
                            NumeratorPFEta_MedpTcut,
                            NumeratorPFPhi_MedpTcut,
                            NumeratorPFEtaPhi_MedpTcut,
                            NumeratorPFEta_HighpTcut,
                            NumeratorPFPhi_HighpTcut,
                            NumeratorPFEtaPhi_HighpTcut,      
                            DenominatorPFPt,
                            DenominatorPFMHT,
                            DenominatorPFPtBarrel,
                            DenominatorPFPtEndcap,
                            DenominatorPFPtForward,
                            DenominatorPFEta,
                            DenominatorPFPhi,
                            DenominatorPFEtaPhi,
                            DenominatorPFEtaBarrel,
                            DenominatorPFPhiBarrel,
                            DenominatorPFEtaEndcap,
                            DenominatorPFPhiEndcap,
                            DenominatorPFEtaForward,
                            DenominatorPFPhiForward,
                            DenominatorPFEta_LowpTcut,
                            DenominatorPFPhi_LowpTcut,
                            DenominatorPFEtaPhi_LowpTcut,
                            DenominatorPFEta_MedpTcut,
                            DenominatorPFPhi_MedpTcut,
                            DenominatorPFEtaPhi_MedpTcut,
                            DenominatorPFEta_HighpTcut,
                            DenominatorPFPhi_HighpTcut,
                            DenominatorPFEtaPhi_HighpTcut,
                            PFDeltaR,
                            PFDeltaPhi
                            ); 
          }
          
          if((v->getObjectType() == trigger::TriggerJet) && (v->getTriggerType().compare("DiJet_Trigger") == 0)){
            
            histoname = labelname+"_NumeratorAvrgPt";
            title     = labelname+"NumeratorAvrgPt;Calo Pt[GeV/c] ";
            MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPt->getTH1();
            
            histoname = labelname+"_NumeratorAvrgEta";
            title     = labelname+"NumeratorAvrgEta;Calo #eta";
            MonitorElement * NumeratorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta->getTH1();
            
            histoname = labelname+"_DenominatorAvrgPt";
            title     = labelname+"DenominatorAvrgPt;Calo Pt[GeV/c]";
            MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPt->getTH1();
            
            histoname = labelname+"_DenominatorAvrgEta";
            title     = labelname+"DenominatorAvrgEta;Calo #eta ";
            MonitorElement * DenominatorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta->getTH1();
            
            histoname = labelname+"_DeltaR";
            title     = labelname+"DeltaR;";
            MonitorElement * DeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            DeltaR->getTH1();
            
            histoname = labelname+"_DeltaPhi";
            title     = labelname+"DeltaPhi;";
            MonitorElement * DeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.,5.);
            DeltaPhi->getTH1();
            
            histoname = labelname+"_NumeratorAvrgPFPt";
            title     = labelname+"NumeratorAvrgPFPt;PF Pt[GeV/c] ";
            MonitorElement * NumeratorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPt->getTH1();
            
            histoname = labelname+"_NumeratorAvrgPFEta";
            title     = labelname+"NumeratorAvrgPFEta;PF #eta";
            MonitorElement * NumeratorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta->getTH1();
            
            histoname = labelname+"_DenominatorAvrgPFPt";
            title     = labelname+"DenominatorAvrgPFPt;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPt->getTH1();
            
            histoname = labelname+"_DenominatorAvrgPFEta";
            title     = labelname+"DenominatorAvrgPFEta;PF #eta ";
            MonitorElement * DenominatorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta->getTH1();
            
            histoname = labelname+"_PFDeltaR";
            title     = labelname+"PFDeltaR;";
            MonitorElement * PFDeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            PFDeltaR->getTH1();
            
            histoname = labelname+"_PFDeltaPhi";
            title     = labelname+"PFDeltaPhi;";
            MonitorElement * PFDeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.,5.);
            PFDeltaPhi->getTH1();

            v->setEffHistos(  dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy
                              );  
          }
          
          if(v->getObjectType() == trigger::TriggerMET || (v->getObjectType() == trigger::TriggerTET)){
            
            histoname = labelname+"_NumeratorPt";
            if(v->getPath().find("HLT_PFMET")==std::string::npos)
              title     = labelname+"NumeratorPt; CaloMET[GeV/c]";
            else
              title     = labelname+"NumeratorPt; PFMET[GeV/c]";
            MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPt->getTH1();
            
            histoname = labelname+"_NumeratorPhi";
            title     = labelname+"NumeratorPhi; #Phi";
            MonitorElement * NumeratorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi->getTH1();
            
            histoname = labelname+"_DenominatorPt";
            if(v->getPath().find("HLT_PFMET")==std::string::npos)
              title     = labelname+"DenominatorPt; CaloMET[GeV/c]";
            else
              title     = labelname+"DenominatorPt; PFMET[GeV/c]";
            MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPt->getTH1();
            
            histoname = labelname+"_DenominatorPhi";
            title     = labelname+"DenominatorPhi; #Phi";
            MonitorElement * DenominatorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi->getTH1();

            v->setEffHistos(  NumeratorPt, dummy, dummy, dummy, dummy, NumeratorPhi, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, DenominatorPt, dummy, dummy, dummy, dummy, DenominatorPhi, dummy, dummy, 
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy
                              );
          }// Loop over MET trigger 
        }
      }
      
      //--------Efficiency  wrt MiniBias trigger---------
      if(plotEffwrtMB_){
        std::string dirName3  = dirname_ + "/EffWrtMBTrigger/";
        for(PathInfoCollection::iterator v = hltPathsEffWrtMB_.begin(); v!= hltPathsEffWrtMB_.end(); ++v ){
          //
          std::string trgPathName    = HLTConfigProvider::removeVersion(v->getPath());
          //
          std::string labelname("ME") ;
          std::string subdirName = dirName3 + trgPathName ;
          std::string histoname(labelname+"");
          std::string title(labelname+"");
          dbe->setCurrentFolder(subdirName);
          
          MonitorElement *dummy;
          dummy =  dbe->bookFloat("dummy"); 
          
          if((v->getObjectType() == trigger::TriggerJet) && (v->getTriggerType().compare("SingleJet_Trigger") == 0)){ 
            
            histoname = labelname+"_NumeratorPt";
            title     = labelname+"NumeratorPt;Calo Pt[GeV/c] ";
            MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPt->getTH1();
            
            histoname = labelname+"_NumeratorPtBarrel";
            title     = labelname+"NumeratorPtBarrel;Calo Pt[GeV/c]";
            MonitorElement * NumeratorPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPtBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPtEndcap";
            title     = labelname+"NumeratorPtEndcap; Calo Pt[GeV/c] ";
            MonitorElement * NumeratorPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPtEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPtForward";
            title     = labelname+"NumeratorPtForward;Calo Pt[GeV/c]";
            MonitorElement * NumeratorPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPtForward->getTH1();
            
            histoname = labelname+"_NumeratorEta";
            title     = labelname+"NumeratorEta;Calo #eta ";
            MonitorElement * NumeratorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta->getTH1();
            
            histoname = labelname+"_NumeratorPhi";
            title     = labelname+"NumeratorPhi;Calo #Phi";
            MonitorElement * NumeratorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi->getTH1();
            
            histoname = labelname+"_NumeratorEtaPhi";
            title     = labelname+"NumeratorEtaPhi;Calo #eta;Calo #Phi ";
            MonitorElement * NumeratorEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorEtaPhi->getTH1();
            
            histoname = labelname+"_NumeratorEtaBarrel";
            title     = labelname+"NumeratorEtaBarrel;Calo #eta ";
            MonitorElement * NumeratorEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEtaBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPhiBarrel";
            title     = labelname+"NumeratorPhiBarrel;Calo #Phi";
            MonitorElement * NumeratorPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhiBarrel->getTH1();
            
            histoname = labelname+"_NumeratorEtaEndcap";
            title     = labelname+"NumeratorEtaEndcap;Calo #eta ";
            MonitorElement * NumeratorEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEtaEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPhiEndcap";
            title     = labelname+"NumeratorPhiEndcap;Calo #Phi";
            MonitorElement * NumeratorPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhiEndcap->getTH1();
            
            histoname = labelname+"_NumeratorEtaForward";
            title     = labelname+"NumeratorEtaForward;Calo #eta ";
            MonitorElement * NumeratorEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEtaForward->getTH1();
            
            histoname = labelname+"_NumeratorPhiForward";
            title     = labelname+"NumeratorPhiForward;Calo #Phi";
            MonitorElement * NumeratorPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhiForward->getTH1();
            
            histoname = labelname+"_NumeratorEta_LowpTcut";
            title     = labelname+"NumeratorEta_LowpTcut;Calo #eta ";
            MonitorElement * NumeratorEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPhi_LowpTcut";
            title     = labelname+"NumeratorPhi_LowpTcut;Calo #Phi";
            MonitorElement * NumeratorPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEtaPhi_LowpTcut";
            title     = labelname+"NumeratorEtaPhi_LowpTcut;Calo #eta;Calo #Phi";
            MonitorElement * NumeratorEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorEtaPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEta_MedpTcut";
            title     = labelname+"NumeratorEta_MedpTcut;Calo #eta ";
            MonitorElement * NumeratorEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPhi_MedpTcut";
            title     = labelname+"NumeratorPhi_MedpTcut;Calo #Phi";
            MonitorElement * NumeratorPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEtaPhi_MedpTcut";
            title     = labelname+"NumeratorEtaPhi_MedpTcut;Calo #eta;Calo #Phi";
            MonitorElement * NumeratorEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorEtaPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEta_HighpTcut";
            title     = labelname+"NumeratorEta_HighpTcut;Calo #eta ";
            MonitorElement * NumeratorEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta_HighpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPhi_HighpTcut";
            title     = labelname+"NumeratorPhi_HighpTcut;Calo #Phi";
            MonitorElement * NumeratorPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_NumeratorEtaPhi_HighpTcut";
            title     = labelname+"NumeratorEtaPhi_HighpTcut;Calo #eta;Calo #Phi";
            MonitorElement * NumeratorEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorEtaPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPt";
            title     = labelname+"DenominatorPt;Calo Pt[GeV/c]";
            MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPt->getTH1();
            
            histoname = labelname+"_DenominatorPtBarrel";
            title     = labelname+"DenominatorPtBarrel;Calo Pt[GeV/c]";
            MonitorElement * DenominatorPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPtBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPtEndcap";
            title     = labelname+"DenominatorPtEndcap;Calo Pt[GeV/c]";
            MonitorElement * DenominatorPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPtEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPtForward";
            title     = labelname+"DenominatorPtForward;Calo Pt[GeV/c]";
            MonitorElement * DenominatorPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPtForward->getTH1();
            
            histoname = labelname+"_DenominatorEta";
            title     = labelname+"DenominatorEta;Calo #eta ";
            MonitorElement * DenominatorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta->getTH1();
            
            histoname = labelname+"_DenominatorPhi";
            title     = labelname+"DenominatorPhi;Calo #Phi";
            MonitorElement * DenominatorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi->getTH1();
            
            histoname = labelname+"_DenominatorEtaPhi";
            title     = labelname+"DenominatorEtaPhi;Calo #eta ;Calo #Phi ";
            MonitorElement * DenominatorEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorEtaPhi->getTH1();
            
            histoname = labelname+"_DenominatorEtaBarrel";
            title     = labelname+"DenominatorEtaBarrel;Calo #eta ";
            MonitorElement * DenominatorEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEtaBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPhiBarrel";
            title     = labelname+"DenominatorPhiBarrel;Calo #Phi";
            MonitorElement * DenominatorPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhiBarrel->getTH1();
            
            histoname = labelname+"_DenominatorEtaEndcap";
            title     = labelname+"DenominatorEtaEndcap;Calo #eta ";
            MonitorElement * DenominatorEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEtaEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPhiEndcap";
            title     = labelname+"DenominatorPhiEndcap;Calo #Phi";
            MonitorElement * DenominatorPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhiEndcap->getTH1();
            
            histoname = labelname+"_DenominatorEtaForward";
            title     = labelname+"DenominatorEtaForward;Calo #eta ";
            MonitorElement * DenominatorEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEtaForward->getTH1();
            
            histoname = labelname+"_DenominatorPhiForward";
            title     = labelname+"DenominatorPhiForward;Calo #Phi";
            MonitorElement * DenominatorPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhiForward->getTH1();
            
            histoname = labelname+"_DenominatorEta_LowpTcut";
            title     = labelname+"DenominatorEta_LowpTcut;Calo #eta ";
            MonitorElement * DenominatorEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPhi_LowpTcut";
            title     = labelname+"DenominatorPhi_LowpTcut;Calo #Phi";
            MonitorElement * DenominatorPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEtaPhi_LowpTcut";
            title     = labelname+"DenominatorEtaPhi_LowpTcut;Calo #eta;Calo #Phi";
            MonitorElement * DenominatorEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorEtaPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEta_MedpTcut";
            title     = labelname+"DenominatorEta_MedpTcut;Calo #eta ";
            MonitorElement * DenominatorEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPhi_MedpTcut";
            title     = labelname+"DenominatorPhi_MedpTcut;Calo #Phi";
            MonitorElement * DenominatorPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEtaPhi_MedpTcut";
            title     = labelname+"DenominatorEtaPhi_MedpTcut;Calo #eta;Calo #Phi";
            MonitorElement * DenominatorEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorEtaPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEta_HighpTcut";
            title     = labelname+"DenominatorEta_HighpTcut;Calo #eta ";
            MonitorElement * DenominatorEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPhi_HighpTcut";
            title     = labelname+"DenominatorPhi_HighpTcut;Calo #Phi";
            MonitorElement * DenominatorPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorEtaPhi_HighpTcut";
            title     = labelname+"DenominatorEtaPhi_HighpTcut;Calo #eta;Calo #Phi";
            MonitorElement * DenominatorEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorEtaPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DeltaR";
            title     = labelname+"DeltaR;";
            MonitorElement * DeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            DeltaR->getTH1();
            
            histoname = labelname+"_DeltaPhi";
            title     = labelname+"DeltaPhi;";
            MonitorElement * DeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.,5.);
            DeltaPhi->getTH1();
            
            histoname = labelname+"_NumeratorPFPt";
            title     = labelname+"NumeratorPFPt;PF Pt[GeV/c] ";
            MonitorElement * NumeratorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPt->getTH1();
            
            histoname = labelname+"_NumeratorPFMHT";
            title     = labelname+"NumeratorPFPt;PFMHT[GeV/c] ";
            MonitorElement * NumeratorPFMHT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFMHT->getTH1();
            
            histoname = labelname+"_NumeratorPFPtBarrel";
            title     = labelname+"NumeratorPFPtBarrel;PF Pt[GeV/c]";
            MonitorElement * NumeratorPFPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPtBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPFPtEndcap";
            title     = labelname+"NumeratorPFPtEndcap; PF Pt[GeV/c] ";
            MonitorElement * NumeratorPFPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPtEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPFPtForward";
            title     = labelname+"NumeratorPFPtForward;PF Pt[GeV/c]";
            MonitorElement * NumeratorPFPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPtForward->getTH1();
            
            histoname = labelname+"_NumeratorPFEta";
            title     = labelname+"NumeratorPFEta;PF #eta ";
            MonitorElement * NumeratorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta->getTH1();
            
            histoname = labelname+"_NumeratorPFPhi";
            title     = labelname+"NumeratorPFPhi;PF #Phi";
            MonitorElement * NumeratorPFPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhi->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaPhi";
            title     = labelname+"NumeratorPFEtaPhi;PF #eta;PF #Phi ";
            MonitorElement * NumeratorPFEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorPFEtaPhi->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaBarrel";
            title     = labelname+"NumeratorPFEtaBarrel;PF #eta ";
            MonitorElement * NumeratorPFEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEtaBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPFPhiBarrel";
            title     = labelname+"NumeratorPFPhiBarrel;PF #Phi";
            MonitorElement * NumeratorPFPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhiBarrel->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaEndcap";
            title     = labelname+"NumeratorPFEtaEndcap;PF #eta ";
            MonitorElement * NumeratorPFEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEtaEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPFPhiEndcap";
            title     = labelname+"NumeratorPFPhiEndcap;PF #Phi";
            MonitorElement * NumeratorPFPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhiEndcap->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaForward";
            title     = labelname+"NumeratorPFEtaForward;PF #eta ";
            MonitorElement * NumeratorPFEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEtaForward->getTH1();
            
            histoname = labelname+"_NumeratorPFPhiForward";
            title     = labelname+"NumeratorPFPhiForward;PF #Phi";
            MonitorElement * NumeratorPFPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhiForward->getTH1();
            
            histoname = labelname+"_NumeratorPFEta_LowpTcut";
            title     = labelname+"NumeratorPFEta_LowpTcut;PF #eta ";
            MonitorElement * NumeratorPFEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFPhi_LowpTcut";
            title     = labelname+"NumeratorPFPhi_LowpTcut;PF #Phi";
            MonitorElement * NumeratorPFPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaPhi_LowpTcut";
            title     = labelname+"NumeratorPFEtaPhi_LowpTcut;PF #eta;PF #Phi";
            MonitorElement * NumeratorPFEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorPFEtaPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEta_MedpTcut";
            title     = labelname+"NumeratorPFEta_MedpTcut;PF #eta ";
            MonitorElement * NumeratorPFEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFPhi_MedpTcut";
            title     = labelname+"NumeratorPFPhi_MedpTcut;PF #Phi";
            MonitorElement * NumeratorPFPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaPhi_MedpTcut";
            title     = labelname+"NumeratorPFEtaPhi_MedpTcut;PF #eta;PF #Phi";
            MonitorElement * NumeratorPFEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorPFEtaPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEta_HighpTcut";
            title     = labelname+"NumeratorPFEta_HighpTcut;PF #eta ";
            MonitorElement * NumeratorPFEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta_HighpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFPhi_HighpTcut";
            title     = labelname+"NumeratorPFPhi_HighpTcut;PF #Phi";
            MonitorElement * NumeratorPFPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPFPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_NumeratorPFEtaPhi_HighpTcut";
            title     = labelname+"NumeratorPFEtaPhi_HighpTcut;PF #eta;PF #Phi";
            MonitorElement * NumeratorPFEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            NumeratorPFEtaPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFMHT";
            title     = labelname+"DenominatorPFMHT;PFMHT[GeV/c]";
            MonitorElement * DenominatorPFMHT =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFMHT->getTH1();
            
            histoname = labelname+"_DenominatorPFPt";
            title     = labelname+"DenominatorPFPt;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPt->getTH1();
            
            histoname = labelname+"_DenominatorPFPtBarrel";
            title     = labelname+"DenominatorPFPtBarrel;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFPtBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPtBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPFPtEndcap";
            title     = labelname+"DenominatorPFPtEndcap;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFPtEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPtEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPFPtForward";
            title     = labelname+"DenominatorPFPtForward;PF Pt[GeV/c]";
            MonitorElement * DenominatorPFPtForward =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPtForward->getTH1();
            
            histoname = labelname+"_DenominatorPFEta";
            title     = labelname+"DenominatorPFEta;PF #eta ";
            MonitorElement * DenominatorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta->getTH1();
            
            histoname = labelname+"_DenominatorPFPhi";
            title     = labelname+"DenominatorPFPhi;PF #Phi";
            MonitorElement * DenominatorPFPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhi->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaPhi";
            title     = labelname+"DenominatorPFEtaPhi;PF #eta ;PF #Phi ";
            MonitorElement * DenominatorPFEtaPhi =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorPFEtaPhi->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaBarrel";
            title     = labelname+"DenominatorPFEtaBarrel;PF #eta ";
            MonitorElement * DenominatorPFEtaBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEtaBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPFPhiBarrel";
            title     = labelname+"DenominatorPFPhiBarrel;PF #Phi";
            MonitorElement * DenominatorPFPhiBarrel =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhiBarrel->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaEndcap";
            title     = labelname+"DenominatorPFEtaEndcap;PF #eta ";
            MonitorElement * DenominatorPFEtaEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEtaEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPFPhiEndcap";
            title     = labelname+"DenominatorPFPhiEndcap;PF #Phi";
            MonitorElement * DenominatorPFPhiEndcap =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhiEndcap->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaForward";
            title     = labelname+"DenominatorPFEtaForward;PF #eta ";
            MonitorElement * DenominatorPFEtaForward =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEtaForward->getTH1();
            
            histoname = labelname+"_DenominatorPFPhiForward";
            title     = labelname+"DenominatorPFPhiForward;PF #Phi";
            MonitorElement * DenominatorPFPhiForward =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhiForward->getTH1();
            
            histoname = labelname+"_DenominatorPFEta_LowpTcut";
            title     = labelname+"DenominatorPFEta_LowpTcut;PF #eta ";
            MonitorElement * DenominatorPFEta_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFPhi_LowpTcut";
            title     = labelname+"DenominatorPFPhi_LowpTcut;PF #Phi";
            MonitorElement * DenominatorPFPhi_LowpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaPhi_LowpTcut";
            title     = labelname+"DenominatorPFEtaPhi_LowpTcut;PF #eta;PF #Phi";
            MonitorElement * DenominatorPFEtaPhi_LowpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorPFEtaPhi_LowpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEta_MedpTcut";
            title     = labelname+"DenominatorPFEta_MedpTcut;PF #eta ";
            MonitorElement * DenominatorPFEta_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFPhi_MedpTcut";
            title     = labelname+"DenominatorPFPhi_MedpTcut;PF #Phi";
            MonitorElement * DenominatorPFPhi_MedpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaPhi_MedpTcut";
            title     = labelname+"DenominatorPFEtaPhi_MedpTcut;PF #eta;PF #Phi";
            MonitorElement * DenominatorPFEtaPhi_MedpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorPFEtaPhi_MedpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEta_HighpTcut";
            title     = labelname+"DenominatorPFEta_HighpTcut;PF #eta ";
            MonitorElement * DenominatorPFEta_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFPhi_HighpTcut";
            title     = labelname+"DenominatorPFPhi_HighpTcut;PF #Phi";
            MonitorElement * DenominatorPFPhi_HighpTcut =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPFPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_DenominatorPFEtaPhi_HighpTcut";
            title     = labelname+"DenominatorPFEtaPhi_HighpTcut;PF #eta;PF #Phi";
            MonitorElement * DenominatorPFEtaPhi_HighpTcut =  dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Phibins_,PhiMin_,PhiMax_);
            DenominatorPFEtaPhi_HighpTcut->getTH1();
            
            histoname = labelname+"_PFDeltaR";
            title     = labelname+"PFDeltaR;";
            MonitorElement * PFDeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            PFDeltaR->getTH1();
            
            histoname = labelname+"_PFDeltaPhi";
            title     = labelname+"PFDeltaPhi;";
            MonitorElement * PFDeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),500,-5.,5.);
            PFDeltaPhi->getTH1();
            
            v->setEffHistos(NumeratorPt,
                            NumeratorPtBarrel,
                            NumeratorPtEndcap,
                            NumeratorPtForward,
                            NumeratorEta,
                            NumeratorPhi,
                            NumeratorEtaPhi,
                            //
                            NumeratorEtaBarrel,
                            NumeratorPhiBarrel,
                            NumeratorEtaEndcap,
                            NumeratorPhiEndcap,
                            NumeratorEtaForward,
                            NumeratorPhiForward,
                            NumeratorEta_LowpTcut,
                            NumeratorPhi_LowpTcut,
                            NumeratorEtaPhi_LowpTcut,
                            NumeratorEta_MedpTcut,
                            NumeratorPhi_MedpTcut,
                            NumeratorEtaPhi_MedpTcut,
                            NumeratorEta_HighpTcut,
                            NumeratorPhi_HighpTcut,
                            NumeratorEtaPhi_HighpTcut,      
                            //
                            DenominatorPt,
                            DenominatorPtBarrel,
                            DenominatorPtEndcap,
                            DenominatorPtForward,
                            DenominatorEta,
                            DenominatorPhi,
                            DenominatorEtaPhi,
                            //
                            DenominatorEtaBarrel,
                            DenominatorPhiBarrel,
                            DenominatorEtaEndcap,
                            DenominatorPhiEndcap,
                            DenominatorEtaForward,
                            DenominatorPhiForward,
                            DenominatorEta_LowpTcut,
                            DenominatorPhi_LowpTcut,
                            DenominatorEtaPhi_LowpTcut,
                            DenominatorEta_MedpTcut,
                            DenominatorPhi_MedpTcut,
                            DenominatorEtaPhi_MedpTcut,
                            DenominatorEta_HighpTcut,
                            DenominatorPhi_HighpTcut,
                            DenominatorEtaPhi_HighpTcut,
                            DeltaR,
                            DeltaPhi,
                            //
                            NumeratorPFPt,
                            NumeratorPFMHT,
                            NumeratorPFPtBarrel,
                            NumeratorPFPtEndcap,
                            NumeratorPFPtForward,
                            NumeratorPFEta,
                            NumeratorPFPhi,
                            NumeratorPFEtaPhi,
                            NumeratorPFEtaBarrel,
                            NumeratorPFPhiBarrel,
                            NumeratorPFEtaEndcap,
                            NumeratorPFPhiEndcap,
                            NumeratorPFEtaForward,
                            NumeratorPFPhiForward,
                            NumeratorPFEta_LowpTcut,
                            NumeratorPFPhi_LowpTcut,
                            NumeratorPFEtaPhi_LowpTcut,
                            NumeratorPFEta_MedpTcut,
                            NumeratorPFPhi_MedpTcut,
                            NumeratorPFEtaPhi_MedpTcut,
                            NumeratorPFEta_HighpTcut,
                            NumeratorPFPhi_HighpTcut,
                            NumeratorPFEtaPhi_HighpTcut,      
                            DenominatorPFPt,
                            DenominatorPFMHT,
                            DenominatorPFPtBarrel,
                            DenominatorPFPtEndcap,
                            DenominatorPFPtForward,
                            DenominatorPFEta,
                            DenominatorPFPhi,
                            DenominatorPFEtaPhi,
                            DenominatorPFEtaBarrel,
                            DenominatorPFPhiBarrel,
                            DenominatorPFEtaEndcap,
                            DenominatorPFPhiEndcap,
                            DenominatorPFEtaForward,
                            DenominatorPFPhiForward,
                            DenominatorPFEta_LowpTcut,
                            DenominatorPFPhi_LowpTcut,
                            DenominatorPFEtaPhi_LowpTcut,
                            DenominatorPFEta_MedpTcut,
                            DenominatorPFPhi_MedpTcut,
                            DenominatorPFEtaPhi_MedpTcut,
                            DenominatorPFEta_HighpTcut,
                            DenominatorPFPhi_HighpTcut,
                            DenominatorPFEtaPhi_HighpTcut,
                            PFDeltaR,
                            PFDeltaPhi
                            );
            
          }// Loop over Jet Trigger
          
          if((v->getObjectType() == trigger::TriggerJet) && (v->getTriggerType().compare("DiJet_Trigger") == 0)){
            
            histoname = labelname+"_NumeratorAvrgPt";
            title     = labelname+"NumeratorAvrgPt;Calo Pt[GeV/c] ";
            MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPt->getTH1();
            
            histoname = labelname+"_NumeratorAvrgEta";
            title     = labelname+"NumeratorAvrgEta;Calo #eta ";
            MonitorElement * NumeratorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorEta->getTH1();
            
            histoname = labelname+"_DenominatorAvrgPt";
            title     = labelname+"DenominatorAvrgPt;Calo Pt[GeV/c] ";
            MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPt->getTH1();
            
            histoname = labelname+"_DenominatorAvrgEta";
            title     = labelname+"DenominatorAvrgEta;Calo #eta ";
            MonitorElement * DenominatorEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorEta->getTH1();
            
            histoname = labelname+"_DeltaR";
            title     = labelname+"DeltaR;";
            MonitorElement * DeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            DeltaR->getTH1();
            
            histoname = labelname+"_DeltaPhi";
            title     = labelname+"DeltaPhi;";
            MonitorElement * DeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            DeltaPhi->getTH1();
            
            histoname = labelname+"_NumeratorAvrgPFPt";
            title     = labelname+"NumeratorAvrgPFPt;PF pT [GeV/c] ";
            MonitorElement * NumeratorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPFPt->getTH1();
            
            histoname = labelname+"_NumeratorAvrgPFEta";
            title     = labelname+"NumeratorAvrgPFEta;PF #eta ";
            MonitorElement * NumeratorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            NumeratorPFEta->getTH1();
            
            histoname = labelname+"_DenominatorAvrgPFPt";
            title     = labelname+"DenominatorAvrgPFPt;PF Pt[GeV/c] ";
            MonitorElement * DenominatorPFPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPFPt->getTH1();
            
            histoname = labelname+"_DenominatorAvrgPFEta";
            title     = labelname+"DenominatorAvrgPFEta;PF #eta ";
            MonitorElement * DenominatorPFEta =  dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
            DenominatorPFEta->getTH1();
            
            histoname = labelname+"_PFDeltaR";
            title     = labelname+"PFDeltaR;";
            MonitorElement * PFDeltaR =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            PFDeltaR->getTH1();
            
            histoname = labelname+"_PFDeltaPhi";
            title     = labelname+"PFDeltaPhi;";
            MonitorElement * PFDeltaPhi =  dbe->book1D(histoname.c_str(),title.c_str(),100,0.,1.5);
            PFDeltaPhi->getTH1();
            
            v->setEffHistos(  dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy
                              );
          }
          
          if(v->getObjectType() == trigger::TriggerMET || (v->getObjectType() == trigger::TriggerTET)){
            
            histoname = labelname+"_NumeratorPt";
            if(v->getPath().find("HLT_PFMET")==std::string::npos)
              title     = labelname+"NumeratorPt;CaloMET[GeV/c]";
            else
              title     = labelname+"NumeratorPt;PFMET[GeV/c]";
            MonitorElement * NumeratorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            NumeratorPt->getTH1();
            
            histoname = labelname+"_NumeratorPhi";
            title     = labelname+"NumeratorPhi;#Phi";
            MonitorElement * NumeratorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            NumeratorPhi->getTH1();
            
            histoname = labelname+"_DenominatorPt"; 
            if(v->getPath().find("HLT_PFMET")==std::string::npos)
              title     = labelname+"DenominatorPt;CaloMET[GeV/c]";
            else
              title     = labelname+"DenominatorPt;PFMET[GeV/c]";
            MonitorElement * DenominatorPt =  dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
            DenominatorPt->getTH1();
            
            histoname = labelname+"_DenominatorPhi";
            title     = labelname+"DenominatorPhi;#Phi";
            MonitorElement * DenominatorPhi =  dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
            DenominatorPhi->getTH1();

            v->setEffHistos(  NumeratorPt, dummy, dummy, dummy, dummy, NumeratorPhi, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, DenominatorPt, dummy, dummy, dummy, dummy, DenominatorPhi, dummy, dummy, 
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, 
                              dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy, dummy,
                              dummy, dummy, dummy, dummy
                              );
          }// Loop over MET trigger
        }
      }
      
    }// This is loop over all efficiency plots
    
    
    if(runStandalone_){
      //--------Histos to see WHY trigger is NOT fired----------
      int Nbins_       = 10;
      int Nmin_        = 0;
      int Nmax_        = 10;
      int Ptbins_      = 1000;
      int Etabins_     = 40;
      int Phibins_     = 35;
      double PtMin_    = 0.;
      double PtMax_    = 1000.;
      double EtaMin_   = -5.;
      double EtaMax_   =  5.;
      double PhiMin_   = -3.14159;
      double PhiMax_   =  3.14159;
      
      std::string dirName4_ = dirname_ + "/TriggerNotFired/";
      for(PathInfoCollection::iterator v = hltPathsAll_.begin(); v!= hltPathsAll_.end(); ++v ){
        
        MonitorElement *dummy;
        dummy =  dbe->bookFloat("dummy");
        
        std::string labelname("ME") ;
        std::string histoname(labelname+"");
        std::string title(labelname+"");
        dbe->setCurrentFolder(dirName4_ + v->getPath());
        
        histoname = labelname+"_TriggerSummary";
        title     = labelname+"Summary of trigger levels"; 
        MonitorElement * TriggerSummary = dbe->book1D(histoname.c_str(),title.c_str(),7, -0.5,6.5);
        
        std::vector<std::string> trigger;
        trigger.push_back("Nevt");
        trigger.push_back("L1 failed");
        trigger.push_back("L1 & HLT failed");
        trigger.push_back("L1 failed but not HLT");
        trigger.push_back("L1 passed");
        trigger.push_back("L1 & HLT passed");
        trigger.push_back("L1 passed but not HLT");
        
        for(unsigned int i =0; i < trigger.size(); i++)
          TriggerSummary->setBinLabel(i+1, trigger[i]);
        
        if((v->getTriggerType().compare("SingleJet_Trigger") == 0)){
          histoname = labelname+"_JetPt"; 
          title     = labelname+"Leading jet pT;Pt[GeV/c]";
          MonitorElement * JetPt = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          JetPt->getTH1();
          
          histoname = labelname+"_JetEtaVsPt";
          title     = labelname+"Leading jet #eta vs pT;#eta;Pt[GeV/c]";
          MonitorElement * JetEtaVsPt = dbe->book2D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_,Ptbins_,PtMin_,PtMax_);
          JetEtaVsPt->getTH1();
          
          histoname = labelname+"_JetPhiVsPt";
          title     = labelname+"Leading jet #Phi vs pT;#Phi;Pt[GeV/c]";
          MonitorElement * JetPhiVsPt = dbe->book2D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_,Ptbins_,PtMin_,PtMax_);
          JetPhiVsPt->getTH1();
          
          v->setDgnsHistos( TriggerSummary, dummy, JetPt, JetEtaVsPt, JetPhiVsPt, dummy, dummy, dummy, dummy, dummy, dummy); 
        }// single Jet trigger  
        
        if((v->getTriggerType().compare("DiJet_Trigger") == 0)){
          histoname = labelname+"_JetSize"; 
          title     = labelname+"Jet Size;multiplicity";
          MonitorElement * JetSize = dbe->book1D(histoname.c_str(),title.c_str(),Nbins_,Nmin_,Nmax_);
          JetSize->getTH1();
        
          histoname = labelname+"_AvergPt";
          title     = labelname+"Average Pt;Pt[GeV/c]";
          MonitorElement * Pt12 = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt12->getTH1();
          
          histoname = labelname+"_AvergEta";
          title     = labelname+"Average Eta;#eta";
          MonitorElement * Eta12 = dbe->book1D(histoname.c_str(),title.c_str(),Etabins_,EtaMin_,EtaMax_);
          Eta12->getTH1();
          
          histoname = labelname+"_PhiDifference";
          title     = labelname+"#Delta#Phi;#Delta#Phi";
          MonitorElement * Phi12 = dbe->book1D(histoname.c_str(),title.c_str(),Phibins_,PhiMin_,PhiMax_);
          Phi12->getTH1();
          
          histoname = labelname+"_Pt3Jet";
          title     = labelname+"Pt of 3rd Jet;Pt[GeV/c]";
          MonitorElement * Pt3 = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          Pt3->getTH1();
          
          histoname = labelname+"_Pt12VsPt3Jet";
          title     = labelname+"Pt of 3rd Jet vs Average Pt of leading jets;Avergage Pt[GeV/c]; Pt of 3rd Jet [GeV/c]";
          MonitorElement * Pt12Pt3 = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Ptbins_,PtMin_,PtMax_);
          Pt12Pt3->getTH1();
          
          histoname = labelname+"_Pt12VsPhi12";
          title     = labelname+"Average Pt of leading jets vs #Delta#Phi between leading jets;Avergage Pt[GeV/c]; #Delta#Phi";
          MonitorElement * Pt12Phi12 = dbe->book2D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_,Phibins_,PhiMin_,PhiMax_);
          Pt12Phi12->getTH1();
          
          v->setDgnsHistos( TriggerSummary, JetSize, dummy, dummy, dummy, Pt12, Eta12, Phi12, Pt3, Pt12Pt3, Pt12Phi12);
        }// Dijet Jet trigger
        
        if((v->getTriggerType().compare("MET_Trigger") == 0)){
          histoname = labelname+"_MET";
          title     = labelname+"MET;Pt[GeV/c]";
          MonitorElement * MET = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          MET->getTH1();
          
          v->setDgnsHistos(TriggerSummary, dummy, MET, dummy, dummy, dummy, dummy, dummy,dummy,dummy,dummy);
        } // MET trigger  
        
        if((v->getTriggerType().compare("TET_Trigger") == 0)){
          histoname = labelname+"_TET";
          title     = labelname+"TET;Pt[GeV/c]";
          MonitorElement * TET = dbe->book1D(histoname.c_str(),title.c_str(),Ptbins_,PtMin_,PtMax_);
          TET->getTH1();
          
          v->setDgnsHistos(TriggerSummary, dummy, TET, dummy, dummy, dummy, dummy, dummy,dummy,dummy,dummy);
        } // TET trigger  
      }
    }//runStandalone
  }  
}
void JetMETHLTOfflineSource::endJob ( void  ) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 6300 of file JetMETHLTOfflineSource.cc.

References jetID.

                               {
  delete jetID;
}
void JetMETHLTOfflineSource::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
) [private, virtual]

DQM Client Diagnostic.

Reimplemented from edm::EDAnalyzer.

Definition at line 6272 of file JetMETHLTOfflineSource.cc.

                                                                           {
}
void JetMETHLTOfflineSource::endRun ( const edm::Run run,
const edm::EventSetup c 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 6305 of file JetMETHLTOfflineSource.cc.

References gather_cfg::cout, edm::RunBase::id(), and verbose_.

                                                                            {
  if (verbose_) std::cout << "endRun, run " << run.id() << std::endl;
}
void JetMETHLTOfflineSource::fillMEforEffAllTrigger ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Definition at line 1148 of file JetMETHLTOfflineSource.cc.

References _fEMF, _feta, _fHPD, _max_CEMF, _max_CHEF, _max_NEMF, _max_NHEF, _min_CEMF, _min_CHEF, _min_NEMF, _min_NHEF, _n90Hits, _pfMHT, abs, calojet, calojetColl_, CaloJetEMF, CaloJetEta, CaloJetfHPD, CaloJetn90, CaloJetPhi, CaloJetPt, calometColl_, gather_cfg::cout, SiPixelRawToDigiRegional_cfi::deltaPhi, deltaR(), dPhi(), PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, reco::LeafCandidate::et(), eta, hltPathsEff_, patRefSel_triggerSelection_cff::hltTag, isBarrel(), isEndCap(), isForward(), edm::HandleBase::isValid(), patRefSel_triggerSelection_cff::l1Tag, CaloMET_cfi::met, pfjet, PFJetCEMF, PFJetCHEF, pfjetColl_, PFJetEta, PFJetNEMF, PFJetNHEF, PFJetPhi, PFJetPt, pfmetColl_, pfMHTx_All, pfMHTy_All, reco::LeafCandidate::phi(), phi, processname_, edm::Handle< T >::product(), edm::TriggerNames::size(), mathSSE::sqrt(), edm::TriggerNames::triggerIndex(), trigger::TriggerJet, trigger::TriggerMET, triggerNames_, triggerObj_, triggerResults_, trigger::TriggerTET, v, and verbose_.

Referenced by analyze().

{
  //int npath;
  if(&triggerResults_){ /*npath = triggerResults_->size();*/ } 
  else return;
  
  int  num         = -1;
  int  denom       = -1;
  bool denompassed = false;
  bool numpassed   = false; 
  const trigger::TriggerObjectCollection & toc(triggerObj_->getObjects());

  for(PathInfoCollection::iterator v = hltPathsEff_.begin(); v!= hltPathsEff_.end(); ++v ){
    num++;
    denom++;
    denompassed = false;
    numpassed   = false; 
    
    unsigned indexNum = triggerNames_.triggerIndex(v->getPath());
    unsigned indexDenom = triggerNames_.triggerIndex(v->getDenomPath());
    
    if(indexNum   < triggerNames_.size() && triggerResults_->accept(indexNum))   numpassed   = true;
    if(indexDenom < triggerNames_.size() && triggerResults_->accept(indexDenom)) denompassed = true;

    if(denompassed==false) continue;
    
    //if(numpassed==true){
    edm::InputTag hltTag(v->getLabel(),"",processname_);
    const int hltIndex = triggerObj_->filterIndex(hltTag);
    edm::InputTag l1Tag(v->getl1Path(),"",processname_);
    const int l1Index = triggerObj_->filterIndex(l1Tag);
    //}
    
    //----------------------------------------------------------------------
    //double pTcut = 0;
    double trigLowpTcut = 0;
    double trigMedpTcut = 0;
    double trigHighpTcut = 0;
    double trigLowpTcutFwd = 0;
    double trigMedpTcutFwd = 0;
    double trigHighpTcutFwd = 0;
    //
    //double pTPFcut = 0 ;
    double trigLowpTPFcut = 0;
    double trigMedpTPFcut = 0;
    double trigHighpTPFcut = 0;
    double trigLowpTPFcutFwd = 0;
    double trigMedpTPFcutFwd = 0;
    double trigHighpTPFcutFwd = 0;
    //
    //cout<<"pre-path" << v->getPath()<<endl;
    size_t jetstrfound = v->getPath().find("Jet");
    //size_t censtrfound = v->getPath().find("Central"); //shoouldn't be needed?
    string tpath = v->getPath();
    string jetTrigVal;
    float jetVal = 0.;
    //
    if(jetstrfound != string::npos){// && ustrfound != string::npos ){
      //cout<<v->getPath()<<endl;
      for(int trig = int(jetstrfound)+3; trig < int(jetstrfound)+7; trig++){// int(ustrfound); trig++){
        if(!isdigit(tpath[trig])) break;
        jetTrigVal+=tpath[trig];
      }
      char *cjetTrigVal = (char*)jetTrigVal.c_str();
      jetVal=atof(cjetTrigVal);
      //
      if(jetVal>0.){
        if(jetVal<50.){
          //pTcut = jetVal / 2.;
          trigMedpTcut  = jetVal + 5.;  
          trigHighpTcut = jetVal + 10.;
          //
          trigLowpTcutFwd = jetVal + 9.;
          trigMedpTcutFwd = jetVal + 15.;
          trigHighpTcutFwd = jetVal + 21.;
        }
        else{
          //pTcut = jetVal - 20. ;
          trigMedpTcut = jetVal + 2.; 
          trigHighpTcut = jetVal + 60.;
          //
          trigLowpTcutFwd = jetVal + 22.;
          trigMedpTcutFwd = jetVal + 25.;
          trigHighpTcutFwd = jetVal + 110.;
        }
        trigLowpTcut = jetVal;
      }
      //
      if(jetVal>0.){
        if(jetVal<50.){
          //pTPFcut = jetVal ;
          trigMedpTPFcut  = jetVal + 20.;  
          trigHighpTPFcut = jetVal + 40.;
          //
          trigLowpTPFcutFwd = jetVal + 60.;
          trigMedpTPFcutFwd = jetVal + 80.;
          trigHighpTPFcutFwd = jetVal + 100.;
        }
        else{
          //pTPFcut = jetVal  ;
          trigMedpTPFcut = jetVal + 40.; 
          trigHighpTPFcut = jetVal + 140.;
          //
          trigLowpTPFcutFwd = jetVal + 110.;
          trigMedpTPFcutFwd = jetVal + 130.;
          trigHighpTPFcutFwd = jetVal + 190.;
        }
        trigLowpTPFcut = jetVal;
      }
    }
    //----------------------------------------------------------------------
    
    //CaloJet paths   
    if(verbose_) std::cout << "fillMEforEffAllTrigger: CaloJet -------------------" << std::endl;
    if(calojetColl_.isValid() && (v->getObjectType() == trigger::TriggerJet)){
      //cout<<"   - CaloJet "<<endl;
      //&& (v->getPath().find("HLT_PFJet")==std::string::npos)
      //&& (v->getPath().find("HLT_DiPFJet")==std::string::npos)){
      bool jetIDbool = false;
      double leadjpt  = CaloJetPt[0];  
      double leadjeta = CaloJetEta[0];
      double leadjphi = CaloJetPhi[0];
      //double ljemf    = CaloJetEMF[0];
      double ljfhpd   = CaloJetfHPD[0];
      double ljn90    = CaloJetn90[0];
      if((v->getTriggerType().compare("SingleJet_Trigger") == 0) && calojet.size()){ //this line stops the central jets
        if( (ljfhpd < _fHPD) && (ljn90 > _n90Hits )){
          if(verbose_) cout<<"Passed CaloJet ID -------------------" << endl;
          jetIDbool = true;
          //Denominator fill
          v->getMEhisto_DenominatorPt()->Fill(leadjpt);
          if (isBarrel(leadjeta))  v->getMEhisto_DenominatorPtBarrel()->Fill(leadjpt);
          if (isEndCap(leadjeta))  v->getMEhisto_DenominatorPtEndcap()->Fill(leadjpt);
          if (isForward(leadjeta)) v->getMEhisto_DenominatorPtForward()->Fill(leadjpt);
          v->getMEhisto_DenominatorEta()->Fill(leadjeta);
          v->getMEhisto_DenominatorPhi()->Fill(leadjphi);
          v->getMEhisto_DenominatorEtaPhi()->Fill(leadjeta,leadjphi);
          if (isBarrel(leadjeta)){
            v->getMEhisto_DenominatorEtaBarrel()->Fill(leadjeta);
            v->getMEhisto_DenominatorPhiBarrel()->Fill(leadjphi);
          }
          if (isEndCap(leadjeta)){
            v->getMEhisto_DenominatorEtaEndcap()->Fill(leadjeta);
            v->getMEhisto_DenominatorPhiEndcap()->Fill(leadjphi);
          }
          if (isForward(leadjeta)){
            v->getMEhisto_DenominatorEtaForward()->Fill(leadjeta);
            v->getMEhisto_DenominatorPhiForward()->Fill(leadjphi);
          }
          if((leadjpt > trigLowpTcut && !isForward(leadjeta)) || (leadjpt > trigLowpTcutFwd && isForward(leadjeta))){
            v->getMEhisto_DenominatorEta_LowpTcut()->Fill(leadjeta);
            v->getMEhisto_DenominatorPhi_LowpTcut()->Fill(leadjphi);
            v->getMEhisto_DenominatorEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
          }
          if((leadjpt > trigMedpTcut && !isForward(leadjeta)) || (leadjpt > trigMedpTcutFwd && isForward(leadjeta))){
            v->getMEhisto_DenominatorEta_MedpTcut()->Fill(leadjeta);
            v->getMEhisto_DenominatorPhi_MedpTcut()->Fill(leadjphi);
            v->getMEhisto_DenominatorEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
          }
          if((leadjpt > trigHighpTcut && !isForward(leadjeta)) || (leadjpt > trigHighpTcutFwd && isForward(leadjeta))){
            v->getMEhisto_DenominatorEta_HighpTcut()->Fill(leadjeta);
            v->getMEhisto_DenominatorPhi_HighpTcut()->Fill(leadjphi);
            v->getMEhisto_DenominatorEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
          }
          
          //Numerator fill
          if(numpassed){
            //
            double dRmin = 99999.;
            double dPhimin = 9999.;
            if(v->getPath().find("L1") != std::string::npos){ 
              if ( l1Index >= triggerObj_->sizeFilters() ) {
                edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
              } 
              else {
                const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
                for(trigger::Keys::const_iterator ki = kl1.begin();ki != kl1.end(); ++ki){
                  double dR = deltaR(toc[*ki].eta(), toc[*ki].phi(), leadjeta, leadjphi);
                  if(dR < dRmin){
                    dRmin = dR;
                  } 
                } 
              } 
            } 
            else{
              if ( hltIndex >= triggerObj_->sizeFilters() ) {
                edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
              } 
              else {    
                const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
                trigger::Keys::const_iterator kj = khlt.begin();
                for(;kj != khlt.end(); ++kj){
                  double dR = deltaR(toc[*kj].eta(), toc[*kj].phi(), 
                                     leadjeta, leadjphi);
                  if(dR < dRmin){
                    dRmin = dR;
                  }
                  double dPhi = deltaPhi(toc[*kj].phi(), leadjphi);
                  if(dPhi < dPhimin){
                    dPhimin = dPhi;
                  }
                }   
                //v->getMEhisto_DeltaPhi()->Fill(dPhimin);
                v->getMEhisto_DeltaPhi()->Fill(dPhimin);
                v->getMEhisto_DeltaR()->Fill(dRmin);
              }
            }
            if(dRmin < 0.1 || (v->getPath().find("L1") != std::string::npos && dRmin < 0.4)){
              v->getMEhisto_NumeratorPt()->Fill(leadjpt);
              if (isBarrel(leadjeta))  v->getMEhisto_NumeratorPtBarrel()->Fill(leadjpt);
              if (isEndCap(leadjeta))  v->getMEhisto_NumeratorPtEndcap()->Fill(leadjpt);
              if (isForward(leadjeta)) v->getMEhisto_NumeratorPtForward()->Fill(leadjpt);
              v->getMEhisto_NumeratorEta()->Fill(leadjeta);
              v->getMEhisto_NumeratorPhi()->Fill(leadjphi);
              v->getMEhisto_NumeratorEtaPhi()->Fill(leadjeta,leadjphi);
              if (isBarrel(leadjeta)){
                v->getMEhisto_NumeratorEtaBarrel()->Fill(leadjeta);
                v->getMEhisto_NumeratorPhiBarrel()->Fill(leadjphi);
              }
              if (isEndCap(leadjeta)){
                v->getMEhisto_NumeratorEtaEndcap()->Fill(leadjeta);
                v->getMEhisto_NumeratorPhiEndcap()->Fill(leadjphi);
              }
              if (isForward(leadjeta)){
                v->getMEhisto_NumeratorEtaForward()->Fill(leadjeta);
                v->getMEhisto_NumeratorPhiForward()->Fill(leadjphi);
              }
              if((leadjpt > trigLowpTcut && !isForward(leadjeta)) || (leadjpt > trigLowpTcutFwd && isForward(leadjeta))){
                v->getMEhisto_NumeratorEta_LowpTcut()->Fill(leadjeta);
                v->getMEhisto_NumeratorPhi_LowpTcut()->Fill(leadjphi);
                v->getMEhisto_NumeratorEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
              }
              if((leadjpt > trigMedpTcut && !isForward(leadjeta)) || (leadjpt > trigMedpTcutFwd && isForward(leadjeta))){
                v->getMEhisto_NumeratorEta_MedpTcut()->Fill(leadjeta);
                v->getMEhisto_NumeratorPhi_MedpTcut()->Fill(leadjphi);
                v->getMEhisto_NumeratorEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
              }
              if((leadjpt > trigHighpTcut && !isForward(leadjeta)) || (leadjpt > trigHighpTcutFwd && isForward(leadjeta))){
                v->getMEhisto_NumeratorEta_HighpTcut()->Fill(leadjeta);
                v->getMEhisto_NumeratorPhi_HighpTcut()->Fill(leadjphi);
                v->getMEhisto_NumeratorEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
              }
            }
          }//numpassed
        }//CalojetID filter
      }
      
      if(jetIDbool == true && (v->getTriggerType().compare("DiJet_Trigger") == 0) && calojet.size()>1){
        if(((CaloJetEMF[1] > _fEMF || std::abs(CaloJetEta[1]) > _feta) && 
            CaloJetfHPD[0] < _fHPD && CaloJetn90[0] > _n90Hits)){
          v->getMEhisto_DenominatorPt()->Fill((CaloJetPt[0] + CaloJetPt[1])/2.);
          v->getMEhisto_DenominatorEta()->Fill((CaloJetEta[0] + CaloJetEta[1])/2.); 
          if(numpassed==true){
            v->getMEhisto_NumeratorPt()->Fill((CaloJetPt[0] + CaloJetPt[1])/2.);
            v->getMEhisto_NumeratorEta()->Fill((CaloJetEta[0] + CaloJetEta[1])/2.);
          }
        }
      }
    }// Jet trigger and valid jet collection
    
    //PFJet paths
    if(verbose_) std::cout << "fillMEforEffAllTrigger: PFJet -------------------" << std::endl;
    if(pfjetColl_.isValid() && (v->getObjectType() == trigger::TriggerJet)){
      //cout<<"   - PFJet "<<endl;
      //&& (v->getPath().find("HLT_PFJet")!=std::string::npos)
      //&& (v->getPath().find("HLT_DiPFJet")!=std::string::npos)){
      bool jetIDbool = false;
      double leadjpt   = PFJetPt[0]; 
      double leadjeta  = PFJetEta[0];
      double leadjphi  = PFJetPhi[0];
      double ljNHEF    = PFJetNHEF[0];
      double ljCHEF    = PFJetCHEF[0];
      double ljNEMF    = PFJetNEMF[0];
      double ljCEMF    = PFJetCEMF[0];
      //double sleadjpt  = PFJetPt[1];
      //double sleadjeta = PFJetEta[1];
      //double sleadjphi = PFJetPhi[1];
      double sljNHEF   = PFJetNHEF[1];
      double sljCHEF   = PFJetCHEF[1];
      double sljNEMF   = PFJetNEMF[1];
      double sljCEMF   = PFJetCEMF[1];
      //
      double pfMHTx    = pfMHTx_All;
      double pfMHTy    = pfMHTy_All;
      //
      if((v->getTriggerType().compare("SingleJet_Trigger") == 0) && pfjet.size()){ //this line stops the central jets
        
        //======get pfmht
        _pfMHT = sqrt(pfMHTx*pfMHTx + pfMHTy*pfMHTy);
        v->getMEhisto_DenominatorPFMHT()->Fill(_pfMHT);
        
        if( ljNHEF >= _min_NHEF && ljNHEF <= _max_NHEF
            && ljCHEF >= _min_CHEF && ljCHEF <= _max_CHEF
            && ljNEMF >= _min_NEMF && ljNEMF <= _max_NEMF
            && ljCEMF >= _min_CEMF && ljCEMF <= _max_CEMF){
          if(verbose_) cout<<"Passed PFJet ID -------------------" << endl;
          jetIDbool = true;
          v->getMEhisto_DenominatorPFPt()->Fill(leadjpt);
          if (isBarrel(leadjeta))  v->getMEhisto_DenominatorPFPtBarrel()->Fill(leadjpt);
          if (isEndCap(leadjeta))  v->getMEhisto_DenominatorPFPtEndcap()->Fill(leadjpt);
          if (isForward(leadjeta)) v->getMEhisto_DenominatorPFPtForward()->Fill(leadjpt);
          v->getMEhisto_DenominatorPFEta()->Fill(leadjeta);
          v->getMEhisto_DenominatorPFPhi()->Fill(leadjphi);
          v->getMEhisto_DenominatorPFEtaPhi()->Fill(leadjeta,leadjphi);
          if(isBarrel(leadjeta)){
            v->getMEhisto_DenominatorPFEtaBarrel()->Fill(leadjeta);
            v->getMEhisto_DenominatorPFPhiBarrel()->Fill(leadjphi);
          }
          if (isEndCap(leadjeta)){
            v->getMEhisto_DenominatorPFEtaEndcap()->Fill(leadjeta);
            v->getMEhisto_DenominatorPFPhiEndcap()->Fill(leadjphi);
          }
          if (isForward(leadjeta)){
            v->getMEhisto_DenominatorPFEtaForward()->Fill(leadjeta);
            v->getMEhisto_DenominatorPFPhiForward()->Fill(leadjphi);
          }
          if((leadjpt > trigLowpTPFcut && !isForward(leadjeta)) || (leadjpt > trigLowpTPFcutFwd && isForward(leadjeta))){
            v->getMEhisto_DenominatorPFEta_LowpTcut()->Fill(leadjeta);
            v->getMEhisto_DenominatorPFPhi_LowpTcut()->Fill(leadjphi);
            v->getMEhisto_DenominatorPFEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
          }
          if((leadjpt > trigMedpTPFcut && !isForward(leadjeta)) || (leadjpt > trigMedpTPFcutFwd && isForward(leadjeta))){
            v->getMEhisto_DenominatorPFEta_MedpTcut()->Fill(leadjeta);
            v->getMEhisto_DenominatorPFPhi_MedpTcut()->Fill(leadjphi);
            v->getMEhisto_DenominatorPFEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
          }
          if((leadjpt > trigHighpTPFcut && !isForward(leadjeta)) || (leadjpt > trigHighpTPFcutFwd && isForward(leadjeta))){
            v->getMEhisto_DenominatorPFEta_HighpTcut()->Fill(leadjeta);
            v->getMEhisto_DenominatorPFPhi_HighpTcut()->Fill(leadjphi);
            v->getMEhisto_DenominatorPFEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
          }
          
          //Numerator fill
          if(numpassed){
            double dRmin = 99999.;
            double dPhimin = 9999.;
            if(v->getPath().find("L1") != std::string::npos){ 
              if ( l1Index >= triggerObj_->sizeFilters() ) {
                edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
              } 
              else{    
                const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
                for(trigger::Keys::const_iterator ki = kl1.begin();ki != kl1.end(); ++ki){      
                  double dR = deltaR(toc[*ki].eta(), toc[*ki].phi(), leadjeta, leadjphi);
                  if(dR < dRmin){
                    dRmin = dR;
                  } 
                } 
              }                
            } 
            else{
              if ( hltIndex >= triggerObj_->sizeFilters() ) {
                edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
              } 
              else{    
                const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
                for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){      
                  double dR = deltaR(toc[*kj].eta(), toc[*kj].phi(), leadjeta, leadjphi);
                  if(dR < dRmin){
                    dRmin = dR;
                  } 
                  double dPhi = deltaPhi(toc[*kj].phi(), leadjphi);
                  if(dPhi < dPhimin){
                    dPhimin = dPhi;
                  }
                }  
                v->getMEhisto_PFDeltaPhi()->Fill(dPhimin);
                v->getMEhisto_PFDeltaR()->Fill(dRmin);
              }  
            }
            if(dRmin < 0.1 || (v->getPath().find("L1") != std::string::npos && dRmin < 0.4)){
              v->getMEhisto_NumeratorPFPt()->Fill(leadjpt);
              if (isBarrel(leadjeta))  v->getMEhisto_NumeratorPFPtBarrel()->Fill(leadjpt);
              if (isEndCap(leadjeta))  v->getMEhisto_NumeratorPFPtEndcap()->Fill(leadjpt);
              if (isForward(leadjeta)) v->getMEhisto_NumeratorPFPtForward()->Fill(leadjpt);
              v->getMEhisto_NumeratorPFEta()->Fill(leadjeta);
              v->getMEhisto_NumeratorPFPhi()->Fill(leadjphi);
              v->getMEhisto_NumeratorPFEtaPhi()->Fill(leadjeta,leadjphi);
              if (isBarrel(leadjeta)){
                v->getMEhisto_NumeratorPFEtaBarrel()->Fill(leadjeta);
                v->getMEhisto_NumeratorPFPhiBarrel()->Fill(leadjphi);
              }
              if (isEndCap(leadjeta)){
                v->getMEhisto_NumeratorPFEtaEndcap()->Fill(leadjeta);
                v->getMEhisto_NumeratorPFPhiEndcap()->Fill(leadjphi);
              }
              if (isForward(leadjeta)){
                v->getMEhisto_NumeratorPFEtaForward()->Fill(leadjeta);
                v->getMEhisto_NumeratorPFPhiForward()->Fill(leadjphi);
              }
              if((leadjpt > trigLowpTPFcut && !isForward(leadjeta)) 
                 || (leadjpt > trigLowpTPFcutFwd && isForward(leadjeta))){
                v->getMEhisto_NumeratorPFEta_LowpTcut()->Fill(leadjeta);
                v->getMEhisto_NumeratorPFPhi_LowpTcut()->Fill(leadjphi);
                v->getMEhisto_NumeratorPFEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
              }
              if((leadjpt > trigMedpTPFcut && !isForward(leadjeta)) 
                 || (leadjpt > trigMedpTPFcutFwd && isForward(leadjeta))){
                v->getMEhisto_NumeratorPFEta_MedpTcut()->Fill(leadjeta);
                v->getMEhisto_NumeratorPFPhi_MedpTcut()->Fill(leadjphi);
                v->getMEhisto_NumeratorPFEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
              }
              if((leadjpt > trigHighpTPFcut && !isForward(leadjeta)) 
                 || (leadjpt > trigHighpTPFcutFwd && isForward(leadjeta))){
                v->getMEhisto_NumeratorPFEta_HighpTcut()->Fill(leadjeta);
                v->getMEhisto_NumeratorPFPhi_HighpTcut()->Fill(leadjphi);
                v->getMEhisto_NumeratorPFEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
              }
            }
          }
        }
      }
      if(jetIDbool == true && (v->getTriggerType().compare("DiJet_Trigger") == 0) && pfjet.size()>1){
        if( ljNHEF     >= _min_NHEF && ljNHEF  <= _max_NHEF
            && ljCHEF  >= _min_CHEF && ljCHEF  <= _max_CHEF
            && ljNEMF  >= _min_NEMF && ljNEMF  <= _max_NEMF
            && ljCEMF  >= _min_CEMF && ljCEMF  <= _max_CEMF 
            && sljNHEF >= _min_NHEF && sljNHEF <= _max_NHEF
            && sljCHEF >= _min_CHEF && sljCHEF <= _max_CHEF
            && sljNEMF >= _min_NEMF && sljNEMF <= _max_NEMF
            && sljCEMF >= _min_CEMF && sljCEMF <= _max_CEMF ){
          v->getMEhisto_DenominatorPFPt()->Fill((PFJetPt[0] + PFJetPt[1])/2.);
          v->getMEhisto_DenominatorPFEta()->Fill((PFJetEta[0] + PFJetEta[1])/2.);
          if(numpassed){
            v->getMEhisto_NumeratorPFPt()->Fill((PFJetPt[0] + PFJetPt[1])/2.);
            v->getMEhisto_NumeratorPFEta()->Fill((PFJetEta[0] + PFJetEta[1])/2.);
          }
        }
      }
    }// PF Jet trigger and valid jet collection
    
    //CaloMET path
    if(verbose_) std::cout << "fillMEforEffAllTrigger: CaloMET -------------------" << std::endl;
    if(calometColl_.isValid() 
       && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
       && (v->getPath().find("HLT_PFMET")==std::string::npos)){
      const CaloMETCollection *calometcol = calometColl_.product();
      const CaloMET met = calometcol->front();
      v->getMEhisto_DenominatorPt()->Fill(met.et());
      v->getMEhisto_DenominatorPhi()->Fill(met.phi()); 
      if(numpassed){
        v->getMEhisto_NumeratorPt()->Fill(met.et());
        v->getMEhisto_NumeratorPhi()->Fill(met.phi());
        if(hltIndex >= triggerObj_->sizeFilters()){
          edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
        } 
        else{
          double dPhimin = 9999.;//
          const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
          for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){
            double dPhi = deltaPhi(toc[*kj].phi(), met.phi());
            if(dPhi < dPhimin){
              dPhimin = dPhi;
            }
          }  
          v->getMEhisto_DeltaPhi()->Fill(dPhimin);
        }
      } 
    }
    
    //PFMET
    if(verbose_) std::cout << "fillMEforEffAllTrigger: PFMET -------------------" << std::endl;
    if(pfmetColl_.isValid() 
       && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
       && (v->getPath().find("HLT_PFMET")!=std::string::npos)){
      const PFMETCollection *pfmetcol = pfmetColl_.product();
      const PFMET met = pfmetcol->front();
      v->getMEhisto_DenominatorPt()->Fill(met.et());
      v->getMEhisto_DenominatorPhi()->Fill(met.phi()); 
      if(numpassed){
        v->getMEhisto_NumeratorPt()->Fill(met.et());
        v->getMEhisto_NumeratorPhi()->Fill(met.phi());
        if(hltIndex >= triggerObj_->sizeFilters()){
          edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
        } 
        else{
          double dPhimin = 9999.;//
          const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
          for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){
            double dPhi = deltaPhi(toc[*kj].phi(), met.phi());
            if(dPhi < dPhimin){
              dPhimin = dPhi;
            }
          }  
          v->getMEhisto_DeltaPhi()->Fill(dPhimin);
        }
      } 
    }
    
    /*
      if(pfmhtColl_.isValid() && ((v->getObjectType() == trigger::TriggerMET)|| (v->getObjectType() == trigger::TriggerTET))){
      const PFMHTCollection *pfmhtcol = pfmhtColl_.product();
      const PFMHT met = pfmhtcol->front();
      v->getMEhisto_DenominatorPFPt()->Fill(met.pt());
      v->getMEhisto_DenominatorPFPhi()->Fill(met.phi());
      }// PFMHT  trigger and valid MET collection 
    */
  }// trigger under study
}
void JetMETHLTOfflineSource::fillMEforEffWrtMBTrigger ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Definition at line 2163 of file JetMETHLTOfflineSource.cc.

References _fEMF, _feta, _fHPD, _max_CEMF, _max_CHEF, _max_NEMF, _max_NHEF, _min_CEMF, _min_CHEF, _min_NEMF, _min_NHEF, _n90Hits, _pfMHT, abs, calojet, calojetColl_, CaloJetEMF, CaloJetEta, CaloJetfHPD, CaloJetn90, CaloJetPhi, CaloJetPt, calometColl_, gather_cfg::cout, SiPixelRawToDigiRegional_cfi::deltaPhi, deltaR(), dPhi(), PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, reco::LeafCandidate::et(), eta, hltConfig_, hltPathsEffWrtMB_, patRefSel_triggerSelection_cff::hltTag, i, isBarrel(), isEndCap(), isForward(), isHLTPathAccepted(), edm::HandleBase::isValid(), j, patRefSel_triggerSelection_cff::l1Tag, MBTrigPaths_, CaloMET_cfi::met, timingPdfMaker::pathname, pfjet, PFJetCEMF, PFJetCHEF, pfjetColl_, PFJetEta, PFJetNEMF, PFJetNHEF, PFJetPhi, PFJetPt, pfmetColl_, pfMHTx_All, pfMHTy_All, reco::LeafCandidate::phi(), phi, processname_, edm::Handle< T >::product(), edm::TriggerNames::size(), HLTConfigProvider::size(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, edm::TriggerNames::triggerIndex(), trigger::TriggerJet, trigger::TriggerMET, HLTConfigProvider::triggerName(), triggerNames_, triggerObj_, triggerResults_, trigger::TriggerTET, v, and verbose_.

Referenced by analyze().

{
  //int npath;
  if(&triggerResults_) { /*npath = triggerResults_->size();*/ } 
  else { return; }

  bool mbTrig = false;
  bool numpassed = false;
  //bool denompassed = false;
  for(size_t i=0;i<MBTrigPaths_.size();++i){
    const unsigned int nPath(hltConfig_.size());
    for (unsigned int j=0; j!=nPath; ++j) {
      std::string pathname = hltConfig_.triggerName(j);
      if(pathname.find(MBTrigPaths_[i]) != std::string::npos){
        if(isHLTPathAccepted(pathname)){
          mbTrig = true;
          if(verbose_) cout<<"fillMEforEffWrtMBTrigger: MinBias Match"<<endl;
        }
      }
      if(mbTrig) break;
    }
    if(mbTrig) break;
  }
  
  if(mbTrig){    
    const trigger::TriggerObjectCollection & toc(triggerObj_->getObjects());
    PathInfoCollection::iterator v = hltPathsEffWrtMB_.begin();
    for(; v!= hltPathsEffWrtMB_.end(); ++v ){
      numpassed = false;
      
      unsigned indexNum = triggerNames_.triggerIndex(v->getPath());
      if(indexNum < triggerNames_.size() && triggerResults_->accept(indexNum)) numpassed   = true;
      //if(numpassed==true){
      edm::InputTag hltTag(v->getLabel(),"",processname_);
      const int hltIndex = triggerObj_->filterIndex(hltTag);
      edm::InputTag l1Tag(v->getl1Path(),"",processname_);
      const int l1Index = triggerObj_->filterIndex(l1Tag);
      //}
      
      //----------------------------------------------------------------------
      //double pTcut = 0;
      double trigLowpTcut = 0;
      double trigMedpTcut = 0;
      double trigHighpTcut = 0;
      double trigLowpTcutFwd = 0;
      double trigMedpTcutFwd = 0;
      double trigHighpTcutFwd = 0;
      //
      //double pTPFcut = 0 ;
      double trigLowpTPFcut = 0;
      double trigMedpTPFcut = 0;
      double trigHighpTPFcut = 0;
      double trigLowpTPFcutFwd = 0;
      double trigMedpTPFcutFwd = 0;
      double trigHighpTPFcutFwd = 0;
      //
      //cout<<"pre-path" << v->getPath()<<endl;
      size_t jetstrfound = v->getPath().find("Jet");
      //size_t censtrfound = v->getPath().find("Central"); //shoouldn't be needed?
      string tpath = v->getPath();
      string jetTrigVal;
      float jetVal = 0.;
      //
      if(jetstrfound != string::npos){// && ustrfound != string::npos ){
        //cout<<v->getPath()<<endl;
        for(int trig = int(jetstrfound)+3; trig < int(jetstrfound)+7; trig++){// int(ustrfound); trig++){
          if(!isdigit(tpath[trig])) break;
          jetTrigVal+=tpath[trig];
        }
        char *cjetTrigVal = (char*)jetTrigVal.c_str();
        jetVal=atof(cjetTrigVal);
        //cout<<jetVal<<endl;
        //
        if(jetVal>0.){
          if(jetVal<50.){
            //pTcut = jetVal / 2.;
            trigMedpTcut  = jetVal + 5.;  
            trigHighpTcut = jetVal + 10.;
            //
            trigLowpTcutFwd = jetVal + 9.;
            trigMedpTcutFwd = jetVal + 15.;
            trigHighpTcutFwd = jetVal + 21.;
        }
          else{
            //pTcut = jetVal - 20. ;
            trigMedpTcut = jetVal + 2.; 
            trigHighpTcut = jetVal + 60.;
            //
            trigLowpTcutFwd = jetVal + 22.;
            trigMedpTcutFwd = jetVal + 25.;
            trigHighpTcutFwd = jetVal + 110.;
          }
          trigLowpTcut = jetVal;
          //cout<<pTcut<<" "<<trigLowpTcut<<" "<<trigMedptcut<<" "<<trigHighpTcut<<" "<<trigLowpTcutFwd<<" "<<trigMedptcutFwd<<" "<<trigHighpTcutFwd<<endl;
        }
        //
        if(jetVal>0.){
          if(jetVal<50.){
            //pTPFcut = jetVal ;
            trigMedpTPFcut  = jetVal + 20.;  
            trigHighpTPFcut = jetVal + 40.;
            //
            trigLowpTPFcutFwd = jetVal + 60.;
            trigMedpTPFcutFwd = jetVal + 80.;
            trigHighpTPFcutFwd = jetVal + 100.;
          }
          else{
            //pTPFcut = jetVal  ;
            trigMedpTPFcut = jetVal + 40.; 
            trigHighpTPFcut = jetVal + 140.;
            //
            trigLowpTPFcutFwd = jetVal + 110.;
            trigMedpTPFcutFwd = jetVal + 130.;
            trigHighpTPFcutFwd = jetVal + 190.;
          }
          trigLowpTPFcut = jetVal;
          //cout<<pTcut<<" "<<trigLowpTcut<<" "<<trigMedptcut<<" "<<trigHighpTcut<<" "<<trigLowpTcutFwd<<" "<<trigMedptcutFwd<<" "<<trigHighpTcutFwd<<endl;
        }
      }
      //----------------------------------------------------------------------
      
      //CaloJet paths   
      if(verbose_) std::cout << "fillMEforEffWrtMuTrigger: CaloJet -------------------" << std::endl;
      if(calojetColl_.isValid() 
         && (v->getObjectType() == trigger::TriggerJet)){
        //cout<<"   - CaloJet "<<endl;
        //&& (v->getPath().find("HLT_PFJet")==std::string::npos)
        //&& (v->getPath().find("HLT_DiPFJet")==std::string::npos)){
        bool jetIDbool = false;
        double leadjpt  = CaloJetPt[0];  
        double leadjeta = CaloJetEta[0];
        double leadjphi = CaloJetPhi[0];
        //double ljemf    = CaloJetEMF[0];
        double ljfhpd    = CaloJetfHPD[0];
        double ljn90     = CaloJetn90[0];
        if((v->getTriggerType().compare("SingleJet_Trigger") == 0) && calojet.size()){ //this line stops the central jets
          if( (ljfhpd < _fHPD) && (ljn90 > _n90Hits )){
            if(verbose_) cout<<"passed CaloJet ID -------------------" << endl;
            jetIDbool = true;
            
            //Denominator fill
            v->getMEhisto_DenominatorPt()->Fill(leadjpt);
            if (isBarrel(leadjeta))  v->getMEhisto_DenominatorPtBarrel()->Fill(leadjpt);
            if (isEndCap(leadjeta))  v->getMEhisto_DenominatorPtEndcap()->Fill(leadjpt);
            if (isForward(leadjeta)) v->getMEhisto_DenominatorPtForward()->Fill(leadjpt);
            v->getMEhisto_DenominatorEta()->Fill(leadjeta);
            v->getMEhisto_DenominatorPhi()->Fill(leadjphi);
            v->getMEhisto_DenominatorEtaPhi()->Fill(leadjeta,leadjphi);
            if (isBarrel(leadjeta)){
              v->getMEhisto_DenominatorEtaBarrel()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhiBarrel()->Fill(leadjphi);
            }
            if (isEndCap(leadjeta)){
              v->getMEhisto_DenominatorEtaEndcap()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhiEndcap()->Fill(leadjphi);
            }
            if (isForward(leadjeta)){
              v->getMEhisto_DenominatorEtaForward()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhiForward()->Fill(leadjphi);
            }
            if((leadjpt > trigLowpTcut && !isForward(leadjeta)) || (leadjpt > trigLowpTcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorEta_LowpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhi_LowpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
            }
            if((leadjpt > trigMedpTcut && !isForward(leadjeta)) || (leadjpt > trigMedpTcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorEta_MedpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhi_MedpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
            }
            if((leadjpt > trigHighpTcut && !isForward(leadjeta)) || (leadjpt > trigHighpTcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorEta_HighpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhi_HighpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
            }
            
            //Numerator fill
            if(numpassed){
              //
              double dRmin = 99999.;
              double dPhimin = 9999.;
              if(v->getPath().find("L1") != std::string::npos){ 
                if ( l1Index >= triggerObj_->sizeFilters() ) {
                  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
                } 
                else {
                  const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
                  for(trigger::Keys::const_iterator ki = kl1.begin();ki != kl1.end(); ++ki){
                    double dR = deltaR(toc[*ki].eta(), toc[*ki].phi(), leadjeta, leadjphi);
                    if(dR < dRmin){
                      dRmin = dR;
                    } 
                  } 
                } 
              } 
              else{
                if ( hltIndex >= triggerObj_->sizeFilters() ) {
                  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
                } 
                else {    
                  const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
                  trigger::Keys::const_iterator kj = khlt.begin();
                  for(;kj != khlt.end(); ++kj){
                    double dR = deltaR(toc[*kj].eta(), toc[*kj].phi(), 
                                       leadjeta, leadjphi);
                    if(dR < dRmin){
                      dRmin = dR;
                    }
                    double dPhi = deltaPhi(toc[*kj].phi(), leadjphi);
                    if(dPhi < dPhimin){
                      dPhimin = dPhi;
                    }
                  }   
                  //v->getMEhisto_DeltaPhi()->Fill(dPhimin);
                  v->getMEhisto_DeltaPhi()->Fill(dPhimin);
                  v->getMEhisto_DeltaR()->Fill(dRmin);
                }
              }
              if(dRmin < 0.1 || (v->getPath().find("L1") != std::string::npos && dRmin < 0.4)){
                v->getMEhisto_NumeratorPt()->Fill(leadjpt);
                if (isBarrel(leadjeta))  v->getMEhisto_NumeratorPtBarrel()->Fill(leadjpt);
                if (isEndCap(leadjeta))  v->getMEhisto_NumeratorPtEndcap()->Fill(leadjpt);
                if (isForward(leadjeta)) v->getMEhisto_NumeratorPtForward()->Fill(leadjpt);
                v->getMEhisto_NumeratorEta()->Fill(leadjeta);
                v->getMEhisto_NumeratorPhi()->Fill(leadjphi);
                v->getMEhisto_NumeratorEtaPhi()->Fill(leadjeta,leadjphi);
                if (isBarrel(leadjeta)){
                  v->getMEhisto_NumeratorEtaBarrel()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhiBarrel()->Fill(leadjphi);
                }
                if (isEndCap(leadjeta)){
                  v->getMEhisto_NumeratorEtaEndcap()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhiEndcap()->Fill(leadjphi);
                }
                if (isForward(leadjeta)){
                  v->getMEhisto_NumeratorEtaForward()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhiForward()->Fill(leadjphi);
                }
                if((leadjpt > trigLowpTcut && !isForward(leadjeta)) || (leadjpt > trigLowpTcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorEta_LowpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhi_LowpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
                }
                if((leadjpt > trigMedpTcut && !isForward(leadjeta)) || (leadjpt > trigMedpTcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorEta_MedpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhi_MedpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
                }
                if((leadjpt > trigHighpTcut && !isForward(leadjeta)) || (leadjpt > trigHighpTcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorEta_HighpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhi_HighpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
                }
              }
            }//numpassed
          }//CalojetID filter
        }
        
        if(jetIDbool == true && (v->getTriggerType().compare("DiJet_Trigger") == 0) && calojet.size()>1){
          if(((CaloJetEMF[1] > _fEMF || std::abs(CaloJetEta[1]) > _feta) && 
              CaloJetfHPD[0] < _fHPD && CaloJetn90[0] > _n90Hits)){
            v->getMEhisto_DenominatorPt()->Fill((CaloJetPt[0] + CaloJetPt[1])/2.);
            v->getMEhisto_DenominatorEta()->Fill((CaloJetEta[0] + CaloJetEta[1])/2.); 
            if(numpassed==true){
              v->getMEhisto_NumeratorPt()->Fill((CaloJetPt[0] + CaloJetPt[1])/2.);
              v->getMEhisto_NumeratorEta()->Fill((CaloJetEta[0] + CaloJetEta[1])/2.);
            }
          }
        }
      }// Jet trigger and valid jet collection
      
      //PFJet paths
      if(verbose_) std::cout << "fillMEforEffWrtMuTrigger: PFJet -------------------" << std::endl;
      if(pfjetColl_.isValid() 
         && (v->getObjectType() == trigger::TriggerJet)){
        //cout<<"   - PFJet "<<endl;
        //&& (v->getPath().find("HLT_PFJet")!=std::string::npos)
        //&& (v->getPath().find("HLT_DiPFJet")!=std::string::npos)){
        bool jetIDbool = false;
        double leadjpt   = PFJetPt[0]; 
        double leadjeta  = PFJetEta[0];
        double leadjphi  = PFJetPhi[0];
        double ljNHEF    = PFJetNHEF[0];
        double ljCHEF    = PFJetCHEF[0];
        double ljNEMF    = PFJetNEMF[0];
        double ljCEMF    = PFJetCEMF[0];
        //double sleadjpt  = PFJetPt[1];
        //double sleadjeta = PFJetEta[1];
        //double sleadjphi = PFJetPhi[1];
        double sljNHEF   = PFJetNHEF[1];
        double sljCHEF   = PFJetCHEF[1];
        double sljNEMF   = PFJetNEMF[1];
        double sljCEMF   = PFJetCEMF[1];
        //
        double pfMHTx    = pfMHTx_All;
        double pfMHTy    = pfMHTy_All;
        //
        if((v->getTriggerType().compare("SingleJet_Trigger") == 0) && pfjet.size()){ //this line stops the central jets
          
          //======get pfmht
          _pfMHT = sqrt(pfMHTx*pfMHTx + pfMHTy*pfMHTy);
          v->getMEhisto_DenominatorPFMHT()->Fill(_pfMHT);
          
          if( ljNHEF >= _min_NHEF && ljNHEF <= _max_NHEF
              && ljCHEF >= _min_CHEF && ljCHEF <= _max_CHEF
              && ljNEMF >= _min_NEMF && ljNEMF <= _max_NEMF
              && ljCEMF >= _min_CEMF && ljCEMF <= _max_CEMF){
            if(verbose_) cout<<"passed PFJet ID -------------------" << endl;
            jetIDbool = true;
            v->getMEhisto_DenominatorPFPt()->Fill(leadjpt);
            if (isBarrel(leadjeta))  v->getMEhisto_DenominatorPFPtBarrel()->Fill(leadjpt);
            if (isEndCap(leadjeta))  v->getMEhisto_DenominatorPFPtEndcap()->Fill(leadjpt);
            if (isForward(leadjeta)) v->getMEhisto_DenominatorPFPtForward()->Fill(leadjpt);
            v->getMEhisto_DenominatorPFEta()->Fill(leadjeta);
            v->getMEhisto_DenominatorPFPhi()->Fill(leadjphi);
            v->getMEhisto_DenominatorPFEtaPhi()->Fill(leadjeta,leadjphi);
            if(isBarrel(leadjeta)){
              v->getMEhisto_DenominatorPFEtaBarrel()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhiBarrel()->Fill(leadjphi);
            }
            if (isEndCap(leadjeta)){
              v->getMEhisto_DenominatorPFEtaEndcap()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhiEndcap()->Fill(leadjphi);
            }
            if (isForward(leadjeta)){
              v->getMEhisto_DenominatorPFEtaForward()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhiForward()->Fill(leadjphi);
            }
            if((leadjpt > trigLowpTPFcut && !isForward(leadjeta)) || (leadjpt > trigLowpTPFcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorPFEta_LowpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhi_LowpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorPFEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
            }
            if((leadjpt > trigMedpTPFcut && !isForward(leadjeta)) || (leadjpt > trigMedpTPFcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorPFEta_MedpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhi_MedpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorPFEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
            }
            if((leadjpt > trigHighpTPFcut && !isForward(leadjeta)) || (leadjpt > trigHighpTPFcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorPFEta_HighpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhi_HighpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorPFEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
            }
            
            //Numerator fill
            if(numpassed){
              double dRmin = 99999.;
              double dPhimin = 9999.;
              if(v->getPath().find("L1") != std::string::npos){ 
                if ( l1Index >= triggerObj_->sizeFilters() ) {
                  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
                } 
                else{    
                  const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
                  for(trigger::Keys::const_iterator ki = kl1.begin();ki != kl1.end(); ++ki){      
                    double dR = deltaR(toc[*ki].eta(), toc[*ki].phi(), leadjeta, leadjphi);
                    if(dR < dRmin){
                      dRmin = dR;
                    } 
                  } 
                }                
              } 
              else{
                if ( hltIndex >= triggerObj_->sizeFilters() ) {
                  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
                } 
                else{    
                  const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
                  for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){      
                    double dR = deltaR(toc[*kj].eta(), toc[*kj].phi(), leadjeta, leadjphi);
                    if(dR < dRmin){
                      dRmin = dR;
                    } 
                    double dPhi = deltaPhi(toc[*kj].phi(), leadjphi);
                    if(dPhi < dPhimin){ 
                      dPhimin = dPhi; 
                    }
                  }  
                  v->getMEhisto_PFDeltaPhi()->Fill(dPhimin);
                  v->getMEhisto_PFDeltaR()->Fill(dRmin);
                }  
              }
              if(dRmin < 0.1 || (v->getPath().find("L1") != std::string::npos && dRmin < 0.4)){
                v->getMEhisto_NumeratorPFPt()->Fill(leadjpt);
                if (isBarrel(leadjeta))  v->getMEhisto_NumeratorPFPtBarrel()->Fill(leadjpt);
                if (isEndCap(leadjeta))  v->getMEhisto_NumeratorPFPtEndcap()->Fill(leadjpt);
                if (isForward(leadjeta)) v->getMEhisto_NumeratorPFPtForward()->Fill(leadjpt);
                v->getMEhisto_NumeratorPFEta()->Fill(leadjeta);
                v->getMEhisto_NumeratorPFPhi()->Fill(leadjphi);
                v->getMEhisto_NumeratorPFEtaPhi()->Fill(leadjeta,leadjphi);
                if (isBarrel(leadjeta)){
                  v->getMEhisto_NumeratorPFEtaBarrel()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhiBarrel()->Fill(leadjphi);
                }
                if (isEndCap(leadjeta)){
                  v->getMEhisto_NumeratorPFEtaEndcap()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhiEndcap()->Fill(leadjphi);
                }
                if (isForward(leadjeta)){
                  v->getMEhisto_NumeratorPFEtaForward()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhiForward()->Fill(leadjphi);
                }
                if((leadjpt > trigLowpTPFcut && !isForward(leadjeta)) 
                   || (leadjpt > trigLowpTPFcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorPFEta_LowpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhi_LowpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorPFEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
                }
                if((leadjpt > trigMedpTPFcut && !isForward(leadjeta)) 
                   || (leadjpt > trigMedpTPFcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorPFEta_MedpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhi_MedpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorPFEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
                }
                if((leadjpt > trigHighpTPFcut && !isForward(leadjeta)) 
                   || (leadjpt > trigHighpTPFcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorPFEta_HighpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhi_HighpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorPFEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
                }
              }
            }
          }
        }
        if(jetIDbool == true && (v->getTriggerType().compare("DiJet_Trigger") == 0) && pfjet.size()>1){ 
          if( ljNHEF     >= _min_NHEF && ljNHEF  <= _max_NHEF
              && ljCHEF  >= _min_CHEF && ljCHEF  <= _max_CHEF
              && ljNEMF  >= _min_NEMF && ljNEMF  <= _max_NEMF
              && ljCEMF  >= _min_CEMF && ljCEMF  <= _max_CEMF 
              && sljNHEF >= _min_NHEF && sljNHEF <= _max_NHEF
              && sljCHEF >= _min_CHEF && sljCHEF <= _max_CHEF
              && sljNEMF >= _min_NEMF && sljNEMF <= _max_NEMF
              && sljCEMF >= _min_CEMF && sljCEMF <= _max_CEMF ){
            v->getMEhisto_DenominatorPFPt()->Fill((PFJetPt[0] + PFJetPt[1])/2.);
            v->getMEhisto_DenominatorPFEta()->Fill((PFJetEta[0] + PFJetEta[1])/2.);
            if(numpassed){
              v->getMEhisto_NumeratorPFPt()->Fill((PFJetPt[0] + PFJetPt[1])/2.);
              v->getMEhisto_NumeratorPFEta()->Fill((PFJetEta[0] + PFJetEta[1])/2.);
            }
          }
        }
      }// PF Jet trigger and valid jet collection
      
      //CaloMET path
      if(verbose_) std::cout << "fillMEforEffWrtMuTrigger: CaloMET -------------------" << std::endl;
      if(calometColl_.isValid() 
         && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
         && (v->getPath().find("HLT_PFMET")==std::string::npos)){
        //cout<<"   - CaloMET "<<endl;
        const CaloMETCollection *calometcol = calometColl_.product();
        const CaloMET met = calometcol->front();
        v->getMEhisto_DenominatorPt()->Fill(met.et());
        v->getMEhisto_DenominatorPhi()->Fill(met.phi()); 
        if(numpassed){
          v->getMEhisto_NumeratorPt()->Fill(met.et());
          v->getMEhisto_NumeratorPhi()->Fill(met.phi());
          if(hltIndex >= triggerObj_->sizeFilters()){
            edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
          } 
          else{
            double dPhimin = 9999.;//
            const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
            for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){
              double dPhi = deltaPhi(toc[*kj].phi(), met.phi());
              if(dPhi < dPhimin){
                dPhimin = dPhi;
              }
            }  
            v->getMEhisto_DeltaPhi()->Fill(dPhimin);
          }
        } 
      }
    
      //PFMET
      if(verbose_) std::cout << "fillMEforEffWrtMuTrigger: PFMET -------------------" << std::endl;
      if(pfmetColl_.isValid() 
         && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
         && (v->getPath().find("HLT_PFMET")!=std::string::npos)){
        //cout<<"   - PFMET "<<endl;
        const PFMETCollection *pfmetcol = pfmetColl_.product();
        const PFMET met = pfmetcol->front();
        v->getMEhisto_DenominatorPt()->Fill(met.et());
        v->getMEhisto_DenominatorPhi()->Fill(met.phi()); 
        if(numpassed){
          v->getMEhisto_NumeratorPt()->Fill(met.et());
          v->getMEhisto_NumeratorPhi()->Fill(met.phi());
          if(hltIndex >= triggerObj_->sizeFilters()){
            edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
          } 
          else{
            double dPhimin = 9999.;//
            const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
            for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){
              double dPhi = deltaPhi(toc[*kj].phi(), met.phi());
              if(dPhi < dPhimin){
                dPhimin = dPhi;
              }
            }  
            v->getMEhisto_DeltaPhi()->Fill(dPhimin);
          }
        } 
      }
      
      /*
        if(pfmhtColl_.isValid() && ((v->getObjectType() == trigger::TriggerMET)|| (v->getObjectType() == trigger::TriggerTET))){
        const PFMHTCollection *pfmhtcol = pfmhtColl_.product();
        const PFMHT met = pfmhtcol->front();
        v->getMEhisto_DenominatorPFPt()->Fill(met.pt());
        v->getMEhisto_DenominatorPFPhi()->Fill(met.phi());
        }// PFMHT  trigger and valid MET collection 
      */
    }// trigger under study
  }
}
void JetMETHLTOfflineSource::fillMEforEffWrtMuTrigger ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Definition at line 1649 of file JetMETHLTOfflineSource.cc.

References _fEMF, _feta, _fHPD, _max_CEMF, _max_CHEF, _max_NEMF, _max_NHEF, _min_CEMF, _min_CHEF, _min_NEMF, _min_NHEF, _n90Hits, _pfMHT, abs, calojet, calojetColl_, CaloJetEMF, CaloJetEta, CaloJetfHPD, CaloJetn90, CaloJetPhi, CaloJetPt, calometColl_, gather_cfg::cout, SiPixelRawToDigiRegional_cfi::deltaPhi, deltaR(), dPhi(), PFRecoTauDiscriminationAgainstElectronDeadECAL_cfi::dR, reco::LeafCandidate::et(), eta, hltConfig_, hltPathsEffWrtMu_, patRefSel_triggerSelection_cff::hltTag, i, isBarrel(), isEndCap(), isForward(), isHLTPathAccepted(), edm::HandleBase::isValid(), j, patRefSel_triggerSelection_cff::l1Tag, CaloMET_cfi::met, MuonTrigPaths_, timingPdfMaker::pathname, pfjet, PFJetCEMF, PFJetCHEF, pfjetColl_, PFJetEta, PFJetNEMF, PFJetNHEF, PFJetPhi, PFJetPt, pfmetColl_, pfMHTx_All, pfMHTy_All, reco::LeafCandidate::phi(), phi, processname_, edm::Handle< T >::product(), edm::TriggerNames::size(), HLTConfigProvider::size(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, edm::TriggerNames::triggerIndex(), trigger::TriggerJet, trigger::TriggerMET, HLTConfigProvider::triggerName(), triggerNames_, triggerObj_, triggerResults_, trigger::TriggerTET, v, and verbose_.

Referenced by analyze().

{ 
  //int npath;
  if(&triggerResults_){ /*npath = triggerResults_->size();*/ } 
  else{ return; }
  
  bool muTrig = false;
  bool numpassed = false;
  //bool denompassed = false;
  for(size_t i=0;i<MuonTrigPaths_.size();++i){
    const unsigned int nPath(hltConfig_.size());
    for (unsigned int j=0; j!=nPath; ++j) {
      std::string pathname = hltConfig_.triggerName(j);
      if(pathname.find(MuonTrigPaths_[i]) != std::string::npos){
        if(isHLTPathAccepted(pathname)){ 
          muTrig = true;
          if(verbose_) cout<<"fillMEforEffWrtMuTrigger: Muon Match"<<endl;
        }
      }
      if(muTrig) break;
    }
    if(muTrig) break;
  }
  
  if(muTrig){
    const trigger::TriggerObjectCollection & toc(triggerObj_->getObjects());
    PathInfoCollection::iterator v = hltPathsEffWrtMu_.begin();
    for(; v!= hltPathsEffWrtMu_.end(); ++v ){
      numpassed = false;
      
      unsigned indexNum = triggerNames_.triggerIndex(v->getPath());
      if(indexNum < triggerNames_.size() && triggerResults_->accept(indexNum)) numpassed   = true;
      //if(numpassed==true){
      edm::InputTag hltTag(v->getLabel(),"",processname_);
      const int hltIndex = triggerObj_->filterIndex(hltTag);
      edm::InputTag l1Tag(v->getl1Path(),"",processname_);
      const int l1Index = triggerObj_->filterIndex(l1Tag);
      //}
      
      //----------------------------------------------------------------------
      //double pTcut = 0;
      double trigLowpTcut = 0;
      double trigMedpTcut = 0;
      double trigHighpTcut = 0;
      double trigLowpTcutFwd = 0;
      double trigMedpTcutFwd = 0;
      double trigHighpTcutFwd = 0;
      //
      //double pTPFcut = 0 ;
      double trigLowpTPFcut = 0;
      double trigMedpTPFcut = 0;
      double trigHighpTPFcut = 0;
      double trigLowpTPFcutFwd = 0;
      double trigMedpTPFcutFwd = 0;
      double trigHighpTPFcutFwd = 0;
      //
      //cout<<"pre-path" << v->getPath()<<endl;
      size_t jetstrfound = v->getPath().find("Jet");
      //size_t censtrfound = v->getPath().find("Central"); //shoouldn't be needed?
      string tpath = v->getPath();
      string jetTrigVal;
      float jetVal = 0.;
      //
      if(jetstrfound != string::npos){// && ustrfound != string::npos ){
        //cout<<v->getPath()<<endl;
        for(int trig = int(jetstrfound)+3; trig < int(jetstrfound)+7; trig++){// int(ustrfound); trig++){
          if(!isdigit(tpath[trig])) break;
          jetTrigVal+=tpath[trig];
        }
        char *cjetTrigVal = (char*)jetTrigVal.c_str();
        jetVal=atof(cjetTrigVal);
        //cout<<jetVal<<endl;
        //
        if(jetVal>0.){
          if(jetVal<50.){
            //pTcut = jetVal / 2.;
            trigMedpTcut  = jetVal + 5.;  
            trigHighpTcut = jetVal + 10.;
            //
            trigLowpTcutFwd = jetVal + 9.;
            trigMedpTcutFwd = jetVal + 15.;
            trigHighpTcutFwd = jetVal + 21.;
        }
          else{
            //pTcut = jetVal - 20. ;
            trigMedpTcut = jetVal + 2.; 
            trigHighpTcut = jetVal + 60.;
            //
            trigLowpTcutFwd = jetVal + 22.;
            trigMedpTcutFwd = jetVal + 25.;
            trigHighpTcutFwd = jetVal + 110.;
          }
          trigLowpTcut = jetVal;
        }
        //
        if(jetVal>0.){
          if(jetVal<50.){
            //pTPFcut = jetVal ;
            trigMedpTPFcut  = jetVal + 20.;  
            trigHighpTPFcut = jetVal + 40.;
            //
            trigLowpTPFcutFwd = jetVal + 60.;
            trigMedpTPFcutFwd = jetVal + 80.;
            trigHighpTPFcutFwd = jetVal + 100.;
          }
          else{
            //pTPFcut = jetVal  ;
            trigMedpTPFcut = jetVal + 40.; 
            trigHighpTPFcut = jetVal + 140.;
            //
            trigLowpTPFcutFwd = jetVal + 110.;
            trigMedpTPFcutFwd = jetVal + 130.;
            trigHighpTPFcutFwd = jetVal + 190.;
          }
          trigLowpTPFcut = jetVal;
        }
      }
      //----------------------------------------------------------------------
      
      //CaloJet paths   
      if(verbose_) std::cout << "fillMEforEffWrtMuTrigger: CaloJet -------------------" << std::endl;
      if(calojetColl_.isValid() 
         && (v->getObjectType() == trigger::TriggerJet)){
        //cout<<"   - CaloJet "<<endl;
        //&& (v->getPath().find("HLT_PFJet")==std::string::npos)
        //&& (v->getPath().find("HLT_DiPFJet")==std::string::npos)){
        bool jetIDbool = false;
        double leadjpt  = CaloJetPt[0];  
        double leadjeta = CaloJetEta[0];
        double leadjphi = CaloJetPhi[0];
        //double ljemf    = CaloJetEMF[0];
        double ljfhpd    = CaloJetfHPD[0];
        double ljn90     = CaloJetn90[0];
        if((v->getTriggerType().compare("SingleJet_Trigger") == 0) && calojet.size()){ //this line stops the central jets  
          if( (ljfhpd < _fHPD) && (ljn90 > _n90Hits )){
            if(verbose_) cout<<"passed CaloJet ID -------------------" << endl;
            jetIDbool = true;
            
            //Denominator fill
            v->getMEhisto_DenominatorPt()->Fill(leadjpt);
            if (isBarrel(leadjeta))  v->getMEhisto_DenominatorPtBarrel()->Fill(leadjpt);
            if (isEndCap(leadjeta))  v->getMEhisto_DenominatorPtEndcap()->Fill(leadjpt);
            if (isForward(leadjeta)) v->getMEhisto_DenominatorPtForward()->Fill(leadjpt);
            v->getMEhisto_DenominatorEta()->Fill(leadjeta);
            v->getMEhisto_DenominatorPhi()->Fill(leadjphi);
            v->getMEhisto_DenominatorEtaPhi()->Fill(leadjeta,leadjphi);
            if (isBarrel(leadjeta)){
              v->getMEhisto_DenominatorEtaBarrel()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhiBarrel()->Fill(leadjphi);
            }
            if (isEndCap(leadjeta)){
              v->getMEhisto_DenominatorEtaEndcap()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhiEndcap()->Fill(leadjphi);
            }
            if (isForward(leadjeta)){
              v->getMEhisto_DenominatorEtaForward()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhiForward()->Fill(leadjphi);
            }
            if((leadjpt > trigLowpTcut && !isForward(leadjeta)) || (leadjpt > trigLowpTcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorEta_LowpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhi_LowpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
            }
            if((leadjpt > trigMedpTcut && !isForward(leadjeta)) || (leadjpt > trigMedpTcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorEta_MedpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhi_MedpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
            }
            if((leadjpt > trigHighpTcut && !isForward(leadjeta)) || (leadjpt > trigHighpTcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorEta_HighpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPhi_HighpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
            }
            
            //Numerator fill
            if(numpassed){
              //
              double dRmin = 99999.;
              double dPhimin = 9999.;
              if(v->getPath().find("L1") != std::string::npos){ 
                if ( l1Index >= triggerObj_->sizeFilters() ) {
                  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
                } 
                else {
                  const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
                  for(trigger::Keys::const_iterator ki = kl1.begin();ki != kl1.end(); ++ki){
                    double dR = deltaR(toc[*ki].eta(), toc[*ki].phi(), leadjeta, leadjphi);
                    if(dR < dRmin){
                      dRmin = dR;
                    } 
                  } 
                } 
              } 
              else{
                if ( hltIndex >= triggerObj_->sizeFilters() ) {
                  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
                } 
                else {    
                  const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
                  trigger::Keys::const_iterator kj = khlt.begin();
                  for(;kj != khlt.end(); ++kj){
                    double dR = deltaR(toc[*kj].eta(), toc[*kj].phi(), 
                                       leadjeta, leadjphi);
                    if(dR < dRmin){
                      dRmin = dR;
                    }
                    double dPhi = deltaPhi(toc[*kj].phi(), leadjphi);
                    if(dPhi < dPhimin){
                      dPhimin = dPhi;
                    }
                  }   
                  //v->getMEhisto_DeltaPhi()->Fill(dPhimin);
                  v->getMEhisto_DeltaPhi()->Fill(dPhimin);
                  v->getMEhisto_DeltaR()->Fill(dRmin);
                }
              }
              if(dRmin < 0.1 || (v->getPath().find("L1") != std::string::npos && dRmin < 0.4)){
                v->getMEhisto_NumeratorPt()->Fill(leadjpt);
                if (isBarrel(leadjeta))  v->getMEhisto_NumeratorPtBarrel()->Fill(leadjpt);
                if (isEndCap(leadjeta))  v->getMEhisto_NumeratorPtEndcap()->Fill(leadjpt);
                if (isForward(leadjeta)) v->getMEhisto_NumeratorPtForward()->Fill(leadjpt);
                v->getMEhisto_NumeratorEta()->Fill(leadjeta);
                v->getMEhisto_NumeratorPhi()->Fill(leadjphi);
                v->getMEhisto_NumeratorEtaPhi()->Fill(leadjeta,leadjphi);
                if (isBarrel(leadjeta)){
                  v->getMEhisto_NumeratorEtaBarrel()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhiBarrel()->Fill(leadjphi);
                }
                if (isEndCap(leadjeta)){
                  v->getMEhisto_NumeratorEtaEndcap()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhiEndcap()->Fill(leadjphi);
                }
                if (isForward(leadjeta)){
                  v->getMEhisto_NumeratorEtaForward()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhiForward()->Fill(leadjphi);
                }
                if((leadjpt > trigLowpTcut && !isForward(leadjeta)) || (leadjpt > trigLowpTcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorEta_LowpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhi_LowpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
                }
                if((leadjpt > trigMedpTcut && !isForward(leadjeta)) || (leadjpt > trigMedpTcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorEta_MedpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhi_MedpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
                }
                if((leadjpt > trigHighpTcut && !isForward(leadjeta)) || (leadjpt > trigHighpTcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorEta_HighpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPhi_HighpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
                }
              }
            }//numpassed
          }//CalojetID filter
        }
        
        if(jetIDbool == true && (v->getTriggerType().compare("DiJet_Trigger") == 0) && calojet.size()>1){       
          if(((CaloJetEMF[1] > _fEMF || std::abs(CaloJetEta[1]) > _feta) && 
              CaloJetfHPD[0] < _fHPD && CaloJetn90[0] > _n90Hits)){
            v->getMEhisto_DenominatorPt()->Fill((CaloJetPt[0] + CaloJetPt[1])/2.);
            v->getMEhisto_DenominatorEta()->Fill((CaloJetEta[0] + CaloJetEta[1])/2.); 
            if(numpassed==true){
              v->getMEhisto_NumeratorPt()->Fill((CaloJetPt[0] + CaloJetPt[1])/2.);
              v->getMEhisto_NumeratorEta()->Fill((CaloJetEta[0] + CaloJetEta[1])/2.);
            }
          }
        }
      }// Jet trigger and valid jet collection
      
      //PFJet paths
      if(verbose_) std::cout << "fillMEforEffWrtMuTrigger: PFJet -------------------" << std::endl;
      if(pfjetColl_.isValid() 
         && (v->getObjectType() == trigger::TriggerJet)){
        //cout<<"   - PFJet "<<endl;
        //&& (v->getPath().find("HLT_PFJet")!=std::string::npos)
        //&& (v->getPath().find("HLT_DiPFJet")!=std::string::npos)){
        bool jetIDbool = false;
        double leadjpt   = PFJetPt[0]; 
        double leadjeta  = PFJetEta[0];
        double leadjphi  = PFJetPhi[0];
        double ljNHEF    = PFJetNHEF[0];
        double ljCHEF    = PFJetCHEF[0];
        double ljNEMF    = PFJetNEMF[0];
        double ljCEMF    = PFJetCEMF[0];
        //double sleadjpt  = PFJetPt[1];
        //double sleadjeta = PFJetEta[1];
        //double sleadjphi = PFJetPhi[1];
        double sljNHEF   = PFJetNHEF[1];
        double sljCHEF   = PFJetCHEF[1];
        double sljNEMF   = PFJetNEMF[1];
        double sljCEMF   = PFJetCEMF[1];
        //
        double pfMHTx    = pfMHTx_All;
        double pfMHTy    = pfMHTy_All;
        //
        if((v->getTriggerType().compare("SingleJet_Trigger") == 0) && pfjet.size()){ //this line stops the central jets
          
          //======get pfmht
          _pfMHT = sqrt(pfMHTx*pfMHTx + pfMHTy*pfMHTy);
          v->getMEhisto_DenominatorPFMHT()->Fill(_pfMHT);
          
          if( ljNHEF >= _min_NHEF && ljNHEF <= _max_NHEF
              && ljCHEF >= _min_CHEF && ljCHEF <= _max_CHEF
              && ljNEMF >= _min_NEMF && ljNEMF <= _max_NEMF
              && ljCEMF >= _min_CEMF && ljCEMF <= _max_CEMF){
            if(verbose_) cout<<"passed PFJet ID -------------------" << endl;
            jetIDbool = true;
            v->getMEhisto_DenominatorPFPt()->Fill(leadjpt);
            if (isBarrel(leadjeta))  v->getMEhisto_DenominatorPFPtBarrel()->Fill(leadjpt);
            if (isEndCap(leadjeta))  v->getMEhisto_DenominatorPFPtEndcap()->Fill(leadjpt);
            if (isForward(leadjeta)) v->getMEhisto_DenominatorPFPtForward()->Fill(leadjpt);
            v->getMEhisto_DenominatorPFEta()->Fill(leadjeta);
            v->getMEhisto_DenominatorPFPhi()->Fill(leadjphi);
            v->getMEhisto_DenominatorPFEtaPhi()->Fill(leadjeta,leadjphi);
            if(isBarrel(leadjeta)){
              v->getMEhisto_DenominatorPFEtaBarrel()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhiBarrel()->Fill(leadjphi);
            }
            if (isEndCap(leadjeta)){
              v->getMEhisto_DenominatorPFEtaEndcap()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhiEndcap()->Fill(leadjphi);
            }
            if (isForward(leadjeta)){
              v->getMEhisto_DenominatorPFEtaForward()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhiForward()->Fill(leadjphi);
            }
            if((leadjpt > trigLowpTPFcut && !isForward(leadjeta)) || (leadjpt > trigLowpTPFcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorPFEta_LowpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhi_LowpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorPFEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
            }
            if((leadjpt > trigMedpTPFcut && !isForward(leadjeta)) || (leadjpt > trigMedpTPFcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorPFEta_MedpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhi_MedpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorPFEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
            }
            if((leadjpt > trigHighpTPFcut && !isForward(leadjeta)) || (leadjpt > trigHighpTPFcutFwd && isForward(leadjeta))){
              v->getMEhisto_DenominatorPFEta_HighpTcut()->Fill(leadjeta);
              v->getMEhisto_DenominatorPFPhi_HighpTcut()->Fill(leadjphi);
              v->getMEhisto_DenominatorPFEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
            }
            
            //Numerator fill
            if(numpassed){
              double dRmin = 99999.;
              double dPhimin = 9999.;
              if(v->getPath().find("L1") != std::string::npos){ 
                if ( l1Index >= triggerObj_->sizeFilters() ) {
                  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
                } 
                else{    
                  const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
                  for(trigger::Keys::const_iterator ki = kl1.begin();ki != kl1.end(); ++ki){      
                    double dR = deltaR(toc[*ki].eta(), toc[*ki].phi(), leadjeta, leadjphi);
                    if(dR < dRmin){
                      dRmin = dR;
                    } 
                  } 
                }                
              } 
              else{
                if ( hltIndex >= triggerObj_->sizeFilters() ) {
                  edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
                } 
                else{    
                  const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
                  for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){      
                    double dR = deltaR(toc[*kj].eta(), toc[*kj].phi(), leadjeta, leadjphi);
                    if(dR < dRmin){
                      dRmin = dR;
                    } 
                    double dPhi = deltaPhi(toc[*kj].phi(), leadjphi);
                    if(dPhi < dPhimin){ 
                      dPhimin = dPhi; 
                    }
                  }  
                  v->getMEhisto_PFDeltaPhi()->Fill(dPhimin);
                  v->getMEhisto_PFDeltaR()->Fill(dRmin);
                }  
              }
              if(dRmin < 0.1 || (v->getPath().find("L1") != std::string::npos && dRmin < 0.4)){
                v->getMEhisto_NumeratorPFPt()->Fill(leadjpt);
                if (isBarrel(leadjeta))  v->getMEhisto_NumeratorPFPtBarrel()->Fill(leadjpt);
                if (isEndCap(leadjeta))  v->getMEhisto_NumeratorPFPtEndcap()->Fill(leadjpt);
                if (isForward(leadjeta)) v->getMEhisto_NumeratorPFPtForward()->Fill(leadjpt);
                v->getMEhisto_NumeratorPFEta()->Fill(leadjeta);
                v->getMEhisto_NumeratorPFPhi()->Fill(leadjphi);
                v->getMEhisto_NumeratorPFEtaPhi()->Fill(leadjeta,leadjphi);
                if (isBarrel(leadjeta)){
                  v->getMEhisto_NumeratorPFEtaBarrel()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhiBarrel()->Fill(leadjphi);
                }
                if (isEndCap(leadjeta)){
                  v->getMEhisto_NumeratorPFEtaEndcap()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhiEndcap()->Fill(leadjphi);
                }
                if (isForward(leadjeta)){
                  v->getMEhisto_NumeratorPFEtaForward()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhiForward()->Fill(leadjphi);
                }
                if((leadjpt > trigLowpTPFcut && !isForward(leadjeta)) 
                   || (leadjpt > trigLowpTPFcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorPFEta_LowpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhi_LowpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorPFEtaPhi_LowpTcut()->Fill(leadjeta,leadjphi);
                }
                if((leadjpt > trigMedpTPFcut && !isForward(leadjeta)) 
                   || (leadjpt > trigMedpTPFcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorPFEta_MedpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhi_MedpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorPFEtaPhi_MedpTcut()->Fill(leadjeta,leadjphi);
                }
                if((leadjpt > trigHighpTPFcut && !isForward(leadjeta)) 
                   || (leadjpt > trigHighpTPFcutFwd && isForward(leadjeta))){
                  v->getMEhisto_NumeratorPFEta_HighpTcut()->Fill(leadjeta);
                  v->getMEhisto_NumeratorPFPhi_HighpTcut()->Fill(leadjphi);
                  v->getMEhisto_NumeratorPFEtaPhi_HighpTcut()->Fill(leadjeta,leadjphi);
                }
              }
            }
          }
        }
        if(jetIDbool == true && (v->getTriggerType().compare("DiJet_Trigger") == 0) && pfjet.size()>1){ 
          if( ljNHEF     >= _min_NHEF && ljNHEF  <= _max_NHEF
              && ljCHEF  >= _min_CHEF && ljCHEF  <= _max_CHEF
              && ljNEMF  >= _min_NEMF && ljNEMF  <= _max_NEMF
              && ljCEMF  >= _min_CEMF && ljCEMF  <= _max_CEMF 
              && sljNHEF >= _min_NHEF && sljNHEF <= _max_NHEF
              && sljCHEF >= _min_CHEF && sljCHEF <= _max_CHEF
              && sljNEMF >= _min_NEMF && sljNEMF <= _max_NEMF
              && sljCEMF >= _min_CEMF && sljCEMF <= _max_CEMF ){
            v->getMEhisto_DenominatorPFPt()->Fill((PFJetPt[0] + PFJetPt[1])/2.);
            v->getMEhisto_DenominatorPFEta()->Fill((PFJetEta[0] + PFJetEta[1])/2.);
            if(numpassed){
              v->getMEhisto_NumeratorPFPt()->Fill((PFJetPt[0] + PFJetPt[1])/2.);
              v->getMEhisto_NumeratorPFEta()->Fill((PFJetEta[0] + PFJetEta[1])/2.);
            }
          }
        }
      }// PF Jet trigger and valid jet collection
      
      //CaloMET path
      if(verbose_) std::cout << "fillMEforEffWrtMuTrigger: CaloMET -------------------" << std::endl;
      if(calometColl_.isValid() 
         && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
         && (v->getPath().find("HLT_PFMET")==std::string::npos)){
        //cout<<"   - CaloMET "<<endl;
        const CaloMETCollection *calometcol = calometColl_.product();
        const CaloMET met = calometcol->front();
        v->getMEhisto_DenominatorPt()->Fill(met.et());
        v->getMEhisto_DenominatorPhi()->Fill(met.phi()); 
        if(numpassed){
          v->getMEhisto_NumeratorPt()->Fill(met.et());
          v->getMEhisto_NumeratorPhi()->Fill(met.phi());
          if(hltIndex >= triggerObj_->sizeFilters()){
            edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
          } 
          else{
            double dPhimin = 9999.;//
            const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
            for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){
              double dPhi = deltaPhi(toc[*kj].phi(), met.phi());
              if(dPhi < dPhimin){
                dPhimin = dPhi;
              }
            }  
            v->getMEhisto_DeltaPhi()->Fill(dPhimin);
          }
        } 
      }
    
      //PFMET
      if(verbose_) std::cout << "fillMEforEffWrtMuTrigger: PFMET -------------------" << std::endl;
      if(pfmetColl_.isValid() 
         && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
         && (v->getPath().find("HLT_PFMET")!=std::string::npos)){
        //cout<<"   - PFMET "<<endl;
        const PFMETCollection *pfmetcol = pfmetColl_.product();
        const PFMET met = pfmetcol->front();
        v->getMEhisto_DenominatorPt()->Fill(met.et());
        v->getMEhisto_DenominatorPhi()->Fill(met.phi()); 
        if(numpassed){
          v->getMEhisto_NumeratorPt()->Fill(met.et());
          v->getMEhisto_NumeratorPhi()->Fill(met.phi());
          if(hltIndex >= triggerObj_->sizeFilters()){
            edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
          } 
          else{
            double dPhimin = 9999.;//
            const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex); 
            for(trigger::Keys::const_iterator kj = khlt.begin();kj != khlt.end(); ++kj){
              double dPhi = deltaPhi(toc[*kj].phi(), met.phi());
              if(dPhi < dPhimin){
                dPhimin = dPhi;
              }
            }  
            v->getMEhisto_DeltaPhi()->Fill(dPhimin);
          }
        } 
      }
      
      /*
        if(pfmhtColl_.isValid() && ((v->getObjectType() == trigger::TriggerMET)|| (v->getObjectType() == trigger::TriggerTET))){
        const PFMHTCollection *pfmhtcol = pfmhtColl_.product();
        const PFMHT met = pfmhtcol->front();
        v->getMEhisto_DenominatorPFPt()->Fill(met.pt());
        v->getMEhisto_DenominatorPFPhi()->Fill(met.phi());
        }// PFMHT  trigger and valid MET collection 
      */
    }// trigger under study
  }
}
void JetMETHLTOfflineSource::fillMEforMonAllTrigger ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Definition at line 453 of file JetMETHLTOfflineSource.cc.

References calojetColl_, CaloJetEta, CaloJetPhi, CaloJetPt, CaloJetPx, CaloJetPy, calometColl_, SiPixelRawToDigiRegional_cfi::deltaPhi, deltaR(), reco::LeafCandidate::et(), eta, hltPathsAll_, patRefSel_triggerSelection_cff::hltTag, isBarrel(), isEndCap(), isForward(), isHLTPathAccepted(), edm::HandleBase::isValid(), patRefSel_triggerSelection_cff::l1Tag, CaloMET_cfi::met, pfjetColl_, PFJetEta, PFJetPhi, PFJetPt, PFJetPx, PFJetPy, pfmetColl_, reco::LeafCandidate::phi(), phi, processname_, edm::Handle< T >::product(), trigger::TriggerJet, trigger::TriggerMET, triggerObj_, triggerResults_, trigger::TriggerTET, and v.

Referenced by analyze().

{
  //int npath;
  if(&triggerResults_) { /*npath = triggerResults_->size();*/ } 
  else { return; }
  
  const trigger::TriggerObjectCollection & toc(triggerObj_->getObjects());
  PathInfoCollection::iterator v = hltPathsAll_.begin();
  for(; v!= hltPathsAll_.end(); ++v ){
    if(isHLTPathAccepted(v->getPath())==false) continue;
    
    //New jet collection (after apply JEC)
    std::vector<double>jetPtVec;
    std::vector<double>jetPhiVec; 
    std::vector<double>jetEtaVec;
    std::vector<double>jetPxVec;
    std::vector<double>jetPyVec;
    std::vector<double>hltPtVec;
    std::vector<double>hltPhiVec;
    std::vector<double>hltEtaVec;
    std::vector<double>hltPxVec;
    std::vector<double>hltPyVec;
    
    //This will be used to find out punch through trigger 
    //bool fillL1HLT = false;
      
    //L1 and HLT indices
    edm::InputTag l1Tag(v->getl1Path(),"",processname_);
    const int l1Index = triggerObj_->filterIndex(l1Tag);
    edm::InputTag hltTag(v->getLabel(),"",processname_);
    const int hltIndex = triggerObj_->filterIndex(hltTag);
    //bool l1TrigBool = false;
    bool hltTrigBool  = false;
    bool diJetFire    = false;
    int  jetsize      = 0;
    
    if ( l1Index >= triggerObj_->sizeFilters() ) {
      edm::LogInfo("JetMETHLTOfflineSource") << "no index "<< l1Index << " of that name "<<l1Tag;
    }
    else {
      //l1TrigBool = true;
      const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
      //
      if(v->getObjectType() == trigger::TriggerJet 
         && v->getTriggerType().compare("SingleJet_Trigger") == 0)
        v->getMEhisto_N_L1()->Fill(kl1.size());
      //
      trigger::Keys::const_iterator ki = kl1.begin();
      for(; ki != kl1.end(); ++ki){
        double l1TrigEta = -100;
        double l1TrigPhi = -100;
        //
        if(v->getObjectType() == trigger::TriggerJet){ 
          l1TrigEta = toc[*ki].eta();
          l1TrigPhi = toc[*ki].phi();
          if(v->getTriggerType().compare("SingleJet_Trigger") == 0){
            v->getMEhisto_Pt_L1()->Fill(toc[*ki].pt());
            if (isBarrel(toc[*ki].eta())) v->getMEhisto_PtBarrel_L1()->Fill(toc[*ki].pt());
            if (isEndCap(toc[*ki].eta())) v->getMEhisto_PtEndcap_L1()->Fill(toc[*ki].pt());
            if (isForward(toc[*ki].eta())) v->getMEhisto_PtForward_L1()->Fill(toc[*ki].pt());
            v->getMEhisto_Eta_L1()->Fill(toc[*ki].eta());
            v->getMEhisto_Phi_L1()->Fill(toc[*ki].phi());
            v->getMEhisto_EtaPhi_L1()->Fill(toc[*ki].eta(),toc[*ki].phi());
          }
        }
        if(v->getObjectType() == trigger::TriggerMET || 
           v->getObjectType() == trigger::TriggerTET){
          v->getMEhisto_Pt_L1()->Fill(toc[*ki].pt());
          v->getMEhisto_Phi_L1()->Fill(toc[*ki].phi());
        }
        
        //-----------------------------------------------  
        if ( hltIndex >= triggerObj_->sizeFilters() ) {
          edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
        } 
        else {
          const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex);
          if(v->getObjectType() == trigger::TriggerJet 
             && ki == kl1.begin() 
             && v->getTriggerType().compare("SingleJet_Trigger") == 0)
            v->getMEhisto_N_HLT()->Fill(khlt.size());
          //
          trigger::Keys::const_iterator kj = khlt.begin();
          //Define hltTrigBool
          for(;kj != khlt.end(); ++kj){
            if(v->getObjectType() == trigger::TriggerJet){
              double hltTrigEta = -100;
              double hltTrigPhi = -100;
              hltTrigEta = toc[*kj].eta();
              hltTrigPhi = toc[*kj].phi();
              if((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi)) < 0.4 
                 && (v->getTriggerType().compare("DiJet_Trigger") == 0))
                hltTrigBool = true;
            }  
          }
          // 
          kj = khlt.begin();
          for(;kj != khlt.end(); ++kj){
            double hltTrigEta = -100.;
            double hltTrigPhi = -100.;
            //fillL1HLT = true;
            //MET Triggers
            if(v->getObjectType() == trigger::TriggerMET || (v->getObjectType() == trigger::TriggerTET)){
              v->getMEhisto_Pt_HLT()->Fill(toc[*kj].pt());
              v->getMEhisto_Phi_HLT()->Fill(toc[*kj].phi());
              v->getMEhisto_PtCorrelation_L1HLT()->Fill(toc[*ki].pt(),toc[*kj].pt());
              v->getMEhisto_PhiCorrelation_L1HLT()->Fill(toc[*ki].phi(),toc[*kj].phi());
              v->getMEhisto_PtResolution_L1HLT()->Fill((toc[*ki].pt()-toc[*kj].pt())/(toc[*ki].pt()));
              v->getMEhisto_PhiResolution_L1HLT()->Fill((toc[*ki].phi()-toc[*kj].phi())/(toc[*ki].phi()));
            }
            //Jet Triggers
            if(v->getObjectType() == trigger::TriggerJet){
              hltTrigEta = toc[*kj].eta();
              hltTrigPhi = toc[*kj].phi();
              if((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi)) < 0.4){
                if(v->getTriggerType().compare("SingleJet_Trigger") == 0){
                  v->getMEhisto_PtCorrelation_L1HLT()->Fill(toc[*ki].pt(),toc[*kj].pt());
                  v->getMEhisto_EtaCorrelation_L1HLT()->Fill(toc[*ki].eta(),toc[*kj].eta());
                  v->getMEhisto_PhiCorrelation_L1HLT()->Fill(toc[*ki].phi(),toc[*kj].phi());
                  v->getMEhisto_PtResolution_L1HLT()->Fill((toc[*ki].pt()-toc[*kj].pt())/(toc[*ki].pt()));
                  v->getMEhisto_EtaResolution_L1HLT()->Fill((toc[*ki].eta()-toc[*kj].eta())/(toc[*ki].eta()));
                  v->getMEhisto_PhiResolution_L1HLT()->Fill((toc[*ki].phi()-toc[*kj].phi())/(toc[*ki].phi()));
                }
              }
              if(((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi) < 0.4 ) 
                  || ((v->getTriggerType().compare("DiJet_Trigger") == 0)  && hltTrigBool)) && !diJetFire){ 
                if(v->getTriggerType().compare("SingleJet_Trigger") == 0){
                  v->getMEhisto_Pt_HLT()->Fill(toc[*kj].pt());
                  if (isBarrel(toc[*kj].eta())) v->getMEhisto_PtBarrel_HLT()->Fill(toc[*kj].pt());
                  if (isEndCap(toc[*kj].eta())) v->getMEhisto_PtEndcap_HLT()->Fill(toc[*kj].pt());
                  if (isForward(toc[*kj].eta())) v->getMEhisto_PtForward_HLT()->Fill(toc[*kj].pt());
                  v->getMEhisto_Eta_HLT()->Fill(toc[*kj].eta());
                  v->getMEhisto_Phi_HLT()->Fill(toc[*kj].phi());
                  v->getMEhisto_EtaPhi_HLT()->Fill(toc[*kj].eta(),toc[*kj].phi());
                }
                
                //Calojet
                if(calojetColl_.isValid() 
                   && (v->getObjectType() == trigger::TriggerJet)
                   && (v->getPath().compare("PFJet") == 0)){
                  //CaloJetCollection::const_iterator jet = calojet.begin();
                  //for(; jet != calojet.end(); ++jet) {
                  for(int iCalo=0; iCalo<2; iCalo++){
                    if(deltaR(hltTrigEta, hltTrigPhi, CaloJetEta[iCalo], CaloJetPhi[iCalo]) < 0.4){
                      jetsize++; 
                      if(v->getTriggerType().compare("SingleJet_Trigger") == 0){
                        v->getMEhisto_Pt()->Fill(CaloJetPt[iCalo]);
                        if (isBarrel(CaloJetEta[iCalo]))  v->getMEhisto_PtBarrel()->Fill(CaloJetPt[iCalo]);
                        if (isEndCap(CaloJetEta[iCalo]))  v->getMEhisto_PtEndcap()->Fill(CaloJetPt[iCalo]);
                        if (isForward(CaloJetEta[iCalo])) v->getMEhisto_PtForward()->Fill(CaloJetPt[iCalo]);
                        //
                        v->getMEhisto_Eta()->Fill(CaloJetEta[iCalo]);
                        v->getMEhisto_Phi()->Fill(CaloJetPhi[iCalo]);
                        v->getMEhisto_EtaPhi()->Fill(CaloJetEta[iCalo],CaloJetPhi[iCalo]); 
                        //
                        v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].pt(),CaloJetPt[iCalo]);
                        v->getMEhisto_EtaCorrelation_HLTRecObj()->Fill(toc[*kj].eta(),CaloJetEta[iCalo]);
                        v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(),CaloJetPhi[iCalo]);
                        //
                        v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].pt()-CaloJetPt[iCalo])/(toc[*kj].pt()));
                        v->getMEhisto_EtaResolution_HLTRecObj()->Fill((toc[*kj].eta()-CaloJetEta[iCalo])/(toc[*kj].eta()));
                        v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*kj].phi()-CaloJetPhi[iCalo])/(toc[*kj].phi()));
                      }
                      
                      //-------------------------------------------------------    
                      if((v->getTriggerType().compare("DiJet_Trigger") == 0)){
                        jetPhiVec.push_back(CaloJetPhi[iCalo]);
                        jetPtVec.push_back(CaloJetPt[iCalo]);
                        jetEtaVec.push_back(CaloJetEta[iCalo]);         
                        jetPxVec.push_back(CaloJetPx[iCalo]);
                        jetPyVec.push_back(CaloJetPy[iCalo]); 
                        //
                        hltPhiVec.push_back(toc[*kj].phi());
                        hltPtVec.push_back(toc[*kj].pt());
                        hltEtaVec.push_back(toc[*kj].eta());
                        hltPxVec.push_back(toc[*kj].px()); 
                        hltPyVec.push_back(toc[*kj].py());
                      }
                    }// matching jet           
                  }// Jet Loop
                }// valid calojet collection, with calojet trigger

                //PFJet trigger
                if(pfjetColl_.isValid() 
                   && (v->getObjectType() == trigger::TriggerJet)
                   && (v->getPath().compare("PFJet") != 0)){
                  //PFJetCollection::const_iterator jet = pfjet.begin();
                  //for(; jet != pfjet.end(); ++jet){ 
                  for(int iPF=0; iPF<2; iPF++){
                    if(deltaR(hltTrigEta, hltTrigPhi, PFJetEta[iPF], PFJetPhi[iPF]) < 0.4){
                      jetsize++;
                      if(v->getTriggerType().compare("SingleJet_Trigger") == 0){
                        v->getMEhisto_Pt()->Fill(PFJetPt[iPF]);
                        if (isBarrel(PFJetEta[iPF]))  v->getMEhisto_PtBarrel()->Fill(PFJetPt[iPF]);
                        if (isEndCap(PFJetEta[iPF]))  v->getMEhisto_PtEndcap()->Fill(PFJetPt[iPF]);
                        if (isForward(PFJetEta[iPF])) v->getMEhisto_PtForward()->Fill(PFJetPt[iPF]);
                        //
                        v->getMEhisto_Eta()->Fill(PFJetEta[iPF]);
                        v->getMEhisto_Phi()->Fill(PFJetPhi[iPF]);
                        v->getMEhisto_EtaPhi()->Fill(PFJetEta[iPF],PFJetPhi[iPF]); 
                        //
                        v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].pt(),PFJetPt[iPF]);
                        v->getMEhisto_EtaCorrelation_HLTRecObj()->Fill(toc[*kj].eta(),PFJetEta[iPF]);
                        v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(),PFJetPhi[iPF]);
                        //
                        v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].pt()-PFJetPt[iPF])/(toc[*kj].pt()));
                        v->getMEhisto_EtaResolution_HLTRecObj()->Fill((toc[*kj].eta()-PFJetEta[iPF])/(toc[*kj].eta()));
                        v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*kj].phi()-PFJetPhi[iPF])/(toc[*kj].phi()));
                      }
                      
                      //-------------------------------------------------------    
                      if((v->getTriggerType().compare("DiJet_Trigger") == 0)){
                        jetPhiVec.push_back(PFJetPhi[iPF]);
                        jetPtVec.push_back(PFJetPt[iPF]);
                        jetEtaVec.push_back(PFJetEta[iPF]);         
                        jetPxVec.push_back(PFJetPx[iPF]);
                        jetPyVec.push_back(PFJetPy[iPF]); 
                        //
                        hltPhiVec.push_back(toc[*kj].phi());
                        hltPtVec.push_back(toc[*kj].pt());
                        hltEtaVec.push_back(toc[*kj].eta());
                        hltPxVec.push_back(toc[*kj].px()); 
                        hltPyVec.push_back(toc[*kj].py());
                      }
                    }// matching jet  
                  }//PFJet loop
                }//valid pfjet collection, with pfjet trigger
                //
              }// hlt matching with l1               
            }// jet trigger

            //------------------------------------------------------
            if(calometColl_.isValid() 
               && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
               && (v->getPath().find("HLT_PFMET")==std::string::npos)){
              const CaloMETCollection *calometcol = calometColl_.product();
              const CaloMET met = calometcol->front();
              //
              v->getMEhisto_Pt()->Fill(met.et()); 
              v->getMEhisto_Phi()->Fill(met.phi());
              //
              v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].et(),met.et());
              v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(),met.phi());
              v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].et()-met.et())/(toc[*kj].et()));
              v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*kj].phi()-met.phi())/(toc[*kj].phi())); 
            }
            
            //--------------------------------------------------------
            if(pfmetColl_.isValid() 
               && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
               && (v->getPath().find("HLT_PFMET")!=std::string::npos)){
              const PFMETCollection *pfmetcol = pfmetColl_.product();
              const PFMET pfmet = pfmetcol->front();
              //
              v->getMEhisto_Pt()->Fill(pfmet.et()); 
              v->getMEhisto_Phi()->Fill(pfmet.phi());
              //
              v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].et(),pfmet.et());
              v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(),pfmet.phi());
              v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].et()-pfmet.et())/(toc[*kj].et()));
              v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*kj].phi()-pfmet.phi())/(toc[*kj].phi())); 
            }
          }//Loop over HLT trigger candidates
          if((v->getTriggerType().compare("DiJet_Trigger") == 0)) diJetFire = true;
        }// Valid hlt trigger object
      }// Loop over L1 objects
    }// Valid L1 trigger object
    v->getMEhisto_N()->Fill(jetsize);
    
    //--------------------------------------------------------
    if((v->getTriggerType().compare("DiJet_Trigger") == 0) && jetPtVec.size() >1){
      double AveJetPt  = (jetPtVec[0] + jetPtVec[1])/2;
      double AveJetEta = (jetEtaVec[0] + jetEtaVec[1])/2;               
      double JetDelPhi = deltaPhi(jetPhiVec[0],jetPhiVec[1]);
      double AveHLTPt  = (hltPtVec[0] + hltPtVec[1])/2;
      double AveHLTEta = (hltEtaVec[0] + hltEtaVec[1])/2;
      double HLTDelPhi = deltaPhi(hltPhiVec[0],hltPhiVec[1]);
      v->getMEhisto_AveragePt_RecObj()->Fill(AveJetPt);
      v->getMEhisto_AverageEta_RecObj()->Fill(AveJetEta);
      v->getMEhisto_DeltaPhi_RecObj()->Fill(JetDelPhi);
      //
      v->getMEhisto_AveragePt_HLTObj()->Fill(AveHLTPt);
      v->getMEhisto_AverageEta_HLTObj()->Fill(AveHLTEta);
      v->getMEhisto_DeltaPhi_HLTObj()->Fill(HLTDelPhi);
    }
    
    //-----------------------------------------------------
    /*
      if(v->getPath().find("L1") != std::string::npos && !fillL1HLT){
      if ( l1Index >= triggerObj_->sizeFilters() ) {
      edm::LogInfo("JetMETHLTOfflineSource") << "no index "<< l1Index << " of that name "<<l1Tag;
      }
      else {
      //l1TrigBool = true;
      const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
      for( trigger::Keys::const_iterator ki = kl1.begin(); ki != kl1.end(); ++ki){
      double l1TrigEta = toc[*ki].eta();
      double l1TrigPhi = toc[*ki].phi();
      if(calojetColl_.isValid() && (v->getObjectType() == trigger::TriggerJet) && (v->getTriggerType().compare("SingleJet_Trigger") == 0) ){
      for(CaloJetCollection::const_iterator jet = calojet.begin(); jet != calojet.end(); ++jet ) {
      double jetEta = jet->eta();
      double jetPhi = jet->phi();
      if(deltaR(l1TrigEta, l1TrigPhi, jetEta, jetPhi) < 0.4){
      jetsize++;
      v->getMEhisto_Pt()->Fill(jet->pt());
      if (isBarrel(jet->eta()))  v->getMEhisto_PtBarrel()->Fill(jet->pt());
      if (isEndCap(jet->eta()))  v->getMEhisto_PtEndcap()->Fill(jet->pt());
      if (isForward(jet->eta())) v->getMEhisto_PtForward()->Fill(jet->pt());
      //
      v->getMEhisto_Eta()->Fill(jet->eta());
      v->getMEhisto_Phi()->Fill(jet->phi());
      v->getMEhisto_EtaPhi()->Fill(jet->eta(),jet->phi()); 
      //
      v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*ki].pt(),jet->pt());
      v->getMEhisto_EtaCorrelation_HLTRecObj()->Fill(toc[*ki].eta(),jet->eta());
      v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*ki].phi(),jet->phi());
      //
      v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*ki].pt()-jet->pt())/(toc[*ki].pt()));
      v->getMEhisto_EtaResolution_HLTRecObj()->Fill((toc[*ki].eta()-jet->eta())/(toc[*ki].eta()));
      v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*ki].phi()-jet->phi())/(toc[*ki].phi()));
      }// matching jet
      
      }// Jet Loop
      v->getMEhisto_N()->Fill(jetsize);
      }// valid Jet collection
      
      if(calometColl_.isValid() && ((v->getObjectType() == trigger::TriggerMET)|| (v->getObjectType() == trigger::TriggerTET))){
      const CaloMETCollection *calometcol = calometColl_.product();
      const CaloMET met = calometcol->front();
      v->getMEhisto_Pt()->Fill(met.pt()); 
      v->getMEhisto_Phi()->Fill(met.phi());
      //
      v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*ki].pt(),met.pt());
      v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*ki].phi(),met.phi());
      v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*ki].pt()-met.pt())/(toc[*ki].pt()));
      v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*ki].phi()-met.phi())/(toc[*ki].phi()));
      }// valid MET Collection           
      }// Loop over keys
      }// valid object
      }// L1 is fired but not HLT
    */
  }
}
void JetMETHLTOfflineSource::fillMEforMonAllTriggerwrtMuonTrigger ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Definition at line 799 of file JetMETHLTOfflineSource.cc.

References calojet, calojetColl_, CaloJetEta, CaloJetPhi, CaloJetPt, CaloJetPx, CaloJetPy, calometColl_, gather_cfg::cout, SiPixelRawToDigiRegional_cfi::deltaPhi, deltaR(), reco::LeafCandidate::et(), eta, hltConfig_, hltPathsAllWrtMu_, patRefSel_triggerSelection_cff::hltTag, i, isBarrel(), isEndCap(), isForward(), isHLTPathAccepted(), edm::HandleBase::isValid(), j, metsig::jet, reco::btau::jetEta, reco::btau::jetPhi, patRefSel_triggerSelection_cff::l1Tag, CaloMET_cfi::met, MuonTrigPaths_, timingPdfMaker::pathname, pfjetColl_, PFJetEta, PFJetPhi, PFJetPt, PFJetPx, PFJetPy, pfmetColl_, reco::LeafCandidate::phi(), phi, processname_, edm::Handle< T >::product(), reco::LeafCandidate::pt(), HLTConfigProvider::size(), AlCaHLTBitMon_QueryRunRegistry::string, trigger::TriggerJet, trigger::TriggerMET, HLTConfigProvider::triggerName(), triggerObj_, triggerResults_, trigger::TriggerTET, v, and verbose_.

Referenced by analyze().

{
  //int npath;
  if(&triggerResults_) { /*npath = triggerResults_->size();*/ } 
  else { return; }
  
  bool muTrig = false;
  for(size_t i=0;i<MuonTrigPaths_.size();++i){
    const unsigned int nPath(hltConfig_.size());
    for (unsigned int j=0; j!=nPath; ++j) {
      std::string pathname = hltConfig_.triggerName(j);
      if(pathname.find(MuonTrigPaths_[i]) != std::string::npos){
        if(isHLTPathAccepted(pathname)){ 
          muTrig = true;
          if(verbose_) cout<<"fillMEforMonAllTriggerwrtMuonTrigger: Muon Match"<<endl;
        }
      }
      if(muTrig) break;
    }
    if(muTrig) break;
  }
  
  if(muTrig){
    const trigger::TriggerObjectCollection & toc(triggerObj_->getObjects());
    PathInfoCollection::iterator v = hltPathsAllWrtMu_.begin();
    for(; v!= hltPathsAllWrtMu_.end(); ++v ){
      if(isHLTPathAccepted(v->getPath())==false) continue;
      
      //New jet collection (after apply JEC)
      std::vector<double>jetPtVec;
      std::vector<double>jetPhiVec; 
      std::vector<double>jetEtaVec;
      std::vector<double>jetPxVec;
      std::vector<double>jetPyVec;
      std::vector<double>hltPtVec;
      std::vector<double>hltPhiVec;
      std::vector<double>hltEtaVec;
      std::vector<double>hltPxVec;
      std::vector<double>hltPyVec;
      
      //This will be used to find out punch throgh trigger 
      bool fillL1HLT = false;  
      
      //L1 and HLT indices
      edm::InputTag l1Tag(v->getl1Path(),"",processname_);
      const int l1Index = triggerObj_->filterIndex(l1Tag);
      edm::InputTag hltTag(v->getLabel(),"",processname_);
      const int hltIndex = triggerObj_->filterIndex(hltTag);
      //bool l1TrigBool = false;
      bool hltTrigBool = false;
      bool diJetFire = false;
      int jetsize = 0;
      
      if ( l1Index >= triggerObj_->sizeFilters() ) {
        edm::LogInfo("JetMETHLTOfflineSource") << "no index "<< l1Index << " of that name "<<l1Tag;
      }
      else {
        //l1TrigBool = true;
        const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
        if(v->getObjectType() == trigger::TriggerJet)v->getMEhisto_N_L1()->Fill(kl1.size());
        trigger::Keys::const_iterator ki = kl1.begin();
        for(; ki != kl1.end(); ++ki){
          double l1TrigEta = -100;
          double l1TrigPhi = -100;
          
          //-------------------------------------------
          if(v->getObjectType() == trigger::TriggerJet){ 
            l1TrigEta = toc[*ki].eta();
            l1TrigPhi = toc[*ki].phi();
            v->getMEhisto_Pt_L1()->Fill(toc[*ki].pt());
            if (isBarrel(toc[*ki].eta()))  v->getMEhisto_PtBarrel_L1()->Fill(toc[*ki].pt());
            if (isEndCap(toc[*ki].eta()))  v->getMEhisto_PtEndcap_L1()->Fill(toc[*ki].pt());
            if (isForward(toc[*ki].eta())) v->getMEhisto_PtForward_L1()->Fill(toc[*ki].pt());
            v->getMEhisto_Eta_L1()->Fill(toc[*ki].eta());
            v->getMEhisto_Phi_L1()->Fill(toc[*ki].phi());
            v->getMEhisto_EtaPhi_L1()->Fill(toc[*ki].eta(),toc[*ki].phi());
          }
          if(v->getObjectType() == trigger::TriggerMET || (v->getObjectType() == trigger::TriggerTET)){
            v->getMEhisto_Pt_L1()->Fill(toc[*ki].pt());
            v->getMEhisto_Phi_L1()->Fill(toc[*ki].phi());
          }
          
          //-----------------------------------------------  
          if ( hltIndex >= triggerObj_->sizeFilters() ) {
            edm::LogInfo("JetMETHLTOfflineSource") << "no index hlt"<< hltIndex << " of that name ";
          } 
          else {
            const trigger::Keys & khlt = triggerObj_->filterKeys(hltIndex);
            if((v->getObjectType() == trigger::TriggerJet) && (ki == kl1.begin())) 
              v->getMEhisto_N_HLT()->Fill(khlt.size());
            trigger::Keys::const_iterator kj = khlt.begin();
            //Define hltTrigBool
            for(;kj != khlt.end(); ++kj){
              if(v->getObjectType() == trigger::TriggerJet){
                double hltTrigEta = -100;
                double hltTrigPhi = -100;
                hltTrigEta = toc[*kj].eta();
                hltTrigPhi = toc[*kj].phi();
                if((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi)) < 0.4 
                   && (v->getTriggerType().compare("DiJet_Trigger") == 0))
                  hltTrigBool = true;
              }  
            }
            // 
            kj = khlt.begin();
            for(;kj != khlt.end(); ++kj){
              double hltTrigEta = -100.;
              double hltTrigPhi = -100.;
              fillL1HLT = true;
              //MET Triggers
              if(v->getObjectType() == trigger::TriggerMET || (v->getObjectType() == trigger::TriggerTET)){
                v->getMEhisto_Pt_HLT()->Fill(toc[*kj].pt());
                v->getMEhisto_Phi_HLT()->Fill(toc[*kj].phi());
                v->getMEhisto_PtCorrelation_L1HLT()->Fill(toc[*ki].pt(),toc[*kj].pt());
                v->getMEhisto_PhiCorrelation_L1HLT()->Fill(toc[*ki].phi(),toc[*kj].phi());
                v->getMEhisto_PtResolution_L1HLT()->Fill((toc[*ki].pt()-toc[*kj].pt())/(toc[*ki].pt()));
                v->getMEhisto_PhiResolution_L1HLT()->Fill((toc[*ki].phi()-toc[*kj].phi())/(toc[*ki].phi()));
              }
              //Jet Triggers
              if(v->getObjectType() == trigger::TriggerJet){
                hltTrigEta = toc[*kj].eta();
                hltTrigPhi = toc[*kj].phi();
                if((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi)) < 0.4){
                  v->getMEhisto_PtCorrelation_L1HLT()->Fill(toc[*ki].pt(),toc[*kj].pt());
                  v->getMEhisto_EtaCorrelation_L1HLT()->Fill(toc[*ki].eta(),toc[*kj].eta());
                  v->getMEhisto_PhiCorrelation_L1HLT()->Fill(toc[*ki].phi(),toc[*kj].phi());
                  v->getMEhisto_PtResolution_L1HLT()->Fill((toc[*ki].pt()-toc[*kj].pt())/(toc[*ki].pt()));
                  v->getMEhisto_EtaResolution_L1HLT()->Fill((toc[*ki].eta()-toc[*kj].eta())/(toc[*ki].eta()));
                  v->getMEhisto_PhiResolution_L1HLT()->Fill((toc[*ki].phi()-toc[*kj].phi())/(toc[*ki].phi()));
                }
                if(((deltaR(hltTrigEta, hltTrigPhi, l1TrigEta, l1TrigPhi) < 0.4 ) 
                    || ((v->getTriggerType().compare("DiJet_Trigger") == 0)  && hltTrigBool)) && !diJetFire){
                  v->getMEhisto_Pt_HLT()->Fill(toc[*kj].pt());
                  if (isBarrel(toc[*kj].eta()))  v->getMEhisto_PtBarrel_HLT()->Fill(toc[*kj].pt());
                  if (isEndCap(toc[*kj].eta()))  v->getMEhisto_PtEndcap_HLT()->Fill(toc[*kj].pt());
                  if (isForward(toc[*kj].eta())) v->getMEhisto_PtForward_HLT()->Fill(toc[*kj].pt());
                  v->getMEhisto_Eta_HLT()->Fill(toc[*kj].eta());
                  v->getMEhisto_Phi_HLT()->Fill(toc[*kj].phi());
                  v->getMEhisto_EtaPhi_HLT()->Fill(toc[*kj].eta(),toc[*kj].phi());

                  //Calojet
                  if(calojetColl_.isValid() 
                     && (v->getObjectType() == trigger::TriggerJet)
                     && (v->getPath().compare("PFJet") == 0)){
                    //CaloJetCollection::const_iterator jet = calojet.begin();
                    //for(; jet != calojet.end(); ++jet) {
                    for(int iCalo=0; iCalo<2; iCalo++){
                      if(deltaR(hltTrigEta, hltTrigPhi, CaloJetEta[iCalo], CaloJetPhi[iCalo]) < 0.4){
                        jetsize++; 
                        if(v->getTriggerType().compare("SingleJet_Trigger") == 0){
                          v->getMEhisto_Pt()->Fill(CaloJetPt[iCalo]);
                          if (isBarrel(CaloJetEta[iCalo]))  v->getMEhisto_PtBarrel()->Fill(CaloJetPt[iCalo]);
                          if (isEndCap(CaloJetEta[iCalo]))  v->getMEhisto_PtEndcap()->Fill(CaloJetPt[iCalo]);
                          if (isForward(CaloJetEta[iCalo])) v->getMEhisto_PtForward()->Fill(CaloJetPt[iCalo]);
                          //
                          v->getMEhisto_Eta()->Fill(CaloJetEta[iCalo]);
                          v->getMEhisto_Phi()->Fill(CaloJetPhi[iCalo]);
                          v->getMEhisto_EtaPhi()->Fill(CaloJetEta[iCalo],CaloJetPhi[iCalo]); 
                          //
                          v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].pt(),CaloJetPt[iCalo]);
                          v->getMEhisto_EtaCorrelation_HLTRecObj()->Fill(toc[*kj].eta(),CaloJetEta[iCalo]);
                          v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(),CaloJetPhi[iCalo]);
                          //
                          v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].pt()-CaloJetPt[iCalo])/(toc[*kj].pt()));
                          v->getMEhisto_EtaResolution_HLTRecObj()->Fill((toc[*kj].eta()-CaloJetEta[iCalo])/(toc[*kj].eta()));
                          v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*kj].phi()-CaloJetPhi[iCalo])/(toc[*kj].phi()));
                        }
                        
                        //-------------------------------------------------------    
                        if((v->getTriggerType().compare("DiJet_Trigger") == 0)){
                          jetPhiVec.push_back(CaloJetPhi[iCalo]);
                          jetPtVec.push_back(CaloJetPt[iCalo]);
                          jetEtaVec.push_back(CaloJetEta[iCalo]);         
                          jetPxVec.push_back(CaloJetPx[iCalo]);
                          jetPyVec.push_back(CaloJetPy[iCalo]); 
                          //
                          hltPhiVec.push_back(toc[*kj].phi());
                          hltPtVec.push_back(toc[*kj].pt());
                          hltEtaVec.push_back(toc[*kj].eta());
                          hltPxVec.push_back(toc[*kj].px()); 
                          hltPyVec.push_back(toc[*kj].py());
                        }
                      }// matching jet           
                    }// CaloJet Loop
                  }// valid calojet collection, with calojet trigger
                  
                  //PFJet trigger
                  if(pfjetColl_.isValid() 
                     && (v->getObjectType() == trigger::TriggerJet)
                     && (v->getPath().compare("PFJet") != 0)){
                    //PFJetCollection::const_iterator jet = pfjet.begin();
                    //for(; jet != pfjet.end(); ++jet){ 
                    for(int iPF=0; iPF<2; iPF++){
                      if(deltaR(hltTrigEta, hltTrigPhi, PFJetEta[iPF], PFJetPhi[iPF]) < 0.4){
                        jetsize++;
                        if(v->getTriggerType().compare("SingleJet_Trigger") == 0){
                          v->getMEhisto_Pt()->Fill(PFJetPt[iPF]);
                          if (isBarrel(PFJetEta[iPF]))  v->getMEhisto_PtBarrel()->Fill(PFJetPt[iPF]);
                          if (isEndCap(PFJetEta[iPF]))  v->getMEhisto_PtEndcap()->Fill(PFJetPt[iPF]);
                          if (isForward(PFJetEta[iPF])) v->getMEhisto_PtForward()->Fill(PFJetPt[iPF]);
                          //
                          v->getMEhisto_Eta()->Fill(PFJetEta[iPF]);
                          v->getMEhisto_Phi()->Fill(PFJetPhi[iPF]);
                          v->getMEhisto_EtaPhi()->Fill(PFJetEta[iPF],PFJetPhi[iPF]); 
                          //
                          v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].pt(),PFJetPt[iPF]);
                          v->getMEhisto_EtaCorrelation_HLTRecObj()->Fill(toc[*kj].eta(),PFJetEta[iPF]);
                          v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(),PFJetPhi[iPF]);
                          //
                          v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].pt()-PFJetPt[iPF])/(toc[*kj].pt()));
                          v->getMEhisto_EtaResolution_HLTRecObj()->Fill((toc[*kj].eta()-PFJetEta[iPF])/(toc[*kj].eta()));
                          v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*kj].phi()-PFJetPhi[iPF])/(toc[*kj].phi()));
                        }
                        
                        //-------------------------------------------------------    
                        if((v->getTriggerType().compare("DiJet_Trigger") == 0)){
                          jetPhiVec.push_back(PFJetPhi[iPF]);
                          jetPtVec.push_back(PFJetPt[iPF]);
                          jetEtaVec.push_back(PFJetEta[iPF]);         
                          jetPxVec.push_back(PFJetPx[iPF]);
                          jetPyVec.push_back(PFJetPy[iPF]); 
                          //
                          hltPhiVec.push_back(toc[*kj].phi());
                          hltPtVec.push_back(toc[*kj].pt());
                          hltEtaVec.push_back(toc[*kj].eta());
                          hltPxVec.push_back(toc[*kj].px()); 
                          hltPyVec.push_back(toc[*kj].py());
                        }
                      }// matching jet  
                    }//PFJet loop
                  }//valid pfjet collection, with pfjet trigger
                  //
                }// hlt matching with l1               
              }// jet trigger
              
              //------------------------------------------------------
              if(calometColl_.isValid() 
                 && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
                 && (v->getPath().find("HLT_PFMET")==std::string::npos)){
                const CaloMETCollection *calometcol = calometColl_.product();
                const CaloMET met = calometcol->front();
                //
                v->getMEhisto_Pt()->Fill(met.et()); 
                v->getMEhisto_Phi()->Fill(met.phi());
                //
                v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].et(),met.et());
                v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(),met.phi());
                v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].et()-met.et())/(toc[*kj].et()));
                v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*kj].phi()-met.phi())/(toc[*kj].phi())); 
              }
              
              //--------------------------------------------------------
              if(pfmetColl_.isValid() 
                 && ((v->getObjectType() == trigger::TriggerMET) || (v->getObjectType() == trigger::TriggerTET))
                 && (v->getPath().find("HLT_PFMET")!=std::string::npos)){
                const PFMETCollection *pfmetcol = pfmetColl_.product();
                const PFMET pfmet = pfmetcol->front();
                //
                v->getMEhisto_Pt()->Fill(pfmet.et()); 
                v->getMEhisto_Phi()->Fill(pfmet.phi());
                //
                v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*kj].et(),pfmet.et());
                v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*kj].phi(),pfmet.phi());
                v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*kj].et()-pfmet.et())/(toc[*kj].et()));
                v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*kj].phi()-pfmet.phi())/(toc[*kj].phi())); 
              }
            }//Loop over HLT trigger candidates
            if((v->getTriggerType().compare("DiJet_Trigger") == 0)) diJetFire = true;
          }// Valid hlt trigger object
        }// Loop over L1 objects
      }// Valid L1 trigger object
      v->getMEhisto_N()->Fill(jetsize);
      
      //--------------------------------------------------------
      if((v->getTriggerType().compare("DiJet_Trigger") == 0) && jetPtVec.size() >1){
        double AveJetPt = (jetPtVec[0] + jetPtVec[1])/2;
        double AveJetEta = (jetEtaVec[0] + jetEtaVec[1])/2;               
        double JetDelPhi = deltaPhi(jetPhiVec[0],jetPhiVec[1]);
        double AveHLTPt = (hltPtVec[0] + hltPtVec[1])/2;
        double AveHLTEta = (hltEtaVec[0] + hltEtaVec[1])/2;
        double HLTDelPhi = deltaPhi(hltPhiVec[0],hltPhiVec[1]);
        v->getMEhisto_AveragePt_RecObj()->Fill(AveJetPt);
        v->getMEhisto_AverageEta_RecObj()->Fill(AveJetEta);
        v->getMEhisto_DeltaPhi_RecObj()->Fill(JetDelPhi);
        //
        v->getMEhisto_AveragePt_HLTObj()->Fill(AveHLTPt);
        v->getMEhisto_AverageEta_HLTObj()->Fill(AveHLTEta);
        v->getMEhisto_DeltaPhi_HLTObj()->Fill(HLTDelPhi);
      }
      
      //-----------------------------------------------------      
      if(v->getPath().find("L1") != std::string::npos && !fillL1HLT){
        if ( l1Index >= triggerObj_->sizeFilters() ) {
          edm::LogInfo("JetMETHLTOfflineSource") << "no index "<< l1Index << " of that name "<<l1Tag;
        }
        else {
          //l1TrigBool = true;
          const trigger::Keys & kl1 = triggerObj_->filterKeys(l1Index);
          for( trigger::Keys::const_iterator ki = kl1.begin(); ki != kl1.end(); ++ki){
            double l1TrigEta = toc[*ki].eta();
            double l1TrigPhi = toc[*ki].phi();
            if(calojetColl_.isValid() && (v->getObjectType() == trigger::TriggerJet) && (v->getTriggerType().compare("SingleJet_Trigger") == 0) ){
              for(CaloJetCollection::const_iterator jet = calojet.begin(); jet != calojet.end(); ++jet ) {
                double jetEta = jet->eta();
                double jetPhi = jet->phi();
                if(deltaR(l1TrigEta, l1TrigPhi, jetEta, jetPhi) < 0.4){
                  jetsize++;
                  v->getMEhisto_Pt()->Fill(jet->pt());
                  if (isBarrel(jet->eta()))  v->getMEhisto_PtBarrel()->Fill(jet->pt());
                  if (isEndCap(jet->eta()))  v->getMEhisto_PtEndcap()->Fill(jet->pt());
                  if (isForward(jet->eta())) v->getMEhisto_PtForward()->Fill(jet->pt());
                  //
                  v->getMEhisto_Eta()->Fill(jet->eta());
                  v->getMEhisto_Phi()->Fill(jet->phi());
                  v->getMEhisto_EtaPhi()->Fill(jet->eta(),jet->phi()); 
                  //
                  v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*ki].pt(),jet->pt());
                  v->getMEhisto_EtaCorrelation_HLTRecObj()->Fill(toc[*ki].eta(),jet->eta());
                  v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*ki].phi(),jet->phi());
                  //
                  v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*ki].pt()-jet->pt())/(toc[*ki].pt()));
                  v->getMEhisto_EtaResolution_HLTRecObj()->Fill((toc[*ki].eta()-jet->eta())/(toc[*ki].eta()));
                  v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*ki].phi()-jet->phi())/(toc[*ki].phi()));
                  
                }// matching jet
                
              }// Jet Loop
              v->getMEhisto_N()->Fill(jetsize);
            }// valid Jet collection
            
            if(calometColl_.isValid() && ((v->getObjectType() == trigger::TriggerMET)|| (v->getObjectType() == trigger::TriggerTET))){
              const CaloMETCollection *calometcol = calometColl_.product();
              const CaloMET met = calometcol->front();
              v->getMEhisto_Pt()->Fill(met.pt()); 
              v->getMEhisto_Phi()->Fill(met.phi());
              //
              v->getMEhisto_PtCorrelation_HLTRecObj()->Fill(toc[*ki].pt(),met.pt());
              v->getMEhisto_PhiCorrelation_HLTRecObj()->Fill(toc[*ki].phi(),met.phi());
              v->getMEhisto_PtResolution_HLTRecObj()->Fill((toc[*ki].pt()-met.pt())/(toc[*ki].pt()));
              v->getMEhisto_PhiResolution_HLTRecObj()->Fill((toc[*ki].phi()-met.phi())/(toc[*ki].phi()));
            }// valid MET Collection           
          }// Loop over keys
        }// valid object
      }// L1 is fired but not HLT       
    }//Loop all paths
  }//if(muTrig)
}
void JetMETHLTOfflineSource::fillMEforMonTriggerSummary ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Definition at line 306 of file JetMETHLTOfflineSource.cc.

References correlation_All, correlation_AllWrtMB, correlation_AllWrtMu, gather_cfg::cout, MonitorElement::Fill(), edm::Event::getByLabel(), hltConfig_, hltPathsAll_, i, isHLTPathAccepted(), j, MBTrigPaths_, MuonTrigPaths_, NVertices, timingPdfMaker::pathname, PVZ, rate_All, rate_AllWrtMB, rate_AllWrtMu, runStandalone_, HLTConfigProvider::size(), AlCaHLTBitMon_QueryRunRegistry::string, HLTConfigProvider::triggerName(), TriggerPosition(), v, verbose_, and w().

Referenced by analyze().

{
  bool muTrig = false;
  
  for(size_t i=0;i<MuonTrigPaths_.size();++i){
    const unsigned int nPath(hltConfig_.size());
    for (unsigned int j=0; j!=nPath; ++j) {
      std::string pathname = hltConfig_.triggerName(j);
      if(pathname.find(MuonTrigPaths_[i]) != std::string::npos){
        if(isHLTPathAccepted(pathname)){ 
          muTrig = true;
          if(verbose_) cout<<"fillMEforMonTriggerSummary: Muon Match"<<endl;
        }
      }
      if(muTrig) break;
    }
    if(muTrig) break;
  }
 
  bool mbTrig = false;
  for(size_t i=0;i<MBTrigPaths_.size();++i){
    const unsigned int nPath(hltConfig_.size());
    for (unsigned int j=0; j!=nPath; ++j) {
      std::string pathname = hltConfig_.triggerName(j);
      if(pathname.find(MBTrigPaths_[i]) != std::string::npos){
        if(isHLTPathAccepted(pathname)){
          mbTrig = true;
          if(verbose_) cout<<"fillMEforMonTriggerSummary: MinBias Match"<<endl;
        }
      }
      if(mbTrig) break;
    }
    if(mbTrig) break;
  }
  
  PathInfoCollection::iterator v = hltPathsAll_.begin();
  for(; v!= hltPathsAll_.end(); ++v ){
    bool trigFirst= false;  
    double binV = TriggerPosition(v->getPath());       
    if(isHLTPathAccepted(v->getPath())) trigFirst = true;
    if(!trigFirst)continue;
    if(trigFirst){
      rate_All->Fill(binV);
      correlation_All->Fill(binV,binV);
      if(muTrig && runStandalone_){
        rate_AllWrtMu->Fill(binV);
        correlation_AllWrtMu->Fill(binV,binV);
      }
      if(mbTrig && runStandalone_){
        rate_AllWrtMB->Fill(binV);
        correlation_AllWrtMB->Fill(binV,binV);
      }
    }
    for(PathInfoCollection::iterator w = v+1; w!= hltPathsAll_.end(); ++w ){
      bool trigSec = false; 
      double binW = TriggerPosition(w->getPath()); 
      if(isHLTPathAccepted(w->getPath()))trigSec = true;
      if(trigSec && trigFirst){
        correlation_All->Fill(binV,binW);
        if(muTrig && runStandalone_) correlation_AllWrtMu->Fill(binV,binW);
        if(mbTrig && runStandalone_) correlation_AllWrtMB->Fill(binV,binW); 
      }
      if(!trigSec && trigFirst){
        correlation_All->Fill(binW,binV); 
        if(muTrig && runStandalone_) correlation_AllWrtMu->Fill(binW,binV);
        if(mbTrig && runStandalone_) correlation_AllWrtMB->Fill(binW,binV);
      }
    }
  }

  //Vertex
  edm::Handle<VertexCollection> Vtx;
  iEvent.getByLabel ("offlinePrimaryVertices",Vtx);
  int vtxcnt=0;
  for (VertexCollection::const_iterator itv=Vtx->begin(); itv!=Vtx->end(); itv++){
    //if(vtxcnt>=20) break;
    PVZ->Fill(itv->z());
    //chi2vtx[vtxcnt] = itv->chi2();
    //ndofvtx[vtxcnt] = itv->ndof();
    //ntrkvtx[vtxcnt] = itv->tracksSize();
    vtxcnt++;
  }
  NVertices->Fill(vtxcnt);
}
void JetMETHLTOfflineSource::fillMEforTriggerNTfired ( ) [private, virtual]

Definition at line 392 of file JetMETHLTOfflineSource.cc.

References calojet, calojetColl_, calometColl_, SiPixelRawToDigiRegional_cfi::deltaPhi, hltPathsAll_, getHLTprescales::index, edm::HandleBase::isValid(), metsig::jet, patRefSel_triggerSelection_cff::l1Tag, CaloMET_cfi::met, processname_, edm::Handle< T >::product(), reco::LeafCandidate::pt(), edm::TriggerNames::size(), edm::TriggerNames::triggerIndex(), triggerNames_, triggerObj_, triggerResults_, and v.

Referenced by analyze().

{
  //int npath;
  if(&triggerResults_) { /*npath = triggerResults_->size();*/ } 
  else { return; }
  
  //
  for(PathInfoCollection::iterator v = hltPathsAll_.begin(); v!= hltPathsAll_.end(); ++v ){
    unsigned index = triggerNames_.triggerIndex(v->getPath()); 
    if (index < triggerNames_.size() ){
      v->getMEhisto_TriggerSummary()->Fill(0.);
      edm::InputTag l1Tag(v->getl1Path(),"",processname_);
      const int l1Index = triggerObj_->filterIndex(l1Tag);
      bool l1found = false;
      if(l1Index < triggerObj_->sizeFilters() ) l1found = true;
      if(!l1found)v->getMEhisto_TriggerSummary()->Fill(1.);
      if(!l1found && !(triggerResults_->accept(index)))v->getMEhisto_TriggerSummary()->Fill(2.);
      if(!l1found && (triggerResults_->accept(index)))v->getMEhisto_TriggerSummary()->Fill(3.);
      if(l1found)v->getMEhisto_TriggerSummary()->Fill(4.);
      if(l1found && (triggerResults_->accept(index)))v->getMEhisto_TriggerSummary()->Fill(5.); 
      if(l1found && !(triggerResults_->accept(index)))v->getMEhisto_TriggerSummary()->Fill(6.);
      if(!(triggerResults_->accept(index)) && l1found){ 
        //cout<<v->getTriggerType()<<endl;
        if((v->getTriggerType().compare("SingleJet_Trigger") == 0) && (calojetColl_.isValid()) && calojet.size()){
          CaloJetCollection::const_iterator jet = calojet.begin();
          v->getMEhisto_JetPt()->Fill(jet->pt());
          v->getMEhisto_EtavsPt()->Fill(jet->eta(),jet->pt());
          v->getMEhisto_PhivsPt()->Fill(jet->phi(),jet->pt());
        }
        // single jet trigger is not fired

        if((v->getTriggerType().compare("DiJet_Trigger") == 0) && calojetColl_.isValid()  && calojet.size()){
          v->getMEhisto_JetSize()->Fill(calojet.size());
          if (calojet.size()>=2){
            CaloJetCollection::const_iterator jet = calojet.begin();
            CaloJetCollection::const_iterator jet2= calojet.begin(); jet2++;
            double jet3pt = 0.;
            if(calojet.size()>2){
              CaloJetCollection::const_iterator jet3 = jet2++;
              jet3pt = jet3->pt();
            }
            v->getMEhisto_Pt12()->Fill((jet->pt()+jet2->pt())/2.);
            v->getMEhisto_Eta12()->Fill((jet->eta()+jet2->eta())/2.);
            v->getMEhisto_Phi12()->Fill(deltaPhi(jet->phi(),jet2->phi()));
            v->getMEhisto_Pt3()->Fill(jet3pt);
            v->getMEhisto_Pt12Pt3()->Fill((jet->pt()+jet2->pt())/2., jet3pt);
            v->getMEhisto_Pt12Phi12()->Fill((jet->pt()+jet2->pt())/2., deltaPhi(jet->phi(),jet2->phi()));
          }
        }// di jet trigger is not fired 
        
        if(((v->getTriggerType().compare("MET_Trigger") == 0)|| (v->getTriggerType().compare("TET_Trigger") == 0)) && calometColl_.isValid() ){
          const CaloMETCollection *calometcol = calometColl_.product();
          const CaloMET met = calometcol->front();
          v->getMEhisto_JetPt()->Fill(met.pt());
        }//MET trigger is not fired   
      } // L1 is fired
    }//
  }// trigger not fired
}
const std::string JetMETHLTOfflineSource::getL1ConditionModuleName ( const std::string &  pathname) [private]

Definition at line 2510 of file TrigResRateMon.cc.

References TrigResRateMon::hltConfig_, HLTConfigProvider::moduleLabels(), and HLTConfigProvider::moduleType().

Referenced by beginRun().

{

  // find L1 condition for numpath with numpath objecttype 
  // find PSet for L1 global seed for numpath, 
  // list module labels for numpath
  string l1pathname = "dummy";

  vector<string> numpathmodules = hltConfig_.moduleLabels(pathname);

  for(vector<string>::iterator numpathmodule = numpathmodules.begin();
  numpathmodule!= numpathmodules.end(); ++numpathmodule ) {

    if (hltConfig_.moduleType(*numpathmodule) == "HLTLevel1GTSeed") {

     l1pathname = *numpathmodule;
     break; 

    }

  } // end for

  return l1pathname;

}
void JetMETHLTOfflineSource::histobooking ( const edm::EventSetup c) [private]
bool JetMETHLTOfflineSource::isBarrel ( double  eta) [private, virtual]
bool JetMETHLTOfflineSource::isEndCap ( double  eta) [private, virtual]

Definition at line 6317 of file JetMETHLTOfflineSource.cc.

References convertSQLitetoXML_cfg::output.

Referenced by fillMEforEffAllTrigger(), fillMEforEffWrtMBTrigger(), fillMEforEffWrtMuTrigger(), fillMEforMonAllTrigger(), and fillMEforMonAllTriggerwrtMuonTrigger().

                                               {
  bool output = false;
  if (fabs(eta)<=3.0 && fabs(eta)>1.3) output=true;
  return output;
}
bool JetMETHLTOfflineSource::isForward ( double  eta) [private, virtual]
bool JetMETHLTOfflineSource::isHLTPathAccepted ( std::string  pathName) [private, virtual]

Definition at line 6342 of file JetMETHLTOfflineSource.cc.

References getHLTprescales::index, convertSQLitetoXML_cfg::output, edm::TriggerNames::size(), edm::TriggerNames::triggerIndex(), triggerNames_, and triggerResults_.

Referenced by fillMEforEffWrtMBTrigger(), fillMEforEffWrtMuTrigger(), fillMEforMonAllTrigger(), fillMEforMonAllTriggerwrtMuonTrigger(), and fillMEforMonTriggerSummary().

                                                                {
  // triggerResults_, triggerNames_ has to be defined first before calling this method
  bool output=false;
  if(&triggerResults_) {
    unsigned index = triggerNames_.triggerIndex(pathName);
    if(index < triggerNames_.size() && triggerResults_->accept(index)) output = true;
  }
  return output;
}
bool JetMETHLTOfflineSource::isTriggerObjectFound ( std::string  objectName) [private, virtual]

Definition at line 6373 of file JetMETHLTOfflineSource.cc.

References getHLTprescales::index, gen::k, convertSQLitetoXML_cfg::output, processname_, and triggerObj_.

                                                                     {
  // processname_, triggerObj_ has to be defined before calling this method
  bool output=false;
  edm::InputTag testTag(objectName,"",processname_);
  const int index = triggerObj_->filterIndex(testTag);
  if ( index >= triggerObj_->sizeFilters() ) {    
    edm::LogInfo("JetMETHLTOfflineSource") << "no index "<< index << " of that name ";
  } else {       
    const trigger::Keys & k = triggerObj_->filterKeys(index);
    if (k.size()) output=true;
  }
  return output;
}
double JetMETHLTOfflineSource::TriggerPosition ( std::string  trigName) [private, virtual]

Definition at line 6353 of file JetMETHLTOfflineSource.cc.

References MonitorElement::getTH1(), pileupCalc::nbins, and rate_All.

Referenced by fillMEforMonTriggerSummary().

                                                                {
  int nbins = rate_All->getTH1()->GetNbinsX();
  double binVal = -100;
  for(int ibin=1; ibin<nbins+1; ibin++)
  {
    const char * binLabel = rate_All->getTH1()->GetXaxis()->GetBinLabel(ibin);
    if(binLabel[0]=='\0')continue;
    //       std::string binLabel_str = string(binLabel);
    //       if(binLabel_str.compare(trigName)!=0)continue;
    if(trigName.compare(binLabel)!=0)continue;

    if(trigName.compare(binLabel)==0){
      binVal = rate_All->getTH1()->GetBinCenter(ibin);
      break;
    }
  }
  return binVal;
}
bool JetMETHLTOfflineSource::validPathHLT ( std::string  path) [private, virtual]

Definition at line 6331 of file JetMETHLTOfflineSource.cc.

References hltConfig_, j, convertSQLitetoXML_cfg::output, timingPdfMaker::pathname, HLTConfigProvider::size(), and HLTConfigProvider::triggerName().

                                                           {
  // hltConfig_ has to be defined first before calling this method
  bool output=false;
  for (unsigned int j=0; j!=hltConfig_.size(); ++j) {
    if (hltConfig_.triggerName(j) == pathname )
      output=true;
  }
  return output;
}

Member Data Documentation

Definition at line 152 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), and JetMETHLTOfflineSource().

double JetMETHLTOfflineSource::CaloJetPt[2] [private]
double JetMETHLTOfflineSource::CaloJetPx[2] [private]
double JetMETHLTOfflineSource::CaloJetPy[2] [private]

Definition at line 142 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), and JetMETHLTOfflineSource().

Definition at line 143 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), and JetMETHLTOfflineSource().

Definition at line 999 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforMonTriggerSummary().

Definition at line 1001 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforMonTriggerSummary().

Definition at line 1000 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforMonTriggerSummary().

std::vector<std::pair<std::string, std::string> > JetMETHLTOfflineSource::custompathnamepairs_ [private]

Definition at line 157 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and JetMETHLTOfflineSource().

Definition at line 102 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and JetMETHLTOfflineSource().

std::string JetMETHLTOfflineSource::dirname_ [private]

Definition at line 110 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and JetMETHLTOfflineSource().

Definition at line 988 of file JetMETHLTOfflineSource.h.

Referenced by beginRun().

Definition at line 990 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforMonAllTriggerwrtMuonTrigger().

Definition at line 991 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforEffAllTrigger().

Definition at line 993 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforEffWrtMBTrigger().

Definition at line 992 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforEffWrtMuTrigger().

Definition at line 123 of file JetMETHLTOfflineSource.h.

Referenced by beginRun().

Definition at line 113 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), endJob(), and JetMETHLTOfflineSource().

std::vector<std::string> JetMETHLTOfflineSource::MBTrigPaths_ [private]
std::vector<std::string> JetMETHLTOfflineSource::MuonTrigPaths_ [private]

Definition at line 124 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and JetMETHLTOfflineSource().

Definition at line 101 of file JetMETHLTOfflineSource.h.

Definition at line 1003 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforMonTriggerSummary().

std::vector<std::string> JetMETHLTOfflineSource::pathFilter_ [private]

Definition at line 155 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and JetMETHLTOfflineSource().

std::vector<std::string> JetMETHLTOfflineSource::pathRejectKeyword_ [private]

Definition at line 156 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and JetMETHLTOfflineSource().

double JetMETHLTOfflineSource::PFJetCEMF[2] [private]
double JetMETHLTOfflineSource::PFJetCHEF[2] [private]

Definition at line 153 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), and JetMETHLTOfflineSource().

double JetMETHLTOfflineSource::PFJetEta[2] [private]
double JetMETHLTOfflineSource::PFJetNEMF[2] [private]
double JetMETHLTOfflineSource::PFJetNHEF[2] [private]
double JetMETHLTOfflineSource::PFJetPhi[2] [private]
double JetMETHLTOfflineSource::PFJetPt[2] [private]
double JetMETHLTOfflineSource::PFJetPx[2] [private]
double JetMETHLTOfflineSource::PFJetPy[2] [private]

Definition at line 144 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), and JetMETHLTOfflineSource().

Definition at line 145 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), and JetMETHLTOfflineSource().

Definition at line 117 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), beginRun(), and JetMETHLTOfflineSource().

Definition at line 118 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), beginRun(), and JetMETHLTOfflineSource().

Definition at line 119 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), beginRun(), and JetMETHLTOfflineSource().

Definition at line 121 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), beginRun(), and JetMETHLTOfflineSource().

Definition at line 120 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), beginRun(), and JetMETHLTOfflineSource().

std::vector<int> JetMETHLTOfflineSource::prescUsed_ [private]

Definition at line 108 of file JetMETHLTOfflineSource.h.

std::string JetMETHLTOfflineSource::processname_ [private]

Definition at line 1002 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforMonTriggerSummary().

Definition at line 995 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), fillMEforMonTriggerSummary(), and TriggerPosition().

Definition at line 997 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforMonTriggerSummary().

Definition at line 996 of file JetMETHLTOfflineSource.h.

Referenced by beginRun(), and fillMEforMonTriggerSummary().

Definition at line 190 of file JetMETHLTOfflineSource.h.

Definition at line 104 of file JetMETHLTOfflineSource.h.

Definition at line 141 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), and JetMETHLTOfflineSource().

Definition at line 140 of file JetMETHLTOfflineSource.h.

Referenced by analyze(), and JetMETHLTOfflineSource().