CMS 3D CMS Logo

Public Member Functions | Private Member Functions | Private Attributes

HcalDetDiagLEDMonitor Class Reference

Inheritance diagram for HcalDetDiagLEDMonitor:
HcalBaseDQMonitor edm::EDAnalyzer edm::EDConsumerBase

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 endRun (const edm::Run &run, const edm::EventSetup &c)
void fillHistos ()
int GetStatistics ()
 HcalDetDiagLEDMonitor (const edm::ParameterSet &ps)
void reset ()
void setup ()
 ~HcalDetDiagLEDMonitor ()

Private Member Functions

void CheckStatus ()
void fill_channel_status (std::string subdet, int eta, int phi, int depth, int type, double status)
void fill_energy (std::string subdet, int eta, int phi, int depth, double e, int type)
double get_energy (std::string subdet, int eta, int phi, int depth, int type)
HcalDetDiagLEDDataGetCalib (std::string sd, int eta, int phi)
void LoadReference ()
void SaveReference ()

Private Attributes

HcalDetDiagLEDData calib_data [5][5][72]
edm::InputTag calibDigiLabel_
EtaPhiHistsChannelsLEDEnergy
EtaPhiHistsChannelsLEDEnergyRef
EtaPhiHistsChannelStatusLEDMean
EtaPhiHistsChannelStatusLEDRMS
EtaPhiHistsChannelStatusMissingChannels
EtaPhiHistsChannelStatusTimeMean
EtaPhiHistsChannelStatusTimeRMS
EtaPhiHistsChannelStatusUnstableChannels
EtaPhiHistsChannelStatusUnstableLEDsignal
int dataset_seq_number
edm::InputTag digiLabel_
HcalElectronicsMapemap
MonitorElementEnergy
MonitorElementEnergy2Dhbhehf
MonitorElementEnergy2Dho
MonitorElementEnergyCorr
MonitorElementEnergyHF
MonitorElementEnergyRMS
MonitorElementEnergyRMSHF
HcalDetDiagLEDData hb_data [85][72][4]
MonitorElementHBMphi
MonitorElementHBPphi
edm::InputTag hcalTBTriggerDataTag_
HcalDetDiagLEDData he_data [85][72][4]
MonitorElementHEMphi
MonitorElementHEPphi
HcalDetDiagLEDData hf_data [85][72][4]
MonitorElementHFMphi
MonitorElementHFPphi
MonitorElementHO0phi
MonitorElementHO1Mphi
MonitorElementHO1Pphi
MonitorElementHO2Mphi
MonitorElementHO2Pphi
HcalDetDiagLEDData ho_data [85][72][4]
int ievt_
bool IsReference
std::map< unsigned int, int > KnownBadCells_
double LEDMeanTreshold
double LEDRmsTreshold
MonitorElementmeEVT_
MonitorElementmeRUN_
std::string OutputFilePath
std::string ReferenceData
std::string ReferenceRun
MonitorElementRefRun_
int run_number
MonitorElementTime
MonitorElementTime2Dhbhehf
MonitorElementTime2Dho
MonitorElementTimeHF
MonitorElementTimeRMS
MonitorElementTimeRMSHF
std::string XmlFilePath

Detailed Description

Definition at line 108 of file HcalDetDiagLEDMonitor.cc.


Constructor & Destructor Documentation

HcalDetDiagLEDMonitor::HcalDetDiagLEDMonitor ( const edm::ParameterSet ps)

Definition at line 238 of file HcalDetDiagLEDMonitor.cc.

References HcalBaseDQMonitor::AllowedCalibTypes_, calibDigiLabel_, dataset_seq_number, HcalBaseDQMonitor::debug_, digiLabel_, emap, HcalBaseDQMonitor::enableCleanup_, edm::ParameterSet::getUntrackedParameter(), ievt_, IsReference, LEDMeanTreshold, LEDRmsTreshold, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::mergeRuns_, HcalBaseDQMonitor::needLogicalMap_, HcalBaseDQMonitor::NLumiBlocks_, HcalBaseDQMonitor::Online_, OutputFilePath, HcalBaseDQMonitor::prefixME_, ReferenceData, run_number, HcalBaseDQMonitor::skipOutOfOrderLS_, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, and XmlFilePath.

                                                                      :
  hcalTBTriggerDataTag_(ps.getParameter<edm::InputTag>("hcalTBTriggerDataTag"))
{
  ievt_=0;
  dataset_seq_number=1;
  run_number=-1;
  IsReference=false;

  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","DetDiagLEDMonitor_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);

  LEDMeanTreshold  = ps.getUntrackedParameter<double>("LEDMeanTreshold" , 0.1);
  LEDRmsTreshold   = ps.getUntrackedParameter<double>("LEDRmsTreshold"  , 0.1);
  
  ReferenceData    = ps.getUntrackedParameter<std::string>("LEDReferenceData" ,"");
  OutputFilePath   = ps.getUntrackedParameter<std::string>("OutputFilePath", "");
  XmlFilePath      = ps.getUntrackedParameter<std::string>("XmlFilePath", "");

  digiLabel_       = ps.getUntrackedParameter<edm::InputTag>("digiLabel", edm::InputTag("hcalDigis"));
  calibDigiLabel_  = ps.getUntrackedParameter<edm::InputTag>("calibDigiLabel",edm::InputTag("hcalDigis"));

  emap=0;
  needLogicalMap_ = true;
}
HcalDetDiagLEDMonitor::~HcalDetDiagLEDMonitor ( )

Definition at line 276 of file HcalDetDiagLEDMonitor.cc.

{}

Member Function Documentation

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

Reimplemented from HcalBaseDQMonitor.

Definition at line 378 of file HcalDetDiagLEDMonitor.cc.

References adc2fC, HcalDetDiagLEDData::add_statistics(), calib, calib_data, calibDigiLabel_, CheckStatus(), data, HcalBaseDQMonitor::dbe_, digiLabel_, alignCSCRings::e, emap, eta(), MonitorElement::Fill(), fillHistos(), HcalLogicalMap::generateHcalElectronicsMap(), edm::Event::getByLabel(), HcalBaseDQMonitor::getLogicalMap(), hb_data, HcalBarrel, HcalEndcap, hcalTBTriggerDataTag_, he_data, hf_data, ho_data, i, edm::EventBase::id(), ievt_, edm::HandleBase::isValid(), HcalBaseDQMonitor::logicalMap_, meEVT_, meRUN_, phi, edm::EventID::run(), and run_number.

                                                                                      {
int  eta,phi,depth,nTS;
   HcalBaseDQMonitor::getLogicalMap(iSetup);
   if (emap==0) {
     emap=new HcalElectronicsMap(logicalMap_->generateHcalElectronicsMap());
   }

   if(!dbe_) return; 
   bool LEDEvent=false;
   bool LocalRun=false;
   // for local runs 

   edm::Handle<HcalTBTriggerData> trigger_data;
   iEvent.getByLabel(hcalTBTriggerDataTag_, trigger_data);
   if(trigger_data.isValid()){
      if(trigger_data->triggerWord()==6){ LEDEvent=true;LocalRun=true;}
   } 
   if(!LocalRun) return;  
   if(!LEDEvent) return; 
   
   HcalBaseDQMonitor::analyze(iEvent, iSetup);
   meEVT_->Fill(++ievt_);
   run_number=iEvent.id().run();
   meRUN_->Fill(iEvent.id().run());

   double data[20];

   edm::Handle<HBHEDigiCollection> hbhe; 
   iEvent.getByLabel(digiLabel_, 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();
     if(digi->id().subdet()==HcalBarrel){
       for(int i=0;i<nTS;i++) data[i]=adc2fC[digi->sample(i).adc()&0xff]-2.5;
       hb_data[eta+42][phi-1][depth-1].add_statistics(data,nTS);
     }   
     if(digi->id().subdet()==HcalEndcap){
       for(int i=0;i<nTS;i++) data[i]=adc2fC[digi->sample(i).adc()&0xff]-2.5;
       he_data[eta+42][phi-1][depth-1].add_statistics(data,nTS);
     }
   }   

   edm::Handle<HODigiCollection> ho; 
   iEvent.getByLabel(digiLabel_,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()&0xff]-2.5;
     ho_data[eta+42][phi-1][depth-1].add_statistics(data,nTS);
   }   

   edm::Handle<HFDigiCollection> hf;
   iEvent.getByLabel(digiLabel_,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++) data[i]=adc2fC[digi->sample(i).adc()&0xff]-2.5;
     hf_data[eta+42][phi-1][depth-1].add_statistics(data,nTS);
   }   
 
   edm::Handle<HcalCalibDigiCollection> calib;
   iEvent.getByLabel(calibDigiLabel_, calib);
   if(calib.isValid())for(HcalCalibDigiCollection::const_iterator digi=calib->begin();digi!=calib->end();digi++){
     if(digi->id().cboxChannel()!=0 || digi->id().hcalSubdet()==0) continue; 
     nTS=digi->size();
     double e=0; 
     for(int i=0;i<nTS;i++){ data[i]=adc2fC[digi->sample(i).adc()&0xff]; e+=data[i];}
     if(e<15000) calib_data[digi->id().hcalSubdet()][digi->id().ieta()+2][digi->id().iphi()-1].add_statistics(data,nTS);
   }   
  
   if(((ievt_)%500)==0){
       fillHistos();
       CheckStatus(); 
   }
   return;
}
void HcalDetDiagLEDMonitor::beginRun ( const edm::Run run,
const edm::EventSetup c 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 287 of file HcalDetDiagLEDMonitor.cc.

References gather_cfg::cout, HcalBaseDQMonitor::debug_, edm::EventSetup::get(), HcalCondObjectContainer< Item >::getAllChannels(), reco::JetExtendedAssociation::getValue(), HcalCondObjectContainer< Item >::getValues(), DetId::Hcal, HcalChannelStatus::HcalCellMask, HcalChannelStatus::HcalCellOff, i, KnownBadCells_, HcalBaseDQMonitor::mergeRuns_, AlCaHLTBitMon_ParallelJobs::p, edm::ESHandle< T >::product(), reset(), setup(), ntuplemaker::status, and HcalBaseDQMonitor::tevt_.

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

  edm::ESHandle<HcalChannelQuality> p;
  c.get<HcalChannelQualityRcd>().get(p);
  HcalChannelQuality* chanquality= new HcalChannelQuality(*p.product());
  std::vector<DetId> mydetids = chanquality->getAllChannels();
  KnownBadCells_.clear();

  for (std::vector<DetId>::const_iterator i = mydetids.begin();i!=mydetids.end();++i){
     if (i->det()!=DetId::Hcal) continue; // not an hcal cell
     HcalDetId id=HcalDetId(*i);
     int status=(chanquality->getValues(id))->getValue();
     if((status & HcalChannelStatus::HcalCellOff) || (status & HcalChannelStatus::HcalCellMask)){
         KnownBadCells_[id.rawId()]=status;
     }
  } 

  return;
} // void HcalNDetDiagLEDMonitor::beginRun(...)
void HcalDetDiagLEDMonitor::CheckStatus ( ) [private]

Definition at line 1052 of file HcalDetDiagLEDMonitor.cc.

References HcalElectronicsMap::allElectronicsIdPrecision(), HcalDetDiagLEDData::change_status(), ChannelStatusLEDMean, ChannelStatusLEDRMS, ChannelStatusMissingChannels, ChannelStatusTimeMean, ChannelStatusTimeRMS, ChannelStatusUnstableChannels, ChannelStatusUnstableLEDsignal, EtaPhiHists::depth, HcalDetId::depth(), DetId::det(), cond::rpcobgas::detid, emap, eta(), fill_channel_status(), HcalDetDiagLEDData::get_average_time(), HcalDetDiagLEDData::get_overflow(), HcalDetDiagLEDData::get_statistics(), HcalDetDiagLEDData::get_undeflow(), MonitorElement::getMean(), hb_data, DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalOuter, he_data, hf_data, ho_data, i, HcalDetId::ieta(), ievt_, HcalDetId::iphi(), KnownBadCells_, HcalElectronicsMap::lookup(), phi, plotscripts::rms(), DetId::subdetId(), Time, and TimeHF.

Referenced by analyze(), and endRun().

                                       {
   for(int i=0;i<4;i++){
      ChannelStatusMissingChannels->depth[i]->Reset();
      ChannelStatusUnstableChannels->depth[i]->Reset();
      ChannelStatusUnstableLEDsignal->depth[i]->Reset();
      ChannelStatusLEDMean->depth[i]->Reset();
      ChannelStatusLEDRMS->depth[i]->Reset();
      ChannelStatusTimeMean->depth[i]->Reset();
      ChannelStatusTimeRMS->depth[i]->Reset();
   }
  
   std::vector <HcalElectronicsId> AllElIds = emap->allElectronicsIdPrecision();
   for (std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin(); eid != AllElIds.end(); eid++) {
      DetId detid=emap->lookup(*eid);
      if (detid.det()!=DetId::Hcal) continue;
      HcalGenericDetId gid(emap->lookup(*eid));
      if(!(!(gid.null()) && 
            (gid.genericSubdet()==HcalGenericDetId::HcalGenBarrel ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenEndcap  ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenForward ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenOuter))) continue;
      int eta=0,phi=0,depth=0;
      if(KnownBadCells_.find(gid.rawId())==KnownBadCells_.end()) continue;

      HcalDetId hid(detid);
      eta=hid.ieta();
      phi=hid.iphi();
      depth=hid.depth(); 
      
      double AVE_TIME=Time->getMean();
      if(detid.subdetId()==HcalBarrel){
         int stat=hb_data[eta+42][phi-1][depth-1].get_statistics()+
                   hb_data[eta+42][phi-1][depth-1].get_overflow()+hb_data[eta+42][phi-1][depth-1].get_undeflow();
         if(stat==0){ 
             fill_channel_status("HB",eta,phi,depth,1,1); 
             hb_data[eta+42][phi-1][depth-1].change_status(1); 
         }
         if(stat>0 && stat!=(ievt_)){ 
             fill_channel_status("HB",eta,phi,depth,2,(double)stat/(double)(ievt_)); 
             hb_data[eta+42][phi-1][depth-1].change_status(2); 
         }
         if(hb_data[eta+42][phi-1][depth-1].get_statistics()>100){ 
             double ave=0;
             double rms=0;
             hb_data[eta+42][phi-1][depth-1].get_average_time(&ave,&rms);
             if((AVE_TIME-ave)>0.75 || (AVE_TIME-ave)<-0.75){
                fill_channel_status("HB",eta,phi,depth,6,AVE_TIME-ave); 
                hb_data[eta+42][phi-1][depth-1].change_status(8); 
             }
         }  
         stat=hb_data[eta+42][phi-1][depth-1].get_undeflow();     
         if(stat>0){ 
             fill_channel_status("HB",eta,phi,depth,3,(double)stat/(double)(ievt_)); 
             hb_data[eta+42][phi-1][depth-1].change_status(4); 
         }    
      } 
      if(detid.subdetId()==HcalEndcap){
         int stat=he_data[eta+42][phi-1][depth-1].get_statistics()+
                   he_data[eta+42][phi-1][depth-1].get_overflow()+he_data[eta+42][phi-1][depth-1].get_undeflow();
         if(stat==0){ 
             fill_channel_status("HE",eta,phi,depth,1,1); 
             he_data[eta+42][phi-1][depth-1].change_status(1); 
         }
         if(stat>0 && stat!=(ievt_)){ 
             fill_channel_status("HE",eta,phi,depth,2,(double)stat/(double)(ievt_)); 
             he_data[eta+42][phi-1][depth-1].change_status(2); 
         }
         if(he_data[eta+42][phi-1][depth-1].get_statistics()>100){ 
             double ave=0;
             double rms=0;
             he_data[eta+42][phi-1][depth-1].get_average_time(&ave,&rms);
             if((AVE_TIME-ave)>0.75 || (AVE_TIME-ave)<-0.75){ 
                fill_channel_status("HE",eta,phi,depth,6,AVE_TIME-ave); 
                he_data[eta+42][phi-1][depth-1].change_status(8); 
             }  
         }  
         stat=he_data[eta+42][phi-1][depth-1].get_undeflow();     
         if(stat>0){ 
             fill_channel_status("HE",eta,phi,depth,3,(double)stat/(double)(ievt_)); 
             he_data[eta+42][phi-1][depth-1].change_status(4); 
         }  
      } 
      if(detid.subdetId()==HcalOuter){
         int stat=ho_data[eta+42][phi-1][depth-1].get_statistics()+
                   ho_data[eta+42][phi-1][depth-1].get_overflow()+ho_data[eta+42][phi-1][depth-1].get_undeflow();
         if(stat==0){ 
             fill_channel_status("HO",eta,phi,depth,1,1); 
             ho_data[eta+42][phi-1][depth-1].change_status(1); 
         }
         if(stat>0 && stat!=(ievt_)){ 
             fill_channel_status("HO",eta,phi,depth,2,(double)stat/(double)(ievt_)); 
             ho_data[eta+42][phi-1][depth-1].change_status(2); 
         }
         if(ho_data[eta+42][phi-1][depth-1].get_statistics()>100){ 
             double ave=0;
             double rms=0;
             ho_data[eta+42][phi-1][depth-1].get_average_time(&ave,&rms);
             if((AVE_TIME-ave)>0.75 || (AVE_TIME-ave)<-0.75){
                fill_channel_status("HO",eta,phi,depth,6,AVE_TIME-ave); 
                ho_data[eta+42][phi-1][depth-1].change_status(8);
             } 
         }  
         stat=ho_data[eta+42][phi-1][depth-1].get_undeflow();     
         if(stat>0){ 
             fill_channel_status("HO",eta,phi,depth,3,(double)stat/(double)(ievt_)); 
             ho_data[eta+42][phi-1][depth-1].change_status(4); 
         }  
      } 
      if(detid.subdetId()==HcalForward){
         AVE_TIME=TimeHF->getMean();
         int stat=hf_data[eta+42][phi-1][depth-1].get_statistics()+
                   hf_data[eta+42][phi-1][depth-1].get_overflow()+hf_data[eta+42][phi-1][depth-1].get_undeflow();
         if(stat==0){ 
             fill_channel_status("HF",eta,phi,depth,1,1); 
             hf_data[eta+42][phi-1][depth-1].change_status(1); 
         }
         if(stat>0 && stat!=(ievt_)){ 
             fill_channel_status("HF",eta,phi,depth,2,(double)stat/(double)(ievt_)); 
             hf_data[eta+42][phi-1][depth-1].change_status(2); 
         }
         if(hf_data[eta+42][phi-1][depth-1].get_statistics()>100){ 
             double ave=0;
             double rms=0;
             hf_data[eta+42][phi-1][depth-1].get_average_time(&ave,&rms);
             if((AVE_TIME-ave)>0.75 || (AVE_TIME-ave)<-0.75){
                fill_channel_status("HF",eta,phi,depth,6,AVE_TIME-ave); 
                hf_data[eta+42][phi-1][depth-1].change_status(8);
             } 
         }  
         stat=hf_data[eta+42][phi-1][depth-1].get_undeflow();     
         if(stat>0){ 
             fill_channel_status("HF",eta,phi,depth,3,(double)stat/(double)(ievt_)); 
             hf_data[eta+42][phi-1][depth-1].change_status(4); 
         }  
      } 
   }
}
void HcalDetDiagLEDMonitor::cleanup ( void  ) [virtual]
void HcalDetDiagLEDMonitor::endRun ( const edm::Run run,
const edm::EventSetup c 
) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 1233 of file HcalDetDiagLEDMonitor.cc.

References CheckStatus(), fillHistos(), ievt_, and SaveReference().

                                                                           {   
   if(ievt_>=100){
      fillHistos();
      CheckStatus();
      SaveReference(); 
   }   
} 
void HcalDetDiagLEDMonitor::fill_channel_status ( std::string  subdet,
int  eta,
int  phi,
int  depth,
int  type,
double  status 
) [private]

Definition at line 1216 of file HcalDetDiagLEDMonitor.cc.

References CalcEtaBin(), ChannelStatusLEDMean, ChannelStatusLEDRMS, ChannelStatusMissingChannels, ChannelStatusTimeMean, ChannelStatusTimeRMS, ChannelStatusUnstableChannels, ChannelStatusUnstableLEDsignal, EtaPhiHists::depth, HcalBarrel, HcalEndcap, HcalForward, and HcalOuter.

Referenced by CheckStatus().

                                                                                                                {
  int subdetval=-1;
  if (subdet.compare("HB")==0) subdetval=(int)HcalBarrel;
  else if (subdet.compare("HE")==0) subdetval=(int)HcalEndcap;
  else if (subdet.compare("HO")==0) subdetval=(int)HcalOuter;
  else if (subdet.compare("HF")==0) subdetval=(int)HcalForward;
  else return;
  int ietabin=CalcEtaBin(subdetval, eta, depth)+1;

   if(type==1) ChannelStatusMissingChannels->depth[depth-1]  ->setBinContent(ietabin,phi,status);
   if(type==2) ChannelStatusUnstableChannels->depth[depth-1] ->setBinContent(ietabin,phi,status);
   if(type==3) ChannelStatusUnstableLEDsignal->depth[depth-1]->setBinContent(ietabin,phi,status);
   if(type==4) ChannelStatusLEDMean->depth[depth-1]          ->setBinContent(ietabin,phi,status);
   if(type==5) ChannelStatusLEDRMS->depth[depth-1]           ->setBinContent(ietabin,phi,status);
   if(type==6) ChannelStatusTimeMean->depth[depth-1]         ->setBinContent(ietabin,phi,status);
   if(type==7) ChannelStatusTimeRMS->depth[depth-1]          ->setBinContent(ietabin,phi,status);
}
void HcalDetDiagLEDMonitor::fill_energy ( std::string  subdet,
int  eta,
int  phi,
int  depth,
double  e,
int  type 
) [private]

Definition at line 1189 of file HcalDetDiagLEDMonitor.cc.

References CalcEtaBin(), ChannelsLEDEnergy, ChannelsLEDEnergyRef, EtaPhiHists::depth, HcalBarrel, HcalEndcap, HcalForward, and HcalOuter.

Referenced by fillHistos().

                                                                                                   { 
  int subdetval=-1;
  if (subdet.compare("HB")==0) subdetval=(int)HcalBarrel;
  else if (subdet.compare("HE")==0) subdetval=(int)HcalEndcap;
  else if (subdet.compare("HO")==0) subdetval=(int)HcalOuter;
  else if (subdet.compare("HF")==0) subdetval=(int)HcalForward;
  else return;

  int ietabin=CalcEtaBin(subdetval, eta, depth)+1;
  if(type==1) ChannelsLEDEnergy->depth[depth-1]   ->setBinContent(ietabin,phi,e);
  else if(type==2) ChannelsLEDEnergyRef->depth[depth-1]->setBinContent(ietabin,phi,e);
}
void HcalDetDiagLEDMonitor::fillHistos ( )

Definition at line 453 of file HcalDetDiagLEDMonitor.cc.

References abs, HcalElectronicsMap::allElectronicsIdPrecision(), HcalDetId::depth(), DetId::det(), cond::rpcobgas::detid, emap, Energy, Energy2Dhbhehf, Energy2Dho, EnergyCorr, EnergyHF, EnergyRMS, EnergyRMSHF, eta(), MonitorElement::Fill(), fill_energy(), HcalDetDiagLEDData::get_average_led(), HcalDetDiagLEDData::get_average_time(), get_energy(), GetCalib(), HcalLogicalMap::getHcalFrontEndId(), hb_data, HBMphi, HBPphi, DetId::Hcal, HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, he_data, HEMphi, HEPphi, hf_data, HFMphi, HFPphi, HO0phi, HO1Mphi, HO1Pphi, HO2Mphi, HO2Pphi, ho_data, i, HcalDetId::ieta(), HcalDetId::iphi(), isSiPM(), j, KnownBadCells_, HcalBaseDQMonitor::logicalMap_, HcalElectronicsMap::lookup(), phi, DetId::rawId(), HcalFrontEndId::rbx(), MonitorElement::Reset(), HcalFrontEndId::rm(), plotscripts::rms(), sd, AlCaHLTBitMon_QueryRunRegistry::string, Time, cond::rpcobgas::time, Time2Dhbhehf, Time2Dho, TimeHF, TimeRMS, and TimeRMSHF.

Referenced by analyze(), and endRun().

                                      {
  std::string subdet[4]={"HB","HE","HO","HF"};
    Energy->Reset();
   Time->Reset();
   EnergyRMS->Reset();
   TimeRMS->Reset();
   EnergyHF->Reset();
   TimeHF->Reset();
   EnergyRMSHF->Reset();
   TimeRMSHF->Reset();
   EnergyCorr->Reset();
   Time2Dhbhehf->Reset();
   Time2Dho->Reset();
   Energy2Dhbhehf->Reset();
   Energy2Dho->Reset();
   HBPphi->Reset();
   HBMphi->Reset();
   HEPphi->Reset();
   HEMphi->Reset();
   HFPphi->Reset();
   HFMphi->Reset();
   HO0phi->Reset();
   HO1Pphi->Reset();
   HO2Pphi->Reset();
   HO1Mphi->Reset();
   HO2Mphi->Reset();
   
   // HB histograms
   for(int eta=-16;eta<=16;eta++) for(int phi=1;phi<=72;phi++){ 
      double T=0,nT=0,E=0,nE=0;
      for(int depth=1;depth<=2;depth++){
         if(hb_data[eta+42][phi-1][depth-1].get_statistics()>100){
            double ave=0;
            double rms=0;
            double time=0;
            double time_rms=0;
            hb_data[eta+42][phi-1][depth-1].get_average_led(&ave,&rms);
            hb_data[eta+42][phi-1][depth-1].get_average_time(&time,&time_rms);
            Energy->Fill(ave);
            if(ave>0)EnergyRMS->Fill(rms/ave);
            Time->Fill(time);
            TimeRMS->Fill(time_rms);
            T+=time; nT++; E+=ave; nE++;
            if(GetCalib("HB",eta,phi)->get_statistics()>100){
              double ave_calib=0;
              double rms_calib=0;
              GetCalib("HB",eta,phi)->get_average_led(&ave_calib,&rms_calib);
              fill_energy("HB",eta,phi,depth,ave/ave_calib,1);
              EnergyCorr->Fill(ave_calib/ave);
            }
         }
      } 
      if(nT>0){Time2Dhbhehf->Fill(eta,phi,T/nT);Energy2Dhbhehf->Fill(eta,phi,E/nE); }
   } 
   // HE histograms
   for(int eta=-29;eta<=29;eta++) for(int phi=1;phi<=72;phi++){
      double T=0,nT=0,E=0,nE=0;
      for(int depth=1;depth<=3;depth++){
         if(he_data[eta+42][phi-1][depth-1].get_statistics()>100){
            double ave=0;
            double rms=0;
            double time=0;
            double time_rms=0;
            he_data[eta+42][phi-1][depth-1].get_average_led(&ave,&rms);
            he_data[eta+42][phi-1][depth-1].get_average_time(&time,&time_rms);
            Energy->Fill(ave);
            if(ave>0)EnergyRMS->Fill(rms/ave);
            Time->Fill(time);
            T+=time; nT++; E+=ave; nE++;
            TimeRMS->Fill(time_rms);
            if(GetCalib("HE",eta,phi)->get_statistics()>100){
              double ave_calib=0;
              double rms_calib=0;
              GetCalib("HE",eta,phi)->get_average_led(&ave_calib,&rms_calib);
              fill_energy("HE",eta,phi,depth,ave/ave_calib,1);
              EnergyCorr->Fill(ave_calib/ave);
            }
         }
      }
      if(nT>0 && abs(eta)>16 ){Time2Dhbhehf->Fill(eta,phi,T/nT);   Energy2Dhbhehf->Fill(eta,phi,E/nE); }         
      if(nT>0 && abs(eta)>20 ){Time2Dhbhehf->Fill(eta,phi+1,T/nT); Energy2Dhbhehf->Fill(eta,phi+1,E/nE);}        
   } 
   // HF histograms
   for(int eta=-42;eta<=42;eta++) for(int phi=1;phi<=72;phi++){
      double T=0,nT=0,E=0,nE=0;
      for(int depth=1;depth<=2;depth++){
         if(hf_data[eta+42][phi-1][depth-1].get_statistics()>100){
           double ave=0;
           double rms=0;
           double time=0;
           double time_rms=0;
           hf_data[eta+42][phi-1][depth-1].get_average_led(&ave,&rms);
           hf_data[eta+42][phi-1][depth-1].get_average_time(&time,&time_rms);
           EnergyHF->Fill(ave);
           if(ave>0)EnergyRMSHF->Fill(rms/ave);
           TimeHF->Fill(time);
           T+=time; nT++; E+=ave; nE++;
           TimeRMSHF->Fill(time_rms);
           if(GetCalib("HF",eta,phi)->get_statistics()>100){
             double ave_calib=0;
             double rms_calib=0;
             GetCalib("HF",eta,phi)->get_average_led(&ave_calib,&rms_calib);
             fill_energy("HF",eta,phi,depth,ave/ave_calib,1);
             EnergyCorr->Fill(ave_calib/ave);
           }
         }
      } 
      if(nT>0 && abs(eta)>29 ){ Time2Dhbhehf->Fill(eta,phi,T/nT); Time2Dhbhehf->Fill(eta,phi+1,T/nT);}   
      if(nT>0 && abs(eta)>29 ){ Energy2Dhbhehf->Fill(eta,phi,E/nE); Energy2Dhbhehf->Fill(eta,phi+1,E/nE);}       
   } 
   // HO histograms
   for(int eta=-10;eta<=15;eta++) for(int phi=1;phi<=72;phi++){
      double T=0,nT=0,E=0,nE=0;
      if(eta>10 && !isSiPM(eta,phi,4)) continue;
      for(int depth=4;depth<=4;depth++){
         if(ho_data[eta+42][phi-1][depth-1].get_statistics()>100){
            double ave=0;
            double rms=0;
            double time=0;
            double time_rms=0;
            ho_data[eta+42][phi-1][depth-1].get_average_led(&ave,&rms);
            ho_data[eta+42][phi-1][depth-1].get_average_time(&time,&time_rms);
            Energy->Fill(ave);
            if(ave>0)EnergyRMS->Fill(rms/ave);
            Time->Fill(time);
            T+=time; nT++; E+=ave; nE++;
            TimeRMS->Fill(time_rms);
            if(GetCalib("HO",eta,phi)->get_statistics()>100){
              double ave_calib=0;
              double rms_calib=0;
              GetCalib("HO",eta,phi)->get_average_led(&ave_calib,&rms_calib);
              fill_energy("HO",eta,phi,depth,ave/ave_calib,1);
              EnergyCorr->Fill(ave_calib/ave);
            }
         }
      }
      if(nT>0){ Time2Dho->Fill(eta,phi,T/nT); Energy2Dho->Fill(eta,phi+1,E/nE) ;}
   } 

   double ave=0.,rms=0.,ave_calib=0.,rms_calib=0.;
   // HB Ref histograms
   for(int eta=-16;eta<=16;eta++) for(int phi=1;phi<=72;phi++) for(int depth=1;depth<=2;depth++){
      if(hb_data[eta+42][phi-1][depth-1].get_reference(&ave,&rms) && GetCalib("HB",eta,phi)->get_reference(&ave_calib,&rms_calib)){
            fill_energy("HB",eta,phi,depth,ave/ave_calib,2);
      }
   } 
   // HE Ref histograms
   for(int eta=-29;eta<=29;eta++) for(int phi=1;phi<=72;phi++) for(int depth=1;depth<=3;depth++){
      if(he_data[eta+42][phi-1][depth-1].get_reference(&ave,&rms) && GetCalib("HE",eta,phi)->get_reference(&ave_calib,&rms_calib)){
            fill_energy("HE",eta,phi,depth,ave/ave_calib,2);
      }
   } 
   // HO Ref histograms
   for(int eta=-10;eta<=15;eta++) for(int phi=1;phi<=72;phi++) for(int depth=4;depth<=4;depth++){
      if(eta>10 && !isSiPM(eta,phi,4)) continue;
      if(ho_data[eta+42][phi-1][depth-1].get_reference(&ave,&rms) && GetCalib("HO",eta,phi)->get_reference(&ave_calib,&rms_calib)){
            fill_energy("HO",eta,phi,depth,ave/ave_calib,2);
      }
   } 
   // HF Ref histograms
   for(int eta=-42;eta<=42;eta++) for(int phi=1;phi<=72;phi++) for(int depth=1;depth<=2;depth++){
      if(hf_data[eta+42][phi-1][depth-1].get_reference(&ave,&rms) && GetCalib("HF",eta,phi)->get_reference(&ave_calib,&rms_calib)){
            fill_energy("HF",eta,phi,depth,ave/ave_calib,2);
      }
   } 

  //fill RM histograms: this part is incomplete, will be modefied later 
  double hbp[18][4],nhbp[18][4],hbm[18][4],nhbm[18][4];
  double hep[18][4],nhep[18][4],hem[18][4],nhem[18][4];
  double hfp[18][4],nhfp[18][4],hfm[18][4],nhfm[18][4];
  double ho0[18][4],nho0[18][4];
  double ho1p[18][4],nho1p[18][4];
  double ho2p[18][4],nho2p[18][4];
  double ho1m[18][4],nho1m[18][4];
  double ho2m[18][4],nho2m[18][4];
  for(int i=0;i<18;i++) for(int j=0;j<4;j++)
   hbp[i][j]=nhbp[i][j]=hbm[i][j]=nhbm[i][j]=hep[i][j]=nhep[i][j]=hem[i][j]=nhem[i][j]=hfp[i][j]=nhfp[i][j]=hfm[i][j]=nhfm[i][j]=0;
  for(int i=0;i<18;i++) for(int j=0;j<4;j++)
   ho0[i][j]=nho0[i][j]=ho1p[i][j]=nho1p[i][j]=ho2p[i][j]=nho2p[i][j]=ho1m[i][j]=nho1m[i][j]=ho2m[i][j]=nho2m[i][j]=0;

   std::vector <HcalElectronicsId> AllElIds = emap->allElectronicsIdPrecision();
   for(std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin(); eid != AllElIds.end(); eid++){
      DetId detid=emap->lookup(*eid);
      if(detid.det()!=DetId::Hcal) continue;
      HcalGenericDetId gid(emap->lookup(*eid));
      if(!(!(gid.null()) && 
            (gid.genericSubdet()==HcalGenericDetId::HcalGenBarrel ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenEndcap  ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenForward ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenOuter))) continue;
      int sd=0,eta=0,phi=0,depth=0; 
      if(gid.genericSubdet()==HcalGenericDetId::HcalGenBarrel)      sd=0;
      else if(gid.genericSubdet()==HcalGenericDetId::HcalGenEndcap) sd=1;
      else if(gid.genericSubdet()==HcalGenericDetId::HcalGenOuter)  sd=2;
      else if(gid.genericSubdet()==HcalGenericDetId::HcalGenForward)sd=3;
      HcalDetId hid(detid);
      if(KnownBadCells_.find(hid.rawId())==KnownBadCells_.end()) continue;
    
      eta=hid.ieta();
      phi=hid.iphi();
      depth=hid.depth(); 
      
      double ave =get_energy(subdet[sd],eta,phi,depth,1);
      double ref =get_energy(subdet[sd],eta,phi,depth,2);

      HcalFrontEndId  lmap_entry=logicalMap_->getHcalFrontEndId(hid);
      int rbx; 
      if(sd==0 || sd==1 || sd==3){
           sscanf(&(lmap_entry.rbx().c_str())[3],"%d",&rbx);
      }else{
           if(abs(eta)<5) sscanf(&(lmap_entry.rbx().c_str())[3],"%d",&rbx);
           if(abs(eta)>=5) sscanf(&(lmap_entry.rbx().c_str())[4],"%d",&rbx);           
      }
      if(ave>0 && ref>0){
           if(sd==0 && eta>0){ hbp[rbx-1][lmap_entry.rm()-1]+=ave/ref; nhbp[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==0 && eta<0){ hbm[rbx-1][lmap_entry.rm()-1]+=ave/ref; nhbm[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==1 && eta>0){ hep[rbx-1][lmap_entry.rm()-1]+=ave/ref; nhep[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==1 && eta<0){ hem[rbx-1][lmap_entry.rm()-1]+=ave/ref; nhem[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==3 && eta>0){ hfp[rbx-1][lmap_entry.rm()-1]+=ave/ref; nhfp[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==3 && eta<0){ hfm[rbx-1][lmap_entry.rm()-1]+=ave/ref; nhfm[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==2 && abs(eta)<5){ ho0[rbx-1][lmap_entry.rm()-1]+=ave/ref; nho0[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==2 && eta>=5 && eta<=10){ ho1p[rbx-1][lmap_entry.rm()-1]+=ave/ref; nho1p[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==2 && eta>=11 && eta<=15){ ho2p[rbx-1][lmap_entry.rm()-1]+=ave/ref; nho2p[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==2 && eta>=-10 && eta<=-5){ ho1m[rbx-1][lmap_entry.rm()-1]+=ave/ref; nho1m[rbx-1][lmap_entry.rm()-1]++; }
           if(sd==2 && eta>=-15 && eta<=-11){ ho2m[rbx-1][lmap_entry.rm()-1]+=ave/ref; nho2m[rbx-1][lmap_entry.rm()-1]++; }
      }
  }  
  for(int i=0;i<18;i++)for(int j=0;j<4;j++){
     int phi=i*4+j+1; 
     if(nhbp[i][j]>1) HBPphi->Fill(phi+0.5,hbp[i][j]/nhbp[i][j]);
     if(nhbm[i][j]>1) HBMphi->Fill(phi+0.5,hbm[i][j]/nhbm[i][j]);
     if(nhep[i][j]>1) HEPphi->Fill(phi+0.5,hep[i][j]/nhep[i][j]);
     if(nhem[i][j]>1) HEMphi->Fill(phi+0.5,hem[i][j]/nhem[i][j]);
  }   
  for(int i=0;i<12;i++)for(int j=0;j<3;j++){
     int phi=i*3+j+1; 
     if(nhfp[i][j]>1) HFPphi->Fill(phi+0.5,hfp[i][j]/nhfp[i][j]);
     if(nhfm[i][j]>1) HFMphi->Fill(phi+0.5,hfm[i][j]/nhfm[i][j]);
  } 
  for(int i=0;i<12;i++)for(int j=0;j<4;j++){
     int phi=i*4+j+1; 
     if(nho0[i][j]>1) HO0phi->Fill(phi+0.5,ho0[i][j]/nho0[i][j]);
     if(nho1p[i][j]>1) HO1Pphi->Fill(phi+0.5,ho1p[i][j]/nho1p[i][j]);
     if(nho2p[i][j]>1) HO2Pphi->Fill(phi+0.5,ho2p[i][j]/nho2p[i][j]);
     if(nho1m[i][j]>1) HO1Mphi->Fill(phi+0.5,ho1m[i][j]/nho1m[i][j]);
     if(nho2m[i][j]>1) HO2Mphi->Fill(phi+0.5,ho2m[i][j]/nho2m[i][j]);
  } 
} 
double HcalDetDiagLEDMonitor::get_energy ( std::string  subdet,
int  eta,
int  phi,
int  depth,
int  type 
) [private]

Definition at line 1202 of file HcalDetDiagLEDMonitor.cc.

References CalcEtaBin(), ChannelsLEDEnergy, ChannelsLEDEnergyRef, EtaPhiHists::depth, HcalBarrel, HcalEndcap, HcalForward, and HcalOuter.

Referenced by fillHistos().

                                                                                           {
  int subdetval=-1;
  if (subdet.compare("HB")==0) subdetval=(int)HcalBarrel;
  else if (subdet.compare("HE")==0) subdetval=(int)HcalEndcap;
  else if (subdet.compare("HO")==0) subdetval=(int)HcalOuter;
  else if (subdet.compare("HF")==0) subdetval=(int)HcalForward;
  else return -1.0;

  int ietabin=CalcEtaBin(subdetval, eta, depth)+1;
  if(type==1) return ChannelsLEDEnergy->depth[depth-1]  ->getBinContent(ietabin, phi);
  else if(type==2) return ChannelsLEDEnergyRef->depth[depth-1] ->getBinContent(ietabin,phi);
  return -1.0;
}
HcalDetDiagLEDData* HcalDetDiagLEDMonitor::GetCalib ( std::string  sd,
int  eta,
int  phi 
) [inline, private]

Definition at line 127 of file HcalDetDiagLEDMonitor.cc.

References abs, calib_data, ETA, PHI, and SD.

Referenced by fillHistos().

                                                            {
    int SD=0,ETA=0,PHI=0;
    if(sd.compare("HB")==0) SD=1; 
    if(sd.compare("HE")==0) SD=2; 
    if(sd.compare("HO")==0) SD=3; 
    if(sd.compare("HF")==0) SD=4; 
    if(SD==1 || SD==2){
      if(eta>0) ETA=1; else ETA=-1;
      if(phi==71 ||phi==72 || phi==1 || phi==2) PHI=71; else PHI=((phi-3)/4)*4+3;
    }else if(SD==3){
      if(abs(eta)<=4){
        ETA=0;
        if(phi==71 ||phi==72 || phi==1 || phi==2 || phi==3 || phi==4) PHI=71; else PHI=((phi-5)/6)*6+5;
      }else{
        if(abs(eta)>4  && abs(eta)<=10)  ETA=1;
        if(abs(eta)>10 && abs(eta)<=15)  ETA=2;
        if(eta<0) ETA=-ETA;
        if(phi==71 ||phi==72 || (phi>=1 && phi<=10)) PHI=71; else PHI=((phi-11)/12)*12+11;
      }
    }else if(SD==4){
      if(eta>0) ETA=1; else ETA=-1;
      if(phi>=1  && phi<=18) PHI=1;
      if(phi>=19 && phi<=36) PHI=19;
      if(phi>=37 && phi<=54) PHI=37;
      if(phi>=55 && phi<=72) PHI=55;
    }
    return &calib_data[SD][ETA+2][PHI-1];
  };
int HcalDetDiagLEDMonitor::GetStatistics ( ) [inline]

Definition at line 120 of file HcalDetDiagLEDMonitor.cc.

References ievt_.

{ return ievt_; }
void HcalDetDiagLEDMonitor::LoadReference ( ) [private]

Definition at line 1019 of file HcalDetDiagLEDMonitor.cc.

References calib_data, reco::tau::disc::Eta(), f, hb_data, he_data, hf_data, ho_data, IsReference, colinearityKinematic::Phi, ReferenceData, ReferenceRun, plotscripts::rms(), HcalDetDiagLEDData::set_reference(), AlCaHLTBitMon_QueryRunRegistry::string, and lumiQTWidget::t.

Referenced by setup().

                                         {
double led,rms;
int Eta,Phi,Depth;
char subdet[10];
TFile *f;
   if(gSystem->AccessPathName(ReferenceData.c_str())) return;
   f = new TFile(ReferenceData.c_str(),"READ");
   if(!f->IsOpen()) return ;
   TObjString *STR=(TObjString *)f->Get("run number");
   if(STR){ std::string Ref(STR->String()); ReferenceRun=Ref;}
   TTree*  t=(TTree*)f->Get("HCAL LED data");
   if(!t) return;
   t->SetBranchAddress("Subdet",   subdet);
   t->SetBranchAddress("eta",      &Eta);
   t->SetBranchAddress("phi",      &Phi);
   t->SetBranchAddress("depth",    &Depth);
   t->SetBranchAddress("led",      &led);
   t->SetBranchAddress("rms",      &rms);
   for(int ievt=0;ievt<t->GetEntries();ievt++){

     t->GetEntry(ievt);
     if(strcmp(subdet,"HB")==0) hb_data[Eta+42][Phi-1][Depth-1].set_reference(led,rms);
     if(strcmp(subdet,"HE")==0) he_data[Eta+42][Phi-1][Depth-1].set_reference(led,rms);
     if(strcmp(subdet,"HO")==0) ho_data[Eta+42][Phi-1][Depth-1].set_reference(led,rms);
     if(strcmp(subdet,"HF")==0) hf_data[Eta+42][Phi-1][Depth-1].set_reference(led,rms);
     if(strcmp(subdet,"CALIB_HB")==0) calib_data[1][Eta+2][Phi-1].set_reference(led,rms);
     if(strcmp(subdet,"CALIB_HE")==0) calib_data[2][Eta+2][Phi-1].set_reference(led,rms);
     if(strcmp(subdet,"CALIB_HO")==0) calib_data[3][Eta+2][Phi-1].set_reference(led,rms);
     if(strcmp(subdet,"CALIB_HF")==0) calib_data[4][Eta+2][Phi-1].set_reference(led,rms);
   }
   f->Close();
   IsReference=true;
} 
void HcalDetDiagLEDMonitor::reset ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 285 of file HcalDetDiagLEDMonitor.cc.

Referenced by beginRun().

{}
void HcalDetDiagLEDMonitor::SaveReference ( ) [private]

Definition at line 702 of file HcalDetDiagLEDMonitor.cc.

References HcalElectronicsMap::allElectronicsIdPrecision(), calib_data, dataset_seq_number, HcalDetId::depth(), DetId::det(), cond::rpcobgas::detid, alignCSCRings::e, emap, eta(), reco::tau::disc::Eta(), patZpeak::events, HcalDetDiagLEDData::get_average_led(), HcalDetDiagLEDData::get_average_time(), HcalDetDiagLEDData::get_statistics(), HcalDetDiagLEDData::get_status(), hb_data, DetId::Hcal, HcalBarrel, HcalEndcap, HcalForward, HcalGenericDetId::HcalGenBarrel, HcalGenericDetId::HcalGenEndcap, HcalGenericDetId::HcalGenForward, HcalGenericDetId::HcalGenOuter, HcalOuter, he_data, hf_data, ho_data, HcalDetId::ieta(), ievt_, HcalDetId::iphi(), HcalElectronicsMap::lookup(), OutputFilePath, phi, colinearityKinematic::Phi, plotscripts::rms(), DTTTrigCorrFirst::run, run_number, sd, step1_ZMM_7Tev::Status, AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), lumiQTWidget::t, interactiveExample::theFile, Time, cond::rpcobgas::time, diffTreeTool::tree, xmlFile(), and XmlFilePath.

Referenced by endRun().

                                         {
double led,rms,Time,time_rms;
int    Eta,Phi,Depth,Statistic,Status=0;
char   Subdet[10],str[500];
       sprintf(str,"%sHcalDetDiagLEDData_run%06i_%i.root",OutputFilePath.c_str(),run_number,dataset_seq_number);
       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");
       
       TTree *tree   =new TTree("HCAL LED data","HCAL LED data");
       if(tree==0)   return;
       tree->Branch("Subdet",   &Subdet,         "Subdet/C");
       tree->Branch("eta",      &Eta,            "Eta/I");
       tree->Branch("phi",      &Phi,            "Phi/I");
       tree->Branch("depth",    &Depth,          "Depth/I");
       tree->Branch("statistic",&Statistic,      "Statistic/I");
       tree->Branch("status",   &Status,         "Status/I");
       tree->Branch("led",      &led,            "led/D");
       tree->Branch("rms",      &rms,            "rms/D");
       tree->Branch("time",     &Time,           "time/D");
       tree->Branch("time_rms", &time_rms,       "time_rms/D");
       sprintf(Subdet,"HB");
       for(int eta=-16;eta<=16;eta++) for(int phi=1;phi<=72;phi++) for(int depth=1;depth<=2;depth++){
          if((Statistic=hb_data[eta+42][phi-1][depth-1].get_statistics())>100){
             Eta=eta; Phi=phi; Depth=depth;
             Status=hb_data[eta+42][phi-1][depth-1].get_status();
             hb_data[eta+42][phi-1][depth-1].get_average_led(&led,&rms);
             hb_data[eta+42][phi-1][depth-1].get_average_time(&Time,&time_rms);
             tree->Fill();
          }
       } 
       sprintf(Subdet,"HE");
       for(int eta=-29;eta<=29;eta++) for(int phi=1;phi<=72;phi++) for(int depth=1;depth<=3;depth++){
         if((Statistic=he_data[eta+42][phi-1][depth-1].get_statistics())>100){
            Eta=eta; Phi=phi; Depth=depth;
            Status=he_data[eta+42][phi-1][depth-1].get_status();
            he_data[eta+42][phi-1][depth-1].get_average_led(&led,&rms);
            he_data[eta+42][phi-1][depth-1].get_average_time(&Time,&time_rms);
            tree->Fill();
         }
       } 
       sprintf(Subdet,"HO");
       for(int eta=-15;eta<=15;eta++) for(int phi=1;phi<=72;phi++) for(int depth=4;depth<=4;depth++){
         if((Statistic=ho_data[eta+42][phi-1][depth-1].get_statistics())>100){
             Eta=eta; Phi=phi; Depth=depth;
             Status=ho_data[eta+42][phi-1][depth-1].get_status();
             ho_data[eta+42][phi-1][depth-1].get_average_led(&led,&rms);
             ho_data[eta+42][phi-1][depth-1].get_average_time(&Time,&time_rms);
             tree->Fill();
         }
       } 
       sprintf(Subdet,"HF");
       for(int eta=-42;eta<=42;eta++) for(int phi=1;phi<=72;phi++) for(int depth=1;depth<=2;depth++){
         if((Statistic=hf_data[eta+42][phi-1][depth-1].get_statistics())>100){
             Eta=eta; Phi=phi; Depth=depth;
             Status=hf_data[eta+42][phi-1][depth-1].get_status();
             hf_data[eta+42][phi-1][depth-1].get_average_led(&led,&rms);
             hf_data[eta+42][phi-1][depth-1].get_average_time(&Time,&time_rms);
             tree->Fill();
         }
       }
       sprintf(Subdet,"CALIB_HB");
       for(int eta=-1;eta<=1;eta++) for(int phi=1;phi<=72;phi++){
          if((calib_data[1][eta+2][phi-1].get_statistics())>100){
             Eta=eta; Phi=phi; Depth=0;
             Status=calib_data[1][eta+2][phi-1].get_status();
             calib_data[1][eta+2][phi-1].get_average_led(&led,&rms);
             calib_data[1][eta+2][phi-1].get_average_time(&Time,&time_rms);
             tree->Fill();
          }
       } 
       sprintf(Subdet,"CALIB_HE");
       for(int eta=-1;eta<=1;eta++) for(int phi=1;phi<=72;phi++){
          if((calib_data[2][eta+2][phi-1].get_statistics())>100){
             Eta=eta; Phi=phi; Depth=0;
             Status=calib_data[2][eta+2][phi-1].get_status();
             calib_data[2][eta+2][phi-1].get_average_led(&led,&rms);
             calib_data[2][eta+2][phi-1].get_average_time(&Time,&time_rms);
             tree->Fill();
          }
       } 
       sprintf(Subdet,"CALIB_HO");
       for(int eta=-2;eta<=2;eta++) for(int phi=1;phi<=72;phi++){
          if((calib_data[3][eta+2][phi-1].get_statistics())>100){
             Eta=eta; Phi=phi; Depth=0;
             Status=calib_data[3][eta+2][phi-1].get_status();
             calib_data[3][eta+2][phi-1].get_average_led(&led,&rms);
             calib_data[3][eta+2][phi-1].get_average_time(&Time,&time_rms);
             tree->Fill();
          }
       } 
       sprintf(Subdet,"CALIB_HF");
       for(int eta=-2;eta<=2;eta++) for(int phi=1;phi<=72;phi++){
          if((calib_data[4][eta+2][phi-1].get_statistics())>100){
             Eta=eta; Phi=phi; Depth=0;
             Status=calib_data[4][eta+2][phi-1].get_status();
             calib_data[4][eta+2][phi-1].get_average_led(&led,&rms);
             calib_data[4][eta+2][phi-1].get_average_time(&Time,&time_rms);
             tree->Fill();
          }
       } 
       theFile->Write();
       theFile->Close();


   if(XmlFilePath.size()>0){
      //create XML file
      char TIME[40];
      Long_t t; t=time(0); strftime(TIME,30,"%F %T",localtime(&t));

      sprintf(str,"HcalDetDiagLED_%i_%i.xml",run_number,dataset_seq_number);
      std::string xmlName=str;
      ofstream xmlFile;
      xmlFile.open(xmlName.c_str());

      xmlFile<<"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
      xmlFile<<"<ROOT>\n";
      xmlFile<<"  <HEADER>\n";
      xmlFile<<"    <HINTS mode='only-det-root'/>\n";
      xmlFile<<"    <TYPE>\n";
      xmlFile<<"      <EXTENSION_TABLE_NAME>HCAL_DETMON_LED_LASER_V1</EXTENSION_TABLE_NAME>\n";
      xmlFile<<"      <NAME>HCAL LED [local]</NAME>\n";
      xmlFile<<"    </TYPE>\n";
      xmlFile<<"    <!-- run details -->\n";
      xmlFile<<"    <RUN>\n";
      xmlFile<<"      <RUN_TYPE>LOCAL-RUN</RUN_TYPE>\n";
      xmlFile<<"      <RUN_NUMBER>"<<run_number<<"</RUN_NUMBER>\n";
      xmlFile<<"      <RUN_BEGIN_TIMESTAMP>2009-01-01 00:00:00</RUN_BEGIN_TIMESTAMP>\n";
      xmlFile<<"      <COMMENT_DESCRIPTION>hcal LED data</COMMENT_DESCRIPTION>\n";
      xmlFile<<"      <LOCATION>P5</LOCATION>\n";
      xmlFile<<"      <INITIATED_BY_USER>dma</INITIATED_BY_USER>\n";
      xmlFile<<"    </RUN>\n";
      xmlFile<<"  </HEADER>\n";
      xmlFile<<"  <DATA_SET>\n";
      xmlFile<<"     <!-- optional dataset metadata -->\n\n";
      xmlFile<<"     <SET_NUMBER>"<<dataset_seq_number<<"</SET_NUMBER>\n";
      xmlFile<<"     <SET_BEGIN_TIMESTAMP>2009-01-01 00:00:00</SET_BEGIN_TIMESTAMP>\n";
      xmlFile<<"     <SET_END_TIMESTAMP>2009-01-01 00:00:00</SET_END_TIMESTAMP>\n";
      xmlFile<<"     <NUMBER_OF_EVENTS_IN_SET>"<<ievt_<<"</NUMBER_OF_EVENTS_IN_SET>\n";
      xmlFile<<"     <COMMENT_DESCRIPTION>Automatic DQM output</COMMENT_DESCRIPTION>\n";
      xmlFile<<"     <DATA_FILE_NAME>"<< xmlName <<"</DATA_FILE_NAME>\n";
      xmlFile<<"     <IMAGE_FILE_NAME>data plot url or file path</IMAGE_FILE_NAME>\n";
      xmlFile<<"     <!-- who and when created this dataset-->\n\n";
      xmlFile<<"     <CREATE_TIMESTAMP>"<<TIME<<"</CREATE_TIMESTAMP>\n";
      xmlFile<<"     <CREATED_BY_USER>dma</CREATED_BY_USER>\n";
      xmlFile<<"     <!-- version (string) and subversion (number) -->\n";
      xmlFile<<"     <!-- fields are used to read data back from the database -->\n\n";
      xmlFile<<"     <VERSION>"<<run_number<<dataset_seq_number<<"</VERSION>\n";
      xmlFile<<"     <SUBVERSION>1</SUBVERSION>\n";
      xmlFile<<"     <!--  Assign predefined dataset attributes -->\n\n";
      xmlFile<<"     <PREDEFINED_ATTRIBUTES>\n";
      xmlFile<<"        <ATTRIBUTE>\n";
      xmlFile<<"           <NAME>HCAL Dataset Status</NAME>\n";
      xmlFile<<"           <VALUE>VALID</VALUE>\n";
      xmlFile<<"        </ATTRIBUTE>\n";
      xmlFile<<"     </PREDEFINED_ATTRIBUTES>\n";
      xmlFile<<"     <!-- multiple data block records -->\n\n";

      std::vector <HcalElectronicsId> AllElIds = emap->allElectronicsIdPrecision();
      for(std::vector <HcalElectronicsId>::iterator eid = AllElIds.begin(); eid != AllElIds.end(); eid++){
         DetId detid=emap->lookup(*eid);
         if (detid.det()!=DetId::Hcal) continue;
         HcalGenericDetId gid(emap->lookup(*eid));
         if(!(!(gid.null()) && 
            (gid.genericSubdet()==HcalGenericDetId::HcalGenBarrel ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenEndcap  ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenForward ||
             gid.genericSubdet()==HcalGenericDetId::HcalGenOuter))) continue;
         int eta,phi,depth; 
         std::string subdet="";
         HcalDetId hid(detid);
         eta=hid.ieta();
         phi=hid.iphi();
         depth=hid.depth(); 
         
         double e=0,e_rms=0,t=0,t_rms=0;
         if(detid.subdetId()==HcalBarrel){
             subdet="HB";
             Statistic=hb_data[eta+42][phi-1][depth-1].get_statistics();
             Status   =hb_data[eta+42][phi-1][depth-1].get_status();
             hb_data[eta+42][phi-1][depth-1].get_average_led(&e,&e_rms);
             hb_data[eta+42][phi-1][depth-1].get_average_time(&t,&t_rms);
         }else if(detid.subdetId()==HcalEndcap){
             subdet="HE";
             Statistic=he_data[eta+42][phi-1][depth-1].get_statistics();
             Status   =he_data[eta+42][phi-1][depth-1].get_status();
             he_data[eta+42][phi-1][depth-1].get_average_led(&e,&e_rms);
             he_data[eta+42][phi-1][depth-1].get_average_time(&t,&t_rms);
         }else if(detid.subdetId()==HcalForward){
             subdet="HF";
             Statistic=hf_data[eta+42][phi-1][depth-1].get_statistics();
             Status   =hf_data[eta+42][phi-1][depth-1].get_status();
             hf_data[eta+42][phi-1][depth-1].get_average_led(&e,&e_rms);
             hf_data[eta+42][phi-1][depth-1].get_average_time(&t,&t_rms);
         }else if(detid.subdetId()==HcalOuter){
             subdet="HO";
             Statistic=ho_data[eta+42][phi-1][depth-1].get_statistics();
             Status   =ho_data[eta+42][phi-1][depth-1].get_status();
             ho_data[eta+42][phi-1][depth-1].get_average_led(&e,&e_rms);
             ho_data[eta+42][phi-1][depth-1].get_average_time(&t,&t_rms);
         }else continue;
         xmlFile<<"       <DATA>\n";
         xmlFile<<"          <NUMBER_OF_EVENTS_USED>"<<Statistic<<"</NUMBER_OF_EVENTS_USED>\n";
         xmlFile<<"          <SIGNAL_MEAN>"<<e<<"</SIGNAL_MEAN>\n";
         xmlFile<<"          <SIGNAL_RMS>"<<e_rms<<"</SIGNAL_RMS>\n";
         xmlFile<<"          <TIME_MEAN>"<<t<<"</TIME_MEAN>\n";
         xmlFile<<"          <TIME_RMS>"<<t_rms<<"</TIME_RMS>\n";
         xmlFile<<"          <CHANNEL_STATUS_WORD>"<<Status<<"</CHANNEL_STATUS_WORD>\n";
         xmlFile<<"          <CHANNEL_OBJECTNAME>HcalDetId</CHANNEL_OBJECTNAME>\n";
         xmlFile<<"             <SUBDET>"<<subdet<<"</SUBDET>\n";
         xmlFile<<"             <IETA>"<<eta<<"</IETA>\n";
         xmlFile<<"             <IPHI>"<<phi<<"</IPHI>\n";
         xmlFile<<"             <DEPTH>"<<depth<<"</DEPTH>\n";
         xmlFile<<"             <TYPE>0</TYPE>\n";
         xmlFile<<"       </DATA>\n";
      }
      xmlFile<<"  </DATA_SET>\n";
      xmlFile<<"</ROOT>\n";
      xmlFile.close();

      //create CALIB XML file 
      sprintf(str,"HcalDetDiagLEDCalib_%i_%i.xml",run_number,dataset_seq_number);
      std::string xmlNameCalib=str;
      ofstream xmlFileCalib;
      xmlFileCalib.open(xmlNameCalib.c_str());

      xmlFileCalib<<"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\n";
      xmlFileCalib<<"<ROOT>\n";
      xmlFileCalib<<"  <HEADER>\n";
      xmlFileCalib<<"    <HINTS mode='only-det-root'/>\n";
      xmlFileCalib<<"    <TYPE>\n";
      xmlFileCalib<<"      <EXTENSION_TABLE_NAME>HCAL_DETMON_LED_LASER_V1</EXTENSION_TABLE_NAME>\n";
      xmlFileCalib<<"      <NAME>HCAL LED CALIB [local]</NAME>\n";
      xmlFileCalib<<"    </TYPE>\n";
      xmlFileCalib<<"    <!-- run details -->\n";
      xmlFileCalib<<"    <RUN>\n";
      xmlFileCalib<<"      <RUN_TYPE>LOCAL-RUN</RUN_TYPE>\n";
      xmlFileCalib<<"      <RUN_NUMBER>"<<run_number<<"</RUN_NUMBER>\n";
      xmlFileCalib<<"      <RUN_BEGIN_TIMESTAMP>2009-01-01 00:00:00</RUN_BEGIN_TIMESTAMP>\n";
      xmlFileCalib<<"      <COMMENT_DESCRIPTION>hcal LED CALIB data</COMMENT_DESCRIPTION>\n";
      xmlFileCalib<<"      <LOCATION>P5</LOCATION>\n";
      xmlFileCalib<<"      <INITIATED_BY_USER>dma</INITIATED_BY_USER>\n";
      xmlFileCalib<<"    </RUN>\n";
      xmlFileCalib<<"  </HEADER>\n";
      xmlFileCalib<<"  <DATA_SET>\n";
      xmlFileCalib<<"     <!-- optional dataset metadata -->\n\n";
      xmlFileCalib<<"     <SET_NUMBER>"<<dataset_seq_number<<"</SET_NUMBER>\n";
      xmlFileCalib<<"     <SET_BEGIN_TIMESTAMP>2009-01-01 00:00:00</SET_BEGIN_TIMESTAMP>\n";
      xmlFileCalib<<"     <SET_END_TIMESTAMP>2009-01-01 00:00:00</SET_END_TIMESTAMP>\n";
      xmlFileCalib<<"     <NUMBER_OF_EVENTS_IN_SET>"<<ievt_<<"</NUMBER_OF_EVENTS_IN_SET>\n";
      xmlFileCalib<<"     <COMMENT_DESCRIPTION>Automatic DQM output</COMMENT_DESCRIPTION>\n";
      xmlFileCalib<<"     <DATA_FILE_NAME>"<< xmlNameCalib <<"</DATA_FILE_NAME>\n";
      xmlFileCalib<<"     <IMAGE_FILE_NAME>data plot url or file path</IMAGE_FILE_NAME>\n";
      xmlFileCalib<<"     <!-- who and when created this dataset-->\n\n";
      xmlFileCalib<<"     <CREATE_TIMESTAMP>"<<TIME<<"</CREATE_TIMESTAMP>\n";
      xmlFileCalib<<"     <CREATED_BY_USER>dma</CREATED_BY_USER>\n";
      xmlFileCalib<<"     <!-- version (string) and subversion (number) -->\n";
      xmlFileCalib<<"     <!-- fields are used to read data back from the database -->\n\n";
      xmlFileCalib<<"     <VERSION>"<<run_number<<dataset_seq_number<<"</VERSION>\n";
      xmlFileCalib<<"     <SUBVERSION>1</SUBVERSION>\n";
      xmlFileCalib<<"     <!--  Assign predefined dataset attributes -->\n\n";
      xmlFileCalib<<"     <PREDEFINED_ATTRIBUTES>\n";
      xmlFileCalib<<"        <ATTRIBUTE>\n";
      xmlFileCalib<<"           <NAME>HCAL Dataset Status</NAME>\n";
      xmlFileCalib<<"           <VALUE>VALID</VALUE>\n";
      xmlFileCalib<<"        </ATTRIBUTE>\n";
      xmlFileCalib<<"     </PREDEFINED_ATTRIBUTES>\n";
      xmlFileCalib<<"     <!-- multiple data block records -->\n\n";

      for(int sd=1;sd<=4;sd++) for(int eta=-2;eta<=2;eta++) for(int phi=1;phi<=72;phi++){
         std::string subdet="";
         if(sd==1) subdet="HB";
         if(sd==2) subdet="HE";
         if(sd==3) subdet="HO";
         if(sd==4) subdet="HF";
         if((calib_data[sd][eta+2][phi-1].get_statistics())>100){
             double e=0,e_rms=0,t=0,t_rms=0;
             Status=calib_data[sd][eta+2][phi-1].get_status();
             Statistic=calib_data[sd][eta+2][phi-1].get_statistics(); 
             calib_data[sd][eta+2][phi-1].get_average_led(&e,&e_rms);
             calib_data[sd][eta+2][phi-1].get_average_time(&t,&t_rms);
             xmlFileCalib<<"       <DATA>\n";
             xmlFileCalib<<"          <NUMBER_OF_EVENTS_USED>"<<Statistic<<"</NUMBER_OF_EVENTS_USED>\n";
             xmlFileCalib<<"          <SIGNAL_MEAN>"<<e<<"</SIGNAL_MEAN>\n";
             xmlFileCalib<<"          <SIGNAL_RMS>"<<e_rms<<"</SIGNAL_RMS>\n";
             xmlFileCalib<<"          <TIME_MEAN>"<<t<<"</TIME_MEAN>\n";
             xmlFileCalib<<"          <TIME_RMS>"<<t_rms<<"</TIME_RMS>\n";
             xmlFileCalib<<"          <CHANNEL_STATUS_WORD>"<<Status<<"</CHANNEL_STATUS_WORD>\n";
             xmlFileCalib<<"          <CHANNEL_OBJECTNAME>HcalDetId</CHANNEL_OBJECTNAME>\n";
             xmlFileCalib<<"             <SUBDET>"<<subdet<<"</SUBDET>\n";
             xmlFileCalib<<"             <IETA>"<<eta<<"</IETA>\n";
             xmlFileCalib<<"             <IPHI>"<<phi<<"</IPHI>\n";
             xmlFileCalib<<"             <DEPTH>"<<0<<"</DEPTH>\n";
             xmlFileCalib<<"             <TYPE>0</TYPE>\n";
             xmlFileCalib<<"       </DATA>\n";  
         }
      }
      xmlFileCalib<<"  </DATA_SET>\n";
      xmlFileCalib<<"</ROOT>\n";
      xmlFileCalib.close();

      sprintf(str,"zip %s.zip %s %s",xmlName.c_str(),xmlName.c_str(),xmlNameCalib.c_str());
      system(str);
      sprintf(str,"rm -f %s %s",xmlName.c_str(),xmlNameCalib.c_str());
      system(str);
      sprintf(str,"mv -f %s.zip %s",xmlName.c_str(),XmlFilePath.c_str());
      system(str);
   }


   dataset_seq_number++;
}
void HcalDetDiagLEDMonitor::setup ( void  ) [virtual]

Reimplemented from HcalBaseDQMonitor.

Definition at line 313 of file HcalDetDiagLEDMonitor.cc.

References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookInt(), DQMStore::bookString(), ChannelsLEDEnergy, ChannelsLEDEnergyRef, ChannelStatusLEDMean, ChannelStatusLEDRMS, ChannelStatusMissingChannels, ChannelStatusTimeMean, ChannelStatusTimeRMS, ChannelStatusUnstableChannels, ChannelStatusUnstableLEDsignal, HcalBaseDQMonitor::dbe_, Energy, Energy2Dhbhehf, Energy2Dho, EnergyCorr, EnergyHF, EnergyRMS, EnergyRMSHF, HBMphi, HBPphi, HEMphi, HEPphi, HFMphi, HFPphi, HO0phi, HO1Mphi, HO1Pphi, HO2Mphi, HO2Pphi, LoadReference(), meEVT_, meRUN_, mergeVDriftHistosByStation::name, ReferenceRun, RefRun_, DQMStore::setCurrentFolder(), EtaPhiHists::setup(), AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, Time, Time2Dhbhehf, Time2Dho, TimeHF, TimeRMS, and TimeRMSHF.

Referenced by beginRun().

                                 {
     // Call base class setup
     HcalBaseDQMonitor::setup();
     if (!dbe_) return;

     std::string name;
     dbe_->setCurrentFolder(subdir_);   
     meEVT_ = dbe_->bookInt("HcalDetDiagLEDMonitor Event Number");
     meRUN_ = dbe_->bookInt("HcalDetDiagLEDMonitor Run Number");
     ReferenceRun="UNKNOWN";
     LoadReference();
     dbe_->setCurrentFolder(subdir_);
     RefRun_= dbe_->bookString("HcalDetDiagLEDMonitor Reference Run",ReferenceRun);
     dbe_->setCurrentFolder(subdir_+"Summary Plots");
     
     name="HBHEHO LED Energy Distribution";               Energy         = dbe_->book1D(name,name,200,0,3000);
     name="HBHEHO LED Timing Distribution";               Time           = dbe_->book1D(name,name,200,0,10);
     name="HBHEHO LED Energy RMS_div_Energy Distribution";EnergyRMS      = dbe_->book1D(name,name,200,0,0.2);
     name="HBHEHO LED Timing RMS Distribution";           TimeRMS        = dbe_->book1D(name,name,200,0,0.4);
     name="HF LED Energy Distribution";                   EnergyHF       = dbe_->book1D(name,name,200,0,3000);
     name="HF LED Timing Distribution";                   TimeHF         = dbe_->book1D(name,name,200,0,10);
     name="HF LED Energy RMS_div_Energy Distribution";    EnergyRMSHF    = dbe_->book1D(name,name,200,0,0.5);
     name="HF LED Timing RMS Distribution";               TimeRMSHF      = dbe_->book1D(name,name,200,0,0.4);
     name="LED Energy Corr(PinDiod) Distribution";        EnergyCorr     = dbe_->book1D(name,name,200,0,10);
     name="LED Timing HBHEHF";                            Time2Dhbhehf   = dbe_->book2D(name,name,87,-43,43,74,0,73);
     name="LED Timing HO";                                Time2Dho       = dbe_->book2D(name,name,33,-16,16,74,0,73);
     name="LED Energy HBHEHF";                            Energy2Dhbhehf = dbe_->book2D(name,name,87,-43,43,74,0,73);
     name="LED Energy HO";                                Energy2Dho     = dbe_->book2D(name,name,33,-16,16,74,0,73);

     name="HBP Average over HPD LED Ref";          HBPphi = dbe_->book2D(name,name,180,1,73,400,0,2);
     name="HBM Average over HPD LED Ref";          HBMphi = dbe_->book2D(name,name,180,1,73,400,0,2);
     name="HEP Average over HPD LED Ref";          HEPphi = dbe_->book2D(name,name,180,1,73,400,0,2);
     name="HEM Average over HPD LED Ref";          HEMphi = dbe_->book2D(name,name,180,1,73,400,0,2);
     name="HFP Average over RM LED Ref";           HFPphi = dbe_->book2D(name,name,180,1,37,400,0,2);
     name="HFM Average over RM LED Ref";           HFMphi = dbe_->book2D(name,name,180,1,37,400,0,2);
     name="HO0 Average over HPD LED Ref";          HO0phi = dbe_->book2D(name,name,180,1,49,400,0,2);
     name="HO1P Average over HPD LED Ref";         HO1Pphi= dbe_->book2D(name,name,180,1,49,400,0,2);
     name="HO2P Average over HPD LED Ref";         HO2Pphi= dbe_->book2D(name,name,180,1,49,400,0,2);
     name="HO1M Average over HPD LED Ref";         HO1Mphi= dbe_->book2D(name,name,180,1,49,400,0,2);
     name="HO2M Average over HPD LED Ref";         HO2Mphi= dbe_->book2D(name,name,180,1,49,400,0,2);

     ChannelsLEDEnergy = new EtaPhiHists();
     ChannelsLEDEnergy->setup(dbe_," Channel LED Energy");
     ChannelsLEDEnergyRef = new EtaPhiHists();
     ChannelsLEDEnergyRef->setup(dbe_," Channel LED Energy Reference");
     
     dbe_->setCurrentFolder(subdir_+"channel status");
     ChannelStatusMissingChannels = new EtaPhiHists();
     ChannelStatusMissingChannels->setup(dbe_," Missing Channels");
     ChannelStatusUnstableChannels = new EtaPhiHists();
     ChannelStatusUnstableChannels->setup(dbe_," Unstable Channels");
     ChannelStatusUnstableLEDsignal = new EtaPhiHists();
     ChannelStatusUnstableLEDsignal->setup(dbe_," Unstable LED");
     ChannelStatusLEDMean = new EtaPhiHists();
     ChannelStatusLEDMean->setup(dbe_," LED Mean");
     ChannelStatusLEDRMS = new EtaPhiHists();
     ChannelStatusLEDRMS->setup(dbe_," LED RMS");
     ChannelStatusTimeMean = new EtaPhiHists();
     ChannelStatusTimeMean->setup(dbe_," Time Mean");
     ChannelStatusTimeRMS = new EtaPhiHists();
     ChannelStatusTimeRMS->setup(dbe_," Time RMS");

     
} 

Member Data Documentation

Definition at line 199 of file HcalDetDiagLEDMonitor.cc.

Referenced by analyze(), GetCalib(), LoadReference(), and SaveReference().

Definition at line 212 of file HcalDetDiagLEDMonitor.cc.

Referenced by analyze(), and HcalDetDiagLEDMonitor().

Definition at line 201 of file HcalDetDiagLEDMonitor.cc.

Referenced by fill_energy(), get_energy(), and setup().

Definition at line 202 of file HcalDetDiagLEDMonitor.cc.

Referenced by fill_energy(), get_energy(), and setup().

Definition at line 206 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fill_channel_status(), and setup().

Definition at line 207 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fill_channel_status(), and setup().

Definition at line 203 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fill_channel_status(), and setup().

Definition at line 208 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fill_channel_status(), and setup().

Definition at line 209 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fill_channel_status(), and setup().

Definition at line 204 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fill_channel_status(), and setup().

Definition at line 205 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fill_channel_status(), and setup().

Definition at line 157 of file HcalDetDiagLEDMonitor.cc.

Referenced by HcalDetDiagLEDMonitor(), and SaveReference().

Definition at line 211 of file HcalDetDiagLEDMonitor.cc.

Referenced by analyze(), and HcalDetDiagLEDMonitor().

Definition at line 170 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 176 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 177 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 182 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 172 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 178 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 180 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 184 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 183 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 213 of file HcalDetDiagLEDMonitor.cc.

Referenced by analyze().

Definition at line 186 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 185 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 188 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 187 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 189 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 192 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 190 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 193 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 191 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 158 of file HcalDetDiagLEDMonitor.cc.

Referenced by HcalDetDiagLEDMonitor(), and LoadReference().

std::map<unsigned int, int> HcalDetDiagLEDMonitor::KnownBadCells_ [private]

Reimplemented from HcalBaseDQMonitor.

Definition at line 215 of file HcalDetDiagLEDMonitor.cc.

Referenced by beginRun(), CheckStatus(), and fillHistos().

Definition at line 160 of file HcalDetDiagLEDMonitor.cc.

Referenced by HcalDetDiagLEDMonitor().

Definition at line 161 of file HcalDetDiagLEDMonitor.cc.

Referenced by HcalDetDiagLEDMonitor().

Definition at line 168 of file HcalDetDiagLEDMonitor.cc.

Referenced by analyze(), and setup().

Definition at line 168 of file HcalDetDiagLEDMonitor.cc.

Referenced by analyze(), and setup().

Definition at line 165 of file HcalDetDiagLEDMonitor.cc.

Referenced by HcalDetDiagLEDMonitor(), and SaveReference().

std::string HcalDetDiagLEDMonitor::ReferenceData [private]

Definition at line 163 of file HcalDetDiagLEDMonitor.cc.

Referenced by HcalDetDiagLEDMonitor(), and LoadReference().

std::string HcalDetDiagLEDMonitor::ReferenceRun [private]

Definition at line 164 of file HcalDetDiagLEDMonitor.cc.

Referenced by LoadReference(), and setup().

Definition at line 169 of file HcalDetDiagLEDMonitor.cc.

Referenced by setup().

Definition at line 156 of file HcalDetDiagLEDMonitor.cc.

Referenced by analyze(), HcalDetDiagLEDMonitor(), and SaveReference().

Definition at line 171 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fillHistos(), SaveReference(), and setup().

Definition at line 174 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 175 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 173 of file HcalDetDiagLEDMonitor.cc.

Referenced by CheckStatus(), fillHistos(), and setup().

Definition at line 179 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

Definition at line 181 of file HcalDetDiagLEDMonitor.cc.

Referenced by fillHistos(), and setup().

std::string HcalDetDiagLEDMonitor::XmlFilePath [private]

Definition at line 166 of file HcalDetDiagLEDMonitor.cc.

Referenced by HcalDetDiagLEDMonitor(), and SaveReference().