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
HcalLogicalMapGeneratorgen
MonitorElementHB_RBXmapSpikeCnt
MonitorElementHBM_Rate300
MonitorElementHBM_Rate50
MonitorElementHBP_Rate300
MonitorElementHBP_Rate50
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
HcalLogicalMaplmap
bool LocalRun
MonitorElementmeEVT_
bool newLS
int NoisyEvents
MonitorElementNZeroes
std::string OutputFilePath
bool Overwrite
MonitorElementPixelMult
edm::InputTag rawDataLabel_
MonitorElementRBXEnergy
HcalDetDiagNoiseRMSummaryRMSummary
int run_number
double SpikeThreshold
MonitorElementTriggerBx11
MonitorElementTriggerBx12
bool UseDB

Detailed Description

Date:
2011/02/23 14:16:00
Revision:
1.6
Author:
D. Vishnevskiy

Definition at line 33 of file HcalDetDiagNoiseMonitor.h.


Constructor & Destructor Documentation

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

Definition at line 161 of file HcalDetDiagNoiseMonitor.cc.

References edm::ParameterSet::getUntrackedParameter(), and reco_calib_source_client_cfg::OutputFilePath.

{
  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;

}
HcalDetDiagNoiseMonitor::~HcalDetDiagNoiseMonitor ( )

Definition at line 633 of file HcalDetDiagNoiseMonitor.cc.


Member Function Documentation

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

Reimplemented from HcalBaseDQMonitor.

Definition at line 287 of file HcalDetDiagNoiseMonitor.cc.

References adc2fC, python::Vispa::Share::Profiling::analyze(), gather_cfg::cout, FEDRawData::data(), dbe_, HcalDetDiagNoiseRMEvent::energy, relval_parameters_module::energy, reco::tau::disc::Eta(), edm::Event::getByLabel(), edm::Event::getByType(), hc_Null, i, edm::EventBase::id(), getHLTprescales::index, edm::HandleBase::isValid(), edm::EventBase::luminosityBlock(), max(), FEDNumbering::MAXHCALFEDID, HcalFrontEndId::maxRmIndex, FEDNumbering::MINHCALFEDID, HcalDetDiagNoiseRMEvent::n_pix_hi, HcalDetDiagNoiseRMEvent::n_pix_lo, HcalDetDiagNoiseRMEvent::n_zero, colinearityKinematic::Phi, submit::rm, HcalFrontEndId::rmIndex(), edm::EventID::run(), FEDRawData::size(), and subdets.

                                                                                        {
  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.getByType(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=lmap->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=lmap->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 212 of file HcalDetDiagNoiseMonitor.cc.

References HcalBaseDQMonitor::beginRun(), gather_cfg::cout, reset(), and HcalObjRepresent::setup().

{
  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 631 of file HcalDetDiagNoiseMonitor.cc.

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

Reimplemented from HcalBaseDQMonitor.

Definition at line 441 of file HcalDetDiagNoiseMonitor.cc.

References HB_RBX, HE_RBX, HO_RBX, getHLTprescales::index, HcalFrontEndId::maxRmIndex, and submit::rm.

                                                                                                        {
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 47 of file HcalDetDiagNoiseMonitor.h.

References ievt_.

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

Reimplemented from HcalBaseDQMonitor.

Definition at line 209 of file HcalDetDiagNoiseMonitor.cc.

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

Definition at line 557 of file HcalDetDiagNoiseMonitor.cc.

References patZpeak::events, HB_RBX, HE_RBX, HO_RBX, getHLTprescales::index, HcalFrontEndId::maxRmIndex, reco_calib_source_client_cfg::OutputFilePath, submit::rm, DTTTrigCorrFirst::run, matplotRender::t, interactiveExample::theFile, cond::rpcobgas::time, and diffTreeTool::tree.

                                       {
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].c_str());
               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].c_str());
               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].c_str());
               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 225 of file HcalDetDiagNoiseMonitor.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookInt(), dbe_, HB_RBX, HE_RBX, HO_RBX, i, mergeVDriftHistosByStation::name, NULL, DQMStore::setCurrentFolder(), HcalObjRepresent::setup(), and indexGen::title.

                                   {
  // 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);
     }
  } 

  gen =new HcalLogicalMapGenerator();
  lmap =new HcalLogicalMap(gen->createMap());

  return;
} 
void HcalDetDiagNoiseMonitor::UpdateHistos ( )

Definition at line 495 of file HcalDetDiagNoiseMonitor.cc.

References HB_RBX, HE_RBX, HO_RBX, getHLTprescales::index, HcalFrontEndId::maxRmIndex, n, and submit::rm.

                                          { 
   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 58 of file HcalDetDiagNoiseMonitor.h.

Definition at line 50 of file HcalDetDiagNoiseMonitor.h.

Definition at line 70 of file HcalDetDiagNoiseMonitor.h.

Definition at line 72 of file HcalDetDiagNoiseMonitor.h.

Definition at line 54 of file HcalDetDiagNoiseMonitor.h.

Definition at line 96 of file HcalDetDiagNoiseMonitor.h.

Definition at line 85 of file HcalDetDiagNoiseMonitor.h.

Definition at line 81 of file HcalDetDiagNoiseMonitor.h.

Definition at line 84 of file HcalDetDiagNoiseMonitor.h.

Definition at line 80 of file HcalDetDiagNoiseMonitor.h.

Definition at line 97 of file HcalDetDiagNoiseMonitor.h.

Definition at line 87 of file HcalDetDiagNoiseMonitor.h.

Definition at line 83 of file HcalDetDiagNoiseMonitor.h.

Definition at line 86 of file HcalDetDiagNoiseMonitor.h.

Definition at line 82 of file HcalDetDiagNoiseMonitor.h.

Definition at line 92 of file HcalDetDiagNoiseMonitor.h.

Definition at line 89 of file HcalDetDiagNoiseMonitor.h.

Definition at line 94 of file HcalDetDiagNoiseMonitor.h.

Definition at line 91 of file HcalDetDiagNoiseMonitor.h.

Definition at line 93 of file HcalDetDiagNoiseMonitor.h.

Definition at line 90 of file HcalDetDiagNoiseMonitor.h.

Definition at line 98 of file HcalDetDiagNoiseMonitor.h.

Definition at line 101 of file HcalDetDiagNoiseMonitor.h.

Definition at line 62 of file HcalDetDiagNoiseMonitor.h.

Definition at line 63 of file HcalDetDiagNoiseMonitor.h.

Reimplemented from HcalBaseDQMonitor.

Definition at line 68 of file HcalDetDiagNoiseMonitor.h.

Referenced by GetStatistics().

Definition at line 49 of file HcalDetDiagNoiseMonitor.h.

Definition at line 71 of file HcalDetDiagNoiseMonitor.h.

Definition at line 73 of file HcalDetDiagNoiseMonitor.h.

Definition at line 53 of file HcalDetDiagNoiseMonitor.h.

Definition at line 76 of file HcalDetDiagNoiseMonitor.h.

Definition at line 78 of file HcalDetDiagNoiseMonitor.h.

Definition at line 69 of file HcalDetDiagNoiseMonitor.h.

Definition at line 75 of file HcalDetDiagNoiseMonitor.h.

Definition at line 103 of file HcalDetDiagNoiseMonitor.h.

Definition at line 56 of file HcalDetDiagNoiseMonitor.h.

Definition at line 57 of file HcalDetDiagNoiseMonitor.h.

Definition at line 100 of file HcalDetDiagNoiseMonitor.h.

Definition at line 51 of file HcalDetDiagNoiseMonitor.h.

Definition at line 102 of file HcalDetDiagNoiseMonitor.h.

Definition at line 108 of file HcalDetDiagNoiseMonitor.h.

Definition at line 74 of file HcalDetDiagNoiseMonitor.h.

Definition at line 64 of file HcalDetDiagNoiseMonitor.h.

Definition at line 104 of file HcalDetDiagNoiseMonitor.h.

Definition at line 105 of file HcalDetDiagNoiseMonitor.h.

Definition at line 60 of file HcalDetDiagNoiseMonitor.h.