CMS 3D CMS Logo

Public Member Functions | Protected Member Functions | Protected Attributes

HcalBaseMonitor Class Reference

#include <HcalBaseMonitor.h>

Inheritance diagram for HcalBaseMonitor:
HcalCaloTowerMonitor HcalEEUSMonitor HcalZDCMonitor

List of all members.

Public Member Functions

void beginLuminosityBlock (int lb)
virtual void beginRun ()
virtual void clearME ()
virtual void done ()
void endLuminosityBlock ()
bool getDiagnostics () const
int getVerbosity () const
 HcalBaseMonitor ()
void hideKnownBadCells ()
virtual void periodicReset ()
void processEvent ()
void setDiagnostics (bool myval)
void setMinMaxHists1D (std::vector< MonitorElement * > &hh, double min, double max)
void setMinMaxHists2D (std::vector< MonitorElement * > &hh, double min, double max)
virtual void setup (const edm::ParameterSet &ps, DQMStore *dbe)
void setupDepthHists1D (std::vector< MonitorElement * > &hh, std::string Name, std::string Units, int lowbound, int highbound, int Nbins)
void setupDepthHists1D (MonitorElement *&h, std::vector< MonitorElement * > &hh, std::string Name, std::string Units, int lowbound, int highbound, int Nbins)
void setupDepthHists2D (MonitorElement *&h, std::vector< MonitorElement * > &hh, std::string Name, std::string Units)
void setupDepthHists2D (MonitorElement *&h, std::vector< MonitorElement * > &hh, std::string Name, std::string Units, int nbinsx, int lowboundx, int highboundx, int nbinsy, int lowboundy, int highboundy)
void setupDepthHists2D (std::vector< MonitorElement * > &hh, std::string Name, std::string Units)
void setupDepthHists2D (std::vector< MonitorElement * > &hh, std::string Name, std::string Units, int nbinsx, int lowboundx, int highboundx, int nbinsy, int lowboundy, int highboundy)
void SetupEtaPhiHists (MonitorElement *&h, EtaPhiHists &hh, std::string Name, std::string Units)
void SetupEtaPhiHists (EtaPhiHists &hh, std::string Name, std::string Units)
void setVerbosity (int verb)
bool vetoCell (HcalDetId &id)
virtual ~HcalBaseMonitor ()

Protected Member Functions

void LumiBlockUpdate (int lb)

Protected Attributes

std::vector< int > AllowedCalibTypes_
std::vector< std::string > badCells_
std::string baseFolder_
bool checkHB_
bool checkHE_
bool checkHF_
bool checkHO_
int checkNevents_
edm::CPUTimer cpu_timer
bool dump2database
int etaBins_
double etaMax_
double etaMin_
int fVerbosity
int ievt_
bool LBprocessed_
int levt_
int lumiblock
DQMStorem_dbe
bool makeDiagnostics
MonitorElementmeEVT_
MonitorElementmeTOTALEVT_
double minErrorFlag_
int Nlumiblocks_
int NumBadHB
int NumBadHE
int NumBadHF
int NumBadHO
int oldlumiblock
bool Online_
int phiBins_
double phiMax_
double phiMin_
MonitorElementProblemCells
EtaPhiHists ProblemCellsByDepth
MonitorElementProblemsVsLB
MonitorElementProblemsVsLB_HB
MonitorElementProblemsVsLB_HBHEHF
MonitorElementProblemsVsLB_HE
MonitorElementProblemsVsLB_HF
MonitorElementProblemsVsLB_HO
int resetNevents_
std::string rootFolder_
bool showTiming
int tevt_

Detailed Description

Date:
2010/11/24 18:55:24
Revision:
1.40
Author:
W. Fisher - FNAL

Definition at line 45 of file HcalBaseMonitor.h.


Constructor & Destructor Documentation

HcalBaseMonitor::HcalBaseMonitor ( )

Definition at line 10 of file HcalBaseMonitor.cc.

References badCells_, baseFolder_, fVerbosity, and rootFolder_.

                                 {
  fVerbosity = 0;
  badCells_.clear();
  rootFolder_ = "Hcal";
  baseFolder_ = "BaseMonitor";
}
HcalBaseMonitor::~HcalBaseMonitor ( ) [virtual]

Definition at line 17 of file HcalBaseMonitor.cc.

{}

Member Function Documentation

void HcalBaseMonitor::beginLuminosityBlock ( int  lb)

Definition at line 160 of file HcalBaseMonitor.cc.

References LBprocessed_, levt_, and LumiBlockUpdate().

Referenced by ZDCMonitorModule::beginLuminosityBlock().

{
  // Protect against online mis-ordering of events.  
  // Do we want this enabled here? 
  //if (Online_ && lumisec<lumiblock)
  //  return;
  LumiBlockUpdate(lumisec);
  levt_=0;
  LBprocessed_=false;
} // beginLuminosityBlock
void HcalBaseMonitor::beginRun ( void  ) [virtual]

Definition at line 19 of file HcalBaseMonitor.cc.

References ievt_, LBprocessed_, and levt_.

Referenced by ZDCMonitorModule::beginRun().

{ievt_=0;levt_=0;LBprocessed_=false;}
void HcalBaseMonitor::clearME ( ) [virtual]

Reimplemented in HcalEEUSMonitor.

Definition at line 179 of file HcalBaseMonitor.cc.

References baseFolder_, m_dbe, DQMStore::removeContents(), and DQMStore::setCurrentFolder().

Referenced by ZDCMonitorModule::~ZDCMonitorModule().

                             {

  if(m_dbe){
    m_dbe->setCurrentFolder(baseFolder_);
    m_dbe->removeContents();    
    /*
    m_dbe->setCurrentFolder(baseFolder_+"/HB");
    m_dbe->removeContents();
    
    m_dbe->setCurrentFolder(baseFolder_+"/HE");
    m_dbe->removeContents();

    m_dbe->setCurrentFolder(baseFolder_+"/HO");
    m_dbe->removeContents();

    m_dbe->setCurrentFolder(baseFolder_+"/HF");
    m_dbe->removeContents();
    */
  }
  return;
} // void HcalBaseMonitor::clearME();
void HcalBaseMonitor::done ( ) [virtual]

Definition at line 177 of file HcalBaseMonitor.cc.

Referenced by ZDCMonitorModule::endJob().

{}
void HcalBaseMonitor::endLuminosityBlock ( void  )

Reimplemented in HcalZDCMonitor.

Definition at line 171 of file HcalBaseMonitor.cc.

References LBprocessed_.

{
  LBprocessed_=true;
  return;
} // endLuminosityBlock;
bool HcalBaseMonitor::getDiagnostics ( ) const [inline]

Definition at line 61 of file HcalBaseMonitor.h.

References makeDiagnostics.

{ return makeDiagnostics;}
int HcalBaseMonitor::getVerbosity ( ) const [inline]

Definition at line 58 of file HcalBaseMonitor.h.

References fVerbosity.

{ return fVerbosity; }
void HcalBaseMonitor::hideKnownBadCells ( )

Definition at line 221 of file HcalBaseMonitor.cc.

References badCells_, CalcEtaBin(), EtaPhiHists::depth, i, ProblemCells, ProblemCellsByDepth, and MonitorElement::setBinContent().

{
  /* This prevents known bad cells from being displayed in overall problem maps and 
     depth histograms.  Is this what we want?  Or do we want some problems to be
     displayed in the depth plots but not the overall map?  (Or vice versa?)
  */
  
  for (unsigned int i=0;i<badCells_.size();++i)
    {
      unsigned int badc = atoi(badCells_[i].c_str());
      HcalDetId id(badc);
      int etabin=CalcEtaBin(id.subdet(),id.ieta(),id.depth());
      if (ProblemCells!=0) ProblemCells->setBinContent(etabin+1,id.iphi(),0);
      if (ProblemCellsByDepth.depth[id.depth()-1]!=0)
        ProblemCellsByDepth.depth[id.depth()-1]->setBinContent(etabin+1,id.iphi(),0);
    } // for (unsigned int i=0;...)
  return;
} // void HcalBaseMonitor::hideKnownBadCells()
void HcalBaseMonitor::LumiBlockUpdate ( int  lb) [protected]

Definition at line 120 of file HcalBaseMonitor.cc.

References lumiblock, and Nlumiblocks_.

Referenced by beginLuminosityBlock().

{

  //if (Online_ && lb<=lumiblock) // protect against mis-ordered LBs.  Handle differently in the future?
  //  return;

  lumiblock=lb;
  if (lumiblock==0) // initial lumiblock call; don't fill histograms, because nothing has been determined yet
      return;

  if (lb>Nlumiblocks_) // don't fill plots if lumiblock is beyond range
      return;

  // The following function would let us 'fill in' missing lumiblock sections.  
  // I think we only want this for Online running, since offline should fill each lumi block
  // independently.  
  // Should probably just do this in the individual tasks?
  /*
  if (Online_ && lumiblock<lb)
    {
      for (int i=lumiblock+1;i<lb;++i)
        {
          if (ProblemsVsLB)
            ProblemsVsLB->Fill(i,NumBadHB+NumBadHE+NumBadHO+NumBadHF);
          if (ProblemsVsLB_HB)
            ProblemsVsLB_HB->Fill(i,NumBadHB);
          if (ProblemsVsLB_HE)
            ProblemsVsLB_HE->Fill(i,NumBadHE);
          if (ProblemsVsLB_HO)
            ProblemsVsLB_HO->Fill(i,NumBadHO);
          if (ProblemsVsLB_HF)
            ProblemsVsLB_HF->Fill(i,NumBadHF);
          if (ProblemsVsLB_HBHEHF)
            ProblemsVsLB_HBHEHF->Fill(i,NumBadHB+NumBadHE+NumBadHF);
        }
    }
  */
  return;
}
void HcalBaseMonitor::periodicReset ( ) [virtual]

Definition at line 639 of file HcalBaseMonitor.cc.

References EtaPhiHists::depth, i, ProblemCells, ProblemCellsByDepth, and MonitorElement::Reset().

{
  // when called, reset all counters, and all histograms
  if (ProblemCells!=0) ProblemCells->Reset();
  for (unsigned int i=0;i<ProblemCellsByDepth.depth.size();++i)
    {
      if (ProblemCellsByDepth.depth[i]!=0) 
        ProblemCellsByDepth.depth[i]->Reset();
    }
  return;
}
void HcalBaseMonitor::processEvent ( )

Definition at line 105 of file HcalBaseMonitor.cc.

References MonitorElement::Fill(), ievt_, levt_, m_dbe, meEVT_, meTOTALEVT_, and tevt_.

{
  // increment event counters
  ++ievt_;
  ++levt_;
  ++tevt_;
  // Fill MonitorElements
  if (m_dbe)
    {
      if (meEVT_) meEVT_->Fill(ievt_);
      if (meTOTALEVT_) meTOTALEVT_->Fill(tevt_);
    }
  return;
}
void HcalBaseMonitor::setDiagnostics ( bool  myval) [inline]

Definition at line 60 of file HcalBaseMonitor.h.

References makeDiagnostics.

{ makeDiagnostics=myval;}
void HcalBaseMonitor::setMinMaxHists1D ( std::vector< MonitorElement * > &  hh,
double  min,
double  max 
)

Definition at line 628 of file HcalBaseMonitor.cc.

References trackerHits::histo, and i.

{
  for (unsigned int i=0; i<hh.size();++i)
    {
      TH1F* histo=hh[i]->getTH1F();
      histo->SetMinimum(min);
      histo->SetMaximum(max);
    }
  return;
}
void HcalBaseMonitor::setMinMaxHists2D ( std::vector< MonitorElement * > &  hh,
double  min,
double  max 
)

Definition at line 617 of file HcalBaseMonitor.cc.

References trackerHits::histo, and i.

{
  for (unsigned int i=0; i<hh.size();++i)
    {
      TH2F* histo=hh[i]->getTH2F();
      histo->SetMinimum(min);
      histo->SetMaximum(max);
    }
  return;
}
void HcalBaseMonitor::setup ( const edm::ParameterSet ps,
DQMStore dbe 
) [virtual]

Reimplemented in HcalCaloTowerMonitor, HcalEEUSMonitor, and HcalZDCMonitor.

Definition at line 21 of file HcalBaseMonitor.cc.

References AllowedCalibTypes_, badCells_, checkHB_, checkHE_, checkHF_, checkHO_, checkNevents_, gather_cfg::cout, dump2database, etaBins_, ETAMAX, etaMax_, ETAMIN, etaMin_, fVerbosity, edm::ParameterSet::getUntrackedParameter(), ievt_, levt_, lumiblock, m_dbe, makeDiagnostics, meEVT_, meTOTALEVT_, minErrorFlag_, Nlumiblocks_, NULL, NumBadHB, NumBadHE, NumBadHF, NumBadHO, oldlumiblock, Online_, phiBins_, PHIMAX, phiMax_, PHIMIN, phiMin_, ProblemsVsLB, ProblemsVsLB_HB, ProblemsVsLB_HBHEHF, ProblemsVsLB_HE, ProblemsVsLB_HF, ProblemsVsLB_HO, resetNevents_, rootFolder_, showTiming, and tevt_.

                                                                   {
  m_dbe = NULL;
  if(dbe != NULL) m_dbe = dbe;

  std::vector<std::string> dummy;
  dummy.clear();
  Online_   =  ps.getUntrackedParameter<bool>("Online",false);
  badCells_ =  ps.getUntrackedParameter<std::vector<std::string> >( "BadCells" , dummy);
  AllowedCalibTypes_ = ps.getUntrackedParameter<std::vector<int> > ("AllowedCalibTypes");
  

  // Base folder for the contents of this job
  std::string subsystemname = ps.getUntrackedParameter<std::string>("subSystemFolder", "Hcal") ;
  rootFolder_ = subsystemname + "/";

  // Global cfgs
  
  fVerbosity      = ps.getUntrackedParameter<int>("debug",0); 
  makeDiagnostics = ps.getUntrackedParameter<bool>("makeDiagnosticPlots",false);
  showTiming      = ps.getUntrackedParameter<bool>("showTiming",false);
  dump2database   = ps.getUntrackedParameter<bool>("dump2database",false); // dumps output to database file 

  checkHB_ = ps.getUntrackedParameter<bool>("checkHB",true);
  checkHE_ = ps.getUntrackedParameter<bool>("checkHE",true);
  checkHO_ = ps.getUntrackedParameter<bool>("checkHO",true);
  checkHF_ = ps.getUntrackedParameter<bool>("checkHF",true);
 
  checkNevents_ = ps.getUntrackedParameter<int>("checkNevents",1000); // specify how often to run checks
  Nlumiblocks_ = ps.getUntrackedParameter<int>("Nlumiblocks",1000); //  number of luminosity blocks to include in time plots 
  if (Nlumiblocks_<=0) Nlumiblocks_=1000;
  resetNevents_ = ps.getUntrackedParameter<int>("resetNevents",-1); // how often to reset histograms

  // Minimum error rate that will caused the problem histogram to be filled
  minErrorFlag_ = ps.getUntrackedParameter<double>("minErrorFlag",0.05);
  
  // Set eta, phi boundaries
  // We can remove these variables once we move completely to EtaPhiHists from the old 2D SJ6hists
  etaMax_ = ps.getUntrackedParameter<double>("MaxEta", ETAMAX);
  etaMin_ = ps.getUntrackedParameter<double>("MinEta", ETAMIN);
    
  if (etaMax_ > 44.5)
    {
      std::cout <<"<HcalBaseMonitor> WARNING:  etaMax_ value of "<<etaMax_<<" exceeds maximum allowed value of 44.5"<<std::endl;
      std::cout <<"                      Value being set back to 44.5."<<std::endl;
      std::cout <<"                      Additional code changes are necessary to allow value of "<<etaMax_<<std::endl;
      etaMax_ = 44.5;
    }

  if (etaMin_ < ETAMIN)
    {
      std::cout <<"<HcalBaseMonitor> WARNING:  etaMin_ value of "<<etaMin_<<" exceeds minimum allowed value of 44.5"<<std::endl;
      std::cout <<"                      Value being set back to -44.5."<<std::endl;
      std::cout <<"                      Additional code changes are necessary to allow value of "<<etaMin_<<std::endl;
      etaMin_ = -44.5;
    }

  etaBins_ = (int)(etaMax_ - etaMin_);

  phiMax_ = ps.getUntrackedParameter<double>("MaxPhi", PHIMAX);
  phiMin_ = ps.getUntrackedParameter<double>("MinPhi", PHIMIN);
  phiBins_ = (int)(phiMax_ - phiMin_);

  ProblemsVsLB=0;
  ProblemsVsLB_HB=0;
  ProblemsVsLB_HE=0;
  ProblemsVsLB_HO=0;
  ProblemsVsLB_HF=0;
  ProblemsVsLB_HBHEHF=0;
  
  meEVT_=0;
  meTOTALEVT_=0;
  ievt_=0;
  levt_=0;
  tevt_=0;
  lumiblock=0;
  oldlumiblock=0;
  NumBadHB=0;
  NumBadHE=0;
  NumBadHO=0;
  NumBadHF=0;

  return;
} //void HcalBaseMonitor::setup()
void HcalBaseMonitor::setupDepthHists1D ( MonitorElement *&  h,
std::vector< MonitorElement * > &  hh,
std::string  Name,
std::string  Units,
int  lowbound,
int  highbound,
int  Nbins 
)

Definition at line 523 of file HcalBaseMonitor.cc.

References DQMStore::book1D(), gather_cfg::cout, cpu_timer, edm::CPUTimer::cpuTime(), m_dbe, mergeVDriftHistosByStation::name, edm::CPUTimer::reset(), MonitorElement::setAxisTitle(), showTiming, edm::CPUTimer::start(), and edm::CPUTimer::stop().

{
  // Makes an overall 1D Monitor Element (for summing over depths) for h, and creates individual depth Monitor Elements for hh
  if (showTiming)
    {
      cpu_timer.reset(); cpu_timer.start();
    }

  std::stringstream name;
  name<<Name;

  std::stringstream unitname;
  std::stringstream unittitle;
  if (Units.empty())
    {
      unitname<<Units;
      unittitle<<"No Units";
    }
  else
    {
      unitname<<" "<<Units;
      unittitle<<Units;
    }
  
  // Create overall 1D Monitor Element
  h=m_dbe->book1D(("All "+name.str()+unitname.str()).c_str(),
                  (name.str() + " for all HCAL ("+unittitle.str().c_str()+")"),
                  Nbins,lowbound,highbound);
  h->setAxisTitle(unitname.str().c_str(),1);
  
  // Create vector of Monitor Elements for individual depths
  setupDepthHists1D(hh, Name, Units, lowbound, highbound, Nbins);

   if (showTiming)
    {
      cpu_timer.stop();  std::cout <<"TIMER:: HcalBaseMonitor SETUPDEPTHHISTS1D_OVERALL "<<name.str().c_str()<<" -> "<<cpu_timer.cpuTime()<<std::endl;
    }
   return;

} //void HcalBaseMonitor::setupDepthHists1D(MonitorElement* &h, std::vector<MonitorElement*> &hh, std::string Name, std::string Units)
void HcalBaseMonitor::setupDepthHists1D ( std::vector< MonitorElement * > &  hh,
std::string  Name,
std::string  Units,
int  lowbound,
int  highbound,
int  Nbins 
)

Definition at line 566 of file HcalBaseMonitor.cc.

References DQMStore::book1D(), gather_cfg::cout, cpu_timer, edm::CPUTimer::cpuTime(), i, m_dbe, mergeVDriftHistosByStation::name, edm::CPUTimer::reset(), showTiming, edm::CPUTimer::start(), and edm::CPUTimer::stop().

{
  // Makes histograms just for the vector of Monitor Elements
  if (showTiming)
    {
      cpu_timer.reset(); cpu_timer.start();
    }
  
  std::stringstream name;
  name<<Name;
  std::stringstream unitname;
  std::stringstream unittitle;
  if (Units.empty())
    {
      unitname<<Units;
      unittitle<<"No Units";
    }
  else
    {
      unitname<<" "<<Units;
      unittitle<<Units;
    }

  // Push back depth plots
  hh.push_back(m_dbe->book1D(("HB "+name.str()+unitname.str()).c_str(),
                             (name.str()+" HB ("+unittitle.str().c_str()+")"),
                             Nbins,lowbound,highbound));
  hh.push_back( m_dbe->book1D(("HE "+name.str()+unitname.str()).c_str(),
                              (name.str()+" HE ("+unittitle.str().c_str()+")"),
                              Nbins,lowbound,highbound));
  hh.push_back( m_dbe->book1D(("HO "+name.str()+unitname.str()).c_str(),
                              (name.str()+" HO ("+unittitle.str().c_str()+")"),
                              Nbins,lowbound,highbound));
  hh.push_back( m_dbe->book1D(("HF "+name.str()+unitname.str()).c_str(),
                              (name.str()+" HF ("+unittitle.str().c_str()+")"),
                              Nbins,lowbound,highbound));

  for (unsigned int i=0;i<hh.size();++i)
    {
      hh[i]->setAxisTitle(unitname.str().c_str(),1);
    }
 
  if (showTiming)
    {
      cpu_timer.stop();  std::cout <<"TIMER:: HcalBaseMonitor SETUPDEPTHHISTS1D "<<name.str().c_str()<<" -> "<<cpu_timer.cpuTime()<<std::endl;
    }

  return;
} // void HcalBaseMonitor::setupDepthHists1D(std::vector<MonitorElement*> &hh, std::string Name, std::string Units, int lowbound, int highbound, int Nbins)
void HcalBaseMonitor::setupDepthHists2D ( std::vector< MonitorElement * > &  hh,
std::string  Name,
std::string  Units 
)

Definition at line 332 of file HcalBaseMonitor.cc.

References DQMStore::book2D(), etaBins_, etaMax_, etaMin_, i, m_dbe, mergeVDriftHistosByStation::name, phiBins_, phiMax_, and phiMin_.

{
  /* Code makes vector of 2D MonitorElements for all 6 depths
     (4 depths, + 2 for separate HE histograms).
     Bins are automatically set for eta/phi indices
     DEPRECATE THIS ONCE ALL OLD-STYLE 2D HISTOGRAMS HAVE BEEN REMOVED!
  */
  
  /*
  if (showTiming)
    {
      cpu_timer.reset(); cpu_timer.start();
    }
  */
  std::stringstream name;
  name<<Name;

  std::stringstream unitname;
  std::stringstream unittitle;
  if (Units.empty())
    {
      unitname<<Units;
      unittitle<<"No Units";
    }
  else
    {
      unitname<<" "<<Units;
      unittitle<<Units;
    }

  // Push back depth plots -- remove ZDC names at some point?
  hh.push_back(m_dbe->book2D(("HB HF Depth 1 "+name.str()+unitname.str()).c_str(),
                             (name.str()+" Depth 1 -- HB & HF only ("+unittitle.str().c_str()+")"),
                             etaBins_,etaMin_,etaMax_,
                             phiBins_,phiMin_,phiMax_));
  hh.push_back( m_dbe->book2D(("HB HF Depth 2 "+name.str()+unitname.str()).c_str(),
                              (name.str()+" Depth 2 -- HB & HF only ("+unittitle.str().c_str()+")"),
                              etaBins_,etaMin_,etaMax_,
                              phiBins_,phiMin_,phiMax_));
  hh.push_back( m_dbe->book2D(("HE Depth 3 "+name.str()+unitname.str()).c_str(),
                              (name.str()+" Depth 3 -- HE ("+unittitle.str().c_str()+")"),
                              etaBins_,etaMin_,etaMax_,
                              phiBins_,phiMin_,phiMax_));
  hh.push_back( m_dbe->book2D(("HO ZDC "+name.str()+unitname.str()).c_str(),
                              (name.str()+" -- HO & ZDC ("+unittitle.str().c_str()+")"),
                              etaBins_,etaMin_,etaMax_,
                              phiBins_,phiMin_,phiMax_));
  hh.push_back(m_dbe->book2D(("HE Depth 1 "+name.str()+unitname.str()).c_str(),
                             (name.str()+" Depth 1 -- HE only ("+unittitle.str().c_str()+")"),
                             etaBins_,etaMin_,etaMax_,
                             phiBins_,phiMin_,phiMax_));
  hh.push_back(m_dbe->book2D(("HE Depth 2 "+name.str()+unitname.str()).c_str(),
                             (name.str()+" Depth 2 -- HE only ("+unittitle.str().c_str()+")"),
                             etaBins_,etaMin_,etaMax_,
                             phiBins_,phiMin_,phiMax_));
  for (unsigned int i=0;i<hh.size();++i)
    {
      hh[i]->setAxisTitle("i#eta",1);
      hh[i]->setAxisTitle("i#phi",2);
    }
  /* 
  if (showTiming)
    {
     cpu_timer.stop();  std::cout <<"TIMER:: HcalBaseMonitor SETUPDEPTHHISTS2D "<<name.str().c_str()<<" -> "<<cpu_timer.cpuTime()<<std::endl;
    }
  */
  return;
} // void HcalBaseMonitor::setupDepthHists2D(std::vector<MonitorElement*> &hh, std::string Name, std::string Units)
void HcalBaseMonitor::setupDepthHists2D ( std::vector< MonitorElement * > &  hh,
std::string  Name,
std::string  Units,
int  nbinsx,
int  lowboundx,
int  highboundx,
int  nbinsy,
int  lowboundy,
int  highboundy 
)

Definition at line 454 of file HcalBaseMonitor.cc.

References DQMStore::book2D(), gather_cfg::cout, cpu_timer, edm::CPUTimer::cpuTime(), m_dbe, mergeVDriftHistosByStation::name, edm::CPUTimer::reset(), showTiming, edm::CPUTimer::start(), and edm::CPUTimer::stop().

{
  /* Code makes vector of 2D MonitorElements for all 6 depths
     (4 depths, + 2 for separate HE histograms).
     Bins are automatically set for eta/phi indices
     DEPRECATE THIS ONCE ALL OLD-STYLE 2D HISTOGRAMS HAVE BEEN REMOVED!
     
     
  */

  if (showTiming)
    {
      cpu_timer.reset(); cpu_timer.start();
    }

  std::stringstream name;
  name<<Name;

  std::stringstream unitname;
  std::stringstream unittitle;
  if (Units.empty())
    {
      unitname<<Units;
      unittitle<<"No Units";
    }
  else
    {
      unitname<<" "<<Units;
      unittitle<<Units;
    }

  // Push back depth plots
  hh.push_back(m_dbe->book2D(("HB HF Depth 1 "+name.str()+unitname.str()).c_str(),
                             (name.str()+" Depth 1 -- HB & HF only ("+unittitle.str().c_str()+")"),
                             nbinsx, lowboundx, highboundx,
                             nbinsy, lowboundy, highboundy));
  hh.push_back( m_dbe->book2D(("HB HF Depth 2 "+name.str()+unitname.str()).c_str(),
                              (name.str()+" Depth 2 -- HB & HF only ("+unittitle.str().c_str()+")"),
                              nbinsx, lowboundx, highboundx,
                              nbinsy, lowboundy, highboundy));
  hh.push_back( m_dbe->book2D(("HE Depth 3 "+name.str()+unitname.str()).c_str(),
                              (name.str()+" Depth 3 -- HE ("+unittitle.str().c_str()+")"),
                              nbinsx, lowboundx, highboundx,
                              nbinsy, lowboundy, highboundy));
  hh.push_back( m_dbe->book2D(("HO ZDC "+name.str()+unitname.str()).c_str(),
                              (name.str()+" -- HO & ZDC ("+unittitle.str().c_str()+")"),
                              nbinsx, lowboundx, highboundx,
                              nbinsy, lowboundy, highboundy));
  hh.push_back(m_dbe->book2D(("HE Depth 1 "+name.str()+unitname.str()).c_str(),
                             (name.str()+" Depth 1 -- HE only ("+unittitle.str().c_str()+")"),
                             nbinsx, lowboundx, highboundx,
                             nbinsy, lowboundy, highboundy));
  hh.push_back(m_dbe->book2D(("HE Depth 2 "+name.str()+unitname.str()).c_str(),
                             (name.str()+" Depth 2 -- HE only ("+unittitle.str().c_str()+")"),
                             nbinsx, lowboundx, highboundx,
                             nbinsy, lowboundy, highboundy));
 
  if (showTiming)
    {
      cpu_timer.stop();  std::cout <<"TIMER:: HcalBaseMonitor SETUPDEPTHHISTS2D "<<name.str().c_str()<<" -> "<<cpu_timer.cpuTime()<<std::endl;
    }

  return;
} // void HcalBaseMonitor::setupDepthHists2D(std::vector<MonitorElement*> &hh, std::string Name, std::string Units)
void HcalBaseMonitor::setupDepthHists2D ( MonitorElement *&  h,
std::vector< MonitorElement * > &  hh,
std::string  Name,
std::string  Units,
int  nbinsx,
int  lowboundx,
int  highboundx,
int  nbinsy,
int  lowboundy,
int  highboundy 
)

Definition at line 404 of file HcalBaseMonitor.cc.

References DQMStore::book2D(), gather_cfg::cout, cpu_timer, edm::CPUTimer::cpuTime(), m_dbe, mergeVDriftHistosByStation::name, edm::CPUTimer::reset(), setupDepthHists2D(), showTiming, edm::CPUTimer::start(), and edm::CPUTimer::stop().

{
  /* Code makes overall 2D MonitorElement histogram,
     and the vector of 2D MonitorElements for each individual depth.
     Bin ranges, sizes are specified by user
     DEPRECATE THIS ONCE ALL OLD-STYLE 2D HISTOGRAMS HAVE BEEN REMOVED!
  */

  if (showTiming)
    {
      cpu_timer.reset(); cpu_timer.start();
    }

  std::stringstream name;
  name<<Name;
  std::stringstream unitname;
  std::stringstream unittitle;
  if (Units.empty())
    {
      unitname<<Units;
      unittitle<<"No Units";
    }
  else
    {
      unitname<<" "<<Units;
      unittitle<<Units;
    }

  h=m_dbe->book2D(("All "+name.str()+unitname.str()).c_str(),
                  (name.str() + " for all HCAL ("+unittitle.str().c_str()+")"),
                  nbinsx, lowboundx, highboundx,
                  nbinsy, lowboundy, highboundy);

  setupDepthHists2D(hh, Name, Units, 
                    nbinsx, lowboundx, highboundx,
                    nbinsy, lowboundy, highboundy);


  if (showTiming)
    {
      cpu_timer.stop();  std::cout <<"TIMER:: HcalBaseMonitor SETUPDEPTHHISTS2D_OVERALL "<<name.str().c_str()<<" -> "<<cpu_timer.cpuTime()<<std::endl;
    }
  return;
} // void HcalBaseMonitor::setupDepthHists2D(MonitorElement* &h, std::vector<MonitorElement*> &hh, std::string Name, std::string Units, int nbinsx...)
void HcalBaseMonitor::setupDepthHists2D ( MonitorElement *&  h,
std::vector< MonitorElement * > &  hh,
std::string  Name,
std::string  Units 
)

Definition at line 283 of file HcalBaseMonitor.cc.

References DQMStore::book2D(), etaBins_, etaMax_, etaMin_, m_dbe, mergeVDriftHistosByStation::name, phiBins_, phiMax_, phiMin_, and MonitorElement::setAxisTitle().

Referenced by setupDepthHists2D().

{
  /* Code makes overall 2D MonitorElement histogram,
     and the vector of 2D MonitorElements for each individual depth.
     Eta, Phi bins are set automatically from the etaMax_, etaMin_, etc.
     values in HcalBaseMonitor.h
  */

  /*
  if (showTiming)
    {
      cpu_timer.reset(); cpu_timer.start();
    }
  */
  std::stringstream name;
  name<<Name;
  std::stringstream unitname;
  std::stringstream unittitle;
  if (Units.empty())
    {
      unitname<<Units;
      unittitle<<"No Units";
    }
  else
    {
      unitname<<" "<<Units;
      unittitle<<Units;
    }

  h=m_dbe->book2D(("All "+name.str()+unitname.str()).c_str(),
                  (name.str() + " for all HCAL ("+unittitle.str().c_str()+")"),
                  etaBins_, etaMin_, etaMax_,
                  phiBins_, phiMin_, phiMax_);
  h->setAxisTitle("i#eta",1);
  h->setAxisTitle("i#phi",2);
  
  setupDepthHists2D(hh, Name, Units);
  /*
  if (showTiming)
    {
      cpu_timer.stop();  std::cout <<"TIMER:: HcalBaseMonitor SETUPDEPTHHISTS2D_OVERALL "<<name.str().c_str()<<" -> "<<cpu_timer.cpuTime()<<std::endl;
    }
  */
  return;
} // void HcalBaseMonitor::setupDepthHists2D(MonitorElement* &h, std::vector<MonitorElement*> &hh, std::string Name, std::string Units)
void HcalBaseMonitor::SetupEtaPhiHists ( EtaPhiHists hh,
std::string  Name,
std::string  Units 
)

Definition at line 277 of file HcalBaseMonitor.cc.

References m_dbe, and EtaPhiHists::setup().

{
  hh.setup(m_dbe, Name, Units);
  return;
}
void HcalBaseMonitor::SetupEtaPhiHists ( MonitorElement *&  h,
EtaPhiHists hh,
std::string  Name,
std::string  Units 
)

Definition at line 248 of file HcalBaseMonitor.cc.

References DQMStore::book2D(), m_dbe, mergeVDriftHistosByStation::name, and MonitorElement::setAxisTitle().

{
  std::stringstream name;
  name<<Name;
  std::stringstream unitname;
  std::stringstream unittitle;
  if (Units.empty())
    {
      unitname<<Units;
      unittitle<<"No Units";
    }
  else
    {
      unitname<<" "<<Units;
      unittitle<<Units;
    }

  h=m_dbe->book2D(("All "+name.str()+unitname.str()).c_str(),
                  (name.str() + " for all HCAL ("+unittitle.str().c_str()+")"),
                  85,-42.5,42.5,
                  72,0.5,72.5);

  h->setAxisTitle("i#eta",1);
  h->setAxisTitle("i#phi",2);
  
  SetupEtaPhiHists(hh, Name, Units);
  return;
}
void HcalBaseMonitor::setVerbosity ( int  verb) [inline]

Definition at line 57 of file HcalBaseMonitor.h.

References fVerbosity.

{ fVerbosity = verb; }
bool HcalBaseMonitor::vetoCell ( HcalDetId id)

Definition at line 204 of file HcalBaseMonitor.cc.

References badCells_, and i.

{
  /*
    Function identifies whether cell with HcalDetId 'id' should be vetoed, 
    based on elements stored in  badCells_ array.
  */

  if(badCells_.size()==0) return false;
  for(unsigned int i = 0; i< badCells_.size(); ++i)
    {
      
      unsigned int badc = atoi(badCells_[i].c_str());
      if(id.rawId() == badc) return true;
    }
  return false;
} // bool HcalBaseMonitor::vetoCell(HcalDetId id)

Member Data Documentation

std::vector<int> HcalBaseMonitor::AllowedCalibTypes_ [protected]

Definition at line 120 of file HcalBaseMonitor.h.

Referenced by setup().

std::vector<std::string> HcalBaseMonitor::badCells_ [protected]

Definition at line 116 of file HcalBaseMonitor.h.

Referenced by HcalBaseMonitor(), hideKnownBadCells(), setup(), and vetoCell().

std::string HcalBaseMonitor::baseFolder_ [protected]
bool HcalBaseMonitor::checkHB_ [protected]

Definition at line 106 of file HcalBaseMonitor.h.

Referenced by setup().

bool HcalBaseMonitor::checkHE_ [protected]

Definition at line 106 of file HcalBaseMonitor.h.

Referenced by setup().

bool HcalBaseMonitor::checkHF_ [protected]

Definition at line 106 of file HcalBaseMonitor.h.

Referenced by setup().

bool HcalBaseMonitor::checkHO_ [protected]

Definition at line 106 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 99 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 98 of file HcalBaseMonitor.h.

Referenced by setup().

int HcalBaseMonitor::etaBins_ [protected]

Reimplemented in HcalCaloTowerMonitor.

Definition at line 103 of file HcalBaseMonitor.h.

Referenced by setup(), and setupDepthHists2D().

double HcalBaseMonitor::etaMax_ [protected]

Reimplemented in HcalCaloTowerMonitor.

Definition at line 101 of file HcalBaseMonitor.h.

Referenced by setup(), and setupDepthHists2D().

double HcalBaseMonitor::etaMin_ [protected]

Reimplemented in HcalCaloTowerMonitor.

Definition at line 101 of file HcalBaseMonitor.h.

Referenced by setup(), and setupDepthHists2D().

int HcalBaseMonitor::fVerbosity [protected]
int HcalBaseMonitor::ievt_ [protected]

Reimplemented in HcalCaloTowerMonitor, HcalEEUSMonitor, and HcalZDCMonitor.

Definition at line 125 of file HcalBaseMonitor.h.

Referenced by beginRun(), processEvent(), and setup().

Definition at line 128 of file HcalBaseMonitor.h.

Referenced by beginLuminosityBlock(), beginRun(), and endLuminosityBlock().

int HcalBaseMonitor::levt_ [protected]

Definition at line 126 of file HcalBaseMonitor.h.

Referenced by beginLuminosityBlock(), beginRun(), processEvent(), and setup().

int HcalBaseMonitor::lumiblock [protected]

Definition at line 131 of file HcalBaseMonitor.h.

Referenced by LumiBlockUpdate(), and setup().

Definition at line 112 of file HcalBaseMonitor.h.

Referenced by getDiagnostics(), setDiagnostics(), and setup().

Reimplemented in HcalCaloTowerMonitor, HcalEEUSMonitor, and HcalZDCMonitor.

Definition at line 129 of file HcalBaseMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 130 of file HcalBaseMonitor.h.

Referenced by processEvent(), and setup().

double HcalBaseMonitor::minErrorFlag_ [protected]

Definition at line 104 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 108 of file HcalBaseMonitor.h.

Referenced by LumiBlockUpdate(), and setup().

int HcalBaseMonitor::NumBadHB [protected]

Definition at line 133 of file HcalBaseMonitor.h.

Referenced by setup().

int HcalBaseMonitor::NumBadHE [protected]

Definition at line 133 of file HcalBaseMonitor.h.

Referenced by setup().

int HcalBaseMonitor::NumBadHF [protected]

Definition at line 133 of file HcalBaseMonitor.h.

Referenced by setup().

int HcalBaseMonitor::NumBadHO [protected]

Definition at line 133 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 132 of file HcalBaseMonitor.h.

Referenced by setup().

bool HcalBaseMonitor::Online_ [protected]

Definition at line 115 of file HcalBaseMonitor.h.

Referenced by setup().

int HcalBaseMonitor::phiBins_ [protected]

Reimplemented in HcalCaloTowerMonitor.

Definition at line 103 of file HcalBaseMonitor.h.

Referenced by setup(), and setupDepthHists2D().

double HcalBaseMonitor::phiMax_ [protected]

Reimplemented in HcalCaloTowerMonitor.

Definition at line 102 of file HcalBaseMonitor.h.

Referenced by setup(), and setupDepthHists2D().

double HcalBaseMonitor::phiMin_ [protected]

Reimplemented in HcalCaloTowerMonitor.

Definition at line 102 of file HcalBaseMonitor.h.

Referenced by setup(), and setupDepthHists2D().

Definition at line 122 of file HcalBaseMonitor.h.

Referenced by hideKnownBadCells(), and periodicReset().

Definition at line 123 of file HcalBaseMonitor.h.

Referenced by hideKnownBadCells(), and periodicReset().

Definition at line 134 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 135 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 135 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 135 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 135 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 135 of file HcalBaseMonitor.h.

Referenced by setup().

Definition at line 107 of file HcalBaseMonitor.h.

Referenced by setup().

std::string HcalBaseMonitor::rootFolder_ [protected]
bool HcalBaseMonitor::showTiming [protected]
int HcalBaseMonitor::tevt_ [protected]

Definition at line 127 of file HcalBaseMonitor.h.

Referenced by processEvent(), and setup().