CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

HcalDetDiagNoiseMonitor Class Reference

#include <HcalDetDiagNoiseMonitor.h>

Inheritance diagram for HcalDetDiagNoiseMonitor:
HcalBaseDQMonitor edm::EDAnalyzer

List of all members.

Public Member Functions

void analyze (edm::Event const &e, edm::EventSetup const &s)
void beginRun (const edm::Run &run, const edm::EventSetup &c)
void cleanup ()
void done ()
void endLuminosityBlock (const edm::LuminosityBlock &lumiSeg, const edm::EventSetup &c)
int GetStatistics ()
 HcalDetDiagNoiseMonitor (const edm::ParameterSet &ps)
void reset ()
void setup ()
void UpdateHistos ()
 ~HcalDetDiagNoiseMonitor ()

Private Member Functions

void SaveRates ()

Private Attributes

int dataset_seq_number
edm::InputTag digiLabel_
int FirstOrbit
int FirstOrbitLS
MonitorElementHB_RBXmapSpikeCnt
MonitorElementHBM_Rate300
MonitorElementHBM_Rate50
MonitorElementHBP_Rate300
MonitorElementHBP_Rate50
edm::InputTag hcalTBTriggerDataTag_
MonitorElementHE_RBXmapSpikeCnt
MonitorElementHEM_Rate300
MonitorElementHEM_Rate50
MonitorElementHEP_Rate300
MonitorElementHEP_Rate50
MonitorElementHO0_Rate300
MonitorElementHO0_Rate50
MonitorElementHO1M_Rate300
MonitorElementHO1M_Rate50
MonitorElementHO1P_Rate300
MonitorElementHO1P_Rate50
MonitorElementHO_RBXmapSpikeCnt
MonitorElementHPDEnergy
double HPDthresholdHi
double HPDthresholdLo
int ievt_
edm::InputTag L1ADataLabel_
int LastOrbit
int LastOrbitLS
bool LocalRun
MonitorElementmeEVT_
bool newLS
int NoisyEvents
MonitorElementNZeroes
std::string OutputFilePath
bool Overwrite
MonitorElementPixelMult
edm::InputTag rawDataLabel_
MonitorElementRBXEnergy
HcalDetDiagNoiseRMSummaryRMSummary
int run_number
bool setupDone_
double SpikeThreshold
MonitorElementTriggerBx11
MonitorElementTriggerBx12
bool UseDB

Detailed Description

Date:
2012/11/12 20:52:11
Revision:
1.9
Author:
D. Vishnevskiy

Definition at line 32 of file HcalDetDiagNoiseMonitor.h.


Constructor & Destructor Documentation

HcalDetDiagNoiseMonitor::HcalDetDiagNoiseMonitor ( const edm::ParameterSet ps)

Definition at line 160 of file HcalDetDiagNoiseMonitor.cc.

References HcalBaseDQMonitor::AllowedCalibTypes_, dataset_seq_number, HcalBaseDQMonitor::debug_, digiLabel_, HcalBaseDQMonitor::enableCleanup_, FirstOrbit, FirstOrbitLS, edm::ParameterSet::getUntrackedParameter(), HPDthresholdHi, HPDthresholdLo, ievt_, L1ADataLabel_, LastOrbit, LastOrbitLS, LocalRun, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::mergeRuns_, HcalBaseDQMonitor::needLogicalMap_, HcalBaseDQMonitor::NLumiBlocks_, NoisyEvents, HcalBaseDQMonitor::Online_, OutputFilePath, Overwrite, HcalBaseDQMonitor::prefixME_, rawDataLabel_, RMSummary, run_number, setupDone_, HcalBaseDQMonitor::skipOutOfOrderLS_, SpikeThreshold, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, and UseDB.

                                                                          :
  hcalTBTriggerDataTag_(ps.getParameter<edm::InputTag>("hcalTBTriggerDataTag"))
{
  ievt_=0;
  run_number=-1;
  NoisyEvents=0;
  LocalRun=false; 
  dataset_seq_number=1;
  FirstOrbit=FirstOrbitLS=0xFFFFFFFF;
  LastOrbit=LastOrbitLS=0;

  Online_                = ps.getUntrackedParameter<bool>("online",false);
  mergeRuns_             = ps.getUntrackedParameter<bool>("mergeRuns",false);
  enableCleanup_         = ps.getUntrackedParameter<bool>("enableCleanup",false);
  debug_                 = ps.getUntrackedParameter<int>("debug",0);
  prefixME_              = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal/");
  if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/")
    prefixME_.append("/");
  subdir_                = ps.getUntrackedParameter<std::string>("TaskFolder","DetDiagNoiseMonitor_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",false);
  NLumiBlocks_           = ps.getUntrackedParameter<int>("NLumiBlocks",4000);
  makeDiagnostics_       = ps.getUntrackedParameter<bool>("makeDiagnostics",false);

  UseDB            = ps.getUntrackedParameter<bool>  ("UseDB"  , false);
  OutputFilePath   = ps.getUntrackedParameter<std::string>("OutputFilePath", "");
  HPDthresholdHi   = ps.getUntrackedParameter<double>("NoiseThresholdHPDhi",49.0);
  HPDthresholdLo   = ps.getUntrackedParameter<double>("NoiseThresholdHPDlo",10.0);
  SpikeThreshold   = ps.getUntrackedParameter<double>("NoiseSpikeThreshold",0.5);
  Overwrite        = ps.getUntrackedParameter<bool>  ("Overwrite",true);

  rawDataLabel_ =  ps.getUntrackedParameter<edm::InputTag>("RawDataLabel",edm::InputTag("source",""));
  digiLabel_     = ps.getUntrackedParameter<edm::InputTag>("digiLabel",edm::InputTag("hcalDigis"));
  L1ADataLabel_  = ps.getUntrackedParameter<edm::InputTag>("gtLabel");
  
  RMSummary = 0;
  needLogicalMap_=true;
  setupDone_ = false;
}
HcalDetDiagNoiseMonitor::~HcalDetDiagNoiseMonitor ( )

Definition at line 636 of file HcalDetDiagNoiseMonitor.cc.

References LocalRun, SaveRates(), and UpdateHistos().


Member Function Documentation

void HcalDetDiagNoiseMonitor::analyze ( edm::Event const &  e,
edm::EventSetup const &  s 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 289 of file HcalDetDiagNoiseMonitor.cc.

References adc2fC, gather_cfg::cout, FEDRawData::data(), HcalBaseDQMonitor::dbe_, HcalBaseDQMonitor::debug_, digiLabel_, HcalDetDiagNoiseRMEvent::energy, relval_parameters_module::energy, reco::tau::disc::Eta(), MonitorElement::Fill(), FirstOrbit, FirstOrbitLS, edm::Event::getByLabel(), HcalLogicalMap::getHcalFrontEndId(), HcalBaseDQMonitor::getLogicalMap(), HcalDetDiagNoiseRMSummary::GetRMindex(), hc_Null, hcalTBTriggerDataTag_, HPDEnergy, HPDthresholdHi, HPDthresholdLo, i, edm::EventBase::id(), ievt_, getHLTprescales::index, HcalBaseDQMonitor::IsAllowedCalibType(), edm::HandleBase::isValid(), L1ADataLabel_, LastOrbit, LastOrbitLS, LocalRun, HcalBaseDQMonitor::logicalMap_, HcalBaseDQMonitor::LumiInOrder(), edm::EventBase::luminosityBlock(), max(), FEDNumbering::MAXHCALFEDID, HcalFrontEndId::maxRmIndex, meEVT_, FEDNumbering::MINHCALFEDID, HcalDetDiagNoiseRMData::n_pix, HcalDetDiagNoiseRMData::n_pix_1, HcalDetDiagNoiseRMData::n_pix_8, HcalDetDiagNoiseRMEvent::n_pix_hi, HcalDetDiagNoiseRMEvent::n_pix_lo, HcalDetDiagNoiseRMData::n_th_300, HcalDetDiagNoiseRMData::n_th_300_LS, HcalDetDiagNoiseRMData::n_th_hi, HcalDetDiagNoiseRMData::n_th_hi_LS, HcalDetDiagNoiseRMEvent::n_zero, newLS, NoisyEvents, NZeroes, colinearityKinematic::Phi, HcalDetDiagNoiseRMData::pix, PixelMult, lumiPlot::rawdata, rawDataLabel_, RBXEnergy, HcalDetDiagNoiseRMSummary::reset(), HcalDetDiagNoiseRMSummary::rm, submit::rm, HcalFrontEndId::rmIndex(), RMSummary, edm::EventID::run(), run_number, SaveRates(), sd, FEDRawData::size(), AlCaHLTBitMon_QueryRunRegistry::string, subdets, TriggerBx11, TriggerBx12, and UpdateHistos().

                                                                                        {
  getLogicalMap(iSetup);
  if (!IsAllowedCalibType()) return;
  if (LumiInOrder(iEvent.luminosityBlock())==false) return;
  HcalBaseDQMonitor::analyze(iEvent, iSetup);
  bool isNoiseEvent=false;  
  if(!dbe_) return;
  int orbit=-1111;
  int bx=-1111;

  // for local runs 
  edm::Handle<HcalTBTriggerData> trigger_data;
  iEvent.getByLabel(hcalTBTriggerDataTag_, trigger_data);
  if(trigger_data.isValid()){
      if(trigger_data->triggerWord()>1000) isNoiseEvent=true;
      LocalRun=true;
  }

  // We do not want to look at Abort Gap events
  edm::Handle<FEDRawDataCollection> rawdata;
  iEvent.getByLabel(rawDataLabel_,rawdata);
  //checking FEDs for calibration information
  for(int i=FEDNumbering::MINHCALFEDID;i<=FEDNumbering::MAXHCALFEDID; i++) {
      const FEDRawData& fedData = rawdata->FEDData(i) ;
      if ( fedData.size() < 24 ) continue ;
      orbit= ((const HcalDCCHeader*)(fedData.data()))->getOrbitNumber();
      bx=((const HcalDCCHeader*)(fedData.data()))->getBunchId();
      if(((const HcalDCCHeader*)(fedData.data()))->getCalibType()!=hc_Null) return;
  }

  // Check GCT trigger bits
  edm::Handle< L1GlobalTriggerReadoutRecord > gtRecord;
  iEvent.getByLabel(L1ADataLabel_, gtRecord);
  if(gtRecord.isValid()){
    const TechnicalTriggerWord tWord = gtRecord->technicalTriggerWord();
    if(tWord.at(11) || tWord.at(12)) isNoiseEvent=true;
    if(tWord.at(11)){ TriggerBx11->Fill(bx);}
    if(tWord.at(12)){ TriggerBx12->Fill(bx);}
  }
 
  if(!isNoiseEvent) return;
  if(ievt_==0){ FirstOrbit=orbit; FirstOrbitLS=orbit; newLS=true;}
  if(LastOrbit <orbit) LastOrbit=orbit; 
  if(FirstOrbit>orbit) FirstOrbit=orbit;
  if(LastOrbitLS <orbit) LastOrbitLS=orbit; 
  if(FirstOrbitLS>orbit) FirstOrbitLS=orbit;
  if(newLS){ 
     FirstOrbitLS=orbit; 
     newLS=false;
  }

  if(!LocalRun){
     double TIME=(double)(LastOrbit-FirstOrbit)/11223.0;
     if(TIME>1800.0){
        UpdateHistos();
        SaveRates();
        RMSummary->reset();
        FirstOrbit=orbit; 
     }
  }

  meEVT_->Fill(++ievt_);

  run_number=iEvent.id().run();

  HcalDetDiagNoiseRMEvent RMs[HcalFrontEndId::maxRmIndex];
   
   edm::Handle<HBHEDigiCollection> hbhe; 
   iEvent.getByLabel(digiLabel_,hbhe);
   for(HBHEDigiCollection::const_iterator digi=hbhe->begin();digi!=hbhe->end();digi++){
     double max=-100/*,sum*/,energy=0; int n_zero=0;
     for(int i=0;i<digi->size();i++){
       //       sum=adc2fC[digi->sample(i).adc()&0xff]; 
       if(max<adc2fC[digi->sample(i).adc()&0xff]) max=adc2fC[digi->sample(i).adc()&0xff];
       if(adc2fC[digi->sample(i).adc()&0xff]==0) n_zero++;
     }
     HcalFrontEndId lmap_entry=logicalMap_->getHcalFrontEndId(digi->id());
     int index=lmap_entry.rmIndex(); if(index>=HcalFrontEndId::maxRmIndex) continue;
     RMs[index].n_zero++;
     if(max>HPDthresholdLo){
       for(int i=0;i<digi->size();i++) energy+=adc2fC[digi->sample(i).adc()&0xff]-2.5;
       RMs[index].n_pix_lo++;
       if(max>HPDthresholdHi){ RMs[index].n_pix_hi++; isNoiseEvent=true;}
       RMs[index].energy+=energy;
     }
   }

   edm::Handle<HODigiCollection> ho; 
   iEvent.getByLabel(digiLabel_,ho);
   for(HODigiCollection::const_iterator digi=ho->begin();digi!=ho->end();digi++){
     double max=-100,energy=0; int Eta=digi->id().ieta(); int Phi=digi->id().iphi(); int n_zero=0;
     for(int i=0;i<digi->size()-1;i++){
       if(max<adc2fC[digi->sample(i).adc()&0xff]) max=adc2fC[digi->sample(i).adc()&0xff];
       if(adc2fC[digi->sample(i).adc()&0xff]==0) n_zero++;
     }
     if((Eta>=11 && Eta<=15 && Phi>=59 && Phi<=70) || (Eta>=5 && Eta<=10 && Phi>=47 && Phi<=58)){
       continue; // ignory SiPMs
     }else{
       HcalFrontEndId lmap_entry=logicalMap_->getHcalFrontEndId(digi->id());
       int index=lmap_entry.rmIndex(); if(index>=HcalFrontEndId::maxRmIndex) continue;
       RMs[index].n_zero++;
       if(max>HPDthresholdLo){
         for(int i=0;i<digi->size();i++) energy+=adc2fC[digi->sample(i).adc()&0xff]-2.5;
         RMs[index].n_pix_lo++;
         if(max>HPDthresholdHi){ RMs[index].n_pix_hi++; isNoiseEvent=true;}
         RMs[index].energy+=energy;
       }
     }                    
   }   

   NoisyEvents++;
      
   // RMs loop
   for(int i=0;i<HcalFrontEndId::maxRmIndex;i++){
      if(RMs[i].n_pix_hi>0){
         HPDEnergy->Fill(RMs[i].energy);
         RMSummary->rm[i].n_th_hi++;
         RMSummary->rm[i].n_th_hi_LS++;
         if(RMs[i].energy>300) RMSummary->rm[i].n_th_300++;
         if(RMs[i].energy>300) RMSummary->rm[i].n_th_300_LS++;
         if(RMs[i].n_pix_lo>1) RMSummary->rm[i].n_pix_1++;
         if(RMs[i].n_pix_lo>8) RMSummary->rm[i].n_pix_8++;
         RMSummary->rm[i].pix+=RMs[i].n_pix_lo;
         RMSummary->rm[i].n_pix++;
      }
   }

   // RBX loop
   for(int sd=0;sd<7;sd++) for(int sect=1;sect<=18;sect++){
     std::stringstream tempss;
     tempss << std::setw(2) << std::setfill('0') << sect;
     std::string rbx= subdets[sd]+tempss.str();
     
     double rbx_energy=0;int pix_mult=0; int n_zero=0; bool isValidRBX=false;
     for(int rm=1;rm<=4;rm++){
       int index=RMSummary->GetRMindex(rbx,rm);
       if(index>0 && index<HcalFrontEndId::maxRmIndex){
         rbx_energy+=RMs[index].energy;
         pix_mult+=RMs[index].n_pix_lo; 
         n_zero+=RMs[index].n_zero; 
         isValidRBX=true;
       }
     }
     if(isValidRBX){
       PixelMult->Fill(pix_mult);
       RBXEnergy->Fill(rbx_energy);
       NZeroes->Fill(n_zero);
     }
   }

   if((ievt_%100)==0 && debug_>0)
     std::cout <<ievt_<<"\t"<<NoisyEvents<<std::endl;
   return;
}
void HcalDetDiagNoiseMonitor::beginRun ( const edm::Run run,
const edm::EventSetup c 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 213 of file HcalDetDiagNoiseMonitor.cc.

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

{
  if (debug_>1) std::cout <<"HcalDetDiagNoiseMonitor::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();

  return;

} 
void HcalDetDiagNoiseMonitor::cleanup ( void  ) [virtual]
void HcalDetDiagNoiseMonitor::done ( )

Definition at line 634 of file HcalDetDiagNoiseMonitor.cc.

{}
void HcalDetDiagNoiseMonitor::endLuminosityBlock ( const edm::LuminosityBlock lumiSeg,
const edm::EventSetup c 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 444 of file HcalDetDiagNoiseMonitor.cc.

References MonitorElement::Fill(), HcalDetDiagNoiseRMSummary::GetRMindex(), HB_RBX, HB_RBXmapSpikeCnt, HE_RBX, HE_RBXmapSpikeCnt, HO_RBX, HO_RBXmapSpikeCnt, getHLTprescales::index, HcalFrontEndId::maxRmIndex, HcalDetDiagNoiseRMData::n_th_hi_LS, newLS, HcalDetDiagNoiseRMData::reset_LS(), HcalDetDiagNoiseRMSummary::rm, submit::rm, RMSummary, sd, and SpikeThreshold.

                                                                                                        {
int first_rbx=0,last_rbx=0;  
  //double TIME=(double)(LastOrbitLS-FirstOrbitLS)/11223.0;
  double TIME=23.0;
  newLS=true;
  if(TIME==0) return;
 
  for(int sd=0;sd<9;sd++){
          if(sd==0){ first_rbx=0;  last_rbx=18;} //HBM
          if(sd==1){ first_rbx=18; last_rbx=36;} //HBP
          if(sd==0 || sd==1){  // update HB plots
            for(int rbx=first_rbx;rbx<last_rbx;rbx++)for(int rm=1;rm<=4;rm++){
               int index=RMSummary->GetRMindex(HB_RBX[rbx],rm);
               if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
               double val=RMSummary->rm[index].n_th_hi_LS/TIME;
               if(val>SpikeThreshold){
                  HB_RBXmapSpikeCnt->Fill(rm,rbx+1,1);
                  //printf("%s %i %f (%f)\n",HO_RBX[rbx].c_str(),rm,RMSummary->rm[index].n_th_hi_LS/TIME,TIME);
               }
               RMSummary->rm[index].reset_LS();
            }
          }
          if(sd==2){ first_rbx=0;  last_rbx=18;} //HEM
          if(sd==3){ first_rbx=18; last_rbx=36;} //HEP
          if(sd==2 || sd==3){  // update HB plots
            for(int rbx=first_rbx;rbx<last_rbx;rbx++)for(int rm=1;rm<=4;rm++){
              int index=RMSummary->GetRMindex(HE_RBX[rbx],rm);
              if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
              double val=RMSummary->rm[index].n_th_hi_LS/TIME;
              if(val>SpikeThreshold){
                  HE_RBXmapSpikeCnt->Fill(rm,rbx+1,1);
                  //printf("%s %i %f (%f)\n",HO_RBX[rbx].c_str(),rm,RMSummary->rm[index].n_th_hi_LS/TIME,TIME);
              }
              RMSummary->rm[index].reset_LS();
            }
          }
          if(sd==4){ first_rbx=6;  last_rbx=12;}  //HO1M
          if(sd==5){ first_rbx=12;  last_rbx=24;} //HO0
          if(sd==6){ first_rbx=24;  last_rbx=30;} //HO1P
          if(sd>3){
            for(int rbx=first_rbx;rbx<last_rbx;rbx++)for(int rm=1;rm<=4;rm++){
              int index=RMSummary->GetRMindex(HO_RBX[rbx],rm);
              if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
              double val=RMSummary->rm[index].n_th_hi_LS/TIME;
              if(val>SpikeThreshold){
                  HO_RBXmapSpikeCnt->Fill(rm,rbx+1,1);
                  //printf("%s %i %f (%f)\n",HO_RBX[rbx].c_str(),rm,RMSummary->rm[index].n_th_hi_LS/TIME,TIME);
              }
              RMSummary->rm[index].reset_LS();
           }
         }
    } //sd=0;sd<9
}
int HcalDetDiagNoiseMonitor::GetStatistics ( ) [inline]

Definition at line 46 of file HcalDetDiagNoiseMonitor.h.

References ievt_.

{ return ievt_; }
void HcalDetDiagNoiseMonitor::reset ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 210 of file HcalDetDiagNoiseMonitor.cc.

Referenced by beginRun().

{}
void HcalDetDiagNoiseMonitor::SaveRates ( ) [private]

Definition at line 560 of file HcalDetDiagNoiseMonitor.cc.

References dataset_seq_number, patZpeak::events, FirstOrbit, HcalDetDiagNoiseRMSummary::GetRMindex(), HB_RBX, HE_RBX, HO_RBX, ievt_, getHLTprescales::index, LastOrbit, HcalFrontEndId::maxRmIndex, HcalDetDiagNoiseRMData::n_pix, HcalDetDiagNoiseRMData::n_pix_1, HcalDetDiagNoiseRMData::n_pix_8, HcalDetDiagNoiseRMData::n_th_300, HcalDetDiagNoiseRMData::n_th_hi, OutputFilePath, Overwrite, HcalDetDiagNoiseRMData::pix, HcalDetDiagNoiseRMSummary::rm, submit::rm, RMSummary, DTTTrigCorrFirst::run, run_number, lumiQTWidget::t, interactiveExample::theFile, cond::rpcobgas::time, and diffTreeTool::tree.

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

                                       {
char   RBX[20];
int    RM;
float VAL1,VAL2,VAL3,VAL4,VAL5;
char str[500]; 
    double TIME=(double)(LastOrbit-FirstOrbit)/11223.0;
    if(TIME==0) return;
    if(OutputFilePath.size()>0){
       if(!Overwrite){
          sprintf(str,"%sHcalDetDiagNoiseData_run%06i_%i.root",OutputFilePath.c_str(),run_number,dataset_seq_number);
       }else{
          sprintf(str,"%sHcalDetDiagNoiseData.root",OutputFilePath.c_str());
       }
       TFile *theFile = new TFile(str, "RECREATE");
       if(!theFile->IsOpen()) return;
       theFile->cd();
       sprintf(str,"%d",run_number); TObjString run(str);    run.Write("run number");
       sprintf(str,"%d",ievt_);      TObjString events(str); events.Write("Total events processed");
       sprintf(str,"%d",dataset_seq_number);      TObjString dsnum(str);  dsnum.Write("Dataset number");
       Long_t t; t=time(0); strftime(str,30,"%F %T",localtime(&t)); TObjString tm(str);  tm.Write("Dataset creation time");

       TTree *tree   =new TTree("HCAL Noise data","HCAL Noise data");
       if(tree==0)   return;
       tree->Branch("RBX",            &RBX,     "RBX/C");
       tree->Branch("rm",             &RM,      "rm/I");
       tree->Branch("RATE_50",        &VAL1,    "RATE_50");
       tree->Branch("RATE_300",       &VAL2,    "RATE_300");
       tree->Branch("RATE_PIX1",      &VAL3,    "RATE_PIX1");
       tree->Branch("RATE_PIX8",      &VAL4,    "RATE_PIX8");
       tree->Branch("RATE_PIXMEAN",   &VAL5,    "RATE_PIXMEAN");
       for(int rbx=0;rbx<36;rbx++) for(int rm=1;rm<=4;rm++){
           int index=RMSummary->GetRMindex(HB_RBX[rbx],rm);
           if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
               sprintf(RBX,"%s",HB_RBX[rbx]);
               RM=rm;
               VAL1=RMSummary->rm[index].n_th_hi/TIME;
               VAL2=RMSummary->rm[index].n_th_300/TIME;
               VAL3=RMSummary->rm[index].n_pix_1/TIME;
               VAL4=RMSummary->rm[index].n_pix_8/TIME;
               if(RMSummary->rm[index].n_pix>0)VAL5=RMSummary->rm[index].pix/RMSummary->rm[index].n_pix; else VAL5=0;
               tree->Fill();
       }
       for(int rbx=0;rbx<36;rbx++) for(int rm=1;rm<=4;rm++){
           int index=RMSummary->GetRMindex(HE_RBX[rbx],rm);
           if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
               sprintf(RBX,"%s",HE_RBX[rbx]);
               RM=rm;
               VAL1=RMSummary->rm[index].n_th_hi/TIME;
               VAL2=RMSummary->rm[index].n_th_300/TIME;
               VAL3=RMSummary->rm[index].n_pix_1/TIME;
               VAL4=RMSummary->rm[index].n_pix_8/TIME;
               if(RMSummary->rm[index].n_pix>0)VAL5=RMSummary->rm[index].pix/RMSummary->rm[index].n_pix; else VAL5=0;
               tree->Fill();
       }
       for(int rbx=0;rbx<36;rbx++) for(int rm=1;rm<=4;rm++){
           int index=RMSummary->GetRMindex(HO_RBX[rbx],rm);
           if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
               sprintf(RBX,"%s",HO_RBX[rbx]);
               RM=rm;
               VAL1=RMSummary->rm[index].n_th_hi/TIME;
               VAL2=RMSummary->rm[index].n_th_300/TIME;
               VAL3=RMSummary->rm[index].n_pix_1/TIME;
               VAL4=RMSummary->rm[index].n_pix_8/TIME;
               if(RMSummary->rm[index].n_pix>0)VAL5=RMSummary->rm[index].pix/RMSummary->rm[index].n_pix; else VAL5=0;
               tree->Fill();
       }
       theFile->Write();
       theFile->Close();
       dataset_seq_number++;

   }
}
void HcalDetDiagNoiseMonitor::setup ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 226 of file HcalDetDiagNoiseMonitor.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookInt(), HcalBaseDQMonitor::dbe_, HB_RBX, HB_RBXmapSpikeCnt, HBM_Rate300, HBM_Rate50, HBP_Rate300, HBP_Rate50, HE_RBX, HE_RBXmapSpikeCnt, HEM_Rate300, HEM_Rate50, HEP_Rate300, HEP_Rate50, HO0_Rate300, HO0_Rate50, HO1M_Rate300, HO1M_Rate50, HO1P_Rate300, HO1P_Rate50, HO_RBX, HO_RBXmapSpikeCnt, HPDEnergy, i, meEVT_, mergeVDriftHistosByStation::name, NULL, NZeroes, PixelMult, RBXEnergy, RMSummary, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), setupDone_, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, indexGen::title, TriggerBx11, and TriggerBx12.

Referenced by beginRun().

                                   {
  if (setupDone_)
    return;
  setupDone_ = true;
  // Call base class setup
  HcalBaseDQMonitor::setup();
  if (!dbe_) return;
  RMSummary = new HcalDetDiagNoiseRMSummary();

  std::string name;
  if(dbe_!=NULL){    
     dbe_->setCurrentFolder(subdir_);   
     meEVT_ = dbe_->bookInt("HcalNoiseMonitor Event Number");
     dbe_->setCurrentFolder(subdir_+"Common Plots");
     
     name="RBX Pixel multiplicity";     PixelMult        = dbe_->book1D(name,name,73,0,73);
     name="HPD energy";                 HPDEnergy        = dbe_->book1D(name,name,200,0,2500);
     name="RBX energy";                 RBXEnergy        = dbe_->book1D(name,name,200,0,3500);
     name="Number of zero TS per RBX";  NZeroes          = dbe_->book1D(name,name,100,0,100);
     name="Trigger BX Tbit11";          TriggerBx11      = dbe_->book1D(name,name,4000,0,4000);
     name="Trigger BX Tbit12";          TriggerBx12      = dbe_->book1D(name,name,4000,0,4000);

     dbe_->setCurrentFolder(subdir_+"HBHE Plots");
     name="HBP HPD Noise Rate Pixel above 50fC"; HBP_Rate50    = dbe_->book1D(name,name,73,0,73);
     name="HBM HPD Noise Rate Pixel above 50fC"; HBM_Rate50    = dbe_->book1D(name,name,73,0,73);
     name="HEP HPD Noise Rate Pixel above 50fC"; HEP_Rate50    = dbe_->book1D(name,name,73,0,73);
     name="HEM HPD Noise Rate Pixel above 50fC"; HEM_Rate50    = dbe_->book1D(name,name,73,0,73);
     name="HBP HPD Noise Rate HPD above 300fC";  HBP_Rate300   = dbe_->book1D(name,name,73,0,73);
     name="HBM HPD Noise Rate HPD above 300fC";  HBM_Rate300   = dbe_->book1D(name,name,73,0,73);
     name="HEP HPD Noise Rate HPD above 300fC";  HEP_Rate300   = dbe_->book1D(name,name,73,0,73);
     name="HEM HPD Noise Rate HPD above 300fC";  HEM_Rate300   = dbe_->book1D(name,name,73,0,73);

     dbe_->setCurrentFolder(subdir_+"HO Plots");
     name="HO0  HPD Noise Rate Pixel above 50fC"; HO0_Rate50   = dbe_->book1D(name,name,49,0,49);
     name="HO1P HPD Noise Rate Pixel above 50fC"; HO1P_Rate50   = dbe_->book1D(name,name,48,0,48);
     name="HO1M HPD Noise Rate Pixel above 50fC"; HO1M_Rate50   = dbe_->book1D(name,name,48,0,48);
     name="HO0 HPD Noise Rate HPD above 300fC";   HO0_Rate300  = dbe_->book1D(name,name,48,0,48);
     name="HO1P HPD Noise Rate HPD abGetRMindexove 300fC";  HO1P_Rate300 = dbe_->book1D(name,name,48,0,48);
     name="HO1M HPD Noise Rate HPD above 300fC";  HO1M_Rate300 = dbe_->book1D(name,name,48,0,48);
      

     dbe_->setCurrentFolder(subdir_+"Noise Spike Plots");

     name="HB RM Spike Map";          HB_RBXmapSpikeCnt= dbe_->book2D(name,name,4,0.5,4.5,36,0.5,36.5);
     name="HE RM Spike Map";          HE_RBXmapSpikeCnt= dbe_->book2D(name,name,4,0.5,4.5,36,0.5,36.5);
     name="HO RM Spike Map";          HO_RBXmapSpikeCnt= dbe_->book2D(name,name,4,0.5,4.5,36,0.5,36.5);

     std::string title="RM";
     HB_RBXmapSpikeCnt->setAxisTitle(title);
     HE_RBXmapSpikeCnt->setAxisTitle(title);
     HO_RBXmapSpikeCnt->setAxisTitle(title);
 
     for(int i=0;i<36;i++){
        HB_RBXmapSpikeCnt->setBinLabel(i+1,HB_RBX[i],2);
        HE_RBXmapSpikeCnt->setBinLabel(i+1,HE_RBX[i],2);
        HO_RBXmapSpikeCnt->setBinLabel(i+1,HO_RBX[i],2);
     }
  } 


  return;
} 
void HcalDetDiagNoiseMonitor::UpdateHistos ( )

Definition at line 498 of file HcalDetDiagNoiseMonitor.cc.

References FirstOrbit, HcalDetDiagNoiseRMSummary::GetRMindex(), HB_RBX, HBM_Rate300, HBM_Rate50, HBP_Rate300, HBP_Rate50, HE_RBX, HEM_Rate300, HEM_Rate50, HEP_Rate300, HEP_Rate50, HO0_Rate300, HO0_Rate50, HO1M_Rate300, HO1M_Rate50, HO1P_Rate300, HO1P_Rate50, HO_RBX, getHLTprescales::index, LastOrbit, HcalFrontEndId::maxRmIndex, n, HcalDetDiagNoiseRMData::n_th_300, HcalDetDiagNoiseRMData::n_th_hi, HcalDetDiagNoiseRMSummary::rm, submit::rm, RMSummary, sd, and MonitorElement::setBinContent().

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

                                          { 
   int first_rbx=0; 
   double TIME=(double)(LastOrbit-FirstOrbit)/11223.0;
   if(TIME==0) return;
   for(int sd=0;sd<9;sd++){
      if(sd==0){ first_rbx=0; } //HBM
      if(sd==1){ first_rbx=18;} //HBP
      if(sd==0 || sd==1){  // update HB plots
          for(int rbx=0;rbx<18;rbx++)for(int rm=1;rm<=4;rm++){
             int index=RMSummary->GetRMindex(HB_RBX[rbx+first_rbx],rm);
             if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
             if(sd==0){
                 HBM_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME);
                 HBM_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME);
             }
             if(sd==1){
                 HBP_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME);
                 HBP_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME);
             }
          }     
      }
      if(sd==2){ first_rbx=0;} //HEM
      if(sd==3){ first_rbx=18;} //HEP
      if(sd==2 || sd==3){  // update HB plots
          for(int rbx=0;rbx<18;rbx++)for(int rm=1;rm<=4;rm++){
             int index=RMSummary->GetRMindex(HE_RBX[rbx+first_rbx],rm);
             if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
             if(sd==2){
                 HEM_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME);
                 HEM_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME);
             }
             if(sd==3){
                 HEP_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME);
                 HEP_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME);
             }
          }     
      }
      int n=0;
      if(sd==4){ first_rbx=6; n=6;}  //HO1M
      if(sd==5){ first_rbx=12;n=12;} //HO0
      if(sd==6){ first_rbx=24;n=6;} //HO1P
      if(sd>3){ // update HO plots
          for(int rbx=0;rbx<n;rbx++)for(int rm=1;rm<=4;rm++){
             int index=RMSummary->GetRMindex(HO_RBX[rbx+first_rbx],rm);
             if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue;
             if(sd==4){
                 HO1M_Rate50->setBinContent(rbx*4*2+rm,RMSummary->rm[index].n_th_hi/TIME);
                 HO1M_Rate300->setBinContent(rbx*4*2+rm,RMSummary->rm[index].n_th_300/TIME);
             }
             if(sd==5){
                 HO0_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME);
                 HO0_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME);
             } 
             if(sd==5){
                 HO1P_Rate50->setBinContent(rbx*4*2+rm,RMSummary->rm[index].n_th_hi/TIME);
                 HO1P_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME);
             } 
         }
      }
   } //sd=0;sd<9
} 

Member Data Documentation

Definition at line 55 of file HcalDetDiagNoiseMonitor.h.

Referenced by HcalDetDiagNoiseMonitor(), and SaveRates().

Definition at line 49 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and HcalDetDiagNoiseMonitor().

Definition at line 70 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and HcalDetDiagNoiseMonitor().

Definition at line 94 of file HcalDetDiagNoiseMonitor.h.

Referenced by endLuminosityBlock(), and setup().

Definition at line 83 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 79 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 82 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 78 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 51 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze().

Definition at line 95 of file HcalDetDiagNoiseMonitor.h.

Referenced by endLuminosityBlock(), and setup().

Definition at line 85 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 81 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 84 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 80 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 90 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 87 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 92 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 89 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 91 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 88 of file HcalDetDiagNoiseMonitor.h.

Referenced by setup(), and UpdateHistos().

Definition at line 96 of file HcalDetDiagNoiseMonitor.h.

Referenced by endLuminosityBlock(), and setup().

Definition at line 99 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and setup().

Definition at line 60 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and HcalDetDiagNoiseMonitor().

Definition at line 61 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and HcalDetDiagNoiseMonitor().

Reimplemented from HcalBaseDQMonitor.

Definition at line 66 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), GetStatistics(), HcalDetDiagNoiseMonitor(), and SaveRates().

Definition at line 48 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and HcalDetDiagNoiseMonitor().

Definition at line 71 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and HcalDetDiagNoiseMonitor().

Definition at line 76 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and setup().

Definition at line 67 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and endLuminosityBlock().

Definition at line 73 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and HcalDetDiagNoiseMonitor().

Definition at line 101 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and setup().

Definition at line 53 of file HcalDetDiagNoiseMonitor.h.

Referenced by HcalDetDiagNoiseMonitor(), and SaveRates().

Definition at line 54 of file HcalDetDiagNoiseMonitor.h.

Referenced by HcalDetDiagNoiseMonitor(), and SaveRates().

Definition at line 98 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and setup().

Definition at line 50 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and HcalDetDiagNoiseMonitor().

Definition at line 100 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and setup().

Definition at line 72 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), HcalDetDiagNoiseMonitor(), and SaveRates().

Reimplemented from HcalBaseDQMonitor.

Definition at line 58 of file HcalDetDiagNoiseMonitor.h.

Referenced by HcalDetDiagNoiseMonitor(), and setup().

Definition at line 62 of file HcalDetDiagNoiseMonitor.h.

Referenced by endLuminosityBlock(), and HcalDetDiagNoiseMonitor().

Definition at line 102 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and setup().

Definition at line 103 of file HcalDetDiagNoiseMonitor.h.

Referenced by analyze(), and setup().

Definition at line 57 of file HcalDetDiagNoiseMonitor.h.

Referenced by HcalDetDiagNoiseMonitor().