![]() |
![]() |
#include <HcalDetDiagNoiseMonitor.h>
HcalDetDiagNoiseMonitor::HcalDetDiagNoiseMonitor | ( | const edm::ParameterSet & | ps | ) |
Definition at line 160 of file HcalDetDiagNoiseMonitor.cc.
References HcalBaseDQMonitor::AllowedCalibTypes_, dataset_seq_number, HcalBaseDQMonitor::debug_, digiLabel_, HcalBaseDQMonitor::enableCleanup_, FirstOrbit, FirstOrbitLS, edm::ParameterSet::getUntrackedParameter(), HPDthresholdHi, HPDthresholdLo, ievt_, L1ADataLabel_, LastOrbit, LastOrbitLS, LocalRun, HcalBaseDQMonitor::makeDiagnostics_, HcalBaseDQMonitor::mergeRuns_, HcalBaseDQMonitor::needLogicalMap_, HcalBaseDQMonitor::NLumiBlocks_, NoisyEvents, HcalBaseDQMonitor::Online_, OutputFilePath, Overwrite, HcalBaseDQMonitor::prefixME_, rawDataLabel_, RMSummary, run_number, setupDone_, HcalBaseDQMonitor::skipOutOfOrderLS_, SpikeThreshold, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, and UseDB.
: hcalTBTriggerDataTag_(ps.getParameter<edm::InputTag>("hcalTBTriggerDataTag")) { ievt_=0; run_number=-1; NoisyEvents=0; LocalRun=false; dataset_seq_number=1; FirstOrbit=FirstOrbitLS=0xFFFFFFFF; LastOrbit=LastOrbitLS=0; Online_ = ps.getUntrackedParameter<bool>("online",false); mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns",false); enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup",false); debug_ = ps.getUntrackedParameter<int>("debug",0); prefixME_ = ps.getUntrackedParameter<std::string>("subSystemFolder","Hcal/"); if (prefixME_.substr(prefixME_.size()-1,prefixME_.size())!="/") prefixME_.append("/"); subdir_ = ps.getUntrackedParameter<std::string>("TaskFolder","DetDiagNoiseMonitor_Hcal"); if (subdir_.size()>0 && subdir_.substr(subdir_.size()-1,subdir_.size())!="/") subdir_.append("/"); subdir_=prefixME_+subdir_; AllowedCalibTypes_ = ps.getUntrackedParameter<std::vector<int> > ("AllowedCalibTypes"); skipOutOfOrderLS_ = ps.getUntrackedParameter<bool>("skipOutOfOrderLS",false); NLumiBlocks_ = ps.getUntrackedParameter<int>("NLumiBlocks",4000); makeDiagnostics_ = ps.getUntrackedParameter<bool>("makeDiagnostics",false); UseDB = ps.getUntrackedParameter<bool> ("UseDB" , false); OutputFilePath = ps.getUntrackedParameter<std::string>("OutputFilePath", ""); HPDthresholdHi = ps.getUntrackedParameter<double>("NoiseThresholdHPDhi",49.0); HPDthresholdLo = ps.getUntrackedParameter<double>("NoiseThresholdHPDlo",10.0); SpikeThreshold = ps.getUntrackedParameter<double>("NoiseSpikeThreshold",0.5); Overwrite = ps.getUntrackedParameter<bool> ("Overwrite",true); rawDataLabel_ = ps.getUntrackedParameter<edm::InputTag>("RawDataLabel",edm::InputTag("source","")); digiLabel_ = ps.getUntrackedParameter<edm::InputTag>("digiLabel",edm::InputTag("hcalDigis")); L1ADataLabel_ = ps.getUntrackedParameter<edm::InputTag>("gtLabel"); RMSummary = 0; needLogicalMap_=true; setupDone_ = false; }
HcalDetDiagNoiseMonitor::~HcalDetDiagNoiseMonitor | ( | ) |
Definition at line 636 of file HcalDetDiagNoiseMonitor.cc.
References LocalRun, SaveRates(), and UpdateHistos().
{if(LocalRun) UpdateHistos(); SaveRates(); }
void HcalDetDiagNoiseMonitor::analyze | ( | edm::Event const & | e, |
edm::EventSetup const & | s | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 289 of file HcalDetDiagNoiseMonitor.cc.
References adc2fC, gather_cfg::cout, FEDRawData::data(), HcalBaseDQMonitor::dbe_, HcalBaseDQMonitor::debug_, digiLabel_, HcalDetDiagNoiseRMEvent::energy, relval_parameters_module::energy, reco::tau::disc::Eta(), MonitorElement::Fill(), FirstOrbit, FirstOrbitLS, edm::Event::getByLabel(), HcalLogicalMap::getHcalFrontEndId(), HcalBaseDQMonitor::getLogicalMap(), HcalDetDiagNoiseRMSummary::GetRMindex(), hc_Null, hcalTBTriggerDataTag_, HPDEnergy, HPDthresholdHi, HPDthresholdLo, i, edm::EventBase::id(), ievt_, getHLTprescales::index, HcalBaseDQMonitor::IsAllowedCalibType(), edm::HandleBase::isValid(), L1ADataLabel_, LastOrbit, LastOrbitLS, LocalRun, HcalBaseDQMonitor::logicalMap_, HcalBaseDQMonitor::LumiInOrder(), edm::EventBase::luminosityBlock(), max(), FEDNumbering::MAXHCALFEDID, HcalFrontEndId::maxRmIndex, meEVT_, FEDNumbering::MINHCALFEDID, HcalDetDiagNoiseRMData::n_pix, HcalDetDiagNoiseRMData::n_pix_1, HcalDetDiagNoiseRMData::n_pix_8, HcalDetDiagNoiseRMEvent::n_pix_hi, HcalDetDiagNoiseRMEvent::n_pix_lo, HcalDetDiagNoiseRMData::n_th_300, HcalDetDiagNoiseRMData::n_th_300_LS, HcalDetDiagNoiseRMData::n_th_hi, HcalDetDiagNoiseRMData::n_th_hi_LS, HcalDetDiagNoiseRMEvent::n_zero, newLS, NoisyEvents, NZeroes, colinearityKinematic::Phi, HcalDetDiagNoiseRMData::pix, PixelMult, lumiPlot::rawdata, rawDataLabel_, RBXEnergy, HcalDetDiagNoiseRMSummary::reset(), HcalDetDiagNoiseRMSummary::rm, submit::rm, HcalFrontEndId::rmIndex(), RMSummary, edm::EventID::run(), run_number, SaveRates(), sd, FEDRawData::size(), AlCaHLTBitMon_QueryRunRegistry::string, subdets, TriggerBx11, TriggerBx12, and UpdateHistos().
{ getLogicalMap(iSetup); if (!IsAllowedCalibType()) return; if (LumiInOrder(iEvent.luminosityBlock())==false) return; HcalBaseDQMonitor::analyze(iEvent, iSetup); bool isNoiseEvent=false; if(!dbe_) return; int orbit=-1111; int bx=-1111; // for local runs edm::Handle<HcalTBTriggerData> trigger_data; iEvent.getByLabel(hcalTBTriggerDataTag_, trigger_data); if(trigger_data.isValid()){ if(trigger_data->triggerWord()>1000) isNoiseEvent=true; LocalRun=true; } // We do not want to look at Abort Gap events edm::Handle<FEDRawDataCollection> rawdata; iEvent.getByLabel(rawDataLabel_,rawdata); //checking FEDs for calibration information for(int i=FEDNumbering::MINHCALFEDID;i<=FEDNumbering::MAXHCALFEDID; i++) { const FEDRawData& fedData = rawdata->FEDData(i) ; if ( fedData.size() < 24 ) continue ; orbit= ((const HcalDCCHeader*)(fedData.data()))->getOrbitNumber(); bx=((const HcalDCCHeader*)(fedData.data()))->getBunchId(); if(((const HcalDCCHeader*)(fedData.data()))->getCalibType()!=hc_Null) return; } // Check GCT trigger bits edm::Handle< L1GlobalTriggerReadoutRecord > gtRecord; iEvent.getByLabel(L1ADataLabel_, gtRecord); if(gtRecord.isValid()){ const TechnicalTriggerWord tWord = gtRecord->technicalTriggerWord(); if(tWord.at(11) || tWord.at(12)) isNoiseEvent=true; if(tWord.at(11)){ TriggerBx11->Fill(bx);} if(tWord.at(12)){ TriggerBx12->Fill(bx);} } if(!isNoiseEvent) return; if(ievt_==0){ FirstOrbit=orbit; FirstOrbitLS=orbit; newLS=true;} if(LastOrbit <orbit) LastOrbit=orbit; if(FirstOrbit>orbit) FirstOrbit=orbit; if(LastOrbitLS <orbit) LastOrbitLS=orbit; if(FirstOrbitLS>orbit) FirstOrbitLS=orbit; if(newLS){ FirstOrbitLS=orbit; newLS=false; } if(!LocalRun){ double TIME=(double)(LastOrbit-FirstOrbit)/11223.0; if(TIME>1800.0){ UpdateHistos(); SaveRates(); RMSummary->reset(); FirstOrbit=orbit; } } meEVT_->Fill(++ievt_); run_number=iEvent.id().run(); HcalDetDiagNoiseRMEvent RMs[HcalFrontEndId::maxRmIndex]; edm::Handle<HBHEDigiCollection> hbhe; iEvent.getByLabel(digiLabel_,hbhe); for(HBHEDigiCollection::const_iterator digi=hbhe->begin();digi!=hbhe->end();digi++){ double max=-100/*,sum*/,energy=0; int n_zero=0; for(int i=0;i<digi->size();i++){ // sum=adc2fC[digi->sample(i).adc()&0xff]; if(max<adc2fC[digi->sample(i).adc()&0xff]) max=adc2fC[digi->sample(i).adc()&0xff]; if(adc2fC[digi->sample(i).adc()&0xff]==0) n_zero++; } HcalFrontEndId lmap_entry=logicalMap_->getHcalFrontEndId(digi->id()); int index=lmap_entry.rmIndex(); if(index>=HcalFrontEndId::maxRmIndex) continue; RMs[index].n_zero++; if(max>HPDthresholdLo){ for(int i=0;i<digi->size();i++) energy+=adc2fC[digi->sample(i).adc()&0xff]-2.5; RMs[index].n_pix_lo++; if(max>HPDthresholdHi){ RMs[index].n_pix_hi++; isNoiseEvent=true;} RMs[index].energy+=energy; } } edm::Handle<HODigiCollection> ho; iEvent.getByLabel(digiLabel_,ho); for(HODigiCollection::const_iterator digi=ho->begin();digi!=ho->end();digi++){ double max=-100,energy=0; int Eta=digi->id().ieta(); int Phi=digi->id().iphi(); int n_zero=0; for(int i=0;i<digi->size()-1;i++){ if(max<adc2fC[digi->sample(i).adc()&0xff]) max=adc2fC[digi->sample(i).adc()&0xff]; if(adc2fC[digi->sample(i).adc()&0xff]==0) n_zero++; } if((Eta>=11 && Eta<=15 && Phi>=59 && Phi<=70) || (Eta>=5 && Eta<=10 && Phi>=47 && Phi<=58)){ continue; // ignory SiPMs }else{ HcalFrontEndId lmap_entry=logicalMap_->getHcalFrontEndId(digi->id()); int index=lmap_entry.rmIndex(); if(index>=HcalFrontEndId::maxRmIndex) continue; RMs[index].n_zero++; if(max>HPDthresholdLo){ for(int i=0;i<digi->size();i++) energy+=adc2fC[digi->sample(i).adc()&0xff]-2.5; RMs[index].n_pix_lo++; if(max>HPDthresholdHi){ RMs[index].n_pix_hi++; isNoiseEvent=true;} RMs[index].energy+=energy; } } } NoisyEvents++; // RMs loop for(int i=0;i<HcalFrontEndId::maxRmIndex;i++){ if(RMs[i].n_pix_hi>0){ HPDEnergy->Fill(RMs[i].energy); RMSummary->rm[i].n_th_hi++; RMSummary->rm[i].n_th_hi_LS++; if(RMs[i].energy>300) RMSummary->rm[i].n_th_300++; if(RMs[i].energy>300) RMSummary->rm[i].n_th_300_LS++; if(RMs[i].n_pix_lo>1) RMSummary->rm[i].n_pix_1++; if(RMs[i].n_pix_lo>8) RMSummary->rm[i].n_pix_8++; RMSummary->rm[i].pix+=RMs[i].n_pix_lo; RMSummary->rm[i].n_pix++; } } // RBX loop for(int sd=0;sd<7;sd++) for(int sect=1;sect<=18;sect++){ std::stringstream tempss; tempss << std::setw(2) << std::setfill('0') << sect; std::string rbx= subdets[sd]+tempss.str(); double rbx_energy=0;int pix_mult=0; int n_zero=0; bool isValidRBX=false; for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(rbx,rm); if(index>0 && index<HcalFrontEndId::maxRmIndex){ rbx_energy+=RMs[index].energy; pix_mult+=RMs[index].n_pix_lo; n_zero+=RMs[index].n_zero; isValidRBX=true; } } if(isValidRBX){ PixelMult->Fill(pix_mult); RBXEnergy->Fill(rbx_energy); NZeroes->Fill(n_zero); } } if((ievt_%100)==0 && debug_>0) std::cout <<ievt_<<"\t"<<NoisyEvents<<std::endl; return; }
void HcalDetDiagNoiseMonitor::beginRun | ( | const edm::Run & | run, |
const edm::EventSetup & | c | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 213 of file HcalDetDiagNoiseMonitor.cc.
References gather_cfg::cout, HcalBaseDQMonitor::debug_, HcalBaseDQMonitor::mergeRuns_, reset(), setup(), and HcalBaseDQMonitor::tevt_.
{ if (debug_>1) std::cout <<"HcalDetDiagNoiseMonitor::beginRun"<<std::endl; HcalBaseDQMonitor::beginRun(run,c); if (tevt_==0) this->setup(); // set up histograms if they have not been created before if (mergeRuns_==false) this->reset(); return; }
void HcalDetDiagNoiseMonitor::cleanup | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 203 of file HcalDetDiagNoiseMonitor.cc.
References HcalBaseDQMonitor::dbe_, DQMStore::removeContents(), DQMStore::setCurrentFolder(), and HcalBaseDQMonitor::subdir_.
{ if(dbe_){ dbe_->setCurrentFolder(subdir_); dbe_->removeContents(); dbe_ = 0; } }
void HcalDetDiagNoiseMonitor::done | ( | ) |
Definition at line 634 of file HcalDetDiagNoiseMonitor.cc.
{}
void HcalDetDiagNoiseMonitor::endLuminosityBlock | ( | const edm::LuminosityBlock & | lumiSeg, |
const edm::EventSetup & | c | ||
) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 444 of file HcalDetDiagNoiseMonitor.cc.
References MonitorElement::Fill(), HcalDetDiagNoiseRMSummary::GetRMindex(), HB_RBX, HB_RBXmapSpikeCnt, HE_RBX, HE_RBXmapSpikeCnt, HO_RBX, HO_RBXmapSpikeCnt, getHLTprescales::index, HcalFrontEndId::maxRmIndex, HcalDetDiagNoiseRMData::n_th_hi_LS, newLS, HcalDetDiagNoiseRMData::reset_LS(), HcalDetDiagNoiseRMSummary::rm, submit::rm, RMSummary, sd, and SpikeThreshold.
{ int first_rbx=0,last_rbx=0; //double TIME=(double)(LastOrbitLS-FirstOrbitLS)/11223.0; double TIME=23.0; newLS=true; if(TIME==0) return; for(int sd=0;sd<9;sd++){ if(sd==0){ first_rbx=0; last_rbx=18;} //HBM if(sd==1){ first_rbx=18; last_rbx=36;} //HBP if(sd==0 || sd==1){ // update HB plots for(int rbx=first_rbx;rbx<last_rbx;rbx++)for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HB_RBX[rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; double val=RMSummary->rm[index].n_th_hi_LS/TIME; if(val>SpikeThreshold){ HB_RBXmapSpikeCnt->Fill(rm,rbx+1,1); //printf("%s %i %f (%f)\n",HO_RBX[rbx].c_str(),rm,RMSummary->rm[index].n_th_hi_LS/TIME,TIME); } RMSummary->rm[index].reset_LS(); } } if(sd==2){ first_rbx=0; last_rbx=18;} //HEM if(sd==3){ first_rbx=18; last_rbx=36;} //HEP if(sd==2 || sd==3){ // update HB plots for(int rbx=first_rbx;rbx<last_rbx;rbx++)for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HE_RBX[rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; double val=RMSummary->rm[index].n_th_hi_LS/TIME; if(val>SpikeThreshold){ HE_RBXmapSpikeCnt->Fill(rm,rbx+1,1); //printf("%s %i %f (%f)\n",HO_RBX[rbx].c_str(),rm,RMSummary->rm[index].n_th_hi_LS/TIME,TIME); } RMSummary->rm[index].reset_LS(); } } if(sd==4){ first_rbx=6; last_rbx=12;} //HO1M if(sd==5){ first_rbx=12; last_rbx=24;} //HO0 if(sd==6){ first_rbx=24; last_rbx=30;} //HO1P if(sd>3){ for(int rbx=first_rbx;rbx<last_rbx;rbx++)for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HO_RBX[rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; double val=RMSummary->rm[index].n_th_hi_LS/TIME; if(val>SpikeThreshold){ HO_RBXmapSpikeCnt->Fill(rm,rbx+1,1); //printf("%s %i %f (%f)\n",HO_RBX[rbx].c_str(),rm,RMSummary->rm[index].n_th_hi_LS/TIME,TIME); } RMSummary->rm[index].reset_LS(); } } } //sd=0;sd<9 }
int HcalDetDiagNoiseMonitor::GetStatistics | ( | ) | [inline] |
void HcalDetDiagNoiseMonitor::reset | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 210 of file HcalDetDiagNoiseMonitor.cc.
Referenced by beginRun().
{}
void HcalDetDiagNoiseMonitor::SaveRates | ( | ) | [private] |
Definition at line 560 of file HcalDetDiagNoiseMonitor.cc.
References dataset_seq_number, patZpeak::events, FirstOrbit, HcalDetDiagNoiseRMSummary::GetRMindex(), HB_RBX, HE_RBX, HO_RBX, ievt_, getHLTprescales::index, LastOrbit, HcalFrontEndId::maxRmIndex, HcalDetDiagNoiseRMData::n_pix, HcalDetDiagNoiseRMData::n_pix_1, HcalDetDiagNoiseRMData::n_pix_8, HcalDetDiagNoiseRMData::n_th_300, HcalDetDiagNoiseRMData::n_th_hi, OutputFilePath, Overwrite, HcalDetDiagNoiseRMData::pix, HcalDetDiagNoiseRMSummary::rm, submit::rm, RMSummary, DTTTrigCorrFirst::run, run_number, lumiQTWidget::t, interactiveExample::theFile, cond::rpcobgas::time, and diffTreeTool::tree.
Referenced by analyze(), and ~HcalDetDiagNoiseMonitor().
{ char RBX[20]; int RM; float VAL1,VAL2,VAL3,VAL4,VAL5; char str[500]; double TIME=(double)(LastOrbit-FirstOrbit)/11223.0; if(TIME==0) return; if(OutputFilePath.size()>0){ if(!Overwrite){ sprintf(str,"%sHcalDetDiagNoiseData_run%06i_%i.root",OutputFilePath.c_str(),run_number,dataset_seq_number); }else{ sprintf(str,"%sHcalDetDiagNoiseData.root",OutputFilePath.c_str()); } TFile *theFile = new TFile(str, "RECREATE"); if(!theFile->IsOpen()) return; theFile->cd(); sprintf(str,"%d",run_number); TObjString run(str); run.Write("run number"); sprintf(str,"%d",ievt_); TObjString events(str); events.Write("Total events processed"); sprintf(str,"%d",dataset_seq_number); TObjString dsnum(str); dsnum.Write("Dataset number"); Long_t t; t=time(0); strftime(str,30,"%F %T",localtime(&t)); TObjString tm(str); tm.Write("Dataset creation time"); TTree *tree =new TTree("HCAL Noise data","HCAL Noise data"); if(tree==0) return; tree->Branch("RBX", &RBX, "RBX/C"); tree->Branch("rm", &RM, "rm/I"); tree->Branch("RATE_50", &VAL1, "RATE_50"); tree->Branch("RATE_300", &VAL2, "RATE_300"); tree->Branch("RATE_PIX1", &VAL3, "RATE_PIX1"); tree->Branch("RATE_PIX8", &VAL4, "RATE_PIX8"); tree->Branch("RATE_PIXMEAN", &VAL5, "RATE_PIXMEAN"); for(int rbx=0;rbx<36;rbx++) for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HB_RBX[rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; sprintf(RBX,"%s",HB_RBX[rbx]); RM=rm; VAL1=RMSummary->rm[index].n_th_hi/TIME; VAL2=RMSummary->rm[index].n_th_300/TIME; VAL3=RMSummary->rm[index].n_pix_1/TIME; VAL4=RMSummary->rm[index].n_pix_8/TIME; if(RMSummary->rm[index].n_pix>0)VAL5=RMSummary->rm[index].pix/RMSummary->rm[index].n_pix; else VAL5=0; tree->Fill(); } for(int rbx=0;rbx<36;rbx++) for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HE_RBX[rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; sprintf(RBX,"%s",HE_RBX[rbx]); RM=rm; VAL1=RMSummary->rm[index].n_th_hi/TIME; VAL2=RMSummary->rm[index].n_th_300/TIME; VAL3=RMSummary->rm[index].n_pix_1/TIME; VAL4=RMSummary->rm[index].n_pix_8/TIME; if(RMSummary->rm[index].n_pix>0)VAL5=RMSummary->rm[index].pix/RMSummary->rm[index].n_pix; else VAL5=0; tree->Fill(); } for(int rbx=0;rbx<36;rbx++) for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HO_RBX[rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; sprintf(RBX,"%s",HO_RBX[rbx]); RM=rm; VAL1=RMSummary->rm[index].n_th_hi/TIME; VAL2=RMSummary->rm[index].n_th_300/TIME; VAL3=RMSummary->rm[index].n_pix_1/TIME; VAL4=RMSummary->rm[index].n_pix_8/TIME; if(RMSummary->rm[index].n_pix>0)VAL5=RMSummary->rm[index].pix/RMSummary->rm[index].n_pix; else VAL5=0; tree->Fill(); } theFile->Write(); theFile->Close(); dataset_seq_number++; } }
void HcalDetDiagNoiseMonitor::setup | ( | void | ) | [virtual] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 226 of file HcalDetDiagNoiseMonitor.cc.
References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookInt(), HcalBaseDQMonitor::dbe_, HB_RBX, HB_RBXmapSpikeCnt, HBM_Rate300, HBM_Rate50, HBP_Rate300, HBP_Rate50, HE_RBX, HE_RBXmapSpikeCnt, HEM_Rate300, HEM_Rate50, HEP_Rate300, HEP_Rate50, HO0_Rate300, HO0_Rate50, HO1M_Rate300, HO1M_Rate50, HO1P_Rate300, HO1P_Rate50, HO_RBX, HO_RBXmapSpikeCnt, HPDEnergy, i, meEVT_, mergeVDriftHistosByStation::name, NULL, NZeroes, PixelMult, RBXEnergy, RMSummary, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::setCurrentFolder(), setupDone_, AlCaHLTBitMon_QueryRunRegistry::string, HcalBaseDQMonitor::subdir_, indexGen::title, TriggerBx11, and TriggerBx12.
Referenced by beginRun().
{ if (setupDone_) return; setupDone_ = true; // Call base class setup HcalBaseDQMonitor::setup(); if (!dbe_) return; RMSummary = new HcalDetDiagNoiseRMSummary(); std::string name; if(dbe_!=NULL){ dbe_->setCurrentFolder(subdir_); meEVT_ = dbe_->bookInt("HcalNoiseMonitor Event Number"); dbe_->setCurrentFolder(subdir_+"Common Plots"); name="RBX Pixel multiplicity"; PixelMult = dbe_->book1D(name,name,73,0,73); name="HPD energy"; HPDEnergy = dbe_->book1D(name,name,200,0,2500); name="RBX energy"; RBXEnergy = dbe_->book1D(name,name,200,0,3500); name="Number of zero TS per RBX"; NZeroes = dbe_->book1D(name,name,100,0,100); name="Trigger BX Tbit11"; TriggerBx11 = dbe_->book1D(name,name,4000,0,4000); name="Trigger BX Tbit12"; TriggerBx12 = dbe_->book1D(name,name,4000,0,4000); dbe_->setCurrentFolder(subdir_+"HBHE Plots"); name="HBP HPD Noise Rate Pixel above 50fC"; HBP_Rate50 = dbe_->book1D(name,name,73,0,73); name="HBM HPD Noise Rate Pixel above 50fC"; HBM_Rate50 = dbe_->book1D(name,name,73,0,73); name="HEP HPD Noise Rate Pixel above 50fC"; HEP_Rate50 = dbe_->book1D(name,name,73,0,73); name="HEM HPD Noise Rate Pixel above 50fC"; HEM_Rate50 = dbe_->book1D(name,name,73,0,73); name="HBP HPD Noise Rate HPD above 300fC"; HBP_Rate300 = dbe_->book1D(name,name,73,0,73); name="HBM HPD Noise Rate HPD above 300fC"; HBM_Rate300 = dbe_->book1D(name,name,73,0,73); name="HEP HPD Noise Rate HPD above 300fC"; HEP_Rate300 = dbe_->book1D(name,name,73,0,73); name="HEM HPD Noise Rate HPD above 300fC"; HEM_Rate300 = dbe_->book1D(name,name,73,0,73); dbe_->setCurrentFolder(subdir_+"HO Plots"); name="HO0 HPD Noise Rate Pixel above 50fC"; HO0_Rate50 = dbe_->book1D(name,name,49,0,49); name="HO1P HPD Noise Rate Pixel above 50fC"; HO1P_Rate50 = dbe_->book1D(name,name,48,0,48); name="HO1M HPD Noise Rate Pixel above 50fC"; HO1M_Rate50 = dbe_->book1D(name,name,48,0,48); name="HO0 HPD Noise Rate HPD above 300fC"; HO0_Rate300 = dbe_->book1D(name,name,48,0,48); name="HO1P HPD Noise Rate HPD abGetRMindexove 300fC"; HO1P_Rate300 = dbe_->book1D(name,name,48,0,48); name="HO1M HPD Noise Rate HPD above 300fC"; HO1M_Rate300 = dbe_->book1D(name,name,48,0,48); dbe_->setCurrentFolder(subdir_+"Noise Spike Plots"); name="HB RM Spike Map"; HB_RBXmapSpikeCnt= dbe_->book2D(name,name,4,0.5,4.5,36,0.5,36.5); name="HE RM Spike Map"; HE_RBXmapSpikeCnt= dbe_->book2D(name,name,4,0.5,4.5,36,0.5,36.5); name="HO RM Spike Map"; HO_RBXmapSpikeCnt= dbe_->book2D(name,name,4,0.5,4.5,36,0.5,36.5); std::string title="RM"; HB_RBXmapSpikeCnt->setAxisTitle(title); HE_RBXmapSpikeCnt->setAxisTitle(title); HO_RBXmapSpikeCnt->setAxisTitle(title); for(int i=0;i<36;i++){ HB_RBXmapSpikeCnt->setBinLabel(i+1,HB_RBX[i],2); HE_RBXmapSpikeCnt->setBinLabel(i+1,HE_RBX[i],2); HO_RBXmapSpikeCnt->setBinLabel(i+1,HO_RBX[i],2); } } return; }
void HcalDetDiagNoiseMonitor::UpdateHistos | ( | ) |
Definition at line 498 of file HcalDetDiagNoiseMonitor.cc.
References FirstOrbit, HcalDetDiagNoiseRMSummary::GetRMindex(), HB_RBX, HBM_Rate300, HBM_Rate50, HBP_Rate300, HBP_Rate50, HE_RBX, HEM_Rate300, HEM_Rate50, HEP_Rate300, HEP_Rate50, HO0_Rate300, HO0_Rate50, HO1M_Rate300, HO1M_Rate50, HO1P_Rate300, HO1P_Rate50, HO_RBX, getHLTprescales::index, LastOrbit, HcalFrontEndId::maxRmIndex, n, HcalDetDiagNoiseRMData::n_th_300, HcalDetDiagNoiseRMData::n_th_hi, HcalDetDiagNoiseRMSummary::rm, submit::rm, RMSummary, sd, and MonitorElement::setBinContent().
Referenced by analyze(), and ~HcalDetDiagNoiseMonitor().
{ int first_rbx=0; double TIME=(double)(LastOrbit-FirstOrbit)/11223.0; if(TIME==0) return; for(int sd=0;sd<9;sd++){ if(sd==0){ first_rbx=0; } //HBM if(sd==1){ first_rbx=18;} //HBP if(sd==0 || sd==1){ // update HB plots for(int rbx=0;rbx<18;rbx++)for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HB_RBX[rbx+first_rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; if(sd==0){ HBM_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME); HBM_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME); } if(sd==1){ HBP_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME); HBP_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME); } } } if(sd==2){ first_rbx=0;} //HEM if(sd==3){ first_rbx=18;} //HEP if(sd==2 || sd==3){ // update HB plots for(int rbx=0;rbx<18;rbx++)for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HE_RBX[rbx+first_rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; if(sd==2){ HEM_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME); HEM_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME); } if(sd==3){ HEP_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME); HEP_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME); } } } int n=0; if(sd==4){ first_rbx=6; n=6;} //HO1M if(sd==5){ first_rbx=12;n=12;} //HO0 if(sd==6){ first_rbx=24;n=6;} //HO1P if(sd>3){ // update HO plots for(int rbx=0;rbx<n;rbx++)for(int rm=1;rm<=4;rm++){ int index=RMSummary->GetRMindex(HO_RBX[rbx+first_rbx],rm); if(index<0 || index>=HcalFrontEndId::maxRmIndex) continue; if(sd==4){ HO1M_Rate50->setBinContent(rbx*4*2+rm,RMSummary->rm[index].n_th_hi/TIME); HO1M_Rate300->setBinContent(rbx*4*2+rm,RMSummary->rm[index].n_th_300/TIME); } if(sd==5){ HO0_Rate50->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_hi/TIME); HO0_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME); } if(sd==5){ HO1P_Rate50->setBinContent(rbx*4*2+rm,RMSummary->rm[index].n_th_hi/TIME); HO1P_Rate300->setBinContent(rbx*4+rm,RMSummary->rm[index].n_th_300/TIME); } } } } //sd=0;sd<9 }
int HcalDetDiagNoiseMonitor::dataset_seq_number [private] |
Definition at line 55 of file HcalDetDiagNoiseMonitor.h.
Referenced by HcalDetDiagNoiseMonitor(), and SaveRates().
Definition at line 49 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and HcalDetDiagNoiseMonitor().
int HcalDetDiagNoiseMonitor::FirstOrbit [private] |
Definition at line 68 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), HcalDetDiagNoiseMonitor(), SaveRates(), and UpdateHistos().
int HcalDetDiagNoiseMonitor::FirstOrbitLS [private] |
Definition at line 70 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and HcalDetDiagNoiseMonitor().
Definition at line 94 of file HcalDetDiagNoiseMonitor.h.
Referenced by endLuminosityBlock(), and setup().
Definition at line 83 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 79 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 82 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 78 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 51 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze().
Definition at line 95 of file HcalDetDiagNoiseMonitor.h.
Referenced by endLuminosityBlock(), and setup().
Definition at line 85 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 81 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 84 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 80 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 90 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 87 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 92 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 89 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 91 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 88 of file HcalDetDiagNoiseMonitor.h.
Referenced by setup(), and UpdateHistos().
Definition at line 96 of file HcalDetDiagNoiseMonitor.h.
Referenced by endLuminosityBlock(), and setup().
MonitorElement* HcalDetDiagNoiseMonitor::HPDEnergy [private] |
Definition at line 99 of file HcalDetDiagNoiseMonitor.h.
double HcalDetDiagNoiseMonitor::HPDthresholdHi [private] |
Definition at line 60 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and HcalDetDiagNoiseMonitor().
double HcalDetDiagNoiseMonitor::HPDthresholdLo [private] |
Definition at line 61 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and HcalDetDiagNoiseMonitor().
int HcalDetDiagNoiseMonitor::ievt_ [private] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 66 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), GetStatistics(), HcalDetDiagNoiseMonitor(), and SaveRates().
Definition at line 48 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and HcalDetDiagNoiseMonitor().
int HcalDetDiagNoiseMonitor::LastOrbit [private] |
Definition at line 69 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), HcalDetDiagNoiseMonitor(), SaveRates(), and UpdateHistos().
int HcalDetDiagNoiseMonitor::LastOrbitLS [private] |
Definition at line 71 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and HcalDetDiagNoiseMonitor().
bool HcalDetDiagNoiseMonitor::LocalRun [private] |
Definition at line 74 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), HcalDetDiagNoiseMonitor(), and ~HcalDetDiagNoiseMonitor().
MonitorElement* HcalDetDiagNoiseMonitor::meEVT_ [private] |
Definition at line 76 of file HcalDetDiagNoiseMonitor.h.
bool HcalDetDiagNoiseMonitor::newLS [private] |
Definition at line 67 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and endLuminosityBlock().
int HcalDetDiagNoiseMonitor::NoisyEvents [private] |
Definition at line 73 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and HcalDetDiagNoiseMonitor().
MonitorElement* HcalDetDiagNoiseMonitor::NZeroes [private] |
Definition at line 101 of file HcalDetDiagNoiseMonitor.h.
std::string HcalDetDiagNoiseMonitor::OutputFilePath [private] |
Definition at line 53 of file HcalDetDiagNoiseMonitor.h.
Referenced by HcalDetDiagNoiseMonitor(), and SaveRates().
bool HcalDetDiagNoiseMonitor::Overwrite [private] |
Definition at line 54 of file HcalDetDiagNoiseMonitor.h.
Referenced by HcalDetDiagNoiseMonitor(), and SaveRates().
MonitorElement* HcalDetDiagNoiseMonitor::PixelMult [private] |
Definition at line 98 of file HcalDetDiagNoiseMonitor.h.
Definition at line 50 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), and HcalDetDiagNoiseMonitor().
MonitorElement* HcalDetDiagNoiseMonitor::RBXEnergy [private] |
Definition at line 100 of file HcalDetDiagNoiseMonitor.h.
Definition at line 106 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), endLuminosityBlock(), HcalDetDiagNoiseMonitor(), SaveRates(), setup(), and UpdateHistos().
int HcalDetDiagNoiseMonitor::run_number [private] |
Definition at line 72 of file HcalDetDiagNoiseMonitor.h.
Referenced by analyze(), HcalDetDiagNoiseMonitor(), and SaveRates().
bool HcalDetDiagNoiseMonitor::setupDone_ [private] |
Reimplemented from HcalBaseDQMonitor.
Definition at line 58 of file HcalDetDiagNoiseMonitor.h.
Referenced by HcalDetDiagNoiseMonitor(), and setup().
double HcalDetDiagNoiseMonitor::SpikeThreshold [private] |
Definition at line 62 of file HcalDetDiagNoiseMonitor.h.
Referenced by endLuminosityBlock(), and HcalDetDiagNoiseMonitor().
Definition at line 102 of file HcalDetDiagNoiseMonitor.h.
Definition at line 103 of file HcalDetDiagNoiseMonitor.h.
bool HcalDetDiagNoiseMonitor::UseDB [private] |
Definition at line 57 of file HcalDetDiagNoiseMonitor.h.
Referenced by HcalDetDiagNoiseMonitor().