CMS 3D CMS Logo

Public Member Functions | Private Types | Private Member Functions | Private Attributes

HcalTrigPrimMonitor Class Reference

#include <HcalTrigPrimMonitor.h>

Inheritance diagram for HcalTrigPrimMonitor:
HcalBaseDQMonitor edm::EDAnalyzer

List of all members.

Public Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
void beginLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
void beginRun (const edm::Run &run, const edm::EventSetup &c)
void cleanup ()
void endJob ()
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
 HcalTrigPrimMonitor (const edm::ParameterSet &ps)
void processEvent (const edm::Handle< HcalTrigPrimDigiCollection > &data_tp_col, const edm::Handle< HcalTrigPrimDigiCollection > &emul_tp_col)
void reset ()
void setup ()
 ~HcalTrigPrimMonitor ()

Private Types

enum  ErrorFlag {
  kZeroTP = -1, kMatched = 0, kMismatchedEt = 1, kMismatchedFG = 2,
  kMissingData = 3, kMissingEmul = 4, kNErrorFlag = 5, kUnknown = kNErrorFlag
}

Private Member Functions

MonitorElementcreate_errorflag (const std::string &folder, const std::string &name)
MonitorElementcreate_et_histogram (const std::string &folder, const std::string &name)
MonitorElementcreate_fg_correlation (const std::string &folder, const std::string &name)
MonitorElementcreate_map (const std::string &folder, const std::string &name)
MonitorElementcreate_summary (const std::string &folder, const std::string &name)
MonitorElementcreate_tp_correlation (const std::string &folder, const std::string &name)

Private Attributes

MonitorElementbad_tps [2]
edm::InputTag dataLabel_
edm::InputTag emulLabel_
MonitorElementerrorflag [2]
MonitorElementfg_corr [2][2]
MonitorElementgood_tps [2]
int nBad_TP_per_LS_HB_
int nBad_TP_per_LS_HE_
int nBad_TP_per_LS_HF_
std::map< ErrorFlag,
MonitorElement * > 
problem_et [2][2]
std::map< ErrorFlag,
MonitorElement * > 
problem_map [2]
MonitorElementtp_corr [2][2]
MonitorElementTPOccupancy_
MonitorElementTPOccupancyEta_
MonitorElementTPOccupancyPhi_
MonitorElementTPOccupancyPhiHFM_
MonitorElementTPOccupancyPhiHFP_
std::vector< int > ZSAlarmThreshold_

Detailed Description

Date:
2010/10/21 12:12:15
Revision:
1.24
Author:
W. Fisher - FNAL

Definition at line 15 of file HcalTrigPrimMonitor.h.


Member Enumeration Documentation

Enumerator:
kZeroTP 
kMatched 
kMismatchedEt 
kMismatchedFG 
kMissingData 
kMissingEmul 
kNErrorFlag 
kUnknown 

Definition at line 43 of file HcalTrigPrimMonitor.h.


Constructor & Destructor Documentation

HcalTrigPrimMonitor::HcalTrigPrimMonitor ( const edm::ParameterSet ps)

Definition at line 4 of file HcalTrigPrimMonitor.cc.

References HcalBaseDQMonitor::AllowedCalibTypes_, HcalBaseDQMonitor::debug_, HcalBaseDQMonitor::enableCleanup_, edm::ParameterSet::getUntrackedParameter(), HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::mergeRuns_, HcalBaseDQMonitor::NLumiBlocks_, HcalBaseDQMonitor::Online_, HcalBaseDQMonitor::prefixME_, HcalBaseDQMonitor::skipOutOfOrderLS_, and HcalBaseDQMonitor::subdir_.

                                                                   :
   dataLabel_(ps.getParameter<edm::InputTag>("dataLabel")),
   emulLabel_(ps.getParameter<edm::InputTag>("emulLabel")),
   ZSAlarmThreshold_(ps.getParameter< std::vector<int> >("ZSAlarmThreshold"))
{
   Online_                = ps.getUntrackedParameter<bool>("online",false);
   mergeRuns_             = ps.getUntrackedParameter<bool>("mergeRuns",false);
   enableCleanup_         = ps.getUntrackedParameter<bool>("enableCleanup",false);
   debug_                 = ps.getUntrackedParameter<int>("debug",false);
   prefixME_              = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal/");
   if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/")
    prefixME_.append("/");
   subdir_                = ps.getUntrackedParameter<std::string>("TaskFolder","TrigPrimMonitor_Hcal"); 
   if (subdir_.size()>0 && subdir_.substr(subdir_.size()-1,subdir_.size())!="/")
    subdir_.append("/");
   subdir_=prefixME_+subdir_;
   AllowedCalibTypes_     = ps.getUntrackedParameter<std::vector<int> > ("AllowedCalibTypes");
   skipOutOfOrderLS_      = ps.getUntrackedParameter<bool>("skipOutOfOrderLS",true);
   NLumiBlocks_           = ps.getUntrackedParameter<int>("NLumiBlocks",4000);
   makeDiagnostics_       = ps.getUntrackedParameter<bool>("makeDiagnostics",false);

}
HcalTrigPrimMonitor::~HcalTrigPrimMonitor ( )

Definition at line 28 of file HcalTrigPrimMonitor.cc.

                                           {
}

Member Function Documentation

void HcalTrigPrimMonitor::analyze ( const edm::Event e,
const edm::EventSetup c 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 132 of file HcalTrigPrimMonitor.cc.

References dataLabel_, emulLabel_, edm::Event::getByLabel(), HcalBaseDQMonitor::IsAllowedCalibType(), HcalBaseDQMonitor::LumiInOrder(), edm::EventBase::luminosityBlock(), and processEvent().

                                                                       {
   if (!IsAllowedCalibType()) return;
   if (LumiInOrder(e.luminosityBlock())==false) return;

   edm::Handle<HcalTrigPrimDigiCollection> data_tp_col;
   if (!e.getByLabel(dataLabel_, data_tp_col)) {
      edm::LogWarning("HcalTrigPrimMonitor")<< dataLabel_<< " data TP not available";
      return;
   }

   edm::Handle<HcalTrigPrimDigiCollection> emul_tp_col;
   if (!e.getByLabel(emulLabel_, emul_tp_col)) {
      edm::LogWarning("HcalTrigPrimMonitor")<< emulLabel_<< " emul TP not available";
      return;
   }

   HcalBaseDQMonitor::analyze(e,s); // base class increments ievt_, etc. counters
   processEvent(data_tp_col, emul_tp_col);
}
void HcalTrigPrimMonitor::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
) [virtual]
void HcalTrigPrimMonitor::beginRun ( const edm::Run run,
const edm::EventSetup c 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 123 of file HcalTrigPrimMonitor.cc.

References HcalBaseDQMonitor::mergeRuns_, reset(), setup(), and HcalBaseDQMonitor::tevt_.

{
  HcalBaseDQMonitor::beginRun(run,c);
  if (mergeRuns_ && tevt_>0) return; // don't reset counters if merging runs
  if (tevt_==0) this->setup(); // create all histograms; not necessary if merging runs together
  if (mergeRuns_==false) this->reset(); // call reset at start of all runs
} // void HcalTrigPrimMonitor::beginRun()
void HcalTrigPrimMonitor::cleanup ( void  ) [virtual]
MonitorElement * HcalTrigPrimMonitor::create_errorflag ( const std::string &  folder,
const std::string &  name 
) [private]

Definition at line 429 of file HcalTrigPrimMonitor.cc.

References DQMStore::book2D(), HcalBaseDQMonitor::dbe_, MonitorElement::setBinLabel(), and DQMStore::setCurrentFolder().

Referenced by setup().

                                                                                    {
   edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";

   dbe_->setCurrentFolder(folder);
   MonitorElement* element = dbe_->book2D(name, name, 4, 1, 5, 2, 0, 2);
   element->setBinLabel(1, "Mismatched E");
   element->setBinLabel(2, "Mismatched FG");
   element->setBinLabel(3, "Missing Data");
   element->setBinLabel(4, "Missing Emul");
   element->setBinLabel(1, "HBHE", 2);
   element->setBinLabel(2, "HF", 2);
   return element;
}
MonitorElement * HcalTrigPrimMonitor::create_et_histogram ( const std::string &  folder,
const std::string &  name 
) [private]

Definition at line 475 of file HcalTrigPrimMonitor.cc.

References DQMStore::book1D(), HcalBaseDQMonitor::dbe_, and DQMStore::setCurrentFolder().

Referenced by setup().

                                                                                       {
   edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";

   dbe_->setCurrentFolder(folder);
   return dbe_->book1D(name, name, 256, 0, 256);
}
MonitorElement * HcalTrigPrimMonitor::create_fg_correlation ( const std::string &  folder,
const std::string &  name 
) [private]

Definition at line 455 of file HcalTrigPrimMonitor.cc.

References DQMStore::book2D(), HcalBaseDQMonitor::dbe_, MonitorElement::setAxisTitle(), and DQMStore::setCurrentFolder().

Referenced by setup().

                                                                                         {
   edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";

   dbe_->setCurrentFolder(folder);
   MonitorElement* element = dbe_->book2D(name, name, 2, 0, 2, 2, 0, 2);
   element->setAxisTitle("data FG", 1);
   element->setAxisTitle("emul FG", 2);
   return element;
}
MonitorElement * HcalTrigPrimMonitor::create_map ( const std::string &  folder,
const std::string &  name 
) [private]

Definition at line 466 of file HcalTrigPrimMonitor.cc.

References DQMStore::book2D(), HcalBaseDQMonitor::dbe_, DQMStore::setCurrentFolder(), and indexGen::title.

Referenced by setup().

                                                                              {
   edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";

   dbe_->setCurrentFolder(folder);
   std::string title = name +";ieta;iphi";
   return dbe_->book2D(name, title, 65, -32.5, 32.5, 72, 0.5, 72.5);
}
MonitorElement * HcalTrigPrimMonitor::create_summary ( const std::string &  folder,
const std::string &  name 
) [private]

Definition at line 421 of file HcalTrigPrimMonitor.cc.

References DQMStore::book2D(), HcalBaseDQMonitor::dbe_, and DQMStore::setCurrentFolder().

                                                                                  {
   edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";

   dbe_->setCurrentFolder(folder);
   return dbe_->book2D(name, name, 65, -32.5, 32.5, 72, 0.5, 72.5);
}
MonitorElement * HcalTrigPrimMonitor::create_tp_correlation ( const std::string &  folder,
const std::string &  name 
) [private]

Definition at line 444 of file HcalTrigPrimMonitor.cc.

References DQMStore::book2D(), HcalBaseDQMonitor::dbe_, MonitorElement::setAxisTitle(), and DQMStore::setCurrentFolder().

Referenced by setup().

                                                                                         {
   edm::LogInfo("HcalTrigPrimMonitor") << "Creating MonitorElement " << name << " in folder " << folder << "\n";

   dbe_->setCurrentFolder(folder);
   MonitorElement* element = dbe_->book2D(name, name, 50, 0, 256, 50, 0, 256);
   element->setAxisTitle("data TP", 1);
   element->setAxisTitle("emul TP", 2);
   return element;
}
void HcalTrigPrimMonitor::endJob ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 390 of file HcalTrigPrimMonitor.cc.

References cleanup(), and HcalBaseDQMonitor::enableCleanup_.

{
  if (enableCleanup_) cleanup(); 
}
void HcalTrigPrimMonitor::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
) [virtual]
void HcalTrigPrimMonitor::processEvent ( const edm::Handle< HcalTrigPrimDigiCollection > &  data_tp_col,
const edm::Handle< HcalTrigPrimDigiCollection > &  emul_tp_col 
)

Definition at line 154 of file HcalTrigPrimMonitor.cc.

References abs, bad_tps, HcalBaseDQMonitor::dbe_, diffTreeTool::diff, errorflag, fg_corr, MonitorElement::Fill(), good_tps, i, HcalBaseDQMonitor::ievt_, isHF(), kMismatchedEt, kMismatchedFG, kMissingData, kMissingEmul, kNErrorFlag, nBad_TP_per_LS_HB_, nBad_TP_per_LS_HE_, nBad_TP_per_LS_HF_, problem_et, problem_map, MonitorElement::setBinContent(), tp_corr, TPOccupancy_, TPOccupancyEta_, TPOccupancyPhi_, TPOccupancyPhiHFM_, TPOccupancyPhiHFP_, and ZSAlarmThreshold_.

Referenced by analyze().

                                                                 {

   if(dbe_ == 0) 
      return;

   std::vector<int> errorflag_per_event[2][2];
   for (int isZS = 0; isZS <= 1; ++isZS) {
      for (int isHF = 0; isHF <= 1; ++isHF) {
         errorflag_per_event[isZS][isHF] = std::vector<int>(kNErrorFlag, 0);
      }//for isHF
   }//for isZS

   good_tps[0]->setBinContent(-1,-1,ievt_);
   bad_tps[0]->setBinContent(-1,-1,ievt_);
   good_tps[1]->setBinContent(-1,-1,ievt_);
   bad_tps[1]->setBinContent(-1,-1,ievt_);

   for (HcalTrigPrimDigiCollection::const_iterator data_tp = data_tp_col->begin();
                                                  data_tp != data_tp_col->end();
                                                  ++data_tp) {
      int ieta = data_tp->id().ieta();
      int iphi = data_tp->id().iphi();
      int isHF = data_tp->id().ietaAbs() >= 29 ? 1 : 0;


      //
      if (data_tp->SOI_compressedEt() > 0) {
         TPOccupancy_->Fill(ieta, iphi);
         TPOccupancyEta_->Fill(ieta);
         TPOccupancyPhi_->Fill(iphi);

         if (isHF) {
            if (ieta > 0) {
               TPOccupancyPhiHFP_->Fill(iphi);
            }
            else {
               TPOccupancyPhiHFM_->Fill(iphi);
            }
         }
      }

      //check missing from emulator
      HcalTrigPrimDigiCollection::const_iterator emul_tp = emul_tp_col->find(data_tp->id());
      if (emul_tp == emul_tp_col->end()) {
         bool pass_ZS = true;

         for (int i=0; i<data_tp->size(); ++i) {
            int dataEt(data_tp->sample(i).compressedEt());
            problem_et[0][isHF][kMissingEmul]->Fill(dataEt);

            if (dataEt > ZSAlarmThreshold_[abs(ieta)]) {
               problem_et[1][isHF][kMissingEmul]->Fill(dataEt);
               pass_ZS = false;
            }
         }//for tp sample

         problem_map[0][kMissingEmul]->Fill(ieta, iphi);
         ++errorflag_per_event[0][isHF][kMissingEmul];
         bad_tps[0]->Fill(ieta, iphi);

         if (!pass_ZS) {
            problem_map[1][kMissingEmul]->Fill(ieta, iphi);
            ++errorflag_per_event[1][isHF][kMissingEmul];
            bad_tps[1]->Fill(ieta, iphi);

            // counts per LS
            if (abs(ieta) <= 16)
               ++nBad_TP_per_LS_HB_;
            else if(abs(ieta) <= 28)
               ++nBad_TP_per_LS_HE_;
            else
               ++nBad_TP_per_LS_HF_;
         }
      } //emul tp not found
      else {
         bool mismatchedEt_noZS = false;
         bool mismatchedEt_ZS = false;
         bool mismatchedFG_noZS = false;
         bool mismatchedFG_ZS = false;

         for (int i=0; i<data_tp->size(); ++i) {
            int dataEt(data_tp->sample(i).compressedEt());
            int dataFG(data_tp->sample(i).fineGrain());
            int emulEt(emul_tp->sample(i).compressedEt());
            int emulFG(emul_tp->sample(i).fineGrain());

            int diff = abs(dataEt - emulEt);
            bool fill_corr_ZS = true;
            
            if (diff == 0) {
               if (dataFG != emulFG) {
                  mismatchedFG_noZS = true;
                  problem_et[0][isHF][kMismatchedFG]->Fill(dataEt);

                  // exclude mismatched FG when HF TP < ZS_AlarmThreshold
                  if (isHF == 1 && dataEt <= ZSAlarmThreshold_.at(abs(ieta))) {
                     // Do not fill ZS correlation plots.
                     fill_corr_ZS = false;
                  }
                  else {
                     mismatchedFG_ZS = true;
                     problem_et[1][isHF][kMismatchedFG]->Fill(dataEt);
                  }
               } // matched et but not fg
            }
            else {
               mismatchedEt_noZS = true;
               if (diff > ZSAlarmThreshold_.at(abs(ieta))) {
                  mismatchedEt_ZS = true;
                  fill_corr_ZS = false;
               }
            } // mismatche et

            // Correlation plots
            tp_corr[0][isHF]->Fill(dataEt, emulEt);
            fg_corr[0][isHF]->Fill(dataFG, emulFG);

            if (fill_corr_ZS) {
               tp_corr[1][isHF]->Fill(dataEt, emulEt);
               fg_corr[1][isHF]->Fill(dataFG, emulFG);
            }
         }//for tp sample

         // Fill Problem Map and error counts
         if (mismatchedEt_noZS) {
            problem_map[0][kMismatchedEt]->Fill(ieta, iphi);
            ++errorflag_per_event[0][isHF][kMismatchedEt];
         }
         if (mismatchedEt_ZS) {
            problem_map[1][kMismatchedEt]->Fill(ieta, iphi);
            ++errorflag_per_event[1][isHF][kMismatchedEt];
         }
         if (mismatchedFG_noZS) {
            problem_map[0][kMismatchedFG]->Fill(ieta, iphi);
            ++errorflag_per_event[0][isHF][kMismatchedFG];
         }
         if (mismatchedFG_ZS) {
            problem_map[1][kMismatchedFG]->Fill(ieta, iphi);
            ++errorflag_per_event[1][isHF][kMismatchedFG];
         }
         if (mismatchedEt_noZS || mismatchedFG_noZS)
            bad_tps[0]->Fill(ieta, iphi);
         else
            good_tps[0]->Fill(ieta, iphi);
         if (mismatchedEt_ZS || mismatchedFG_ZS) {
            bad_tps[1]->Fill(ieta, iphi);

            // counts per LS
            if (abs(ieta) <= 16)
               ++nBad_TP_per_LS_HB_;
            else if(abs(ieta) <= 28)
               ++nBad_TP_per_LS_HE_;
            else
               ++nBad_TP_per_LS_HF_;
         }
         else
            good_tps[1]->Fill(ieta, iphi);
      }//emul tp found
   }//for data_tp_col


   //check missing from data
   for (HcalTrigPrimDigiCollection::const_iterator emul_tp = emul_tp_col->begin();
                                                   emul_tp != emul_tp_col->end();
                                                   ++emul_tp) {
      int ieta(emul_tp->id().ieta());
      int iphi(emul_tp->id().iphi());
      int isHF = emul_tp->id().ietaAbs() >= 29 ? 1 : 0;

      HcalTrigPrimDigiCollection::const_iterator data_tp = data_tp_col->find(emul_tp->id());
      if (data_tp == data_tp_col->end()) {
         bool pass_ZS = true;

         for (int i=0; i<emul_tp->size(); ++i) {
            int emulEt(emul_tp->sample(i).compressedEt());
            problem_et[0][isHF][kMissingData]->Fill(emulEt);

            if (emulEt > ZSAlarmThreshold_[abs(ieta)]) {
               problem_et[1][isHF][kMissingData]->Fill(emulEt);
               pass_ZS = false;
            }
         }//for tp sample

         problem_map[0][kMissingData]->Fill(ieta, iphi);
         ++errorflag_per_event[0][isHF][kMissingData];
         bad_tps[0]->Fill(ieta, iphi);

         if (!pass_ZS) {
            problem_map[1][kMissingData]->Fill(ieta, iphi);
            ++errorflag_per_event[1][isHF][kMissingData];
            bad_tps[1]->Fill(ieta, iphi);

            // counts per LS
            if (abs(ieta) <= 16)
               ++nBad_TP_per_LS_HB_;
            else if(abs(ieta) <= 28)
               ++nBad_TP_per_LS_HE_;
            else
               ++nBad_TP_per_LS_HF_;
         }
      } //data tp not found
   } //for emul_tp_col

   // Fill error flag per event
   for (int isZS = 0; isZS <= 1; ++isZS) {
      for (int isHF = 0; isHF <= 1; ++isHF) {
         for (int i=0; i<kNErrorFlag; ++i) {
            if (errorflag_per_event[isZS][isHF][i] > 0)
               errorflag[isZS]->Fill(i, isHF);
         }//for i
      }//for isHF
   }//for isZS
}
void HcalTrigPrimMonitor::reset ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 33 of file HcalTrigPrimMonitor.cc.

Referenced by beginRun().

                            {
}
void HcalTrigPrimMonitor::setup ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 38 of file HcalTrigPrimMonitor.cc.

References bad_tps, DQMStore::book1D(), DQMStore::bookProfile(), create_errorflag(), create_et_histogram(), create_fg_correlation(), create_map(), create_tp_correlation(), HcalBaseDQMonitor::dbe_, errorflag, fg_corr, MonitorElement::getTProfile(), good_tps, isHF(), kMismatchedEt, kMismatchedFG, kMissingData, kMissingEmul, HcalBaseDQMonitor::NLumiBlocks_, problem_et, problem_map, HcalBaseDQMonitor::ProblemsVsLB, HcalBaseDQMonitor::ProblemsVsLB_HB, HcalBaseDQMonitor::ProblemsVsLB_HE, HcalBaseDQMonitor::ProblemsVsLB_HF, HcalBaseDQMonitor::ProblemsVsLB_HO, DQMStore::setCurrentFolder(), HcalBaseDQMonitor::subdir_, tp_corr, TPOccupancy_, TPOccupancyEta_, TPOccupancyPhi_, TPOccupancyPhiHFM_, and TPOccupancyPhiHFP_.

Referenced by beginRun().

                           {
   HcalBaseDQMonitor::setup();
   
   if (dbe_ == 0)
      return;

   dbe_->setCurrentFolder(subdir_ + "TP Occupancy");
   TPOccupancyEta_ = dbe_->book1D("TPOccupancyVsEta", "TPOccupancyVsEta", 65, -32.5, 32.5);
   TPOccupancyPhi_ = dbe_->book1D("TPOccupancyVsPhi", "TPOccupancyVsPhi", 72, 0.5, 72.5);
   TPOccupancyPhiHFP_ = dbe_->book1D("TPOccupancyHFPVsPhi", "TPOccupancyHFPVsPhi", 72, 0.5, 72.5);
   TPOccupancyPhiHFM_ = dbe_->book1D("TPOccupancyHFMVsPhi", "TPOccupancyHFMVsPhi", 72, 0.5, 72.5);
   TPOccupancy_ = create_map(subdir_ + "TP Occupancy", "TPOccupancy");

   for (int isZS = 0; isZS <= 1; ++isZS) {

      std::string folder(subdir_);
      std::string zsname="_ZS";
      if (isZS == 0)
        {
          folder += "noZS/";
          zsname="_noZS";
        }

      std::string problem_folder(folder);
      problem_folder += "Problem TPs/";
      
      good_tps[isZS] = create_map(folder, "Good TPs"+zsname);
      bad_tps[isZS] = create_map(folder, "Bad TPs"+zsname);

      errorflag[isZS] = create_errorflag(folder, "Error Flag"+zsname);
      problem_map[isZS][kMismatchedEt] = create_map(problem_folder, "Mismatched Et"+zsname);
      problem_map[isZS][kMismatchedFG] = create_map(problem_folder, "Mismatched FG"+zsname);
      problem_map[isZS][kMissingData] = create_map(problem_folder, "Missing Data"+zsname);
      problem_map[isZS][kMissingEmul] = create_map(problem_folder, "Missing Emul"+zsname);

      for (int isHF = 0; isHF <= 1; ++isHF) {
         std::string subdet = (isHF == 0 ? "HBHE " : "HF ");
         tp_corr[isZS][isHF] = create_tp_correlation(folder, subdet + "TP Correlation"+zsname);
         fg_corr[isZS][isHF] = create_fg_correlation(folder, subdet + "FG Correlation"+zsname);

         problem_et[isZS][isHF][kMismatchedFG]
            = create_et_histogram(problem_folder + "TP Values/", subdet + "Mismatched FG"+zsname);

         problem_et[isZS][isHF][kMissingData]
            = create_et_histogram(problem_folder + "TP Values/", subdet + "Missing Data"+zsname);

         problem_et[isZS][isHF][kMissingEmul]
            = create_et_histogram(problem_folder + "TP Values/", subdet + "Missing Emul"+zsname);
      }//isHF
   }//isZS

   // Number of bad cells vs. luminosity block
   ProblemsVsLB = dbe_->bookProfile(
         "TotalBadTPs_HCAL_vs_LS",
         "Total Number of Bad HCAL TPs vs lumi section",
         NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000);

   ProblemsVsLB_HB = dbe_->bookProfile(
         "TotalBadTPs_HB_vs_LS",
         "Total Number of Bad HB TPs vs lumi section",
         NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);

   ProblemsVsLB_HE = dbe_->bookProfile(
         "TotalBadTPs_HE_vs_LS",
         "Total Number of Bad HE TPs vs lumi section",
         NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);

   ProblemsVsLB_HF = dbe_->bookProfile(
         "TotalBadTPs_HF_vs_LS",
         "Total Number of Bad HF TPs vs lumi section",
         NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);

   // No TPs for HO, DO NOT fill this histogram
   ProblemsVsLB_HO = dbe_->bookProfile(
         "TotalBadTPs_HO_vs_LS",
         "Total Number of Bad HO TPs vs lumi section",
         NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,3000);

   ProblemsVsLB->getTProfile()->SetMarkerStyle(20);
   ProblemsVsLB_HB->getTProfile()->SetMarkerStyle(20);
   ProblemsVsLB_HE->getTProfile()->SetMarkerStyle(20);
   ProblemsVsLB_HO->getTProfile()->SetMarkerStyle(20);
   ProblemsVsLB_HF->getTProfile()->SetMarkerStyle(20);
}

Member Data Documentation

Definition at line 56 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 32 of file HcalTrigPrimMonitor.h.

Referenced by analyze().

Definition at line 33 of file HcalTrigPrimMonitor.h.

Referenced by analyze().

Definition at line 57 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 62 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 55 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 71 of file HcalTrigPrimMonitor.h.

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

Definition at line 72 of file HcalTrigPrimMonitor.h.

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

Definition at line 73 of file HcalTrigPrimMonitor.h.

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

Definition at line 63 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 58 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 61 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 65 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 66 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 67 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 69 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

Definition at line 68 of file HcalTrigPrimMonitor.h.

Referenced by processEvent(), and setup().

std::vector<int> HcalTrigPrimMonitor::ZSAlarmThreshold_ [private]

Definition at line 34 of file HcalTrigPrimMonitor.h.

Referenced by processEvent().