#include <HcalDeadCellMonitor.h>
HcalDeadCellMonitor::HcalDeadCellMonitor | ( | const edm::ParameterSet & | ps | ) |
Definition at line 4 of file HcalDeadCellMonitor.cc.
References HcalBaseDQMonitor::AllowedCalibTypes_, HcalBaseDQMonitor::badChannelStatusMask_, deadmon_test_digis_, deadmon_test_rechits_, HcalBaseDQMonitor::debug_, digiLabel_, HcalBaseDQMonitor::enableCleanup_, energyThreshold_, excludeHORing2_, edm::ParameterSet::getUntrackedParameter(), HBenergyThreshold_, hbheRechitLabel_, HcalChannelStatus::HcalCellDead, HEenergyThreshold_, HFenergyThreshold_, hfRechitLabel_, HOenergyThreshold_, hoRechitLabel_, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::mergeRuns_, minDeadEventCount_, HcalBaseDQMonitor::NLumiBlocks_, HcalBaseDQMonitor::Online_, HcalBaseDQMonitor::prefixME_, HcalBaseDQMonitor::skipOutOfOrderLS_, and HcalBaseDQMonitor::subdir_.
{ Online_ = ps.getUntrackedParameter<bool>("online",false); mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns",false); enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup",false); debug_ = ps.getUntrackedParameter<int>("debug",0); makeDiagnostics_ = ps.getUntrackedParameter<bool>("makeDiagnostics",false); prefixME_ = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal/"); if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/") prefixME_.append("/"); subdir_ = ps.getUntrackedParameter<std::string>("TaskFolder","DeadCellMonitor_Hcal"); // DeadCellMonitor_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); badChannelStatusMask_ = ps.getUntrackedParameter<int>("BadChannelStatusMask", ps.getUntrackedParameter<int>("BadChannelStatusMask", (1<<HcalChannelStatus::HcalCellDead))); // identify channel status values to mask // DeadCell-specific parameters // Collection type info digiLabel_ =ps.getUntrackedParameter<edm::InputTag>("digiLabel"); hbheRechitLabel_ = ps.getUntrackedParameter<edm::InputTag>("hbheRechitLabel"); hoRechitLabel_ = ps.getUntrackedParameter<edm::InputTag>("hoRechitLabel"); hfRechitLabel_ = ps.getUntrackedParameter<edm::InputTag>("hfRechitLabel"); // minimum number of events required for lumi section-based dead cell checks minDeadEventCount_ = ps.getUntrackedParameter<int>("minDeadEventCount",1000); excludeHORing2_ = ps.getUntrackedParameter<bool>("excludeHORing2",false); // Set which dead cell checks will be performed /* Dead cells can be defined in the following ways: 1) never present digi -- digi is never present in run 2) digis -- digi is absent for one or more lumi section 3) never present rechit -- rechit > threshold energy never present (NOT redundant, since it requires not just that a rechit be present, but that it be above threshold as well. ) 4) rechits -- rechit is present, but rechit energy below threshold for one or more lumi sections Of these tests, never-present digis are always checked. Occasional digis are checked only if deadmon_test_digis_ is true, and both rechit tests are made only if deadmon_test_rechits_ is true */ deadmon_test_digis_ = ps.getUntrackedParameter<bool>("test_digis",true); deadmon_test_rechits_ = ps.getUntrackedParameter<bool>("test_rechits",false); // rechit energy test -- cell must be below threshold value for a number of consecutive events to be considered dead energyThreshold_ = ps.getUntrackedParameter<double>("MissingRechitEnergyThreshold",0); HBenergyThreshold_ = ps.getUntrackedParameter<double>("HB_energyThreshold",energyThreshold_); HEenergyThreshold_ = ps.getUntrackedParameter<double>("HE_energyThreshold",energyThreshold_); HOenergyThreshold_ = ps.getUntrackedParameter<double>("HO_energyThreshold",energyThreshold_); HFenergyThreshold_ = ps.getUntrackedParameter<double>("HF_energyThreshold",energyThreshold_); } //constructor
HcalDeadCellMonitor::~HcalDeadCellMonitor | ( | ) |
Definition at line 61 of file HcalDeadCellMonitor.cc.
{
} //destructor
void HcalDeadCellMonitor::analyze | ( | edm::Event const & | e, |
edm::EventSetup const & | s | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 526 of file HcalDeadCellMonitor.cc.
References gather_cfg::cout, deadevt_, HcalBaseDQMonitor::debug_, digiLabel_, endLumiProcessed_, MonitorElement::Fill(), edm::Event::getByLabel(), hbheRechitLabel_, hfRechitLabel_, hoRechitLabel_, HcalBaseDQMonitor::ievt_, HcalBaseDQMonitor::IsAllowedCalibType(), HcalBaseDQMonitor::LumiInOrder(), edm::EventBase::luminosityBlock(), Nevents, and processEvent().
{ if (!IsAllowedCalibType()) return; endLumiProcessed_=false; Nevents->Fill(0,1); // count all events of allowed calibration type, even if their lumi block is not in the right order if (LumiInOrder(e.luminosityBlock())==false) return; // try to get rechits and digis edm::Handle<HBHEDigiCollection> hbhe_digi; edm::Handle<HODigiCollection> ho_digi; edm::Handle<HFDigiCollection> hf_digi; edm::Handle<HBHERecHitCollection> hbhe_rechit; edm::Handle<HORecHitCollection> ho_rechit; edm::Handle<HFRecHitCollection> hf_rechit; if (!(e.getByLabel(digiLabel_,hbhe_digi))) { edm::LogWarning("HcalDeadCellMonitor")<< digiLabel_<<" hbhe_digi not available"; return; } if (!(e.getByLabel(digiLabel_,ho_digi))) { edm::LogWarning("HcalDeadCellMonitor")<< digiLabel_<<" ho_digi not available"; return; } if (!(e.getByLabel(digiLabel_,hf_digi))) { edm::LogWarning("HcalDeadCellMonitor")<< digiLabel_<<" hf_digi not available"; return; } if (!(e.getByLabel(hbheRechitLabel_,hbhe_rechit))) { edm::LogWarning("HcalDeadCellMonitor")<< hbheRechitLabel_<<" hbhe_rechit not available"; return; } if (!(e.getByLabel(hfRechitLabel_,hf_rechit))) { edm::LogWarning("HcalDeadCellMonitor")<< hfRechitLabel_<<" hf_rechit not available"; return; } if (!(e.getByLabel(hoRechitLabel_,ho_rechit))) { edm::LogWarning("HcalDeadCellMonitor")<< hoRechitLabel_<<" ho_rechit not available"; return; } if (debug_>1) std::cout <<"\t<HcalDeadCellMonitor::analyze> Processing good event! event # = "<<ievt_<<std::endl; // Good event found; increment counter (via base class analyze method) // This also runs the allowed calibration /lumi in order tests again; remove? HcalBaseDQMonitor::analyze(e,s); ++deadevt_; //increment local counter processEvent(*hbhe_rechit, *ho_rechit, *hf_rechit, *hbhe_digi, *ho_digi, *hf_digi); } // void HcalDeadCellMonitor::analyze(...)
void HcalDeadCellMonitor::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | c | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 350 of file HcalDeadCellMonitor.cc.
References HcalBaseDQMonitor::badChannelStatusMask_, gather_cfg::cout, HcalBaseDQMonitor::debug_, edm::EventSetup::get(), HcalCondObjectContainer< Item >::getAllChannels(), reco::JetExtendedAssociation::getValue(), HcalCondObjectContainer< Item >::getValues(), DetId::Hcal, i, HcalBaseDQMonitor::KnownBadCells_, HcalBaseDQMonitor::mergeRuns_, L1TEmulatorMonitor_cff::p, edm::ESHandle< T >::product(), reset(), setup(), ntuplemaker::status, and HcalBaseDQMonitor::tevt_.
{ if (debug_>1) std::cout <<"HcalDeadCellMonitor::beginRun"<<std::endl; HcalBaseDQMonitor::beginRun(run,c); if (tevt_==0) this->setup(); // set up histograms if they have not been created before if (mergeRuns_==false) this->reset(); // Get known dead cells for this run KnownBadCells_.clear(); if (badChannelStatusMask_>0) { edm::ESHandle<HcalChannelQuality> p; c.get<HcalChannelQualityRcd>().get(p); HcalChannelQuality* chanquality= new HcalChannelQuality(*p.product()); std::vector<DetId> mydetids = chanquality->getAllChannels(); for (std::vector<DetId>::const_iterator i = mydetids.begin(); i!=mydetids.end(); ++i) { if (i->det()!=DetId::Hcal) continue; // not an hcal cell HcalDetId id=HcalDetId(*i); int status=(chanquality->getValues(id))->getValue(); if ((status & badChannelStatusMask_)) { KnownBadCells_[id.rawId()]=status; } } } // if (badChannelStatusMask_>0) return; } //void HcalDeadCellMonitor::beginRun(...)
void HcalDeadCellMonitor::cleanup | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 450 of file HcalDeadCellMonitor.cc.
References HcalBaseDQMonitor::dbe_, HcalBaseDQMonitor::enableCleanup_, DQMStore::removeContents(), DQMStore::setCurrentFolder(), and HcalBaseDQMonitor::subdir_.
Referenced by endJob().
{ if (!enableCleanup_) return; if (dbe_) { dbe_->setCurrentFolder(subdir_); dbe_->removeContents(); dbe_->setCurrentFolder(subdir_+"dead_digi_never_present"); dbe_->removeContents(); dbe_->setCurrentFolder(subdir_+"dead_digi_often_missing"); dbe_->removeContents(); dbe_->setCurrentFolder(subdir_+"dead_rechit_neverpresent"); dbe_->removeContents(); dbe_->setCurrentFolder(subdir_+"dead_rechit_often_missing"); dbe_->removeContents(); dbe_->setCurrentFolder(subdir_+"dead_cell_parameters"); dbe_->removeContents(); dbe_->setCurrentFolder(subdir_+"LSvalues"); dbe_->removeContents(); } return; } // void HcalDeadCellMonitor::cleanup()
void HcalDeadCellMonitor::endJob | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 520 of file HcalDeadCellMonitor.cc.
References cleanup(), gather_cfg::cout, HcalBaseDQMonitor::debug_, and HcalBaseDQMonitor::enableCleanup_.
{ if (debug_>0) std::cout <<"HcalDeadCellMonitor::endJob()"<<std::endl; if (enableCleanup_) cleanup(); // when do we force cleanup? }
void HcalDeadCellMonitor::endLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | c | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 475 of file HcalDeadCellMonitor.cc.
References deadevt_, endLumiProcessed_, fillNevents_problemCells(), fillNevents_recentdigis(), fillNevents_recentrechits(), HcalBaseDQMonitor::levt_, HcalBaseDQMonitor::LumiInOrder(), edm::LuminosityBlockBase::luminosityBlock(), minDeadEventCount_, NumBadHB, NumBadHE, NumBadHF, NumBadHFLUMI, NumBadHO, NumBadHO0, NumBadHO12, HcalBaseDQMonitor::ProblemsCurrentLB, MonitorElement::Reset(), MonitorElement::setBinContent(), and zeroCounters().
{ // skip old lumi sections if (this->LumiInOrder(lumiSeg.luminosityBlock())==false) return; // Reset current LS histogram if (ProblemsCurrentLB) ProblemsCurrentLB->Reset(); // Here is where we determine whether or not to process an event // Not enough events if (deadevt_<minDeadEventCount_) return; endLumiProcessed_=true; // fillNevents_problemCells checks for never-present cells fillNevents_problemCells(); fillNevents_recentdigis(); fillNevents_recentrechits(); if (ProblemsCurrentLB) { ProblemsCurrentLB->setBinContent(0,0, levt_); // underflow bin contains number of events ProblemsCurrentLB->setBinContent(1,1, NumBadHB*levt_); ProblemsCurrentLB->setBinContent(2,1, NumBadHE*levt_); ProblemsCurrentLB->setBinContent(3,1, NumBadHO*levt_); ProblemsCurrentLB->setBinContent(4,1, NumBadHF*levt_); ProblemsCurrentLB->setBinContent(5,1, NumBadHO0*levt_); ProblemsCurrentLB->setBinContent(6,1, NumBadHO12*levt_); ProblemsCurrentLB->setBinContent(7,1, NumBadHFLUMI*levt_); } zeroCounters(); deadevt_=0; return; } //endLuminosityBlock()
void HcalDeadCellMonitor::endRun | ( | const edm::Run & | run, |
const edm::EventSetup & | c | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 511 of file HcalDeadCellMonitor.cc.
References endLumiProcessed_, and fillNevents_problemCells().
{ // Always carry out overall occupancy test at endRun, regardless minimum number of events? // Or should we require an absolute lower bound? // We can always run this test; we'll use the summary client to implement a lower bound before calculating reportSummary values if (endLumiProcessed_==false) fillNevents_problemCells(); // always check for never-present cells return; }
void HcalDeadCellMonitor::fillNevents_problemCells | ( | ) | [private] |
Definition at line 949 of file HcalDeadCellMonitor.cc.
References abs, CalcIeta(), gather_cfg::cout, HcalBaseDQMonitor::currentLS, deadevt_, deadmon_test_digis_, deadmon_test_rechits_, HcalBaseDQMonitor::debug_, EtaPhiHists::depth, DigiPresentByDepth, eta(), excludeHORing2_, MonitorElement::Fill(), HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HcalBaseDQMonitor::ievt_, isSiPM(), HcalBaseDQMonitor::KnownBadCells_, minDeadEventCount_, Nevents, NumBadHB, NumBadHE, NumBadHF, NumBadHFLUMI, NumBadHO, NumBadHO0, NumBadHO12, NumberOfNeverPresentDigis, NumberOfNeverPresentDigisHB, NumberOfNeverPresentDigisHE, NumberOfNeverPresentDigisHF, NumberOfNeverPresentDigisHO, NumberOfNeverPresentRecHits, NumberOfNeverPresentRecHitsHB, NumberOfNeverPresentRecHitsHE, NumberOfNeverPresentRecHitsHF, NumberOfNeverPresentRecHitsHO, NumberOfRecentMissingDigis, NumberOfRecentMissingDigisHB, NumberOfRecentMissingDigisHE, NumberOfRecentMissingDigisHF, NumberOfRecentMissingDigisHO, NumberOfRecentMissingRecHits, NumberOfRecentMissingRecHitsHB, NumberOfRecentMissingRecHitsHE, NumberOfRecentMissingRecHitsHF, NumberOfRecentMissingRecHitsHO, phi, present_digi, present_rechit, ProblemsVsLB, ProblemsVsLB_HB, HcalBaseDQMonitor::ProblemsVsLB_HBHEHF, ProblemsVsLB_HE, ProblemsVsLB_HF, ProblemsVsLB_HO, DetId::rawId(), recentoccupancy_digi, recentoccupancy_rechit, and validDetId().
Referenced by endLuminosityBlock(), and endRun().
{ //fillNevents_problemCells now only performs checks of never-present cells if (debug_>0) std::cout <<"<HcalDeadCellMonitor::fillNevents_problemCells> FILLING PROBLEM CELL PLOTS"<<std::endl; int ieta=0; int iphi=0; // Count problem cells in each subdetector NumBadHB=0; NumBadHE=0; NumBadHO=0; NumBadHF=0; NumBadHFLUMI=0; NumBadHO0=0; NumBadHO12=0; int knownBadHB=0; int knownBadHE=0; int knownBadHF=0; int knownBadHO=0; int knownBadHFLUMI=0; int knownBadHO0=0; int knownBadHO12=0; unsigned int neverpresentHB=0; unsigned int neverpresentHE=0; unsigned int neverpresentHO=0; unsigned int neverpresentHF=0; unsigned int unoccupiedHB=0; unsigned int unoccupiedHE=0; unsigned int unoccupiedHO=0; unsigned int unoccupiedHF=0; unsigned int belowenergyHB=0; unsigned int belowenergyHE=0; unsigned int belowenergyHO=0; unsigned int belowenergyHF=0; unsigned int energyneverpresentHB=0; unsigned int energyneverpresentHE=0; unsigned int energyneverpresentHO=0; unsigned int energyneverpresentHF=0; if (deadevt_>=minDeadEventCount_) Nevents->Fill(1,deadevt_); int etabins=0; int phibins=0; // Store values for number of bad channels in each lumi section, for plots of ProblemsVsLS. // This is different than the NumBadHB, etc. values, which must included even known bad channels // in order to calculate reportSummaryByLS values correctly. for (unsigned int depth=0;depth<DigiPresentByDepth.depth.size();++depth) { DigiPresentByDepth.depth[depth]->setBinContent(0,0,ievt_); etabins=DigiPresentByDepth.depth[depth]->getNbinsX(); phibins=DigiPresentByDepth.depth[depth]->getNbinsY(); for (int eta=0;eta<etabins;++eta) { for (int phi=0;phi<phibins;++phi) { iphi=phi+1; for (int subdet=1;subdet<=4;++subdet) { ieta=CalcIeta((HcalSubdetector)subdet,eta,depth+1); if (ieta==-9999) continue; if (!validDetId((HcalSubdetector)subdet, ieta, iphi, depth+1)) continue; // Ignore subdetectors that weren't in run? /* if ((subdet==HcalBarrel && !HBpresent_) || (subdet==HcalEndcap &&!HEpresent_) || (subdet==HcalOuter &&!HOpresent_) || (subdet==HcalForward &&!HFpresent_)) continue; */ /* if ((!checkHB_ && subdet==HcalBarrel) || (!checkHE_ && subdet==HcalEndcap) || (!checkHO_ && subdet==HcalOuter) || (!checkHF_ && subdet==HcalForward)) continue; */ // now check which dead cell tests failed; increment counter if any failed if ((present_digi[eta][phi][depth]==0) || (deadmon_test_digis_ && recentoccupancy_digi[eta][phi][depth]==0 && (deadevt_>=minDeadEventCount_)) || (deadmon_test_rechits_ && recentoccupancy_rechit[eta][phi][depth]==0 && (deadevt_>=minDeadEventCount_)) ) { HcalDetId TempID((HcalSubdetector)subdet, ieta, iphi, (int)depth+1); if (subdet==HcalBarrel) { ++NumBadHB; if (KnownBadCells_.find(TempID.rawId())!=KnownBadCells_.end()) ++knownBadHB; } else if (subdet==HcalEndcap) { ++NumBadHE; if (KnownBadCells_.find(TempID.rawId())!=KnownBadCells_.end()) ++knownBadHE; } else if (subdet==HcalOuter) { ++NumBadHO; if (abs(ieta)<5) ++NumBadHO0; else ++NumBadHO12; // Don't include HORing2 if boolean set; subtract away those counters if (excludeHORing2_==true && abs(ieta)>10 && isSiPM(ieta,iphi,depth+1)==false) { --NumBadHO; --NumBadHO12; } if (KnownBadCells_.find(TempID.rawId())!=KnownBadCells_.end()) { ++knownBadHO; if (abs(ieta)<5) ++knownBadHO0; else ++knownBadHO12; // Don't include HORing2 if boolean set; subtract away those counters if (excludeHORing2_==true && abs(ieta)>10 && isSiPM(ieta,iphi,depth+1)==false) { --knownBadHO; --knownBadHO12; } } } else if (subdet==HcalForward) { ++NumBadHF; if (depth==1 && (abs(ieta)==33 || abs(ieta)==34)) ++NumBadHFLUMI; else if (depth==2 && (abs(ieta)==35 || abs(ieta)==36)) ++NumBadHFLUMI; if (KnownBadCells_.find(TempID.rawId())!=KnownBadCells_.end()) { ++knownBadHF; if (depth==1 && (abs(ieta)==33 || abs(ieta)==34)) ++knownBadHFLUMI; else if (depth==2 && (abs(ieta)==35 || abs(ieta)==36)) ++knownBadHFLUMI; } } } if (present_digi[eta][phi][depth]==0) { if (subdet==HcalBarrel) ++neverpresentHB; else if (subdet==HcalEndcap) ++neverpresentHE; else if (subdet==HcalOuter) { ++neverpresentHO; if (excludeHORing2_==true && abs(ieta)>10 && isSiPM(ieta,iphi,depth+1)==false) --neverpresentHO; } else if (subdet==HcalForward) ++neverpresentHF; } // Count recent unoccupied digis if the total events in this lumi section is > minEvents_ if (deadmon_test_digis_ && recentoccupancy_digi[eta][phi][depth]==0 && (deadevt_>=minDeadEventCount_)) { if (subdet==HcalBarrel) ++unoccupiedHB; else if (subdet==HcalEndcap) ++unoccupiedHE; else if (subdet==HcalOuter) { ++unoccupiedHO; if (excludeHORing2_==true && abs(ieta)>10 && isSiPM(ieta,iphi,depth+1)==false) --unoccupiedHO; } else if (subdet==HcalForward) ++unoccupiedHF; } // Look at rechit checks if (deadmon_test_rechits_) { if (present_rechit[eta][phi][depth]==0) { if (subdet==HcalBarrel) ++energyneverpresentHB; else if (subdet==HcalEndcap) ++energyneverpresentHE; else if (subdet==HcalOuter) { ++energyneverpresentHO; if (excludeHORing2_==true && abs(ieta)>10 && isSiPM(ieta,iphi,depth+1)==false) --energyneverpresentHO; } else if (subdet==HcalForward) ++energyneverpresentHF; } if (recentoccupancy_rechit[eta][phi][depth]==0 && (deadevt_>=minDeadEventCount_)) { if (subdet==HcalBarrel) ++belowenergyHB; else if (subdet==HcalEndcap) ++belowenergyHE; else if (subdet==HcalOuter) { ++belowenergyHO; if (excludeHORing2_==true && abs(ieta)>10 && isSiPM(ieta,iphi,depth+1)==false) --belowenergyHO; } else if (subdet==HcalForward) ++belowenergyHF; } } } // subdet loop } // phi loop } //eta loop } // depth loop // Fill with number of problem cells found on this pass NumberOfNeverPresentDigisHB->Fill(currentLS,neverpresentHB); NumberOfNeverPresentDigisHE->Fill(currentLS,neverpresentHE); NumberOfNeverPresentDigisHO->Fill(currentLS,neverpresentHO); NumberOfNeverPresentDigisHF->Fill(currentLS,neverpresentHF); NumberOfNeverPresentDigis->Fill(currentLS,neverpresentHB+neverpresentHE+neverpresentHO+neverpresentHF); ProblemsVsLB_HB->Fill(currentLS,NumBadHB-knownBadHB); ProblemsVsLB_HE->Fill(currentLS,NumBadHE-knownBadHE); ProblemsVsLB_HO->Fill(currentLS,NumBadHO-knownBadHO); ProblemsVsLB_HF->Fill(currentLS,NumBadHF-knownBadHF); ProblemsVsLB_HBHEHF->Fill(currentLS,NumBadHB+NumBadHE+NumBadHF-knownBadHB-knownBadHE-knownBadHF); ProblemsVsLB->Fill(currentLS,NumBadHB+NumBadHE+NumBadHO+NumBadHF-knownBadHB-knownBadHE-knownBadHO-knownBadHF); if (deadevt_<minDeadEventCount_) return; if (deadmon_test_digis_) { NumberOfRecentMissingDigisHB->Fill(currentLS,unoccupiedHB); NumberOfRecentMissingDigisHE->Fill(currentLS,unoccupiedHE); NumberOfRecentMissingDigisHO->Fill(currentLS,unoccupiedHO); NumberOfRecentMissingDigisHF->Fill(currentLS,unoccupiedHF); NumberOfRecentMissingDigis->Fill(currentLS,unoccupiedHB+unoccupiedHE+unoccupiedHO+unoccupiedHF); } if (deadmon_test_rechits_) { NumberOfNeverPresentRecHitsHB->Fill(currentLS,energyneverpresentHB); NumberOfNeverPresentRecHitsHE->Fill(currentLS,energyneverpresentHE); NumberOfNeverPresentRecHitsHO->Fill(currentLS,energyneverpresentHO); NumberOfNeverPresentRecHitsHF->Fill(currentLS,energyneverpresentHF); NumberOfNeverPresentRecHits->Fill(currentLS,energyneverpresentHB+energyneverpresentHE+energyneverpresentHO+energyneverpresentHF); NumberOfRecentMissingRecHitsHB->Fill(currentLS,belowenergyHB); NumberOfRecentMissingRecHitsHE->Fill(currentLS,belowenergyHE); NumberOfRecentMissingRecHitsHO->Fill(currentLS,belowenergyHO); NumberOfRecentMissingRecHitsHF->Fill(currentLS,belowenergyHF); NumberOfRecentMissingRecHits->Fill(currentLS,belowenergyHB+belowenergyHE+belowenergyHO+belowenergyHF); } return; } // void HcalDeadCellMonitor::fillNevents_problemCells(void)
void HcalDeadCellMonitor::fillNevents_recentdigis | ( | ) | [private] |
Definition at line 801 of file HcalDeadCellMonitor.cc.
References abs, CalcIeta(), gather_cfg::cout, deadevt_, deadmon_test_digis_, HcalBaseDQMonitor::debug_, EtaPhiHists::depth, eta(), excludeHORing2_, FillUnphysicalHEHFBins(), HcalForward, HcalBaseDQMonitor::ievt_, isSiPM(), minDeadEventCount_, phi, present_digi, RecentMissingDigisByDepth, recentoccupancy_digi, and validDetId().
Referenced by endLuminosityBlock().
{ // Fill Histograms showing digi cells with no occupancy for the past few lumiblocks if (!deadmon_test_digis_) return; // extra protection here against calling histograms than don't exist if (deadevt_ < minDeadEventCount_) return; // not enough entries to make a determination for this LS if (debug_>0) std::cout <<"<HcalDeadCellMonitor::fillNevents_recentdigis> CHECKING FOR RECENT MISSING DIGIS evtcount = "<<deadevt_<<std::endl; int ieta=0; int iphi=0; int etabins=0; int phibins=0; for (unsigned int depth=0;depth<RecentMissingDigisByDepth.depth.size();++depth) { RecentMissingDigisByDepth.depth[depth]->setBinContent(0,0,ievt_); etabins=RecentMissingDigisByDepth.depth[depth]->getNbinsX(); phibins=RecentMissingDigisByDepth.depth[depth]->getNbinsY(); for (int eta=0;eta<etabins;++eta) { for (int subdet=1;subdet<=4;++subdet) { ieta=CalcIeta((HcalSubdetector)subdet,eta,depth+1); if (ieta==-9999) continue; for (int phi=0;phi<phibins;++phi) { iphi=phi+1; if (!validDetId((HcalSubdetector)subdet, ieta, iphi, depth+1)) continue; // Ignore subdetectors that weren't in run? /* if ((subdet==HcalBarrel && !HBpresent_) || (subdet==HcalEndcap &&!HEpresent_) || (subdet==HcalOuter &&!HOpresent_) || (subdet==HcalForward &&!HFpresent_)) continue; */ int zside=0; if (subdet==HcalForward) // shift HcalForward ieta ieta<0 ? zside=-1 : zside=+1; if (recentoccupancy_digi[eta][phi][depth]==0) { if (debug_>0) { std::cout <<"DEAD CELL; NO RECENT OCCUPANCY: subdet = "<<subdet<<", ieta = "<<ieta<<", iphi = "<<iphi<<" depth = "<<depth+1<<std::endl; std::cout <<"\t RAW COORDINATES: eta = "<<eta<< " phi = "<<phi<<" depth = "<<depth<<std::endl; std::cout <<"\t Present? "<<present_digi[eta][phi][depth]<<std::endl; } // Don't fill HORing2 if boolean enabled if (excludeHORing2_==true && abs(ieta)>10 && isSiPM(ieta,iphi,depth+1)==false) continue; // no digi was found for the N events; Fill cell as bad for all N events (N = checkN); if (RecentMissingDigisByDepth.depth[depth]) RecentMissingDigisByDepth.depth[depth]->Fill(ieta+zside,iphi,deadevt_); } } // for (int subdet=1;subdet<=4;++subdet) } // for (int phi=0;...) } // for (int eta=0;...) } //for (int depth=1;...) FillUnphysicalHEHFBins(RecentMissingDigisByDepth); return; } // void HcalDeadCellMonitor::fillNevents_recentdigis()
void HcalDeadCellMonitor::fillNevents_recentrechits | ( | ) | [private] |
Definition at line 876 of file HcalDeadCellMonitor.cc.
References abs, CalcIeta(), gather_cfg::cout, deadevt_, deadmon_test_rechits_, HcalBaseDQMonitor::debug_, EtaPhiHists::depth, eta(), excludeHORing2_, FillUnphysicalHEHFBins(), HcalForward, HcalBaseDQMonitor::ievt_, isSiPM(), minDeadEventCount_, phi, RecentMissingRecHitsByDepth, recentoccupancy_rechit, RecHitPresentByDepth, and validDetId().
Referenced by endLuminosityBlock().
{ // Fill Histograms showing unoccupied rechits, or rec hits with low energy // This test is a bit pointless, unless the energy threshold is greater than the ZS threshold. // If we require that cells are always < thresh to be flagged by this test, and if // thresh < ZS, then we will never catch any cells, since they'll show up as dead in the // neverpresent/occupancy test plots first. // Only exception is if something strange is going on between ZS ADC value an RecHit energy? if (!deadmon_test_rechits_) return; FillUnphysicalHEHFBins(RecHitPresentByDepth); if (deadevt_ < minDeadEventCount_) return; // not enough entries to make a determination for this LS if (debug_>0) std::cout <<"<HcalDeadCellMonitor::fillNevents_energy> BELOW-ENERGY-THRESHOLD PLOTS"<<std::endl; int ieta=0; int iphi=0; int etabins=0; int phibins=0; for (unsigned int depth=0;depth<RecentMissingRecHitsByDepth.depth.size();++depth) { RecentMissingRecHitsByDepth.depth[depth]->setBinContent(0,0,ievt_); etabins=RecentMissingRecHitsByDepth.depth[depth]->getNbinsX(); phibins=RecentMissingRecHitsByDepth.depth[depth]->getNbinsY(); for (int eta=0;eta<etabins;++eta) { for (int subdet=1;subdet<=4;++subdet) { ieta=CalcIeta((HcalSubdetector)subdet,eta,depth+1); if (ieta==-9999) continue; for (int phi=0;phi<phibins;++phi) { iphi=phi+1; if (!validDetId((HcalSubdetector)subdet, ieta, iphi, depth+1)) continue; if (recentoccupancy_rechit[eta][phi][depth]>0) continue; // cell exceeded energy at least once, so it's not dead // Ignore subdetectors that weren't in run? /* if ((subdet==HcalBarrel && !HBpresent_) || (subdet==HcalEndcap &&!HEpresent_) || (subdet==HcalOuter &&!HOpresent_) || (subdet==HcalForward &&!HFpresent_)) continue; */ int zside=0; if (subdet==HcalForward) // shift HcalForward ieta { ieta<0 ? zside=-1 : zside=+1; } if (debug_>2) std::cout <<"DEAD CELL; BELOW ENERGY THRESHOLD; subdet = "<<subdet<<" ieta = "<<ieta<<", phi = "<<iphi<<" depth = "<<depth+1<<std::endl; if (excludeHORing2_==true && abs(ieta)>10 && isSiPM(ieta,iphi,depth+1)==false) continue; if (RecentMissingRecHitsByDepth.depth[depth]) RecentMissingRecHitsByDepth.depth[depth]->Fill(ieta+zside,iphi,deadevt_); } // loop on phi bins } // for (unsigned int depth=1;depth<=4;++depth) } // // loop on subdetectors } // for (int eta=0;...) FillUnphysicalHEHFBins(RecentMissingRecHitsByDepth); return; } // void HcalDeadCellMonitor::fillNevents_recentrechits()
void HcalDeadCellMonitor::process_Digi | ( | DIGI & | digi | ) |
Definition at line 724 of file HcalDeadCellMonitor.cc.
References CalcEtaBin(), EtaPhiHists::depth, DigiPresentByDepth, present_digi, and recentoccupancy_digi.
{ // Remove the validate check when we figure out how to access bad digis in digi monitor //if (!digi.validate()) return; // digi must be good to be counted int ieta=digi.id().ieta(); int iphi=digi.id().iphi(); int depth=digi.id().depth(); // Fill occupancy counter ++recentoccupancy_digi[CalcEtaBin(digi.id().subdet(),ieta,depth)][iphi-1][depth-1]; // If previously-missing digi found, change boolean status and fill histogram if (present_digi[CalcEtaBin(digi.id().subdet(),ieta,depth)][iphi-1][depth-1]==false) { if (DigiPresentByDepth.depth[depth-1]) { DigiPresentByDepth.depth[depth-1]->setBinContent(CalcEtaBin(digi.id().subdet(),ieta,depth)+1,iphi,1); } present_digi[CalcEtaBin(digi.id().subdet(),ieta,depth)][iphi-1][depth-1]=true; } return; }
void HcalDeadCellMonitor::process_Digi | ( | T & | digi | ) | [private] |
Referenced by processEvent(), and processEvent_HBHEdigi().
void HcalDeadCellMonitor::process_RecHit | ( | RECHIT & | rechit | ) |
Definition at line 750 of file HcalDeadCellMonitor.cc.
References CalcEtaBin(), EtaPhiHists::depth, HBenergyThreshold_, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HEenergyThreshold_, HFenergyThreshold_, HOenergyThreshold_, ExpressReco_HICollisions_FallBack::id, present_rechit, recentoccupancy_rechit, and RecHitPresentByDepth.
{ float en = rechit->energy(); HcalDetId id(rechit->detid().rawId()); int ieta = id.ieta(); int iphi = id.iphi(); int depth = id.depth(); if (id.subdet()==HcalBarrel) { if (en>=HBenergyThreshold_) { ++recentoccupancy_rechit[CalcEtaBin(id.subdet(),ieta,depth)][iphi-1][depth-1]; present_rechit[CalcEtaBin(id.subdet(),ieta,depth)][iphi-1][depth-1]=true; if (RecHitPresentByDepth.depth[depth-1]) RecHitPresentByDepth.depth[depth-1]->setBinContent(CalcEtaBin(id.subdet(),ieta,depth)+1,iphi,1); } } else if (id.subdet()==HcalEndcap) { if (en>=HEenergyThreshold_) { ++recentoccupancy_rechit[CalcEtaBin(id.subdet(),ieta,depth)][iphi-1][depth-1]; present_rechit[CalcEtaBin(id.subdet(),ieta,depth)][iphi-1][depth-1]=true; if (RecHitPresentByDepth.depth[depth-1]) RecHitPresentByDepth.depth[depth-1]->setBinContent(CalcEtaBin(id.subdet(),ieta,depth)+1,iphi,1); } } else if (id.subdet()==HcalForward) { if (en>=HFenergyThreshold_) { ++recentoccupancy_rechit[CalcEtaBin(id.subdet(),ieta,depth)][iphi-1][depth-1]; present_rechit[CalcEtaBin(id.subdet(),ieta,depth)][iphi-1][depth-1]=true; if (RecHitPresentByDepth.depth[depth-1]) RecHitPresentByDepth.depth[depth-1]->setBinContent(CalcEtaBin(id.subdet(),ieta,depth)+1,iphi,1); } } else if (id.subdet()==HcalOuter) { if (en>=HOenergyThreshold_) { ++recentoccupancy_rechit[CalcEtaBin(id.subdet(),ieta,depth)][iphi-1][depth-1]; present_rechit[CalcEtaBin(id.subdet(),ieta,depth)][iphi-1][depth-1]=true; if (RecHitPresentByDepth.depth[depth-1]) RecHitPresentByDepth.depth[depth-1]->setBinContent(CalcEtaBin(id.subdet(),ieta,depth)+1,iphi,1); } } }
void HcalDeadCellMonitor::process_RecHit | ( | T & | rechit | ) | [private] |
Referenced by processEvent().
void HcalDeadCellMonitor::processEvent | ( | const HBHERecHitCollection & | hbHits, |
const HORecHitCollection & | hoHits, | ||
const HFRecHitCollection & | hfHits, | ||
const HBHEDigiCollection & | hbhedigi, | ||
const HODigiCollection & | hodigi, | ||
const HFDigiCollection & | hfdigi | ||
) |
Definition at line 587 of file HcalDeadCellMonitor.cc.
References abs, edm::SortedCollection< T, SORT >::begin(), binmapd2, gather_cfg::cout, deadmon_test_digis_, deadmon_test_rechits_, HcalBaseDQMonitor::debug_, EtaPhiHists::depth, DigiPresentByDepth, edm::SortedCollection< T, SORT >::end(), eta(), MonitorElement::Fill(), FillUnphysicalHEHFBins(), HBDeadVsEvent, HEDeadVsEvent, HFDeadVsEvent, HODeadVsEvent, i, j, gen::k, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::NLumiBlocks_, NumberOfNeverPresentDigis, NumberOfNeverPresentDigisHB, NumberOfNeverPresentDigisHE, NumberOfNeverPresentDigisHF, NumberOfNeverPresentDigisHO, NumberOfRecentMissingDigis, NumberOfRecentMissingDigisHB, NumberOfRecentMissingDigisHE, NumberOfRecentMissingDigisHF, NumberOfRecentMissingDigisHO, NumberOfRecentMissingRecHits, NumberOfRecentMissingRecHitsHB, NumberOfRecentMissingRecHitsHE, NumberOfRecentMissingRecHitsHF, NumberOfRecentMissingRecHitsHO, phi, present_digi, process_Digi(), process_RecHit(), processEvent_HBHEdigi(), RecentMissingDigisByDepth, RecentMissingRecHitsByDepth, HcalBaseDQMonitor::tevt_, and MonitorElement::update().
Referenced by analyze().
{ if (debug_>1) std::cout <<"<HcalDeadCellMonitor::processEvent> Processing event..."<<std::endl; // Do Digi-Based dead cell searches // Make sure histograms update for (unsigned int i=0;i<DigiPresentByDepth.depth.size();++i) DigiPresentByDepth.depth[i]->update(); NumberOfNeverPresentDigis->update();; NumberOfNeverPresentDigisHB->update(); NumberOfNeverPresentDigisHE->update(); NumberOfNeverPresentDigisHO->update(); NumberOfNeverPresentDigisHF->update(); if (deadmon_test_digis_) { for (unsigned int i=0;i<RecentMissingDigisByDepth.depth.size();++i) RecentMissingDigisByDepth.depth[i]->update(); NumberOfRecentMissingDigis->update(); NumberOfRecentMissingDigisHB->update(); NumberOfRecentMissingDigisHE->update(); NumberOfRecentMissingDigisHO->update(); NumberOfRecentMissingDigisHF->update(); } for (HBHEDigiCollection::const_iterator j=hbhedigi.begin(); j!=hbhedigi.end(); ++j) { const HBHEDataFrame digi = (const HBHEDataFrame)(*j); processEvent_HBHEdigi(digi); } for (HODigiCollection::const_iterator j=hodigi.begin(); j!=hodigi.end(); ++j) { const HODataFrame digi = (const HODataFrame)(*j); process_Digi(digi); } for (HFDigiCollection::const_iterator j=hfdigi.begin(); j!=hfdigi.end(); ++j) { const HFDataFrame digi = (const HFDataFrame)(*j); process_Digi(digi); } FillUnphysicalHEHFBins(DigiPresentByDepth); // Search for "dead" cells below a certain energy if (deadmon_test_rechits_) { // Normalization Fill for (unsigned int i=0;i<RecentMissingRecHitsByDepth.depth.size();++i) RecentMissingRecHitsByDepth.depth[i]->update(); NumberOfRecentMissingRecHits->update(); NumberOfRecentMissingRecHitsHB->update(); NumberOfRecentMissingRecHitsHE->update(); NumberOfRecentMissingRecHitsHO->update(); NumberOfRecentMissingRecHitsHF->update(); for (HBHERecHitCollection::const_iterator j=hbHits.begin(); j!=hbHits.end(); ++j) process_RecHit(j); for (HORecHitCollection::const_iterator k=hoHits.begin(); k!=hoHits.end(); ++k) process_RecHit(k); for (HFRecHitCollection::const_iterator j=hfHits.begin(); j!=hfHits.end(); ++j) process_RecHit(j); } // if (deadmon_test_rechits) if (!makeDiagnostics_) return; if (tevt_>=NLumiBlocks_) return; // Diagnostic plots -- add number of missing channels vs event number int hbpresent=0; int hepresent=0; int hopresent=0; int hfpresent=0; int ieta=0; for (int d=0;d<4;++d) { for (int phi=0;phi<72;++phi) { for (int eta=0;eta<85;++eta) { if (!present_digi[eta][phi][d]) continue; if (d==3) ++hopresent; else if (d==2) ++hepresent; else if (d==1) { ieta=binmapd2[eta]; //if (abs(ieta)>29) continue; if (abs(ieta)>29) ++hfpresent; else if (abs(ieta)<17) ++hbpresent; //depths 15&16 else ++hepresent; } else if (d==0) { ieta=eta-42; if (abs(ieta)>29) ++hfpresent; else if (abs(ieta)<17) ++hbpresent; else ++hepresent; } } } } // for (int d=0;d<4;++d) HBDeadVsEvent->Fill(tevt_,2592-hbpresent); HEDeadVsEvent->Fill(tevt_,2592-hepresent); HODeadVsEvent->Fill(tevt_,2160-hopresent); HFDeadVsEvent->Fill(tevt_,1728-hfpresent); return; } // void HcalDeadCellMonitor::processEvent(...)
void HcalDeadCellMonitor::processEvent_HBHEdigi | ( | const HBHEDataFrame | digi | ) | [private] |
Definition at line 716 of file HcalDeadCellMonitor.cc.
References process_Digi().
Referenced by processEvent().
{ // Simply check whether a digi is present. If so, increment occupancy counter. process_Digi(digi); return; } //void HcalDeadCellMonitor::processEvent_HBHEdigi(HBHEDigiCollection::const_iterator j)
void HcalDeadCellMonitor::reset | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 383 of file HcalDeadCellMonitor.cc.
References gather_cfg::cout, deadevt_, deadmon_test_digis_, deadmon_test_rechits_, HcalBaseDQMonitor::debug_, EtaPhiHists::depth, DigiPresentByDepth, excludeHORing2_, FillUnphysicalHEHFBins(), isSiPM(), Nevents, NumberOfNeverPresentDigis, NumberOfNeverPresentDigisHB, NumberOfNeverPresentDigisHE, NumberOfNeverPresentDigisHF, NumberOfNeverPresentDigisHO, NumberOfNeverPresentRecHits, NumberOfNeverPresentRecHitsHB, NumberOfNeverPresentRecHitsHE, NumberOfNeverPresentRecHitsHF, NumberOfNeverPresentRecHitsHO, NumberOfRecentMissingDigis, NumberOfRecentMissingDigisHB, NumberOfRecentMissingDigisHE, NumberOfRecentMissingDigisHF, NumberOfRecentMissingDigisHO, NumberOfRecentMissingRecHits, NumberOfRecentMissingRecHitsHB, NumberOfRecentMissingRecHitsHE, NumberOfRecentMissingRecHitsHF, NumberOfRecentMissingRecHitsHO, ProblemsVsLB, ProblemsVsLB_HB, HcalBaseDQMonitor::ProblemsVsLB_HBHEHF, ProblemsVsLB_HE, ProblemsVsLB_HF, ProblemsVsLB_HO, RecentMissingDigisByDepth, RecentMissingRecHitsByDepth, RecHitPresentByDepth, MonitorElement::Reset(), EtaPhiHists::Reset(), and zeroCounters().
Referenced by beginRun(), and setup().
{ if (debug_>1) std::cout <<"HcalDeadCellMonitor::reset()"<<std::endl; HcalBaseDQMonitor::reset(); zeroCounters(); deadevt_=0; ProblemsVsLB->Reset(); ProblemsVsLB_HB->Reset(); ProblemsVsLB_HE->Reset(); ProblemsVsLB_HO->Reset(); ProblemsVsLB_HF->Reset(); ProblemsVsLB_HBHEHF->Reset(); NumberOfNeverPresentDigis->Reset(); NumberOfNeverPresentDigisHB->Reset(); NumberOfNeverPresentDigisHE->Reset(); NumberOfNeverPresentDigisHO->Reset(); NumberOfNeverPresentDigisHF->Reset(); for (unsigned int depth=0;depth<DigiPresentByDepth.depth.size();++depth) DigiPresentByDepth.depth[depth]->Reset(); // Mark HORing2 channels as present (fill with a 2, rather than a 1, to distinguish between this setting and actual presence) if (excludeHORing2_==true && DigiPresentByDepth.depth.size()>3) { for (int ieta=11;ieta<=15;++ieta) for (int iphi=1;iphi<=72;++iphi) { // Don't fill ring2 SiPMs, since they will still be active even if the rest of HO is excluded. if (isSiPM(ieta,iphi,4)==false) DigiPresentByDepth.depth[3]->Fill(ieta,iphi,2); //std::cout <<" FILLING ("<<-1*ieta<<", "<<iphi<<") with '2'"<<std::endl; DigiPresentByDepth.depth[3]->Fill(-1*ieta,iphi,2); } } FillUnphysicalHEHFBins(DigiPresentByDepth); if (deadmon_test_digis_) { NumberOfRecentMissingDigis->Reset(); NumberOfRecentMissingDigisHB->Reset(); NumberOfRecentMissingDigisHE->Reset(); NumberOfRecentMissingDigisHO->Reset(); NumberOfRecentMissingDigisHF->Reset(); RecentMissingDigisByDepth.Reset(); } if (deadmon_test_rechits_) { NumberOfRecentMissingRecHits->Reset(); NumberOfRecentMissingRecHitsHB->Reset(); NumberOfRecentMissingRecHitsHE->Reset(); NumberOfRecentMissingRecHitsHO->Reset(); NumberOfRecentMissingRecHitsHF->Reset(); NumberOfNeverPresentRecHits->Reset(); NumberOfNeverPresentRecHitsHB->Reset(); NumberOfNeverPresentRecHitsHE->Reset(); NumberOfNeverPresentRecHitsHO->Reset(); NumberOfNeverPresentRecHitsHF->Reset(); RecentMissingRecHitsByDepth.Reset(); RecHitPresentByDepth.Reset(); // Mark HORing2 channels as present (fill with a 2, rather than a 1, to distinguish between this setting and actual presence) if (excludeHORing2_==true && RecHitPresentByDepth.depth.size()>3) { for (int ieta=11;ieta<=15;++ieta) for (int iphi=1;iphi<=72;++iphi) { RecHitPresentByDepth.depth[3]->Fill(ieta,iphi,2); RecHitPresentByDepth.depth[3]->Fill(-1*ieta,iphi,2); } } FillUnphysicalHEHFBins(RecHitPresentByDepth); } Nevents->Reset(); } // reset function is empty for now
void HcalDeadCellMonitor::setup | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 68 of file HcalDeadCellMonitor.cc.
References DQMStore::book1D(), DQMStore::bookFloat(), DQMStore::bookInt(), DQMStore::bookProfile(), gather_cfg::cout, HcalBaseDQMonitor::dbe_, deadmon_test_digis_, deadmon_test_rechits_, HcalBaseDQMonitor::debug_, EtaPhiHists::depth, DigiPresentByDepth, excludeHORing2_, MonitorElement::Fill(), FillUnphysicalHEHFBins(), MonitorElement::getTProfile(), HBDeadVsEvent, HBenergyThreshold_, HEDeadVsEvent, HEenergyThreshold_, HFDeadVsEvent, HFenergyThreshold_, HODeadVsEvent, HOenergyThreshold_, HcalBaseDQMonitor::makeDiagnostics_, minDeadEventCount_, AlCaRecoCosmics_cfg::name, Nevents, HcalBaseDQMonitor::NLumiBlocks_, NumberOfNeverPresentDigis, NumberOfNeverPresentDigisHB, NumberOfNeverPresentDigisHE, NumberOfNeverPresentDigisHF, NumberOfNeverPresentDigisHO, NumberOfNeverPresentRecHits, NumberOfNeverPresentRecHitsHB, NumberOfNeverPresentRecHitsHE, NumberOfNeverPresentRecHitsHF, NumberOfNeverPresentRecHitsHO, NumberOfRecentMissingDigis, NumberOfRecentMissingDigisHB, NumberOfRecentMissingDigisHE, NumberOfRecentMissingDigisHF, NumberOfRecentMissingDigisHO, NumberOfRecentMissingRecHits, NumberOfRecentMissingRecHitsHB, NumberOfRecentMissingRecHitsHE, NumberOfRecentMissingRecHitsHF, NumberOfRecentMissingRecHitsHO, ProblemsVsLB, ProblemsVsLB_HB, HcalBaseDQMonitor::ProblemsVsLB_HBHEHF, ProblemsVsLB_HE, ProblemsVsLB_HF, ProblemsVsLB_HO, RecentMissingDigisByDepth, RecentMissingRecHitsByDepth, RecHitPresentByDepth, reset(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), HcalBaseDQMonitor::SetupEtaPhiHists(), HcalBaseDQMonitor::subdir_, and zeroCounters().
Referenced by beginRun().
{ HcalBaseDQMonitor::setup(); zeroCounters(1); // make sure arrays are set up if (debug_>0) std::cout <<"<HcalDeadCellMonitor::setup> Setting up histograms"<<std::endl; if (!dbe_) return; dbe_->setCurrentFolder(subdir_); MonitorElement* excludeHO2=dbe_->bookInt("ExcludeHOring2"); // Fill with 0 if ring is not to be excluded; fill with 1 if it is to be excluded if (excludeHO2) excludeHO2->Fill(excludeHORing2_==true ? 1 : 0); Nevents = dbe_->book1D("NumberOfDeadCellEvents","Number of Events Seen by DeadCellMonitor",2,0,2); Nevents->setBinLabel(1,"allEvents"); Nevents->setBinLabel(2,"lumiCheck"); // 1D plots count number of bad cells vs. luminosity block ProblemsVsLB=dbe_->bookProfile("TotalDeadCells_HCAL_vs_LS", "Total Number of Dead Hcal Cells (excluding known problems) vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5, 100,0,10000); ProblemsVsLB_HB=dbe_->bookProfile("TotalDeadCells_HB_vs_LS", "Total Number of Dead HB Cells (excluding known problems) vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5, 100,0,10000); ProblemsVsLB_HE=dbe_->bookProfile("TotalDeadCells_HE_vs_LS", "Total Number of Dead HE Cells (excluding known problems) vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); ProblemsVsLB_HO=dbe_->bookProfile("TotalDeadCells_HO_vs_LS", "Total Number of Dead HO Cells (excluding known problems) vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); ProblemsVsLB_HF=dbe_->bookProfile("TotalDeadCells_HF_vs_LS", "Total Number of Dead HF Cells (excluding known problems) vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); ProblemsVsLB_HBHEHF=dbe_->bookProfile("TotalDeadCells_HBHEHF_vs_LS", "Total Number of Dead HBHEHF Cells (excluding known problems) vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); (ProblemsVsLB->getTProfile())->SetMarkerStyle(20); (ProblemsVsLB_HB->getTProfile())->SetMarkerStyle(20); (ProblemsVsLB_HE->getTProfile())->SetMarkerStyle(20); (ProblemsVsLB_HO->getTProfile())->SetMarkerStyle(20); (ProblemsVsLB_HF->getTProfile())->SetMarkerStyle(20); (ProblemsVsLB_HBHEHF->getTProfile())->SetMarkerStyle(20); dbe_->setCurrentFolder(subdir_+"dead_cell_parameters"); MonitorElement* me=dbe_->bookInt("Test_NeverPresent_Digis"); me->Fill(1); me=dbe_->bookInt("Test_DigiMissing_Periodic_Lumi_Check"); if (deadmon_test_digis_) me->Fill(1); else me->Fill(0); me=dbe_->bookInt("Min_Events_Required_Periodic_Lumi_Check"); me->Fill(minDeadEventCount_); me=dbe_->bookInt("Test_NeverPresent_RecHits"); deadmon_test_rechits_>0 ? me->Fill(1) : me->Fill(0); me=dbe_->bookFloat("HBMinimumRecHitEnergy"); me->Fill(HBenergyThreshold_); me=dbe_->bookFloat("HEMinimumRecHitEnergy"); me->Fill(HEenergyThreshold_); me=dbe_->bookFloat("HOMinimumRecHitEnergy"); me->Fill(HOenergyThreshold_); me=dbe_->bookFloat("HFMinimumRecHitEnergy"); me->Fill(HFenergyThreshold_); me=dbe_->bookInt("Test_RecHitsMissing_Periodic_Lumi_Check"); deadmon_test_rechits_>0 ? me->Fill(1) : me->Fill(0); // ProblemCells plots are in HcalDeadCellClient! // Set up plots for each failure mode of dead cells std::stringstream units; // We'll need to set the titles individually, rather than passing units to SetupEtaPhiHists (since this also would affect the name of the histograms) std::stringstream name; // Never-present test will always be called, by definition of dead cell dbe_->setCurrentFolder(subdir_+"dead_digi_never_present"); SetupEtaPhiHists(DigiPresentByDepth, "Digi Present At Least Once",""); // 1D plots count number of bad cells NumberOfNeverPresentDigis=dbe_->bookProfile("Problem_NeverPresentDigis_HCAL_vs_LS", "Total Number of Never-Present Hcal Cells vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); NumberOfNeverPresentDigisHB=dbe_->bookProfile("Problem_NeverPresentDigis_HB_vs_LS", "Total Number of Never-Present HB Cells vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); NumberOfNeverPresentDigisHE=dbe_->bookProfile("Problem_NeverPresentDigis_HE_vs_LS", "Total Number of Never-Present HE Cells vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); NumberOfNeverPresentDigisHO=dbe_->bookProfile("Problem_NeverPresentDigis_HO_vs_LS", "Total Number of Never-Present HO Cells vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); NumberOfNeverPresentDigisHF=dbe_->bookProfile("Problem_NeverPresentDigis_HF_vs_LS", "Total Number of Never-Present HF Cells vs LS;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); (NumberOfNeverPresentDigis->getTProfile())->SetMarkerStyle(20); (NumberOfNeverPresentDigisHB->getTProfile())->SetMarkerStyle(20); (NumberOfNeverPresentDigisHE->getTProfile())->SetMarkerStyle(20); (NumberOfNeverPresentDigisHO->getTProfile())->SetMarkerStyle(20); (NumberOfNeverPresentDigisHF->getTProfile())->SetMarkerStyle(20); FillUnphysicalHEHFBins(DigiPresentByDepth); if (deadmon_test_digis_) { dbe_->setCurrentFolder(subdir_+"dead_digi_often_missing"); //units<<"("<<deadmon_checkNevents_<<" consec. events)"; name<<"Dead Cells with No Digis"; SetupEtaPhiHists(RecentMissingDigisByDepth, name.str(), ""); name.str(""); name<<"HB HE HF Depth 1 Dead Cells with No Digis for at least 1 Full Luminosity Block"; RecentMissingDigisByDepth.depth[0]->setTitle(name.str().c_str()); name.str(""); name<<"HB HE HF Depth 2 Dead Cells with No Digis for at least 1 Full Luminosity Block"; RecentMissingDigisByDepth.depth[1]->setTitle(name.str().c_str()); name.str(""); name<<"HE Depth 3 Dead Cells with No Digis for at least 1 Full Luminosity Block"; RecentMissingDigisByDepth.depth[2]->setTitle(name.str().c_str()); name.str(""); name<<"HO Depth 4 Dead Cells with No Digis for at least 1 Full Luminosity Block"; RecentMissingDigisByDepth.depth[3]->setTitle(name.str().c_str()); name.str(""); // 1D plots count number of bad cells name<<"Total Number of Hcal Digis Unoccupied for at least 1 Full Luminosity Block"; NumberOfRecentMissingDigis=dbe_->bookProfile("Problem_RecentMissingDigis_HCAL_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HB Digis Unoccupied for at least 1 Full LS vs LS;Lumi Section; Dead Cells"; NumberOfRecentMissingDigisHB=dbe_->bookProfile("Problem_RecentMissingDigis_HB_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HE Digis Unoccupied for at least 1 Full LS vs LS;Lumi Section; Dead Cells"; NumberOfRecentMissingDigisHE=dbe_->bookProfile("Problem_RecentMissingDigis_HE_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HO Digis Unoccupied for at least 1 Full LS vs LS;Lumi Section; Dead Cells"; NumberOfRecentMissingDigisHO=dbe_->bookProfile("Problem_RecentMissingDigis_HO_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HF Digis Unoccupied for at least 1 Full LS vs LS;Lumi Section; Dead Cells"; NumberOfRecentMissingDigisHF=dbe_->bookProfile("Problem_RecentMissingDigis_HF_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); (NumberOfRecentMissingDigis->getTProfile())->SetMarkerStyle(20); (NumberOfRecentMissingDigisHB->getTProfile())->SetMarkerStyle(20); (NumberOfRecentMissingDigisHE->getTProfile())->SetMarkerStyle(20); (NumberOfRecentMissingDigisHO->getTProfile())->SetMarkerStyle(20); (NumberOfRecentMissingDigisHF->getTProfile())->SetMarkerStyle(20); } if (deadmon_test_rechits_) { // test 1: energy never above threshold dbe_->setCurrentFolder(subdir_+"dead_rechit_neverpresent"); SetupEtaPhiHists(RecHitPresentByDepth,"RecHit Above Threshold At Least Once",""); // set more descriptive titles for threshold plots units.str(""); units<<"Cells Above Energy Threshold At Least Once: Depth 1 -- HB >="<<HBenergyThreshold_<<" GeV, HE >= "<<HEenergyThreshold_<<", HF >="<<HFenergyThreshold_<<" GeV"; RecHitPresentByDepth.depth[0]->setTitle(units.str().c_str()); units.str(""); units<<"Cells Above Energy Threshold At Least Once: Depth 2 -- HB >="<<HBenergyThreshold_<<" GeV, HE >= "<<HEenergyThreshold_<<", HF >="<<HFenergyThreshold_<<" GeV"; RecHitPresentByDepth.depth[1]->setTitle(units.str().c_str()); units.str(""); units<<"Cells Above Energy Threshold At Least Once: Depth 3 -- HE >="<<HEenergyThreshold_<<" GeV"; RecHitPresentByDepth.depth[2]->setTitle(units.str().c_str()); units.str(""); units<<"Cells Above Energy Threshold At Least Once: Depth 4 -- HO >="<<HOenergyThreshold_<<" GeV"; RecHitPresentByDepth.depth[3]->setTitle(units.str().c_str()); units.str(""); // 1D plots count number of bad cells NumberOfNeverPresentRecHits=dbe_->bookProfile("Problem_RecHitsNeverPresent_HCAL_vs_LS", "Total Number of Hcal Rechits with Low Energy;Lumi Section;Dead Cells", NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HB RecHits with Energy Never >= "<<HBenergyThreshold_<<" GeV;Lumi Section;Dead Cells"; NumberOfNeverPresentRecHitsHB=dbe_->bookProfile("Problem_RecHitsNeverPresent_HB_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HE RecHits with Energy Never >= "<<HEenergyThreshold_<<" GeV;Lumi Section;Dead Cells"; NumberOfNeverPresentRecHitsHE=dbe_->bookProfile("Problem_RecHitsNeverPresent_HE_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HO RecHits with Energy Never >= "<<HOenergyThreshold_<<" GeV;Lumi Section;Dead Cells"; NumberOfNeverPresentRecHitsHO=dbe_->bookProfile("Problem_RecHitsNeverPresent_HO_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HF RecHits with Energy Never >= "<<HFenergyThreshold_<<" GeV;Lumi Section;Dead Cells"; NumberOfNeverPresentRecHitsHF=dbe_->bookProfile("Problem_RecHitsNeverPresent_HF_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); (NumberOfNeverPresentRecHits->getTProfile())->SetMarkerStyle(20); (NumberOfNeverPresentRecHitsHB->getTProfile())->SetMarkerStyle(20); (NumberOfNeverPresentRecHitsHE->getTProfile())->SetMarkerStyle(20); (NumberOfNeverPresentRecHitsHO->getTProfile())->SetMarkerStyle(20); (NumberOfNeverPresentRecHitsHF->getTProfile())->SetMarkerStyle(20); dbe_->setCurrentFolder(subdir_+"dead_rechit_often_missing"); SetupEtaPhiHists(RecentMissingRecHitsByDepth,"RecHits Failing Energy Threshold Test",""); // set more descriptive titles for threshold plots units.str(""); units<<"RecHits with Consistent Low Energy Depth 1 -- HB <"<<HBenergyThreshold_<<" GeV, HE < "<<HEenergyThreshold_<<", HF <"<<HFenergyThreshold_<<" GeV"; RecentMissingRecHitsByDepth.depth[0]->setTitle(units.str().c_str()); units.str(""); units<<"RecHits with Consistent Low Energy Depth 2 -- HB <"<<HBenergyThreshold_<<" GeV, HE < "<<HEenergyThreshold_<<", HF <"<<HFenergyThreshold_<<" GeV"; RecentMissingRecHitsByDepth.depth[1]->setTitle(units.str().c_str()); units.str(""); units<<"RecHits with Consistent Low Energy Depth 3 -- HE <"<<HEenergyThreshold_<<" GeV"; RecentMissingRecHitsByDepth.depth[2]->setTitle(units.str().c_str()); units.str(""); units<<"RecHits with Consistent Low Energy Depth 4 -- HO <"<<HOenergyThreshold_<<" GeV"; RecentMissingRecHitsByDepth.depth[3]->setTitle(units.str().c_str()); units.str(""); // 1D plots count number of bad cells name<<"Total Number of Hcal RecHits with Consistent Low Energy;Lumi Section;Dead Cells"; NumberOfRecentMissingRecHits=dbe_->bookProfile("Problem_BelowEnergyRecHits_HCAL_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HB RecHits with Consistent Low Energy < "<<HBenergyThreshold_<<" GeV;Lumi Section;Dead Cells"; NumberOfRecentMissingRecHitsHB=dbe_->bookProfile("Problem_BelowEnergyRecHits_HB_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HE RecHits with Consistent Low Energy < "<<HEenergyThreshold_<<" GeV;Lumi Section;Dead Cells"; NumberOfRecentMissingRecHitsHE=dbe_->bookProfile("Problem_BelowEnergyRecHits_HE_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HO RecHits with Consistent Low Energy < "<<HOenergyThreshold_<<" GeV;Lumi Section;Dead Cells"; NumberOfRecentMissingRecHitsHO=dbe_->bookProfile("Problem_BelowEnergyRecHits_HO_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); name.str(""); name<<"Total Number of HF RecHits with Consistent Low Energy < "<<HFenergyThreshold_<<" GeV;Lumi Section;Dead Cells"; NumberOfRecentMissingRecHitsHF=dbe_->bookProfile("Problem_BelowEnergyRecHits_HF_vs_LS", name.str(), NLumiBlocks_,0.5,NLumiBlocks_+0.5,100,0,10000); (NumberOfRecentMissingRecHits->getTProfile())->SetMarkerStyle(20); (NumberOfRecentMissingRecHitsHB->getTProfile())->SetMarkerStyle(20); (NumberOfRecentMissingRecHitsHE->getTProfile())->SetMarkerStyle(20); (NumberOfRecentMissingRecHitsHO->getTProfile())->SetMarkerStyle(20); (NumberOfRecentMissingRecHitsHF->getTProfile())->SetMarkerStyle(20); } // if (deadmon_test_rechits) if (makeDiagnostics_) { dbe_->setCurrentFolder(subdir_+"DiagnosticPlots"); HBDeadVsEvent=dbe_->book1D("HBDeadVsEvent","HB Total Dead Cells Vs Event", NLumiBlocks_,-0.5,NLumiBlocks_-0.5); HEDeadVsEvent=dbe_->book1D("HEDeadVsEvent","HE Total Dead Cells Vs Event", NLumiBlocks_,-0.5,NLumiBlocks_-0.5); HODeadVsEvent=dbe_->book1D("HODeadVsEvent","HO Total Dead Cells Vs Event", NLumiBlocks_,-0.5,NLumiBlocks_-0.5); HFDeadVsEvent=dbe_->book1D("HFDeadVsEvent","HF Total Dead Cells Vs Event", NLumiBlocks_,-0.5,NLumiBlocks_-0.5); } this->reset(); return; } // void HcalDeadCellMonitor::setup(...)
void HcalDeadCellMonitor::zeroCounters | ( | bool | resetpresent = false | ) | [private] |
Definition at line 1205 of file HcalDeadCellMonitor.cc.
References i, j, gen::k, present_digi, present_rechit, recentoccupancy_digi, and recentoccupancy_rechit.
Referenced by endLuminosityBlock(), reset(), and setup().
{ // zero all counters // 2D histogram counters for (unsigned int i=0;i<85;++i) { for (unsigned int j=0;j<72;++j) { for (unsigned int k=0;k<4;++k) { if (resetpresent) present_digi[i][j][k]=false; // keeps track of whether digi was ever present if (resetpresent) present_rechit[i][j][k]=false; recentoccupancy_digi[i][j][k]=0; // counts occupancy in last (checkNevents) events recentoccupancy_rechit[i][j][k]=0; // counts instances of cell above threshold energy in last (checkNevents) } } } return; } // void HcalDeadCellMonitor::zeroCounters(bool resetpresent)
int HcalDeadCellMonitor::deadevt_ [private] |
Definition at line 99 of file HcalDeadCellMonitor.h.
Referenced by analyze(), endLuminosityBlock(), fillNevents_problemCells(), fillNevents_recentdigis(), fillNevents_recentrechits(), and reset().
bool HcalDeadCellMonitor::deadmon_makeDiagnostics_ [private] |
Definition at line 61 of file HcalDeadCellMonitor.h.
bool HcalDeadCellMonitor::deadmon_test_digis_ [private] |
Definition at line 65 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), fillNevents_recentdigis(), HcalDeadCellMonitor(), processEvent(), reset(), and setup().
bool HcalDeadCellMonitor::deadmon_test_rechits_ [private] |
Definition at line 66 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), fillNevents_recentrechits(), HcalDeadCellMonitor(), processEvent(), reset(), and setup().
edm::InputTag HcalDeadCellMonitor::digiLabel_ [private] |
Definition at line 101 of file HcalDeadCellMonitor.h.
Referenced by analyze(), and HcalDeadCellMonitor().
Definition at line 80 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), process_Digi(), processEvent(), reset(), and setup().
bool HcalDeadCellMonitor::endLumiProcessed_ [private] |
Definition at line 104 of file HcalDeadCellMonitor.h.
Referenced by analyze(), endLuminosityBlock(), and endRun().
double HcalDeadCellMonitor::energyThreshold_ [private] |
Definition at line 73 of file HcalDeadCellMonitor.h.
Referenced by HcalDeadCellMonitor().
bool HcalDeadCellMonitor::excludeHORing2_ [private] |
Definition at line 106 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), fillNevents_recentdigis(), fillNevents_recentrechits(), HcalDeadCellMonitor(), reset(), and setup().
MonitorElement* HcalDeadCellMonitor::HBDeadVsEvent [private] |
Definition at line 93 of file HcalDeadCellMonitor.h.
Referenced by processEvent(), and setup().
double HcalDeadCellMonitor::HBenergyThreshold_ [private] |
Definition at line 74 of file HcalDeadCellMonitor.h.
Referenced by HcalDeadCellMonitor(), process_RecHit(), and setup().
Definition at line 102 of file HcalDeadCellMonitor.h.
Referenced by analyze(), and HcalDeadCellMonitor().
MonitorElement * HcalDeadCellMonitor::HEDeadVsEvent [private] |
Definition at line 93 of file HcalDeadCellMonitor.h.
Referenced by processEvent(), and setup().
double HcalDeadCellMonitor::HEenergyThreshold_ [private] |
Definition at line 75 of file HcalDeadCellMonitor.h.
Referenced by HcalDeadCellMonitor(), process_RecHit(), and setup().
MonitorElement * HcalDeadCellMonitor::HFDeadVsEvent [private] |
Definition at line 93 of file HcalDeadCellMonitor.h.
Referenced by processEvent(), and setup().
double HcalDeadCellMonitor::HFenergyThreshold_ [private] |
Definition at line 77 of file HcalDeadCellMonitor.h.
Referenced by HcalDeadCellMonitor(), process_RecHit(), and setup().
Definition at line 102 of file HcalDeadCellMonitor.h.
Referenced by analyze(), and HcalDeadCellMonitor().
MonitorElement * HcalDeadCellMonitor::HODeadVsEvent [private] |
Definition at line 93 of file HcalDeadCellMonitor.h.
Referenced by processEvent(), and setup().
double HcalDeadCellMonitor::HOenergyThreshold_ [private] |
Definition at line 76 of file HcalDeadCellMonitor.h.
Referenced by HcalDeadCellMonitor(), process_RecHit(), and setup().
Definition at line 102 of file HcalDeadCellMonitor.h.
Referenced by analyze(), and HcalDeadCellMonitor().
int HcalDeadCellMonitor::minDeadEventCount_ [private] |
Definition at line 62 of file HcalDeadCellMonitor.h.
Referenced by endLuminosityBlock(), fillNevents_problemCells(), fillNevents_recentdigis(), fillNevents_recentrechits(), HcalDeadCellMonitor(), and setup().
MonitorElement* HcalDeadCellMonitor::Nevents [private] |
Definition at line 91 of file HcalDeadCellMonitor.h.
Referenced by analyze(), fillNevents_problemCells(), reset(), and setup().
int HcalDeadCellMonitor::NumBadHB [private] |
Definition at line 100 of file HcalDeadCellMonitor.h.
Referenced by endLuminosityBlock(), and fillNevents_problemCells().
int HcalDeadCellMonitor::NumBadHE [private] |
Definition at line 100 of file HcalDeadCellMonitor.h.
Referenced by endLuminosityBlock(), and fillNevents_problemCells().
int HcalDeadCellMonitor::NumBadHF [private] |
Definition at line 100 of file HcalDeadCellMonitor.h.
Referenced by endLuminosityBlock(), and fillNevents_problemCells().
int HcalDeadCellMonitor::NumBadHFLUMI [private] |
Definition at line 100 of file HcalDeadCellMonitor.h.
Referenced by endLuminosityBlock(), and fillNevents_problemCells().
int HcalDeadCellMonitor::NumBadHO [private] |
Definition at line 100 of file HcalDeadCellMonitor.h.
Referenced by endLuminosityBlock(), and fillNevents_problemCells().
int HcalDeadCellMonitor::NumBadHO0 [private] |
Definition at line 100 of file HcalDeadCellMonitor.h.
Referenced by endLuminosityBlock(), and fillNevents_problemCells().
int HcalDeadCellMonitor::NumBadHO12 [private] |
Definition at line 100 of file HcalDeadCellMonitor.h.
Referenced by endLuminosityBlock(), and fillNevents_problemCells().
Definition at line 86 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 86 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 86 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 86 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 86 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 89 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
Definition at line 89 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
Definition at line 89 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
Definition at line 89 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
Definition at line 89 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
Definition at line 87 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 87 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 87 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 87 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 87 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 88 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 88 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 88 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 88 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
Definition at line 88 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), processEvent(), reset(), and setup().
bool HcalDeadCellMonitor::present_digi[85][72][4] [private] |
Definition at line 94 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), fillNevents_recentdigis(), process_Digi(), processEvent(), and zeroCounters().
bool HcalDeadCellMonitor::present_rechit[85][72][4] [private] |
Definition at line 95 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), process_RecHit(), and zeroCounters().
MonitorElement* HcalDeadCellMonitor::ProblemsVsLB [private] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 85 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
MonitorElement * HcalDeadCellMonitor::ProblemsVsLB_HB [private] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 85 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
MonitorElement * HcalDeadCellMonitor::ProblemsVsLB_HE [private] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 85 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
MonitorElement * HcalDeadCellMonitor::ProblemsVsLB_HF [private] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 85 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
MonitorElement * HcalDeadCellMonitor::ProblemsVsLB_HO [private] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 85 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), reset(), and setup().
Definition at line 79 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_recentdigis(), processEvent(), reset(), and setup().
Definition at line 81 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_recentrechits(), processEvent(), reset(), and setup().
unsigned int HcalDeadCellMonitor::recentoccupancy_digi[85][72][4] [private] |
Definition at line 96 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), fillNevents_recentdigis(), process_Digi(), and zeroCounters().
unsigned int HcalDeadCellMonitor::recentoccupancy_rechit[85][72][4] [private] |
Definition at line 97 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_problemCells(), fillNevents_recentrechits(), process_RecHit(), and zeroCounters().
Definition at line 82 of file HcalDeadCellMonitor.h.
Referenced by fillNevents_recentrechits(), process_RecHit(), reset(), and setup().