CMS 3D CMS Logo

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

HcalDetDiagTimingMonitor Class Reference

#include <HcalDetDiagTimingMonitor.h>

Inheritance diagram for HcalDetDiagTimingMonitor:
HcalBaseDQMonitor edm::EDAnalyzer

List of all members.

Public Member Functions

void analyze (const edm::Event &iEvent, const edm::EventSetup &iSetup)
void beginRun (const edm::Run &run, const edm::EventSetup &c)
void cleanup ()
void done ()
double get_ped_hbhe (int eta, int phi, int depth, int cup)
double get_ped_hf (int eta, int phi, int depth, int cup)
double get_ped_ho (int eta, int phi, int depth, int cup)
double GetTime (double *data, int n)
 HcalDetDiagTimingMonitor (const edm::ParameterSet &ps)
bool isSignal (double *data, int n)
void reset ()
void set_hbhe (int eta, int phi, int depth, int cap, float val)
void set_hf (int eta, int phi, int depth, int cap, float val)
void set_ho (int eta, int phi, int depth, int cap, float val)
void setup ()
 ~HcalDetDiagTimingMonitor ()

Public Attributes

double HBHE [100][73][5][4]
double HF [100][73][5][4]
double HO [100][73][5][4]
double nHBHE [100][73][5][4]
double nHF [100][73][5][4]
double nHO [100][73][5][4]
double occHBHE [100][73][5]
double occHF [100][73][5]
double occHO [100][73][5]
double occSum

Private Member Functions

void CheckTiming ()

Private Attributes

bool CosmicsCorr_
edm::InputTag FEDRawDataCollection_
int GCTTriggerBit1_
int GCTTriggerBit2_
int GCTTriggerBit3_
int GCTTriggerBit4_
int GCTTriggerBit5_
MonitorElementHBTimeDT
MonitorElementHBTimeGCT
MonitorElementHBTimeHO
MonitorElementHBTimeRPC
MonitorElementHETimeCSCm
MonitorElementHETimeCSCp
MonitorElementHETimeRPCm
MonitorElementHETimeRPCp
MonitorElementHFTimeCSCm
MonitorElementHFTimeCSCp
MonitorElementHOTimeDT
MonitorElementHOTimeGCT
MonitorElementHOTimeHO
MonitorElementHOTimeRPC
edm::InputTag inputLabelDigi_
edm::InputTag L1ADataLabel_
MonitorElementSummary

Detailed Description

Date:
2010/03/25 11:00:57
Revision:
1.2
Author:
D. Vishnevskiy

Definition at line 25 of file HcalDetDiagTimingMonitor.h.


Constructor & Destructor Documentation

HcalDetDiagTimingMonitor::HcalDetDiagTimingMonitor ( const edm::ParameterSet ps)

Definition at line 45 of file HcalDetDiagTimingMonitor.cc.

References HcalBaseDQMonitor::AllowedCalibTypes_, CosmicsCorr_, HcalBaseDQMonitor::debug_, HcalBaseDQMonitor::enableCleanup_, FEDRawDataCollection_, GCTTriggerBit1_, GCTTriggerBit2_, GCTTriggerBit3_, GCTTriggerBit4_, GCTTriggerBit5_, edm::ParameterSet::getUntrackedParameter(), inputLabelDigi_, L1ADataLabel_, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::mergeRuns_, HcalBaseDQMonitor::NLumiBlocks_, HcalBaseDQMonitor::Online_, HcalBaseDQMonitor::prefixME_, HcalBaseDQMonitor::skipOutOfOrderLS_, and HcalBaseDQMonitor::subdir_.

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

  GCTTriggerBit1_= ps.getUntrackedParameter<int>("GCTTriggerBit1", 15);         
  GCTTriggerBit2_= ps.getUntrackedParameter<int>("GCTTriggerBit2", 16);         
  GCTTriggerBit3_= ps.getUntrackedParameter<int>("GCTTriggerBit3", 17);         
  GCTTriggerBit4_= ps.getUntrackedParameter<int>("GCTTriggerBit4", 18);         
  GCTTriggerBit5_= ps.getUntrackedParameter<int>("GCTTriggerBit5", 16);         
  CosmicsCorr_   = ps.getUntrackedParameter<bool>("CosmicsCorr", true); 
  
  L1ADataLabel_  = ps.getUntrackedParameter<edm::InputTag>("gtLabel");
  inputLabelDigi_= ps.getUntrackedParameter<edm::InputTag>("digiLabel");
  FEDRawDataCollection_ = ps.getUntrackedParameter<edm::InputTag>("FEDRawDataCollection",edm::InputTag("source",""));
}
HcalDetDiagTimingMonitor::~HcalDetDiagTimingMonitor ( )

Definition at line 75 of file HcalDetDiagTimingMonitor.cc.

{}

Member Function Documentation

void HcalDetDiagTimingMonitor::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 144 of file HcalDetDiagTimingMonitor.cc.

References adc2fC, CheckTiming(), CosmicsCorr_, data, FEDRawData::data(), HcalBaseDQMonitor::dbe_, relval_parameters_module::energy, eta(), FEDRawDataCollection_, MonitorElement::Fill(), GCTTriggerBit1_, GCTTriggerBit2_, GCTTriggerBit3_, GCTTriggerBit4_, GCTTriggerBit5_, get_ped_hbhe(), get_ped_hf(), get_ped_ho(), edm::Event::getByLabel(), L1MuGMTReadoutCollection::getRecords(), GetTime(), HBTimeDT, HBTimeGCT, HBTimeHO, HBTimeRPC, hc_Null, HcalBarrel, HcalEndcap, HETimeCSCm, HETimeCSCp, HETimeRPCm, HETimeRPCp, HFTimeCSCm, HFTimeCSCp, HOTimeDT, HOTimeGCT, HOTimeHO, HOTimeRPC, i, HcalBaseDQMonitor::ievt_, inputLabelDigi_, HcalBaseDQMonitor::IsAllowedCalibType(), isSignal(), edm::HandleBase::isValid(), L1ADataLabel_, HcalBaseDQMonitor::LumiInOrder(), edm::EventBase::luminosityBlock(), MAXCSC, MAXDTBX, FEDNumbering::MAXHCALFEDID, MAXRPC, FEDNumbering::MINHCALFEDID, N, occHBHE, occHF, occHO, occSum, phi, edm::Handle< T >::product(), lumiPlot::rawdata, set_hbhe(), set_hf(), set_ho(), funct::sin(), FEDRawData::size(), TRIG_CSC, TRIG_DT, TRIG_GCT, TRIG_RPC, and TRIG_RPCF.

{
  if (!IsAllowedCalibType()) return;
  if (LumiInOrder(iEvent.luminosityBlock())==false) return;
  HcalBaseDQMonitor::analyze(iEvent, iSetup);
  
  int eta,phi,depth,nTS,BXinEVENT=1,TRIGGER=0;
  
  if(!dbe_) return;
  // We do not want to look at Abort Gap events
  edm::Handle<FEDRawDataCollection> rawdata;
  iEvent.getByLabel(FEDRawDataCollection_,rawdata);
  //checking FEDs for calibration information
  if(!rawdata.isValid()) return;
  for(int i=FEDNumbering::MINHCALFEDID;i<=FEDNumbering::MAXHCALFEDID; i++) {
    const FEDRawData& fedData = rawdata->FEDData(i) ;
    if ( fedData.size() < 24 ) continue ;
    if(((const HcalDCCHeader*)(fedData.data()))->getCalibType()!=hc_Null) return;
  }
  bool GCTTrigger1=false,GCTTrigger2=false,GCTTrigger3=false,GCTTrigger4=false,GCTTrigger5=false,HOselfTrigger=false;
  // Check GCT trigger bits
  edm::Handle< L1GlobalTriggerReadoutRecord > gtRecord;
  iEvent.getByLabel(L1ADataLabel_, gtRecord);
  if(gtRecord.isValid()){

    const TechnicalTriggerWord tWord = gtRecord->technicalTriggerWord();
    const DecisionWord         dWord = gtRecord->decisionWord();
    //bool HFselfTrigger   = tWord.at(9);
    if (!tWord.empty()) HOselfTrigger    = tWord.at(11);

    if (!dWord.empty()) 
      {
        GCTTrigger1      = dWord.at(GCTTriggerBit1_);     
        GCTTrigger2      = dWord.at(GCTTriggerBit2_);     
        GCTTrigger3      = dWord.at(GCTTriggerBit3_);     
        GCTTrigger4      = dWord.at(GCTTriggerBit4_);     
        GCTTrigger5      = dWord.at(GCTTriggerBit5_);     
      }

    // define trigger trigger source (example from GMT group)
    edm::Handle<L1MuGMTReadoutCollection> gmtrc_handle; 
    iEvent.getByLabel(L1ADataLabel_,gmtrc_handle);
    if(!gmtrc_handle.isValid()) return;
    L1MuGMTReadoutCollection const* gmtrc = gmtrc_handle.product();
   
    int idt   =0;
    int icsc  =0;
    int irpcb =0;
    int irpcf =0;
    int ndt[5]   = {0,0,0,0,0};
    int ncsc[5]  = {0,0,0,0,0};
    int nrpcb[5] = {0,0,0,0,0};
    int nrpcf[5] = {0,0,0,0,0};
    int N;      
    std::vector<L1MuGMTReadoutRecord> gmt_records = gmtrc->getRecords();
    std::vector<L1MuGMTReadoutRecord>::const_iterator igmtrr;
    N=0;
    int NN=0;
    for(igmtrr=gmt_records.begin(); igmtrr!=gmt_records.end(); igmtrr++) {
      if(igmtrr->getBxInEvent()==0) BXinEVENT=NN;
      NN++;
      std::vector<L1MuRegionalCand>::const_iterator iter1;
      std::vector<L1MuRegionalCand> rmc;
      // DTBX Trigger
      rmc = igmtrr->getDTBXCands(); 
      for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
        if ( idt < MAXDTBX && !(*iter1).empty() ) {
          idt++; 
          if(N<5) ndt[N]++; 
                                 
        }        
      }
      // CSC Trigger
      rmc = igmtrr->getCSCCands(); 
      for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
        if ( icsc < MAXCSC && !(*iter1).empty() ) {
          icsc++; 
          if(N<5) ncsc[N]++; 
        } 
      }
      // RPCb Trigger
      rmc = igmtrr->getBrlRPCCands();
      for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
        if ( irpcb < MAXRPC && !(*iter1).empty() ) {
          irpcb++;
          if(N<5) nrpcb[N]++;
                                
        }  
      }
      // RPCfwd Trigger
      rmc = igmtrr->getFwdRPCCands();
      for(iter1=rmc.begin(); iter1!=rmc.end(); iter1++) {
        if ( irpcf < MAXRPC && !(*iter1).empty() ) {
          irpcf++;
          if(N<5) nrpcf[N]++;
                                
        }  
      }
                
      N++;
    }
    if(ncsc[BXinEVENT]>0 ) {   TRIGGER=+TRIG_CSC;  }
    if(ndt[BXinEVENT]>0  ) {   TRIGGER=+TRIG_DT;   }
    if(nrpcb[BXinEVENT]>0) {   TRIGGER=+TRIG_RPC;  }
    if(nrpcf[BXinEVENT]>0) {   TRIGGER=+TRIG_RPCF; }
    if(GCTTrigger1 || GCTTrigger2 || GCTTrigger3 || GCTTrigger4 || GCTTrigger5) {  TRIGGER=+TRIG_GCT; }
  }
  if(ievt_<100){
    edm::Handle<HBHEDigiCollection> hbhe; 
    iEvent.getByLabel(inputLabelDigi_,hbhe);
    if(hbhe.isValid()){   
      for(HBHEDigiCollection::const_iterator digi=hbhe->begin();digi!=hbhe->end();digi++){
        eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
        for(int i=0;i<nTS;i++) if(digi->sample(i).adc()<20) set_hbhe(eta,phi,depth,digi->sample(i).capid(),adc2fC[digi->sample(i).adc()]);
      }   
    }    
    edm::Handle<HODigiCollection> ho; 
    iEvent.getByLabel(inputLabelDigi_,ho);
    if(ho.isValid()){
      for(HODigiCollection::const_iterator digi=ho->begin();digi!=ho->end();digi++){
        eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
        for(int i=0;i<nTS;i++) if(digi->sample(i).adc()<20) set_ho(eta,phi,depth,digi->sample(i).capid(),adc2fC[digi->sample(i).adc()]);
      }   
    }
    edm::Handle<HFDigiCollection> hf;
    iEvent.getByLabel(inputLabelDigi_,hf);
    if(hf.isValid()){
      for(HFDigiCollection::const_iterator digi=hf->begin();digi!=hf->end();digi++){
        eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
        for(int i=0;i<nTS;i++) if(digi->sample(i).adc()<20) set_hf(eta,phi,depth,digi->sample(i).capid(),adc2fC[digi->sample(i).adc()]);
      }   
    }
    return;   
  }
  double data[20];
  edm::Handle<HBHEDigiCollection> hbhe; 
  iEvent.getByLabel(inputLabelDigi_,hbhe);
  if(hbhe.isValid()){ 
    for(HBHEDigiCollection::const_iterator digi=hbhe->begin();digi!=hbhe->end();digi++){
      eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
      for(int i=0;i<nTS;i++) data[i]=adc2fC[digi->sample(i).adc()]-get_ped_hbhe(eta,phi,depth,digi->sample(i).capid());
      if(!isSignal(data,nTS)) continue;
          
      occHBHE[eta+50][phi][depth]+=1.0; occSum+=1.0;
      if((occHBHE[eta+50][phi][depth]/(double)(ievt_))>0.001) continue;
             
      double Time=GetTime(data,nTS);
      if(digi->id().subdet()==HcalBarrel){
        if(TRIGGER==TRIG_GCT) HBTimeGCT->Fill(Time);
        if(CosmicsCorr_) Time+=(7.5*sin((phi*5.0)/180.0*3.14159))/25.0;
        if(TRIGGER==TRIG_DT)  HBTimeDT->Fill(Time);
        if(HOselfTrigger)     HBTimeHO->Fill(Time);
        if(TRIGGER==TRIG_RPC) HBTimeRPC->Fill(Time);
      }
      if(digi->id().subdet()==HcalEndcap){
        if(CosmicsCorr_) Time+=(3.5*sin((phi*5.0)/180.0*3.14159))/25.0; 
        if(TRIGGER==TRIG_CSC && eta>0)  HETimeCSCp->Fill(Time);
        if(TRIGGER==TRIG_CSC && eta<0)  HETimeCSCm->Fill(Time);  
        if(TRIGGER==TRIG_RPCF && eta>0) HETimeRPCp->Fill(Time);
        if(TRIGGER==TRIG_RPCF && eta<0) HETimeRPCm->Fill(Time);              
      }
         
    }    
  }
  edm::Handle<HODigiCollection> ho; 
  iEvent.getByLabel(inputLabelDigi_,ho);
  if(ho.isValid()){ 
    for(HODigiCollection::const_iterator digi=ho->begin();digi!=ho->end();digi++){
      eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
      for(int i=0;i<nTS;i++) data[i]=adc2fC[digi->sample(i).adc()]-get_ped_ho(eta,phi,depth,digi->sample(i).capid());
      if(!isSignal(data,nTS)) continue;
      occHO[eta+50][phi][depth]+=1.0;
      occSum+=1.0;
      if((occHO[eta+50][phi][depth]/(double)(ievt_))>0.001) continue;
             
      double Time=GetTime(data,nTS);
      if(CosmicsCorr_) Time+=(12.0*sin((phi*5.0)/180.0*3.14159))/25.0;  
      if(TRIGGER==TRIG_DT)  HOTimeDT ->Fill(Time);
      if(HOselfTrigger)     HOTimeHO ->Fill(Time);
      if(TRIGGER==TRIG_RPC) HOTimeRPC->Fill(Time);
      if(TRIGGER==TRIG_GCT) HOTimeGCT->Fill(Time);
    }   
  }
  edm::Handle<HFDigiCollection> hf; 
  iEvent.getByLabel(inputLabelDigi_,hf);
  if(hf.isValid()){ 
    for(HFDigiCollection::const_iterator digi=hf->begin();digi!=hf->end();digi++){
      eta=digi->id().ieta(); phi=digi->id().iphi(); depth=digi->id().depth(); nTS=digi->size();
      double energy=0;
      for(int i=0;i<nTS;i++){
        data[i]=adc2fC[digi->sample(i).adc()]-get_ped_hf(eta,phi,depth,digi->sample(i).capid());
        energy+=data[i]; 
      }
            
      if(energy<25.0) continue;
      occHF[eta+50][phi][depth]+=1.0;
      occSum+=1.0;
            
      double Time=GetTime(data,nTS);
      if((occHF[eta+50][phi][depth]/(double)(ievt_))>0.01) continue;
            
      if(TRIGGER==TRIG_CSC && eta>0) HFTimeCSCp->Fill(Time); 
      if(TRIGGER==TRIG_CSC && eta<0) HFTimeCSCm->Fill(Time); 
    }   
  }
  if((ievt_%500)==0){
    CheckTiming();
    //printf("Run: %i, Evants processed: %i\n",iEvent.run(),ievt_);       
  }
}
void HcalDetDiagTimingMonitor::beginRun ( const edm::Run run,
const edm::EventSetup c 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 86 of file HcalDetDiagTimingMonitor.cc.

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

{
  if (debug_>1) std::cout <<"HcalDetDiagTimingMonitor::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 HcalNDetDiagTimingMonitor::beginRun(...)
void HcalDetDiagTimingMonitor::CheckTiming ( ) [private]
void HcalDetDiagTimingMonitor::cleanup ( void  ) [virtual]
void HcalDetDiagTimingMonitor::done ( )

Definition at line 406 of file HcalDetDiagTimingMonitor.cc.

{   } 
double HcalDetDiagTimingMonitor::get_ped_hbhe ( int  eta,
int  phi,
int  depth,
int  cup 
) [inline]

Definition at line 64 of file HcalDetDiagTimingMonitor.h.

References HBHE, nHBHE, and phi.

Referenced by analyze().

                                                        {
      if(nHBHE[eta+50][phi][depth][cup]<10) return 2.5; 
      if(nHBHE[eta+50][phi][depth][cup]!=0){
         double ped=HBHE[eta+50][phi][depth][cup]/nHBHE[eta+50][phi][depth][cup];
         if(ped>1.5 && ped<4.5) return ped;
      } 
      return 9999; 
  }   
double HcalDetDiagTimingMonitor::get_ped_hf ( int  eta,
int  phi,
int  depth,
int  cup 
) [inline]

Definition at line 80 of file HcalDetDiagTimingMonitor.h.

References HF, nHF, and phi.

Referenced by analyze().

                                                      {
      if(nHF[eta+50][phi][depth][cup]<10) return 2.5; 
      if(nHF[eta+50][phi][depth][cup]!=0){
         double ped=HF[eta+50][phi][depth][cup]/nHF[eta+50][phi][depth][cup];
         if(ped>1.5 && ped<4.5) return ped;
      }
      return 9999; 
  }   
double HcalDetDiagTimingMonitor::get_ped_ho ( int  eta,
int  phi,
int  depth,
int  cup 
) [inline]

Definition at line 72 of file HcalDetDiagTimingMonitor.h.

References HO, nHO, and phi.

Referenced by analyze().

                                                      {
      if(nHO[eta+50][phi][depth][cup]<10) return 2.5; 
      if(nHO[eta+50][phi][depth][cup]!=0){
         double ped=HO[eta+50][phi][depth][cup]/nHO[eta+50][phi][depth][cup];
         if(ped>1.5 && ped<4.5) return ped;
      }
      return 9999; 
  }   
double HcalDetDiagTimingMonitor::GetTime ( double *  data,
int  n 
) [inline]

Definition at line 30 of file HcalDetDiagTimingMonitor.h.

References j, and n.

Referenced by analyze().

                                    {
        int MaxI=-100; double Time=0,SumT=0,MaxT=-10;
        for(int j=0;j<n;++j) if(MaxT<data[j]){ MaxT=data[j]; MaxI=j; }
        if(MaxI>=0){
           Time=MaxI*data[MaxI];
           SumT=data[MaxI];
           if(MaxI>0){ Time+=(MaxI-1)*data[MaxI-1]; SumT+=data[MaxI-1]; }
           if(MaxI<(n-1)){ Time+=(MaxI+1)*data[MaxI+1]; SumT+=data[MaxI+1]; }
           Time=Time/SumT;
        }
        return Time;
  }
bool HcalDetDiagTimingMonitor::isSignal ( double *  data,
int  n 
) [inline]

Definition at line 42 of file HcalDetDiagTimingMonitor.h.

References i, and max().

Referenced by analyze().

                                   {
        int Imax=-1; double max=-100;
        for(int i=0;i<n;i++) if(data[i]>max){max=data[i]; Imax=i;}
        if(Imax==0 && Imax==(n-1)) return false;
        float sum=data[Imax-1]+data[Imax+1];
        if(data[Imax]>5.5 && sum>(data[Imax]*0.25)) return true;
        return false;
  }
void HcalDetDiagTimingMonitor::reset ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 84 of file HcalDetDiagTimingMonitor.cc.

Referenced by beginRun().

{}
void HcalDetDiagTimingMonitor::set_hbhe ( int  eta,
int  phi,
int  depth,
int  cap,
float  val 
) [inline]

Definition at line 52 of file HcalDetDiagTimingMonitor.h.

References HBHE, nHBHE, and phi.

Referenced by analyze().

                                                            {
       HBHE[eta+50][phi][depth][cap]+=val;
       nHBHE[eta+50][phi][depth][cap]+=1.0;
  }   
void HcalDetDiagTimingMonitor::set_hf ( int  eta,
int  phi,
int  depth,
int  cap,
float  val 
) [inline]

Definition at line 60 of file HcalDetDiagTimingMonitor.h.

References HF, nHF, and phi.

Referenced by analyze().

                                                          {
       HF[eta+50][phi][depth][cap]+=val;
       nHF[eta+50][phi][depth][cap]+=1.0;
  }
void HcalDetDiagTimingMonitor::set_ho ( int  eta,
int  phi,
int  depth,
int  cap,
float  val 
) [inline]

Definition at line 56 of file HcalDetDiagTimingMonitor.h.

References HO, nHO, and phi.

Referenced by analyze().

                                                          {
       HO[eta+50][phi][depth][cap]+=val;
       nHO[eta+50][phi][depth][cap]+=1.0;
  }   
void HcalDetDiagTimingMonitor::setup ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 101 of file HcalDetDiagTimingMonitor.cc.

References DQMStore::book1D(), DQMStore::book2D(), HcalBaseDQMonitor::dbe_, HBTimeDT, HBTimeGCT, HBTimeHO, HBTimeRPC, HETimeCSCm, HETimeCSCp, HETimeRPCm, HETimeRPCp, HFTimeCSCm, HFTimeCSCp, HOTimeDT, HOTimeGCT, HOTimeHO, HOTimeRPC, i, j, NULL, MonitorElement::setBinContent(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), HcalBaseDQMonitor::subdir_, and Summary.

Referenced by beginRun().

{
  
  HcalBaseDQMonitor::setup();

  std::string str;
  if(dbe_!=NULL){    
     dbe_->setCurrentFolder(subdir_);   
     str="Hcal Timing summary"; Summary = dbe_->book2D(str,str,6,0,6,6,0,6); 
     Summary->setBinLabel(1,"DT",1);
     Summary->setBinLabel(2,"RPC",1);
     Summary->setBinLabel(3,"GCT",1);
     Summary->setBinLabel(4,"CSC",1);
     Summary->setBinLabel(5,"RPCf",1);
     Summary->setBinLabel(6,"bit11",1);
     Summary->setBinLabel(1,"HB",2);
     Summary->setBinLabel(2,"HO",2);
     Summary->setBinLabel(3,"HEM",2);
     Summary->setBinLabel(4,"HEP",2);
     Summary->setBinLabel(5,"HFM",2);
     Summary->setBinLabel(6,"HFP",2);
     for(int i=1;i<=6;i++) for(int j=1;j<=6;j++) Summary->setBinContent(i,j,-1);
     
     dbe_->setCurrentFolder(subdir_+"Timing Plots");
     str="HB Timing (DT Trigger)";                      HBTimeDT  = dbe_->book1D(str,str,100,0,10); 
     str="HO Timing (DT Trigger)";                      HOTimeDT  = dbe_->book1D(str,str,100,0,10); 
     str="HB Timing (RPC Trigger)";                     HBTimeRPC = dbe_->book1D(str,str,100,0,10); 
     str="HO Timing (RPC Trigger)";                     HOTimeRPC = dbe_->book1D(str,str,100,0,10); 
     str="HB Timing (HO SelfTrigger tech bit 11)";      HBTimeHO  = dbe_->book1D(str,str,100,0,10); 
     str="HO Timing (HO SelfTrigger tech bit 11)";      HOTimeHO  = dbe_->book1D(str,str,100,0,10); 
     
     str="HB Timing (GCT Trigger alg bit 15 16 17 18)"; HBTimeGCT  =dbe_->book1D(str,str,100,0,10); 
     str="HO Timing (GCT Trigger alg bit 15 16 17 18)"; HOTimeGCT  =dbe_->book1D(str,str,100,0,10); 
     
     str="HEP Timing (CSC Trigger)";                    HETimeCSCp =dbe_->book1D(str,str,100,0,10); 
     str="HEM Timing (CSC Trigger)";                    HETimeCSCm =dbe_->book1D(str,str,100,0,10);
     str="HEP Timing (RPCf Trigger)";                   HETimeRPCp =dbe_->book1D(str,str,100,0,10); 
     str="HEM Timing (RPCf Trigger)";                   HETimeRPCm =dbe_->book1D(str,str,100,0,10);
     str="HFP Timing (CSC Trigger)";                    HFTimeCSCp =dbe_->book1D(str,str,100,0,10); 
     str="HFM Timing (CSC Trigger)";                    HFTimeCSCm =dbe_->book1D(str,str,100,0,10);     
  }   
} 

Member Data Documentation

Definition at line 120 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

Definition at line 113 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

Definition at line 115 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

Definition at line 116 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

Definition at line 117 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

Definition at line 118 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

Definition at line 119 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

double HcalDetDiagTimingMonitor::HBHE[100][73][5][4]

Definition at line 88 of file HcalDetDiagTimingMonitor.h.

Referenced by get_ped_hbhe(), and set_hbhe().

Definition at line 122 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 124 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 125 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 123 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 131 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 130 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 133 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 132 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

double HcalDetDiagTimingMonitor::HF[100][73][5][4]

Definition at line 92 of file HcalDetDiagTimingMonitor.h.

Referenced by get_ped_hf(), and set_hf().

Definition at line 135 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 134 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

double HcalDetDiagTimingMonitor::HO[100][73][5][4]

Definition at line 90 of file HcalDetDiagTimingMonitor.h.

Referenced by get_ped_ho(), and set_ho().

Definition at line 126 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 128 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 129 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 127 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), CheckTiming(), and setup().

Definition at line 111 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

Definition at line 112 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze(), and HcalDetDiagTimingMonitor().

double HcalDetDiagTimingMonitor::nHBHE[100][73][5][4]

Definition at line 89 of file HcalDetDiagTimingMonitor.h.

Referenced by get_ped_hbhe(), and set_hbhe().

double HcalDetDiagTimingMonitor::nHF[100][73][5][4]

Definition at line 93 of file HcalDetDiagTimingMonitor.h.

Referenced by get_ped_hf(), and set_hf().

double HcalDetDiagTimingMonitor::nHO[100][73][5][4]

Definition at line 91 of file HcalDetDiagTimingMonitor.h.

Referenced by get_ped_ho(), and set_ho().

Definition at line 97 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze().

double HcalDetDiagTimingMonitor::occHF[100][73][5]

Definition at line 99 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze().

double HcalDetDiagTimingMonitor::occHO[100][73][5]

Definition at line 98 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze().

Definition at line 100 of file HcalDetDiagTimingMonitor.h.

Referenced by analyze().

Definition at line 136 of file HcalDetDiagTimingMonitor.h.

Referenced by CheckTiming(), and setup().