CMS 3D CMS Logo

HcalMonitorModule Class Reference

#include <DQM/HcalMonitorModule/src/HcalMonitorModule.h>

Inheritance diagram for HcalMonitorModule:

edm::EDAnalyzer

List of all members.

Public Member Functions

 HcalMonitorModule (const edm::ParameterSet &ps)
 ~HcalMonitorModule ()

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
void beginJob (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 CheckSubdetectorStatus (const FEDRawDataCollection &rawraw, const HcalUnpackerReport &report, const HcalElectronicsMap &emap, const HBHEDigiCollection &hbhedigi, const HODigiCollection &hodigi, const HFDigiCollection &hfdigi)
void endJob (void)
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
void endRun (const edm::Run &run, const edm::EventSetup &c)
bool prescale ()
 Boolean prescale test for this event.
void reset (void)

Private Attributes

bool actonLS_
HcalBeamMonitorbeamMon_
HcalChannelQualitychanquality_
bool checkHB_
bool checkHE_
bool checkHF_
bool checkHO_
bool checkZDC_
edm::ESHandle< HcalDbServiceconditions_
edm::CPUTimer cpu_timer
HcalCaloTowerMonitorctMon_
DQMStoredbe_
 Connection to the DQM backend.
std::map< uint32_t,
std::vector< HcalDetId > > 
DCCtoCell
HcalDeadCellMonitordeadMon_
int debug_
 Verbosity switch used for debugging or informational output.
HcalDataFormatMonitordfMon_
HcalDigiMonitordigiMon_
HcalDataIntegrityTaskdiTask_
bool dump2database_
HcalEEUSMonitoreeusMon_
HcalMonitorSelectorevtSel_
HcalExpertMonitorexpertMon_
edm::InputTag FEDRawDataCollection_
bool fedsListed_
int HBpresent_
int HEpresent_
int HFpresent_
int HOpresent_
HcalHotCellMonitorhotMon_
std::map< pair< int, int >,
std::vector< HcalDetId > > 
HTRtoCell
int ievent_
int ievt_
int ievt_pre_
int ilumisec_
edm::InputTag inputLabelCaloTower_
edm::InputTag inputLabelDigi_
edm::InputTag inputLabelGT_
edm::InputTag inputLabelLaser_
edm::InputTag inputLabelRecHitHBHE_
edm::InputTag inputLabelRecHitHF_
edm::InputTag inputLabelRecHitHO_
edm::InputTag inputLabelRecHitZDC_
int irun_
int itime_
HcalLaserMonitorlaserMon_
HcalLEDMonitorledMon_
ofstream m_logFile
MonitorElementmeEvtMask_
MonitorElementmeFEDS_
MonitorElementmeHB_
MonitorElementmeHE_
MonitorElementmeHF_
MonitorElementmeHO_
MonitorElementmeLatency_
MonitorElementmeQuality_
MonitorElementmeRunType_
MonitorElementmeStatus_
MonitorElementmeTrigger_
MonitorElementmeZDC_
std::string monitorName_
 units of "updates", TBD
HcalMTCCMonitormtccMon_
std::map< HcalDetId, unsigned intmyquality_
int nevt_
int nlumisecs_
HcalPedestalMonitorpedMon_
int prescaleEvt_
 Prescale variables for restricting the frequency of analyzer behavior.
int prescaleLS_
 units of events
int prescaleTime_
 units of lumi sections
int prescaleUpdate_
 units of minutes
struct {
   double   elapsedTime
   timeval   startTV
   double   updateTime
   timeval   updateTV
   double   vetoTime
psTime_
const HcalElectronicsMapreadoutMap_
HcalRecHitMonitorrhMon_
std::string rootFolder_
bool saved_
bool showTiming_
HcalTemplateAnalysistempAnalysis_
std::map< uint32_t,
std::vector< HcalDetId >
>::iterator 
thisDCC
std::map< pair< int, int >,
std::vector< HcalDetId >
>::iterator 
thisHTR
HcalTrigPrimMonitortpMon_
int ZDCpresent_


Detailed Description

Definition at line 72 of file HcalMonitorModule.h.


Constructor & Destructor Documentation

HcalMonitorModule::HcalMonitorModule ( const edm::ParameterSet ps  ) 

get time in milliseconds, convert to minutes

Definition at line 18 of file HcalMonitorModule.cc.

References actonLS_, beamMon_, checkHB_, checkHE_, checkHF_, checkHO_, GenMuonPlsPt100GeV_cfg::cout, ctMon_, dbe_, deadMon_, debug_, dfMon_, digiMon_, diTask_, dump2database_, eeusMon_, lat::endl(), evtSel_, expertMon_, FEDRawDataCollection_, fedsListed_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HBpresent_, HEpresent_, HFpresent_, HOpresent_, hotMon_, ievent_, ilumisec_, inputLabelCaloTower_, inputLabelDigi_, inputLabelLaser_, inputLabelRecHitHBHE_, inputLabelRecHitHF_, inputLabelRecHitHO_, inputLabelRecHitZDC_, irun_, itime_, laserMon_, ledMon_, meEvtMask_, meFEDS_, meLatency_, meQuality_, meRunType_, meStatus_, mtccMon_, NULL, pedMon_, prescaleEvt_, prescaleLS_, prescaleTime_, prescaleUpdate_, psTime_, rhMon_, rootFolder_, HcalEEUSMonitor::setup(), HcalTemplateAnalysis::setup(), HcalPedestalMonitor::setup(), HcalMTCCMonitor::setup(), HcalRecHitMonitor::setup(), HcalDigiMonitor::setup(), HcalLaserMonitor::setup(), HcalLEDMonitor::setup(), HcalDataIntegrityTask::setup(), HcalBeamMonitor::setup(), HcalDataFormatMonitor::setup(), HcalDeadCellMonitor::setup(), HcalCaloTowerMonitor::setup(), HcalExpertMonitor::setup(), HcalTrigPrimMonitor::setup(), HcalHotCellMonitor::setup(), showTiming_, tempAnalysis_, and tpMon_.

00018                                                              {
00019 
00020   irun_=0; ilumisec_=0; ievent_=0; itime_=0;
00021   actonLS_=false;
00022   meStatus_=0;  meRunType_=0;
00023   meEvtMask_=0; meFEDS_=0;
00024   meLatency_=0; meQuality_=0;
00025   fedsListed_ = false;
00026   digiMon_ = 0;   dfMon_ = 0;
00027   diTask_ = 0;
00028   rhMon_ = 0;     pedMon_ = 0; 
00029   ledMon_ = 0;    mtccMon_ = 0;
00030   hotMon_ = 0;    tempAnalysis_ = 0;
00031   deadMon_ = 0;   tpMon_ = 0;
00032   ctMon_ = 0;     beamMon_ = 0;
00033   laserMon_ = 0;
00034   expertMon_ = 0;  eeusMon_ = 0;
00035 
00036   // initialize hcal quality object
00037   
00038 
00039   // All subdetectors assumed out of the run by default
00040   HBpresent_=0;
00041   HEpresent_=0;
00042   HOpresent_=0;
00043   HFpresent_=0;
00044 
00045   inputLabelDigi_        = ps.getParameter<edm::InputTag>("digiLabel");
00046   inputLabelRecHitHBHE_  = ps.getParameter<edm::InputTag>("hbheRecHitLabel");
00047   inputLabelRecHitHF_    = ps.getParameter<edm::InputTag>("hfRecHitLabel");
00048   inputLabelRecHitHO_    = ps.getParameter<edm::InputTag>("hoRecHitLabel");
00049   inputLabelRecHitZDC_   = ps.getParameter<edm::InputTag>("zdcRecHitLabel");
00050   inputLabelCaloTower_   = ps.getParameter<edm::InputTag>("caloTowerLabel");
00051   inputLabelLaser_       = ps.getParameter<edm::InputTag>("hcalLaserLabel");
00052 
00053   checkHB_=ps.getUntrackedParameter<bool>("checkHB", 1); 
00054   checkHE_=ps.getUntrackedParameter<bool>("checkHE", 1);  
00055   checkHO_=ps.getUntrackedParameter<bool>("checkHO", 1);  
00056   checkHF_=ps.getUntrackedParameter<bool>("checkHF", 1);   
00057 
00058   evtSel_ = new HcalMonitorSelector(ps);
00059   
00060   dbe_ = Service<DQMStore>().operator->();
00061   
00062   debug_ = ps.getUntrackedParameter<int>("debug", 0);
00063   
00064   showTiming_ = ps.getUntrackedParameter<bool>("showTiming", false);
00065   dump2database_   = ps.getUntrackedParameter<bool>("dump2database",false); // dumps output to database file
00066 
00067   FEDRawDataCollection_ = ps.getUntrackedParameter<edm::InputTag>("FEDRawDataCollection",edm::InputTag("source",""));
00068 
00069   // Valgrind complained when the test was simply:  if ( ps.getUntrackedParameter<bool>("DataFormatMonitor", false))
00070   // try assigning value to bool first?
00071   bool taskOn = ps.getUntrackedParameter<bool>("DataFormatMonitor", false);
00072   if (taskOn) {
00073     if(debug_>0) cout << "HcalMonitorModule: DataFormat monitor flag is on...." << endl;
00074     dfMon_ = new HcalDataFormatMonitor();
00075     dfMon_->setup(ps, dbe_);
00076   }
00077 
00078   taskOn = ps.getUntrackedParameter<bool>("DataIntegrityTask", false); 
00079   if (taskOn ) 
00080     {
00081       if (debug_>0) cout <<"HcalMonitorModule: DataIntegrity monitor flag is on...."<<endl;
00082       diTask_ = new HcalDataIntegrityTask();
00083       diTask_->setup(ps, dbe_);
00084     }
00085 
00086   if ( ps.getUntrackedParameter<bool>("DigiMonitor", false) ) {
00087     if(debug_>0) cout << "HcalMonitorModule: Digi monitor flag is on...." << endl;
00088     digiMon_ = new HcalDigiMonitor();
00089     digiMon_->setup(ps, dbe_);
00090   }
00091   
00092   if ( ps.getUntrackedParameter<bool>("RecHitMonitor", false) ) {
00093     if(debug_>0) cout << "HcalMonitorModule: RecHit monitor flag is on...." << endl;
00094     rhMon_ = new HcalRecHitMonitor();
00095     rhMon_->setup(ps, dbe_);
00096   }
00097   
00098   if ( ps.getUntrackedParameter<bool>("PedestalMonitor", false) ) {
00099     if(debug_>0) cout << "HcalMonitorModule: Pedestal monitor flag is on...." << endl;
00100     pedMon_ = new HcalPedestalMonitor();
00101     pedMon_->setup(ps, dbe_);
00102   }
00103   
00104   if ( ps.getUntrackedParameter<bool>("LEDMonitor", false) ) {
00105     if(debug_>0) cout << "HcalMonitorModule: LED monitor flag is on...." << endl;
00106     ledMon_ = new HcalLEDMonitor();
00107     ledMon_->setup(ps, dbe_);
00108   }
00109   
00110   if ( ps.getUntrackedParameter<bool>("LaserMonitor", false) ) {
00111     if(debug_>0) cout << "HcalMonitorModule: Laser monitor flag is on...." << endl;
00112     laserMon_ = new HcalLaserMonitor();
00113     laserMon_->setup(ps, dbe_);
00114   }
00115 
00116   if ( ps.getUntrackedParameter<bool>("MTCCMonitor", false) ) {
00117     if(debug_>0) cout << "HcalMonitorModule: MTCC monitor flag is on...." << endl;
00118     mtccMon_ = new HcalMTCCMonitor();
00119     mtccMon_->setup(ps, dbe_);
00120   }
00121   
00122   if ( ps.getUntrackedParameter<bool>("HotCellMonitor", false) ) {
00123     if(debug_>0) cout << "HcalMonitorModule: Hot Cell monitor flag is on...." << endl;
00124     hotMon_ = new HcalHotCellMonitor();
00125     hotMon_->setup(ps, dbe_);
00126   }
00127   
00128   if ( ps.getUntrackedParameter<bool>("DeadCellMonitor", false) ) {
00129     if(debug_>0) cout << "HcalMonitorModule: Dead Cell monitor flag is on...." << endl;
00130     deadMon_ = new HcalDeadCellMonitor();
00131     deadMon_->setup(ps, dbe_);
00132   }
00133 
00134   if ( ps.getUntrackedParameter<bool>("TrigPrimMonitor", false) ) {      
00135     if(debug_>0) cout << "HcalMonitorModule: TrigPrim monitor flag is on...." << endl;   
00136     tpMon_ = new HcalTrigPrimMonitor();          
00137     tpMon_->setup(ps, dbe_);     
00138   }  
00139 
00140   if (ps.getUntrackedParameter<bool>("CaloTowerMonitor",false)){
00141     if(debug_>0) cout << "HcalMonitorModule: CaloTower monitor flag is on...." << endl;          
00142     ctMon_ = new HcalCaloTowerMonitor();         
00143     ctMon_->setup(ps, dbe_);     
00144   }  
00145 
00146   if (ps.getUntrackedParameter<bool>("BeamMonitor",false)){
00147     if(debug_>0) cout << "HcalMonitorModule: Beam monitor flag is on...."<<endl;
00148     beamMon_ = new HcalBeamMonitor();
00149     beamMon_->setup(ps, dbe_);
00150   }
00151 
00152   if (ps.getUntrackedParameter<bool>("ExpertMonitor",false)){
00153     if(debug_>0) cout << "HcalMonitorModule: Expert monitor flag is on...."<<endl;
00154     expertMon_ = new HcalExpertMonitor();
00155     expertMon_->setup(ps, dbe_);
00156   }
00157 
00158   
00159 
00160   if ( ps.getUntrackedParameter<bool>("HcalAnalysis", false) ) {
00161     if(debug_>0) cout << "HcalMonitorModule: Hcal Analysis flag is on...." << endl;
00162     tempAnalysis_ = new HcalTemplateAnalysis();
00163     tempAnalysis_->setup(ps);
00164   }
00165 
00166   if (ps.getUntrackedParameter<bool>("EEUSMonitor",false))
00167     {
00168       if (debug_>0) cout <<"HcalMonitorModule:  Empty Event/Unsuppressed Moniotr is on..."<<endl;
00169       eeusMon_ = new HcalEEUSMonitor();
00170       eeusMon_->setup(ps, dbe_);
00171     }
00172 
00173   // set parameters   
00174   prescaleEvt_ = ps.getUntrackedParameter<int>("diagnosticPrescaleEvt", -1);
00175   if(debug_>1) cout << "===>HcalMonitor event prescale = " << prescaleEvt_ << " event(s)"<< endl;
00176 
00177   prescaleLS_ = ps.getUntrackedParameter<int>("diagnosticPrescaleLS", -1);
00178   if(debug_>1) cout << "===>HcalMonitor lumi section prescale = " << prescaleLS_ << " lumi section(s)"<< endl;
00179   if (prescaleLS_>0) actonLS_=true;
00180 
00181   prescaleUpdate_ = ps.getUntrackedParameter<int>("diagnosticPrescaleUpdate", -1);
00182   if(debug_>1) cout << "===>HcalMonitor update prescale = " << prescaleUpdate_ << " update(s)"<< endl;
00183 
00184   prescaleTime_ = ps.getUntrackedParameter<int>("diagnosticPrescaleTime", -1);
00185   if(debug_>1) cout << "===>HcalMonitor time prescale = " << prescaleTime_ << " minute(s)"<< endl;
00186   
00187   // Base folder for the contents of this job
00188   string subsystemname = ps.getUntrackedParameter<string>("subSystemFolder", "Hcal") ;
00189   if(debug_>0) cout << "===>HcalMonitor name = " << subsystemname << endl;
00190   rootFolder_ = subsystemname + "/";
00191   
00192   gettimeofday(&psTime_.updateTV,NULL);
00194   psTime_.updateTime = (psTime_.updateTV.tv_sec*1000.0+psTime_.updateTV.tv_usec/1000.0);
00195   psTime_.updateTime /= 1000.0;
00196   psTime_.elapsedTime=0;
00197   psTime_.vetoTime=psTime_.updateTime;
00198 }

HcalMonitorModule::~HcalMonitorModule (  ) 

Definition at line 201 of file HcalMonitorModule.cc.

References beamMon_, HcalMTCCMonitor::clearME(), HcalRecHitMonitor::clearME(), HcalPedestalMonitor::clearME(), HcalHotCellMonitor::clearME(), HcalBaseMonitor::clearME(), HcalDataFormatMonitor::clearME(), HcalDataIntegrityTask::clearME(), HcalDeadCellMonitor::clearME(), dbe_, deadMon_, dfMon_, digiMon_, diTask_, evtSel_, hotMon_, laserMon_, ledMon_, mtccMon_, pedMon_, DQMStore::removeContents(), rhMon_, rootFolder_, DQMStore::setCurrentFolder(), and tempAnalysis_.

00202 {
00203   
00204   if (dbe_!=0)
00205     {    
00206       if(digiMon_!=0)   {  digiMon_->clearME();}
00207      if(dfMon_!=0)     {  dfMon_->clearME();}
00208      if(diTask_!=0)    {  diTask_->clearME();}
00209      if(pedMon_!=0)    {  pedMon_->clearME();}
00210      if(ledMon_!=0)    {  ledMon_->clearME();}
00211      if(laserMon_!=0)  {  laserMon_->clearME();}
00212      if(hotMon_!=0)    {  hotMon_->clearME();}
00213      if(deadMon_!=0)   {  deadMon_->clearME();}
00214      if(mtccMon_!=0)   {  mtccMon_->clearME();}
00215      if(rhMon_!=0)     {  rhMon_->clearME();}
00216      
00217      dbe_->setCurrentFolder(rootFolder_);
00218      dbe_->removeContents();
00219     }
00220   
00221   // I think setting pointers to NULL (0) after delete is unnecessary here,
00222   // since we're in the destructor (and thus won't be using the pointers again.)
00223   if(digiMon_!=0) 
00224     { 
00225       delete digiMon_;  digiMon_=0; 
00226     }
00227   if(dfMon_!=0) 
00228     { delete dfMon_;     dfMon_=0; 
00229     }
00230   if(diTask_!=0) 
00231     { delete diTask_;   diTask_=0; 
00232     }
00233   if(pedMon_!=0) 
00234     {
00235       delete pedMon_;   pedMon_=0; 
00236     }
00237   if(ledMon_!=0) 
00238     { delete ledMon_;   ledMon_=0; 
00239     }
00240   if(laserMon_!=0) 
00241     { delete laserMon_;   laserMon_=0; 
00242     }
00243   if(hotMon_!=0) 
00244     { delete hotMon_;   hotMon_=0; 
00245     }
00246   if(deadMon_!=0) 
00247     { delete deadMon_; deadMon_=0; 
00248     }
00249   if (beamMon_!=0)
00250     { delete beamMon_;  beamMon_=0;
00251     }
00252   if(mtccMon_!=0) 
00253     { delete mtccMon_; mtccMon_=0; 
00254     }
00255   if(rhMon_!=0) 
00256     { delete rhMon_;     rhMon_=0; 
00257     }
00258   if(tempAnalysis_!=0) 
00259     { delete tempAnalysis_; 
00260     tempAnalysis_=0; 
00261     }
00262   if (evtSel_!=0) {delete evtSel_; evtSel_ = 0;
00263   }
00264 } //void HcalMonitorModule::~HcalMonitorModule()


Member Function Documentation

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

See if our products are in the event...

Implements edm::EDAnalyzer.

Definition at line 530 of file HcalMonitorModule.cc.

References beamMon_, checkHB_, checkHE_, checkHF_, checkHO_, CheckSubdetectorStatus(), conditions_, GenMuonPlsPt100GeV_cfg::cout, cpu_timer, edm::CPUTimer::cpuTime(), ctMon_, dbe_, deadMon_, debug_, dfMon_, digiMon_, diTask_, DO_HCAL_DFMON, DO_HCAL_DIGIMON, DO_HCAL_LASER_CALIBMON, DO_HCAL_LED_CALIBMON, DO_HCAL_PED_CALIBMON, DO_HCAL_RECHITMON, eeusMon_, lat::endl(), edm::EventID::event(), evtSel_, expertMon_, f, FEDRawDataCollection_, fedsListed_, MonitorElement::Fill(), edm::Event::getByLabel(), HcalMonitorSelector::getEventMask(), HBpresent_, HEpresent_, HFpresent_, HOpresent_, hotMon_, edm::Event::id(), ievent_, ievt_, ievt_pre_, ilumisec_, inputLabelCaloTower_, inputLabelDigi_, inputLabelLaser_, inputLabelRecHitHBHE_, inputLabelRecHitHF_, inputLabelRecHitHO_, inputLabelRecHitZDC_, irun_, edm::Handle< T >::isValid(), itime_, laserMon_, ledMon_, edm::Event::luminosityBlock(), meEvtMask_, meFEDS_, meLatency_, meStatus_, mtccMon_, nevt_, NULL, pedMon_, prescale(), HcalMonitorSelector::processEvent(), HcalCaloTowerMonitor::processEvent(), HcalRecHitMonitor::processEvent(), HcalDataFormatMonitor::processEvent(), HcalLaserMonitor::processEvent(), HcalDigiMonitor::processEvent(), HcalDeadCellMonitor::processEvent(), HcalDataIntegrityTask::processEvent(), HcalExpertMonitor::processEvent(), HcalHotCellMonitor::processEvent(), HcalTrigPrimMonitor::processEvent(), HcalEEUSMonitor::processEvent(), HcalLEDMonitor::processEvent(), HcalBeamMonitor::processEvent(), HcalPedestalMonitor::processEvent(), psTime_, readoutMap_, WenuSkim_TriggerBit_cff::report, edm::CPUTimer::reset(), rhMon_, edm::EventID::run(), HcalDigiMonitor::setSubDetectors(), showTiming_, edm::CPUTimer::start(), edm::CPUTimer::stop(), edm::Event::time(), tpMon_, and edm::Timestamp::value().

00530                                                                                  {
00531 
00532   // environment datamembers
00533   irun_     = e.id().run();
00534   ilumisec_ = e.luminosityBlock();
00535   ievent_   = e.id().event();
00536   itime_    = e.time().value();
00537 
00538   if (debug_>1) cout << "HcalMonitorModule: evts: "<< nevt_ << ", run: " << irun_ << ", LS: " << ilumisec_ << ", evt: " << ievent_ << ", time: " << itime_ << endl <<"\t counter = "<<ievt_pre_<<"\t total count = "<<ievt_<<endl; 
00539 
00540   // skip this event if we're prescaling...
00541   ievt_pre_++; // need to increment counter before calling prescale
00542 
00543   if(prescale()) return;
00544   meLatency_->Fill(psTime_.elapsedTime);
00545 
00546   // Do default setup...
00547   ievt_++;
00548 
00549   int evtMask=DO_HCAL_DIGIMON|DO_HCAL_DFMON|DO_HCAL_RECHITMON|DO_HCAL_PED_CALIBMON|DO_HCAL_LED_CALIBMON|DO_HCAL_LASER_CALIBMON; // add in DO_HCAL_TPMON, DO_HCAL_CTMON?  (in HcalMonitorSelector.h)
00550 
00551   //  int trigMask=0;
00552   if(mtccMon_==NULL){
00553     evtSel_->processEvent(e);
00554     evtMask = evtSel_->getEventMask();
00555     //    trigMask =  evtSel_->getTriggerMask();
00556   }
00557   if ( dbe_ ){ 
00558     meStatus_->Fill(1);
00559     meEvtMask_->Fill(evtMask);
00560   }
00561   
00563   bool rawOK_    = true;
00564   bool digiOK_   = true;
00565   bool rechitOK_ = true;
00566   bool zdchitOK_ = true;
00567   bool trigOK_   = false;
00568   bool tpdOK_    = true;
00569   bool calotowerOK_ = true;
00570   bool laserOK_  = true;
00571 
00572   // try to get raw data and unpacker report
00573   edm::Handle<FEDRawDataCollection> rawraw;  
00574 
00575   // Trying new getByLabel
00576   if (!(e.getByLabel(FEDRawDataCollection_,rawraw)))
00577     {
00578       rawOK_=false;
00579       LogWarning("HcalMonitorModule")<<" source not available";
00580     }
00581   if (rawOK_&&!rawraw.isValid()) {
00582     rawOK_=false;
00583   }
00584 
00585   edm::Handle<HcalUnpackerReport> report;  
00586   if (!(e.getByLabel("hcalDigis",report)))
00587     {
00588       rawOK_=false;
00589       LogWarning("HcalMonitorModule")<<" hcalDigis not available";
00590     }
00591   if (rawOK_&&!report.isValid()) {
00592     rawOK_=false;
00593   }
00594   else 
00595     {
00596       if(!fedsListed_){
00597         const std::vector<int> feds =  (*report).getFedsUnpacked();    
00598         for(unsigned int f=0; f<feds.size(); f++){
00599           meFEDS_->Fill(feds[f]);    
00600         }
00601         fedsListed_ = true;
00602       }
00603     }
00604 
00605   // try to get digis
00606   edm::Handle<HBHEDigiCollection> hbhe_digi;
00607   edm::Handle<HODigiCollection> ho_digi;
00608   edm::Handle<HFDigiCollection> hf_digi;
00609   edm::Handle<HcalTrigPrimDigiCollection> tp_digi;
00610   edm::Handle<HcalLaserDigi> laser_digi;
00611 
00612   if (!(e.getByLabel(inputLabelDigi_,hbhe_digi)))
00613     digiOK_=false;
00614   /*
00615   if (!(e.getByType(hbhe_digi)))
00616     digiOK_=false;
00617   cout <<"TEST HBHE = "<<(*hbhe_digi).size()<<endl;
00618   */
00619   if (digiOK_&&!hbhe_digi.isValid()) {
00620     digiOK_=false;
00621     LogWarning("HcalMonitorModule")<< inputLabelDigi_<<" hbhe_digi not available";
00622   }
00623 
00624   if (!(e.getByLabel(inputLabelDigi_,hf_digi)))
00625     {
00626       digiOK_=false;
00627       LogWarning("HcalMonitorModule")<< inputLabelDigi_<<" hf_digi not available";
00628     }
00629   if (digiOK_&&!hf_digi.isValid()) {
00630     digiOK_=false;
00631   }
00632 
00633   if (!(e.getByLabel(inputLabelDigi_,ho_digi)))
00634     {
00635       digiOK_=false;
00636       LogWarning("HcalMonitorModule")<< inputLabelDigi_<<" ho_digi not available";
00637     }
00638   if (digiOK_&&!ho_digi.isValid()) {
00639     digiOK_=false;
00640   }
00641   
00642   // check which Subdetectors are on by seeing which are reading out FED data
00643   // Assume subdetectors aren't present, unless we explicitly find otherwise
00644 
00645   if (digiOK_ && rawOK_)
00646     { 
00647       if ((checkHB_ && HBpresent_==0) ||
00648           (checkHE_ && HEpresent_==0) ||
00649           (checkHO_ && HOpresent_==0) ||
00650           (checkHF_ && HFpresent_==0))
00651         
00652         CheckSubdetectorStatus(*rawraw,*report,*readoutMap_,*hbhe_digi, *ho_digi, *hf_digi);
00653     }
00654   else
00655     {
00656       // Is this the behavior we want?
00657       if (debug_>1)
00658         cout <<"<HcalMonitorModule::analyze>  digiOK or rawOK error.  Assuming all subdetectors present."<<endl;
00659       HBpresent_=1;
00660       HEpresent_=1;
00661       HOpresent_=1;
00662       HFpresent_=1;
00663     }
00664 
00665   // Case where all subdetectors have no raw data -- skip event
00666   if ((checkHB_ && HBpresent_==0) &&
00667       (checkHE_ && HEpresent_==0) &&
00668       (checkHO_ && HOpresent_==0) &&
00669       (checkHF_ && HFpresent_==0))
00670     {
00671       if (debug_>1) cout <<"<HcalMonitorModule::analyze>  No HCAL raw data found for event "<<ievt_<<endl;
00672       return;
00673     }
00674 
00675   if (!(e.getByLabel(inputLabelDigi_,tp_digi)))
00676     {
00677       tpdOK_=false;
00678       LogWarning("HcalMonitorModule")<< inputLabelDigi_<<" tp_digi not available"; 
00679     }
00680 
00681   if (tpdOK_ && !tp_digi.isValid()) {
00682     tpdOK_=false;
00683   }
00684   if (!(e.getByLabel(inputLabelLaser_,laser_digi)))
00685     {laserOK_=false;}
00686   if (laserOK_&&!laser_digi.isValid()) {
00687     laserOK_=false;
00688   }
00689 
00690   // try to get rechits
00691   edm::Handle<HBHERecHitCollection> hb_hits;
00692   edm::Handle<HORecHitCollection> ho_hits;
00693   edm::Handle<HFRecHitCollection> hf_hits;
00694   edm::Handle<ZDCRecHitCollection> zdc_hits;
00695   edm::Handle<CaloTowerCollection> calotowers;
00696 
00697   if (!(e.getByLabel(inputLabelRecHitHBHE_,hb_hits)))
00698     {
00699       rechitOK_=false;
00700       //if (debug_>0)
00701         LogWarning("HcalMonitorModule")<< inputLabelRecHitHBHE_<<" not available"; 
00702     }
00703   
00704   if (rechitOK_&&!hb_hits.isValid()) {
00705     rechitOK_ = false;
00706   }
00707   if (!(e.getByLabel(inputLabelRecHitHO_,ho_hits)))
00708     {
00709       rechitOK_=false;
00710       //if (debug_>0) 
00711         LogWarning("HcalMonitorModule")<< inputLabelRecHitHO_<<" not available"; 
00712     }
00713   if (rechitOK_&&!ho_hits.isValid()) {
00714     rechitOK_ = false;
00715   }
00716   if (!(e.getByLabel(inputLabelRecHitHF_,hf_hits)))
00717     {
00718       rechitOK_=false;
00719       //if (debug_>0) 
00720         LogWarning("HcalMonitorModule")<< inputLabelRecHitHF_<<" not available"; 
00721     }
00722   if (rechitOK_&&!hf_hits.isValid()) {
00723     rechitOK_ = false;
00724   }
00725   
00726   if (!(e.getByLabel(inputLabelRecHitZDC_,zdc_hits)))
00727     {
00728       zdchitOK_=false;
00729       // ZDC Warnings should be suppressed unless debugging is on (since we don't yet normally run zdcreco)
00730       if (debug_>0) 
00731         LogWarning("HcalMonitorModule")<< inputLabelRecHitZDC_<<" not available"; 
00732     }
00733   if (zdchitOK_&&!zdc_hits.isValid()) 
00734     {
00735       zdchitOK_ = false;
00736     }
00737   
00738   // try to get calotowers 
00739   if (ctMon_!=NULL)
00740     {
00741       if (!(e.getByLabel(inputLabelCaloTower_,calotowers)))
00742         {
00743           calotowerOK_=false;
00744           if (debug_>0) LogWarning("HcalMonitorModule")<< inputLabelCaloTower_<<" not available"; 
00745         }
00746       if(calotowerOK_&&!calotowers.isValid()){
00747         calotowerOK_=false;
00748       }
00749     }
00750   else
00751     calotowerOK_=false;
00752 
00753   // Run the configured tasks, protect against missing products
00754 
00755   // Data Format monitor task
00756   
00757   if (showTiming_)
00758     {
00759       cpu_timer.reset(); cpu_timer.start();
00760     }
00761 
00762   if((dfMon_ != NULL) && (evtMask&DO_HCAL_DFMON) && rawOK_) 
00763     dfMon_->processEvent(*rawraw,*report,*readoutMap_);
00764   if (showTiming_)
00765     {
00766       cpu_timer.stop();
00767       if (dfMon_ !=NULL) cout <<"TIMER:: DATAFORMAT MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00768       cpu_timer.reset(); cpu_timer.start();
00769     }
00770 
00771   if ((diTask_ != NULL) && (evtMask&DO_HCAL_DFMON) && rawOK_)
00772     diTask_->processEvent(*rawraw,*report,*readoutMap_);
00773   if (showTiming_)
00774     {
00775       cpu_timer.stop();
00776       if (diTask_ !=NULL) cout <<"TIMER:: DATA INTEGRITY TASK ->"<<cpu_timer.cpuTime()<<endl;
00777       cpu_timer.reset(); cpu_timer.start();
00778     }
00779 
00780   // Digi monitor task
00781   if((digiMon_!=NULL) && (evtMask&DO_HCAL_DIGIMON) && digiOK_) 
00782     {
00783       digiMon_->setSubDetectors(HBpresent_,HEpresent_, HOpresent_, HFpresent_);
00784       digiMon_->processEvent(*hbhe_digi,*ho_digi,*hf_digi,
00785                              *conditions_,*report);
00786     }
00787   if (showTiming_)
00788     {
00789       cpu_timer.stop();
00790       if (digiMon_ != NULL) cout <<"TIMER:: DIGI MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00791       cpu_timer.reset(); cpu_timer.start();
00792     }
00793   // Pedestal monitor task
00794   if((pedMon_!=NULL) && (evtMask&DO_HCAL_PED_CALIBMON) && digiOK_) 
00795     {
00796       pedMon_->processEvent(*hbhe_digi,*ho_digi,*hf_digi,*conditions_);
00797     }
00798   if (showTiming_)
00799     {
00800       cpu_timer.stop();
00801       if (pedMon_!=NULL) cout <<"TIMER:: PEDESTAL MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00802       cpu_timer.reset(); cpu_timer.start();
00803     }
00804 
00805   // LED monitor task
00806   if((ledMon_!=NULL) && (evtMask&DO_HCAL_LED_CALIBMON) && digiOK_)
00807     ledMon_->processEvent(*hbhe_digi,*ho_digi,*hf_digi,*conditions_);
00808   if (showTiming_)
00809     {
00810       cpu_timer.stop();
00811       if (ledMon_!=NULL) cout <<"TIMER:: LED MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00812       cpu_timer.reset(); cpu_timer.start();
00813     }
00814 
00815   // Laser monitor task
00816   if((laserMon_!=NULL) && (evtMask&DO_HCAL_LASER_CALIBMON) && digiOK_ && laserOK_)
00817     laserMon_->processEvent(*hbhe_digi,*ho_digi,*hf_digi,*laser_digi,*conditions_);
00818   if (showTiming_)
00819     {
00820       cpu_timer.stop();
00821       if (laserMon_!=NULL) cout <<"TIMER:: LASER MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00822       cpu_timer.reset(); cpu_timer.start();
00823     }
00824 
00825   // Rec Hit monitor task
00826   if((rhMon_ != NULL) && (evtMask&DO_HCAL_RECHITMON) && rechitOK_) 
00827     {
00828     rhMon_->processEvent(*hb_hits,*ho_hits,*hf_hits);
00829     // This lets us process rec hits regardless of ZDC status.
00830     // But is ZDC is okay, we'll make rec hit plots for that as well.
00831     if (zdchitOK_)
00832       {
00833         if (debug_>1) cout <<"PROCESSING ZDC!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"<<endl;
00834         //rhMon_->processZDC(*zdc_hits);
00835       }
00836     }
00837   if (showTiming_)
00838     {
00839       cpu_timer.stop();
00840       if (rhMon_!=NULL) cout <<"TIMER:: RECHIT MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00841       cpu_timer.reset(); cpu_timer.start();
00842     }
00843   
00844   // Beam Monitor task
00845   if ((beamMon_ != NULL) && (evtMask&DO_HCAL_RECHITMON) && rechitOK_)
00846     {
00847       beamMon_->processEvent(*hb_hits,*ho_hits,*hf_hits,*hf_digi);
00848     }
00849   if (showTiming_)
00850     {
00851       cpu_timer.stop();
00852       if (beamMon_!=NULL) cout <<"TIMER:: BEAM MONITOR ->"<<cpu_timer.cpuTime( \
00853 )<<endl;
00854       cpu_timer.reset(); cpu_timer.start();
00855     }
00856 
00857   // Hot Cell monitor task
00858   if((hotMon_ != NULL) && (evtMask&DO_HCAL_RECHITMON) && rechitOK_) 
00859     {
00860       hotMon_->processEvent(*hb_hits,*ho_hits,*hf_hits, 
00861                             *hbhe_digi,*ho_digi,*hf_digi,*conditions_);
00862       //hotMon_->setSubDetectors(HBpresent_,HEpresent_, HOpresent_, HFpresent_);
00863     }
00864   if (showTiming_)
00865     {
00866       cpu_timer.stop();
00867       if (hotMon_!=NULL) cout <<"TIMER:: HOTCELL MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00868       cpu_timer.reset(); cpu_timer.start();
00869     }
00870   // Dead Cell monitor task -- may end up using both rec hits and digis?
00871   if((deadMon_ != NULL) && (evtMask&DO_HCAL_RECHITMON) && rechitOK_ && digiOK_) 
00872     {
00873       //deadMon_->setSubDetectors(HBpresent_,HEpresent_, HOpresent_, HFpresent_);
00874       deadMon_->processEvent(*hb_hits,*ho_hits,*hf_hits,
00875                              *hbhe_digi,*ho_digi,*hf_digi,*conditions_); 
00876     }
00877   if (showTiming_)
00878     {
00879       cpu_timer.stop();
00880       if (deadMon_!=NULL) cout <<"TIMER:: DEADCELL MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00881       cpu_timer.reset(); cpu_timer.start();
00882     }
00883 
00884   // CalotowerMonitor
00885   if ((ctMon_ !=NULL) )
00886     ctMon_->processEvent(*calotowers);
00887 
00888   if (showTiming_)
00889     {
00890       cpu_timer.stop();
00891       if (ctMon_ !=NULL) cout <<"TIMER:: CALOTOWER MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00892       cpu_timer.reset(); cpu_timer.start();
00893     }
00894 
00895 
00896   // Trigger Primitive monitor task -- may end up using both rec hits and digis?
00897   if((tpMon_ != NULL) && rechitOK_ && digiOK_ && tpdOK_) 
00898     tpMon_->processEvent(*hb_hits,*ho_hits,*hf_hits,
00899                          *hbhe_digi,*ho_digi,*hf_digi,*tp_digi, *readoutMap_);                       
00900   
00901 
00902   if (showTiming_)
00903     {
00904       cpu_timer.stop();
00905       if (tpMon_!=NULL) cout <<"TIMER:: TRIGGERPRIMITIVE MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00906     }
00907 
00908   // Expert monitor plots
00909   if (expertMon_ != NULL) 
00910     {
00911       expertMon_->processEvent(*hb_hits,*ho_hits,*hf_hits,
00912                                *hbhe_digi,*ho_digi,*hf_digi,
00913                                *tp_digi,
00914                                *rawraw,*report,*readoutMap_);
00915     }
00916   if (showTiming_)
00917     {
00918       cpu_timer.stop();
00919       if (expertMon_!=NULL) cout <<"TIMER:: EXPERT MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00920       cpu_timer.reset(); cpu_timer.start();
00921     }
00922 
00923   // Empty Event/Unsuppressed monitor plots
00924   if (eeusMon_ != NULL) 
00925     {
00926       eeusMon_->processEvent( *rawraw,*report,*readoutMap_);
00927     }
00928   if (showTiming_)
00929     {
00930       cpu_timer.stop();
00931       if (eeusMon_!=NULL) cout <<"TIMER:: EE/US MONITOR ->"<<cpu_timer.cpuTime()<<endl;
00932       cpu_timer.reset(); cpu_timer.start();
00933     }
00934 
00935 
00936   if(debug_>0 && ievt_%1000 == 0)
00937     cout << "HcalMonitorModule: processed " << ievt_ << " events" << endl;
00938 
00939   if(debug_>1)
00940     {
00941       cout << "HcalMonitorModule: processed " << ievt_ << " events" << endl;
00942       cout << "    RAW Data   ==> " << rawOK_<< endl;
00943       cout << "    Digis      ==> " << digiOK_<< endl;
00944       cout << "    RecHits    ==> " << rechitOK_<< endl;
00945       cout << "    TrigRec    ==> " << trigOK_<< endl;
00946       cout << "    TPdigis    ==> " << tpdOK_<< endl;    
00947       cout << "    CaloTower  ==> " << calotowerOK_ <<endl;
00948       cout << "    LaserDigis ==> " << laserOK_ << endl;
00949     }
00950   
00951   return;
00952 }

void HcalMonitorModule::beginJob ( const edm::EventSetup c  )  [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 267 of file HcalMonitorModule.cc.

References HcalElectronicsMap::allElectronicsIdPrecision(), DQMStore::book1D(), DQMStore::bookInt(), chanquality_, conditions_, HcalDeadCellMonitor::createMaps(), HcalHotCellMonitor::createMaps(), dbe_, DCCtoCell, deadMon_, DetId::det(), dfMon_, MonitorElement::Fill(), HcalPedestalMonitor::fillDBValues(), edm::EventSetup::get(), HBpresent_, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HEpresent_, HFpresent_, HOpresent_, hotMon_, HTRtoCell, ievt_, ievt_pre_, HcalElectronicsMap::lookup(), meEvtMask_, meFEDS_, meHB_, meHE_, meHF_, meHO_, meLatency_, meQuality_, meRunType_, meStatus_, NULL, DetId::null(), p, pedMon_, edm::ESHandle< T >::product(), readoutMap_, rootFolder_, DQMStore::setCurrentFolder(), HcalDataFormatMonitor::smuggleMaps(), DetId::subdetId(), thisDCC, and thisHTR.

00267                                                       {
00268   ievt_ = 0;
00269   
00270   ievt_pre_=0;
00271 
00272   if ( dbe_ != NULL ){
00273     dbe_->setCurrentFolder(rootFolder_+"DQM Job Status" );
00274     meStatus_  = dbe_->bookInt("STATUS");
00275     meRunType_ = dbe_->bookInt("RUN TYPE");
00276     meEvtMask_ = dbe_->bookInt("EVT MASK");
00277     meFEDS_    = dbe_->book1D("FEDs Unpacked","FEDs Unpacked",100,700,799);
00278     // process latency was (200,0,1), but that gave overflows
00279     meLatency_ = dbe_->book1D("Process Latency","Process Latency",2000,0,10);
00280     meQuality_ = dbe_->book1D("Quality Status","Quality Status",100,0,1);
00281     // Store whether or not subdetectors are present
00282     meHB_ = dbe_->bookInt("HBpresent");
00283     meHE_ = dbe_->bookInt("HEpresent");
00284     meHO_ = dbe_->bookInt("HOpresent");
00285     meHF_ = dbe_->bookInt("HFpresent");
00286     
00287     meStatus_->Fill(0);
00288     meRunType_->Fill(-1);
00289     meEvtMask_->Fill(-1);
00290 
00291     // Should fill with 0 to start
00292     meHB_->Fill(HBpresent_);
00293     meHE_->Fill(HEpresent_);
00294     meHO_->Fill(HOpresent_);
00295     meHF_->Fill(HFpresent_);
00296   }
00297 
00298   edm::ESHandle<HcalDbService> pSetup;
00299   c.get<HcalDbRecord>().get( pSetup );
00300 
00301   readoutMap_=pSetup->getHcalMapping();
00302   DetId detid_;
00303   HcalDetId hcaldetid_; 
00304 
00305   // Build a map of readout hardware unit to calorimeter channel
00306   std::vector <HcalElectronicsId> AllElIds = readoutMap_->allElectronicsIdPrecision();
00307   int dccid;
00308   pair <int,int> dcc_spgt;
00309   // by looping over all precision (non-trigger) items.
00310   for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin();
00311        eid != AllElIds.end();
00312        eid++) {
00313 
00314     //Get the HcalDetId from the HcalElectronicsId
00315     detid_ = readoutMap_->lookup(*eid);
00316     
00317 
00318     // NULL if illegal; ignore
00319     if (!detid_.null()) {
00320       if (detid_.det()!=4) continue;
00321       if (detid_.subdetId()!=HcalBarrel &&
00322           detid_.subdetId()!=HcalEndcap &&
00323           detid_.subdetId()!=HcalOuter  &&
00324           detid_.subdetId()!=HcalForward) continue;
00325       hcaldetid_ = HcalDetId(detid_);
00326       
00327       dccid = eid->dccid();
00328       dcc_spgt = pair <int,int> (dccid, eid->spigot());
00329       
00330       thisDCC = DCCtoCell.find(dccid);
00331       thisHTR = HTRtoCell.find(dcc_spgt);
00332       
00333       // If this DCC has no entries, make this its first one.
00334       if (thisDCC == DCCtoCell.end()) {
00335         std::vector <HcalDetId> tempv;
00336         tempv.push_back(hcaldetid_);
00337         pair <int, std::vector<HcalDetId> > thispair;
00338         thispair = pair <int, std::vector<HcalDetId> > (dccid,tempv);
00339         DCCtoCell.insert(thispair); 
00340       }
00341       else {
00342         thisDCC->second.push_back(hcaldetid_);
00343       }
00344       
00345       // If this HTR has no entries, make this its first one.
00346       if (thisHTR == HTRtoCell.end()) {
00347         std::vector <HcalDetId> tempv;
00348         tempv.push_back(hcaldetid_);
00349         pair < pair <int,int>, std::vector<HcalDetId> > thispair;
00350         thispair = pair <pair <int,int>, std::vector<HcalDetId> > (dcc_spgt,tempv);
00351         HTRtoCell.insert(thispair); 
00352       }
00353       else {
00354         thisHTR->second.push_back(hcaldetid_);  
00355       }
00356     } // if (!detid_.null()) 
00357   } 
00358   if (dfMon_) {
00359     dfMon_->smuggleMaps(DCCtoCell, HTRtoCell);
00360   }
00361 
00362   //get conditions
00363   c.get<HcalDbRecord>().get(conditions_);
00364 
00365   // fill reference pedestals with database values
00366   // Need to repeat this so many times?  Just do it once? And then we can be smarter about the whole fC/ADC thing?
00367   if (pedMon_!=NULL)
00368     pedMon_->fillDBValues(*conditions_);
00369   if (deadMon_!=NULL)
00370     deadMon_->createMaps(*conditions_);
00371   if (hotMon_!=NULL)
00372     hotMon_->createMaps(*conditions_);
00373 
00374 
00375   edm::ESHandle<HcalChannelQuality> p;
00376   c.get<HcalChannelQualityRcd>().get(p);
00377   chanquality_= new HcalChannelQuality(*p.product());
00378   return;
00379 } // HcalMonitorModule::beginJob(...)

void HcalMonitorModule::beginLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 400 of file HcalMonitorModule.cc.

References actonLS_, and prescale().

00401                                    {
00402   
00403   if(actonLS_ && !prescale()){
00404     // do scheduled tasks...
00405   }
00406 }

void HcalMonitorModule::beginRun ( const edm::Run run,
const edm::EventSetup c 
) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 382 of file HcalMonitorModule.cc.

References fedsListed_, MonitorElement::Fill(), HBpresent_, HEpresent_, HFpresent_, HOpresent_, meHB_, meHE_, meHF_, meHO_, and reset().

00382                                                                           {
00383   fedsListed_ = false;
00384 
00385   // I think we want to reset these at 0 at the start of each run
00386   HBpresent_ = 0;
00387   HEpresent_ = 0;
00388   HOpresent_ = 0;
00389   HFpresent_ = 0;
00390 
00391   // Should fill with 0 to start
00392   meHB_->Fill(HBpresent_);
00393   meHE_->Fill(HEpresent_);
00394   meHO_->Fill(HOpresent_);
00395   meHF_->Fill(HFpresent_);
00396   reset();
00397 }

void HcalMonitorModule::CheckSubdetectorStatus ( const FEDRawDataCollection rawraw,
const HcalUnpackerReport report,
const HcalElectronicsMap emap,
const HBHEDigiCollection hbhedigi,
const HODigiCollection hodigi,
const HFDigiCollection hfdigi 
) [protected]

Definition at line 1005 of file HcalMonitorModule.cc.

References HcalHTRData::check(), FEDRawData::data(), FEDRawDataCollection::FEDData(), MonitorElement::Fill(), first, FEDNumbering::getHcalFEDIds(), HcalDCCHeader::getSourceId(), HcalDCCHeader::getSpigotData(), HcalDCCHeader::getSpigotPresent(), HBpresent_, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HEpresent_, HFpresent_, HOpresent_, HcalHTRData::htrSlot(), HcalHTRData::htrTopBottom(), i, HcalHTRData::isHistogramEvent(), HcalElectronicsMap::lookup(), meHB_, meHE_, meHF_, meHO_, DetId::null(), HcalHTRData::readoutVMECrateId(), HcalElectronicsId::setHTR(), FEDRawData::size(), edm::SortedCollection< T, SORT >::size(), HcalDCCHeader::SPIGOT_COUNT, and DetId::subdetId().

Referenced by analyze().

01014 {
01015   vector<int> fedUnpackList;
01016   for (int i=FEDNumbering::getHcalFEDIds().first; 
01017        i<=FEDNumbering::getHcalFEDIds().second; 
01018        i++) 
01019     {
01020       fedUnpackList.push_back(i);
01021     }
01022   
01023   for (vector<int>::const_iterator i=fedUnpackList.begin();
01024        i!=fedUnpackList.end(); 
01025        ++i) 
01026     {
01027       const FEDRawData& fed = rawraw.FEDData(*i);
01028       if (fed.size()<12) continue; // Was 16. How do such tiny events even get here?
01029       
01030       // get the DCC header
01031       const HcalDCCHeader* dccHeader=(const HcalDCCHeader*)(fed.data());
01032       if (!dccHeader) return;
01033       int dccid=dccHeader->getSourceId();
01034       // check for HF
01035       if (dccid>717 && dccid<724)
01036         {
01037           if (HFpresent_==0 && hfdigi.size()>0)
01038             {
01039               HFpresent_ = 1;
01040               meHF_->Fill(HFpresent_);
01041             }
01042           continue;
01043         }
01044 
01045       // check for HO
01046       if (dccid>723)
01047         {
01048           if (HOpresent_==0 && hodigi.size()>0)
01049             {
01050               HOpresent_ = 1;
01051               meHO_->Fill(HOpresent_);
01052             }
01053           continue;
01054         }
01055       
01056       // Looking at HB and HE is more complicated, since they're combined into HBHE
01057       // walk through the HTR data...
01058       HcalHTRData htr;  
01059       for (int spigot=0; spigot<HcalDCCHeader::SPIGOT_COUNT; spigot++) {    
01060         if (!dccHeader->getSpigotPresent(spigot)) continue;
01061         
01062         // Load the given decoder with the pointer and length from this spigot.
01063         dccHeader->getSpigotData(spigot,htr, fed.size()); 
01064         
01065         // check min length, correct wordcount, empty event, or total length if histo event.
01066         if (!htr.check()) continue;
01067         if (htr.isHistogramEvent()) continue;
01068         
01069         int firstFED =  FEDNumbering::getHcalFEDIds().first; 
01070         
01071         // Tease out HB and HE, which share HTRs in HBHE
01072         for(int fchan=0; fchan<3; ++fchan) //0,1,2 are valid
01073           {
01074             for(int fib=1; fib<9; ++fib) //1...8 are valid
01075               {
01076                 HcalElectronicsId eid(fchan,fib,spigot,dccid-firstFED);
01077                 eid.setHTR(htr.readoutVMECrateId(),
01078                            htr.htrSlot(),htr.htrTopBottom());
01079                 DetId did=emap.lookup(eid);
01080                 if (!did.null()) 
01081                   {
01082                     
01083                     switch (((HcalSubdetector)did.subdetId()))
01084                       {
01085                       case (HcalBarrel): 
01086                         {
01087                           if (HBpresent_==0)
01088                             {
01089                               HBpresent_ = 1;
01090                               meHB_->Fill(HBpresent_);
01091                             }
01092                         } break; // case (HcalBarrel)
01093                       case (HcalEndcap): 
01094                         {
01095                           if (HEpresent_==0)
01096                             {
01097                               HEpresent_ = 1;
01098                               meHE_->Fill(HEpresent_);
01099                             }
01100                         } break; // case (HcalEndcap)
01101                       case (HcalOuter): 
01102                         { // shouldn't reach these last two cases
01103                           if (HOpresent_==0)
01104                             {
01105                               {
01106                                 HOpresent_ = 1;
01107                                 meHO_->Fill(HOpresent_);
01108                                 return;
01109                               }
01110                             } 
01111                         } break; // case (HcalOuter)
01112                       case (HcalForward): 
01113                         {
01114                           if (HFpresent_==0)
01115                             {
01116                               meHF_->Fill(HFpresent_);
01117                               HFpresent_ = 1;
01118                             }
01119                         } break; //case (HcalForward)
01120                       default: break;
01121                       } // switch ((HcalSubdetector...)
01122                   } // if (!did.null())
01123               } // for (int fib=0;...)
01124           } // for (int fchan = 0;...)
01125         
01126       } // for (int spigot=0;...)
01127     } //  for (vector<int>::const_iterator i=fedUnpackList.begin();
01128   return;
01129 } // void HcalMonitorModule::CheckSubdetectorStatus(...)

void HcalMonitorModule::endJob ( void   )  [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 435 of file HcalMonitorModule.cc.

References beamMon_, chanquality_, GenMuonPlsPt100GeV_cfg::cout, ctMon_, deadMon_, debug_, dfMon_, digiMon_, diTask_, HcalTemplateAnalysis::done(), HcalDeadCellMonitor::done(), HcalPedestalMonitor::done(), HcalLaserMonitor::done(), HcalLEDMonitor::done(), HcalHotCellMonitor::done(), HcalRecHitMonitor::done(), HcalBaseMonitor::done(), dump2database_, HcalDbASCIIIO::dumpObject(), eeusMon_, lat::endl(), expertMon_, file, MonitorElement::Fill(), HcalChannelStatus::getValue(), HBpresent_, HcalBarrel, HcalEndcap, HcalForward, HcalOuter, HEpresent_, HFpresent_, HOpresent_, hotMon_, i, irun_, laserMon_, ledMon_, meStatus_, mtccMon_, myquality_, NULL, pedMon_, HcalChannelStatus::rawId(), rhMon_, HcalChannelStatus::setBit(), tempAnalysis_, tpMon_, and HcalChannelStatus::unsetBit().

00435                                    {
00436   
00437   if ( meStatus_ ) meStatus_->Fill(2);
00438 
00439   if(rhMon_!=NULL) rhMon_->done();
00440   if(digiMon_!=NULL) digiMon_->done();
00441   if(dfMon_!=NULL) dfMon_->done();
00442   if(diTask_!=NULL) diTask_->done();
00443   if(pedMon_!=NULL) pedMon_->done();
00444   if(ledMon_!=NULL) ledMon_->done();
00445   if(laserMon_!=NULL) laserMon_->done();
00446   if(hotMon_!=NULL) hotMon_->done(myquality_);
00447   if(deadMon_!=NULL) deadMon_->done(myquality_);
00448   if(mtccMon_!=NULL) mtccMon_->done();
00449   if (tpMon_!=NULL) tpMon_->done();
00450   if (ctMon_!=NULL) ctMon_->done();
00451   if (beamMon_!=NULL) beamMon_->done();
00452   if (expertMon_!=NULL) expertMon_->done();
00453   if (eeusMon_!=NULL) eeusMon_->done();
00454   if(tempAnalysis_!=NULL) tempAnalysis_->done();
00455 
00456   if (dump2database_)
00457     {
00458       if (debug_>0) cout <<"<HcalMonitorModule::endJob>  Writing file for database"<<endl;
00459       std::vector<DetId> mydetids = chanquality_->getAllChannels();
00460       HcalChannelQuality* newChanQual = new HcalChannelQuality();
00461       for (unsigned int i=0;i<mydetids.size();++i)
00462         {
00463           if (mydetids[i].det()!=4) continue; // not hcal
00464           //HcalDetId id(mydetids[i]);
00465           HcalDetId id=mydetids[i];
00466           // get original channel status item
00467           const HcalChannelStatus* origstatus=chanquality_->getValues(mydetids[i]);
00468           // make copy of status
00469           HcalChannelStatus* mystatus=new HcalChannelStatus(origstatus->rawId(),origstatus->getValue());
00470           if (myquality_.find(id)!=myquality_.end())
00471             {
00472               // Set bit 1 for cells which aren't present        
00473               if ((id.subdet()==HcalBarrel &&!HBpresent_) ||     
00474                   (id.subdet()==HcalEndcap &&!HEpresent_) ||     
00475                   (id.subdet()==HcalOuter  &&!HOpresent_) ||     
00476                   (id.subdet()==HcalForward&&!HFpresent_))       
00477                 {        
00478                   mystatus->setBit(1);   
00479                 }        
00480               // Only perform these checks if bit 0 not set?
00481               // check dead cells
00482               if ((myquality_[id]>>5)&0x1)
00483                   mystatus->setBit(5);
00484               else
00485                 mystatus->unsetBit(5);
00486               // check hot cells
00487               if ((myquality_[id]>>6)&0x1)
00488                 mystatus->setBit(6);
00489               else
00490                 mystatus->unsetBit(6);
00491             } // if (myquality_.find_...)
00492           newChanQual->addValues(*mystatus);
00493           // Clean up pointers to avoid memory leaks
00494           delete origstatus;
00495           delete mystatus;
00496         } // for (unsigned int i=0;...)
00497       // Now dump out to text file
00498       std::ostringstream file;
00499       file <<"HcalDQMstatus_"<<irun_<<".txt";
00500       std::ofstream outStream(file.str().c_str());
00501       HcalDbASCIIIO::dumpObject (outStream, (*newChanQual));
00502 
00503     } // if (dump2databse_)
00504   return;
00505 }

void HcalMonitorModule::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 410 of file HcalMonitorModule.cc.

References actonLS_, and prescale().

00411                                                                          {
00412   if(actonLS_ && !prescale()){
00413     // do scheduled tasks...
00414   }
00415 }

void HcalMonitorModule::endRun ( const edm::Run run,
const edm::EventSetup c 
) [protected, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 418 of file HcalMonitorModule.cc.

References GenMuonPlsPt100GeV_cfg::cout, deadMon_, debug_, lat::endl(), HcalDeadCellMonitor::fillDeadHistosAtEndRun(), HcalPedestalMonitor::fillPedestalHistos(), ievt_, NULL, and pedMon_.

00419 {
00420   if (debug_>0)  
00421     cout <<"HcalMonitorModule::endRun(...) ievt = "<<ievt_<<endl;
00422 
00423   // Do final pedestal histogram filling
00424   if (pedMon_!=NULL)
00425     pedMon_->fillPedestalHistos();
00426 
00427   if (deadMon_!=NULL)
00428     deadMon_->fillDeadHistosAtEndRun();
00429 
00430   return;
00431 }

bool HcalMonitorModule::prescale (  )  [protected]

Boolean prescale test for this event.

Return true if this event should be skipped according to the prescale condition... Accommodate a logical "OR" of the possible tests

in seconds

Definition at line 955 of file HcalMonitorModule.cc.

References GenMuonPlsPt100GeV_cfg::cout, debug_, lat::endl(), ievent_, ievt_pre_, ilumisec_, NULL, prescaleEvt_, prescaleLS_, prescaleTime_, prescaleUpdate_, and psTime_.

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

00956 {
00959   if (debug_>0) cout <<"HcalMonitorModule::prescale"<<endl;
00960   
00961   gettimeofday(&psTime_.updateTV,NULL);
00962   double time = (psTime_.updateTV.tv_sec*1000.0+psTime_.updateTV.tv_usec/1000.0);
00963   time/= (1000.0); 
00964   psTime_.elapsedTime = time - psTime_.updateTime;
00965   psTime_.updateTime = time;
00966   //First determine if we care...
00967   bool evtPS =    prescaleEvt_>0;
00968   bool lsPS =     prescaleLS_>0;
00969   bool timePS =   prescaleTime_>0;
00970   bool updatePS = prescaleUpdate_>0;
00971 
00972   // If no prescales are set, keep the event
00973   if(!evtPS && !lsPS && !timePS && !updatePS)
00974     {
00975       return false;
00976     }
00977   //check each instance
00978   if(lsPS && (ilumisec_%prescaleLS_)!=0) lsPS = false; //LS veto
00979   //if(evtPS && (ievent_%prescaleEvt_)!=0) evtPS = false; //evt # veto
00980   // we can't just call (ievent_%prescaleEvt_) because ievent values not consecutive
00981   if (evtPS && (ievt_pre_%prescaleEvt_)!=0) evtPS = false;
00982   if(timePS)
00983     {
00984       double elapsed = (psTime_.updateTime - psTime_.vetoTime)/60.0;
00985       if(elapsed<prescaleTime_){
00986         timePS = false;  //timestamp veto
00987         psTime_.vetoTime = psTime_.updateTime;
00988       }
00989     } //if (timePS)
00990 
00991   //  if(prescaleUpdate_>0 && (nupdates_%prescaleUpdate_)==0) updatePS=false; ///need to define what "updates" means
00992   
00993   if (debug_>1) 
00994     {
00995       cout<<"HcalMonitorModule::prescale  evt: "<<ievent_<<"/"<<evtPS<<", ";
00996       cout <<"ls: "<<ilumisec_<<"/"<<lsPS<<",";
00997       cout <<"time: "<<psTime_.updateTime - psTime_.vetoTime<<"/"<<timePS<<endl;
00998     }  
00999   // if any criteria wants to keep the event, do so
01000   if(evtPS || lsPS || timePS) return false; //FIXME updatePS left out for now
01001   return true;
01002 } // HcalMonitorModule::prescale(...)

void HcalMonitorModule::reset ( void   )  [protected]

Definition at line 508 of file HcalMonitorModule.cc.

References beamMon_, ctMon_, deadMon_, dfMon_, digiMon_, diTask_, eeusMon_, expertMon_, hotMon_, laserMon_, ledMon_, mtccMon_, NULL, pedMon_, HcalBeamMonitor::reset(), HcalEEUSMonitor::reset(), HcalRecHitMonitor::reset(), HcalMTCCMonitor::reset(), HcalDataFormatMonitor::reset(), HcalLaserMonitor::reset(), HcalDataIntegrityTask::reset(), HcalLEDMonitor::reset(), HcalDeadCellMonitor::reset(), HcalCaloTowerMonitor::reset(), HcalHotCellMonitor::reset(), HcalPedestalMonitor::reset(), HcalDigiMonitor::reset(), HcalExpertMonitor::reset(), HcalTrigPrimMonitor::reset(), HcalTemplateAnalysis::reset(), rhMon_, tempAnalysis_, and tpMon_.

Referenced by beginRun().

00508                              {
00509 
00510   if(rhMon_!=NULL)   rhMon_->reset();
00511   if(digiMon_!=NULL) digiMon_->reset();
00512   if(dfMon_!=NULL)   dfMon_->reset();
00513   if(diTask_!=NULL)  diTask_->reset();
00514   if(pedMon_!=NULL)  pedMon_->reset();
00515   if(ledMon_!=NULL)  ledMon_->reset();
00516   if(laserMon_!=NULL)  laserMon_->reset();
00517   if(hotMon_!=NULL)  hotMon_->reset();
00518   if(deadMon_!=NULL)  deadMon_->reset();
00519   if(mtccMon_!=NULL)   mtccMon_->reset();
00520   if(tempAnalysis_!=NULL) tempAnalysis_->reset();
00521   if(tpMon_!=NULL) tpMon_->reset();
00522   if(ctMon_!=NULL) ctMon_->reset();
00523   if(beamMon_!=NULL) beamMon_->reset();
00524   if(expertMon_!=NULL) expertMon_->reset();
00525   if(eeusMon_!=NULL) eeusMon_->reset();
00526 
00527 }


Member Data Documentation

bool HcalMonitorModule::actonLS_ [private]

Definition at line 165 of file HcalMonitorModule.h.

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

HcalBeamMonitor* HcalMonitorModule::beamMon_ [private]

Definition at line 202 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

HcalChannelQuality* HcalMonitorModule::chanquality_ [private]

Definition at line 242 of file HcalMonitorModule.h.

Referenced by beginJob(), and endJob().

bool HcalMonitorModule::checkHB_ [private]

Definition at line 221 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

bool HcalMonitorModule::checkHE_ [private]

Definition at line 222 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

bool HcalMonitorModule::checkHF_ [private]

Definition at line 224 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

bool HcalMonitorModule::checkHO_ [private]

Definition at line 223 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

bool HcalMonitorModule::checkZDC_ [private]

Definition at line 225 of file HcalMonitorModule.h.

edm::ESHandle<HcalDbService> HcalMonitorModule::conditions_ [private]

Definition at line 215 of file HcalMonitorModule.h.

Referenced by analyze(), and beginJob().

edm::CPUTimer HcalMonitorModule::cpu_timer [private]

Definition at line 146 of file HcalMonitorModule.h.

Referenced by analyze().

HcalCaloTowerMonitor* HcalMonitorModule::ctMon_ [private]

Definition at line 210 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), and reset().

DQMStore* HcalMonitorModule::dbe_ [private]

Connection to the DQM backend.

Definition at line 161 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), HcalMonitorModule(), and ~HcalMonitorModule().

std::map<uint32_t, std::vector<HcalDetId> > HcalMonitorModule::DCCtoCell [private]

Definition at line 184 of file HcalMonitorModule.h.

Referenced by beginJob().

HcalDeadCellMonitor* HcalMonitorModule::deadMon_ [private]

Definition at line 209 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), endJob(), endRun(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

int HcalMonitorModule::debug_ [private]

Verbosity switch used for debugging or informational output.

Definition at line 142 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), endRun(), HcalMonitorModule(), and prescale().

HcalDataFormatMonitor* HcalMonitorModule::dfMon_ [private]

Definition at line 199 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

HcalDigiMonitor* HcalMonitorModule::digiMon_ [private]

Definition at line 198 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

HcalDataIntegrityTask* HcalMonitorModule::diTask_ [private]

Definition at line 200 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

bool HcalMonitorModule::dump2database_ [private]

Definition at line 240 of file HcalMonitorModule.h.

Referenced by endJob(), and HcalMonitorModule().

HcalEEUSMonitor* HcalMonitorModule::eeusMon_ [private]

Definition at line 213 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), and reset().

double HcalMonitorModule::elapsedTime

Definition at line 155 of file HcalMonitorModule.h.

HcalMonitorSelector* HcalMonitorModule::evtSel_ [private]

Definition at line 197 of file HcalMonitorModule.h.

Referenced by analyze(), HcalMonitorModule(), and ~HcalMonitorModule().

HcalExpertMonitor* HcalMonitorModule::expertMon_ [private]

Definition at line 203 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), and reset().

edm::InputTag HcalMonitorModule::FEDRawDataCollection_ [private]

Definition at line 181 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

bool HcalMonitorModule::fedsListed_ [private]

Definition at line 170 of file HcalMonitorModule.h.

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

int HcalMonitorModule::HBpresent_ [private]

Definition at line 228 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), beginRun(), CheckSubdetectorStatus(), endJob(), and HcalMonitorModule().

int HcalMonitorModule::HEpresent_ [private]

Definition at line 229 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), beginRun(), CheckSubdetectorStatus(), endJob(), and HcalMonitorModule().

int HcalMonitorModule::HFpresent_ [private]

Definition at line 231 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), beginRun(), CheckSubdetectorStatus(), endJob(), and HcalMonitorModule().

int HcalMonitorModule::HOpresent_ [private]

Definition at line 230 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), beginRun(), CheckSubdetectorStatus(), endJob(), and HcalMonitorModule().

HcalHotCellMonitor* HcalMonitorModule::hotMon_ [private]

Definition at line 208 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

std::map<pair <int,int> , std::vector<HcalDetId> > HcalMonitorModule::HTRtoCell [private]

Definition at line 186 of file HcalMonitorModule.h.

Referenced by beginJob().

int HcalMonitorModule::ievent_ [private]

Definition at line 164 of file HcalMonitorModule.h.

Referenced by analyze(), HcalMonitorModule(), and prescale().

int HcalMonitorModule::ievt_ [private]

Definition at line 168 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), and endRun().

int HcalMonitorModule::ievt_pre_ [private]

Definition at line 169 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), and prescale().

int HcalMonitorModule::ilumisec_ [private]

Definition at line 164 of file HcalMonitorModule.h.

Referenced by analyze(), HcalMonitorModule(), and prescale().

edm::InputTag HcalMonitorModule::inputLabelCaloTower_ [private]

Definition at line 179 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

edm::InputTag HcalMonitorModule::inputLabelDigi_ [private]

Definition at line 173 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

edm::InputTag HcalMonitorModule::inputLabelGT_ [private]

Definition at line 172 of file HcalMonitorModule.h.

edm::InputTag HcalMonitorModule::inputLabelLaser_ [private]

Definition at line 180 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

edm::InputTag HcalMonitorModule::inputLabelRecHitHBHE_ [private]

Definition at line 174 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

edm::InputTag HcalMonitorModule::inputLabelRecHitHF_ [private]

Definition at line 175 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

edm::InputTag HcalMonitorModule::inputLabelRecHitHO_ [private]

Definition at line 176 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

edm::InputTag HcalMonitorModule::inputLabelRecHitZDC_ [private]

Definition at line 177 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

int HcalMonitorModule::irun_ [private]

Definition at line 164 of file HcalMonitorModule.h.

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

int HcalMonitorModule::itime_ [private]

Definition at line 164 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

HcalLaserMonitor* HcalMonitorModule::laserMon_ [private]

Definition at line 206 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

HcalLEDMonitor* HcalMonitorModule::ledMon_ [private]

Definition at line 205 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

ofstream HcalMonitorModule::m_logFile [private]

Definition at line 218 of file HcalMonitorModule.h.

MonitorElement* HcalMonitorModule::meEvtMask_ [private]

Definition at line 192 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), and HcalMonitorModule().

MonitorElement* HcalMonitorModule::meFEDS_ [private]

Definition at line 189 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), and HcalMonitorModule().

MonitorElement* HcalMonitorModule::meHB_ [private]

Definition at line 233 of file HcalMonitorModule.h.

Referenced by beginJob(), beginRun(), and CheckSubdetectorStatus().

MonitorElement* HcalMonitorModule::meHE_ [private]

Definition at line 234 of file HcalMonitorModule.h.

Referenced by beginJob(), beginRun(), and CheckSubdetectorStatus().

MonitorElement* HcalMonitorModule::meHF_ [private]

Definition at line 236 of file HcalMonitorModule.h.

Referenced by beginJob(), beginRun(), and CheckSubdetectorStatus().

MonitorElement* HcalMonitorModule::meHO_ [private]

Definition at line 235 of file HcalMonitorModule.h.

Referenced by beginJob(), beginRun(), and CheckSubdetectorStatus().

MonitorElement* HcalMonitorModule::meLatency_ [private]

Definition at line 194 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), and HcalMonitorModule().

MonitorElement* HcalMonitorModule::meQuality_ [private]

Definition at line 195 of file HcalMonitorModule.h.

Referenced by beginJob(), and HcalMonitorModule().

MonitorElement* HcalMonitorModule::meRunType_ [private]

Definition at line 191 of file HcalMonitorModule.h.

Referenced by beginJob(), and HcalMonitorModule().

MonitorElement* HcalMonitorModule::meStatus_ [private]

Definition at line 190 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), endJob(), and HcalMonitorModule().

MonitorElement* HcalMonitorModule::meTrigger_ [private]

Definition at line 193 of file HcalMonitorModule.h.

MonitorElement* HcalMonitorModule::meZDC_ [private]

Definition at line 237 of file HcalMonitorModule.h.

std::string HcalMonitorModule::monitorName_ [private]

units of "updates", TBD

The name of the monitoring process which derives from this class, used to standardize filename and file structure

Definition at line 139 of file HcalMonitorModule.h.

HcalMTCCMonitor* HcalMonitorModule::mtccMon_ [private]

Definition at line 207 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

std::map<HcalDetId, unsigned int> HcalMonitorModule::myquality_ [private]

Definition at line 241 of file HcalMonitorModule.h.

Referenced by endJob().

int HcalMonitorModule::nevt_ [private]

Definition at line 149 of file HcalMonitorModule.h.

Referenced by analyze().

int HcalMonitorModule::nlumisecs_ [private]

Definition at line 150 of file HcalMonitorModule.h.

HcalPedestalMonitor* HcalMonitorModule::pedMon_ [private]

Definition at line 204 of file HcalMonitorModule.h.

Referenced by analyze(), beginJob(), endJob(), endRun(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

int HcalMonitorModule::prescaleEvt_ [private]

Prescale variables for restricting the frequency of analyzer behavior.

The base class does not implement prescales. Set to -1 to be ignored.

Definition at line 132 of file HcalMonitorModule.h.

Referenced by HcalMonitorModule(), and prescale().

int HcalMonitorModule::prescaleLS_ [private]

units of events

Definition at line 133 of file HcalMonitorModule.h.

Referenced by HcalMonitorModule(), and prescale().

int HcalMonitorModule::prescaleTime_ [private]

units of lumi sections

Definition at line 134 of file HcalMonitorModule.h.

Referenced by HcalMonitorModule(), and prescale().

int HcalMonitorModule::prescaleUpdate_ [private]

units of minutes

Definition at line 135 of file HcalMonitorModule.h.

Referenced by HcalMonitorModule(), and prescale().

struct { ... } HcalMonitorModule::psTime_ [private]

Referenced by analyze(), HcalMonitorModule(), and prescale().

const HcalElectronicsMap* HcalMonitorModule::readoutMap_ [private]

Definition at line 216 of file HcalMonitorModule.h.

Referenced by analyze(), and beginJob().

HcalRecHitMonitor* HcalMonitorModule::rhMon_ [private]

Definition at line 201 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

std::string HcalMonitorModule::rootFolder_ [private]

Definition at line 166 of file HcalMonitorModule.h.

Referenced by beginJob(), HcalMonitorModule(), and ~HcalMonitorModule().

bool HcalMonitorModule::saved_ [private]

Definition at line 151 of file HcalMonitorModule.h.

bool HcalMonitorModule::showTiming_ [private]

Definition at line 145 of file HcalMonitorModule.h.

Referenced by analyze(), and HcalMonitorModule().

timeval HcalMonitorModule::startTV

Definition at line 154 of file HcalMonitorModule.h.

HcalTemplateAnalysis* HcalMonitorModule::tempAnalysis_ [private]

Definition at line 212 of file HcalMonitorModule.h.

Referenced by endJob(), HcalMonitorModule(), reset(), and ~HcalMonitorModule().

std::map<uint32_t, std::vector<HcalDetId> >::iterator HcalMonitorModule::thisDCC [private]

Definition at line 185 of file HcalMonitorModule.h.

Referenced by beginJob().

std::map<pair <int,int> , std::vector<HcalDetId> >::iterator HcalMonitorModule::thisHTR [private]

Definition at line 187 of file HcalMonitorModule.h.

Referenced by beginJob().

HcalTrigPrimMonitor* HcalMonitorModule::tpMon_ [private]

Definition at line 211 of file HcalMonitorModule.h.

Referenced by analyze(), endJob(), HcalMonitorModule(), and reset().

double HcalMonitorModule::updateTime

Definition at line 157 of file HcalMonitorModule.h.

timeval HcalMonitorModule::updateTV

Definition at line 154 of file HcalMonitorModule.h.

double HcalMonitorModule::vetoTime

Definition at line 156 of file HcalMonitorModule.h.

int HcalMonitorModule::ZDCpresent_ [private]

Definition at line 232 of file HcalMonitorModule.h.


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:23:47 2009 for CMSSW by  doxygen 1.5.4