#include <ESDaqInfoTask.h>
Public Member Functions | |
ESDaqInfoTask (const edm::ParameterSet &ps) | |
Constructor. | |
virtual | ~ESDaqInfoTask () |
Destructor. | |
Protected Member Functions | |
void | analyze (const edm::Event &e, const edm::EventSetup &c) |
Analyze. | |
void | beginJob (void) |
BeginJob. | |
void | beginLuminosityBlock (const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup) |
BeginLuminosityBlock. | |
void | cleanup (void) |
Cleanup. | |
void | endJob (void) |
EndJob. | |
void | endLuminosityBlock (const edm::LuminosityBlock &lumiBlock, const edm::EventSetup &iSetup) |
EndLuminosityBlock. | |
void | reset (void) |
Reset. | |
Private Attributes | |
DQMStore * | dqmStore_ |
bool | enableCleanup_ |
ESElectronicsMapper * | es_mapping_ |
int | ESFedRangeMax_ |
int | ESFedRangeMin_ |
bool | ESOnFed_ [56] |
MonitorElement * | meESDaqActive_ [56] |
MonitorElement * | meESDaqActiveMap_ |
MonitorElement * | meESDaqError_ |
MonitorElement * | meESDaqFraction_ |
bool | mergeRuns_ |
std::string | prefixME_ |
Definition at line 9 of file ESDaqInfoTask.h.
ESDaqInfoTask::ESDaqInfoTask | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 30 of file ESDaqInfoTask.cc.
References edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), i, cmsCodeRules::cppFunctionSkipper::operator, and prefixME_.
{ dqmStore_ = Service<DQMStore>().operator->(); prefixME_ = ps.getUntrackedParameter<string>("prefixME", ""); enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false); mergeRuns_ = ps.getUntrackedParameter<bool>("mergeRuns", false); ESFedRangeMin_ = ps.getUntrackedParameter<int>("ESFedRangeMin", 520); ESFedRangeMax_ = ps.getUntrackedParameter<int>("ESFedRangeMax", 575); meESDaqFraction_ = 0; meESDaqActiveMap_ = 0; meESDaqError_ = 0; for (int i = 0; i < 56; i++) { meESDaqActive_[i] = 0; } if (ps.exists("esMapping")){ edm::ParameterSet esMap=ps.getParameter<edm::ParameterSet>("esMapping"); es_mapping_ = new ESElectronicsMapper(esMap); }else{ edm::LogError("ESDaqInfoTask")<<"preshower mapping pointer not initialized. Temporary."; es_mapping_=0; } }
ESDaqInfoTask::~ESDaqInfoTask | ( | ) | [virtual] |
void ESDaqInfoTask::analyze | ( | const edm::Event & | e, |
const edm::EventSetup & | c | ||
) | [protected, virtual] |
void ESDaqInfoTask::beginJob | ( | void | ) | [protected, virtual] |
BeginJob.
Reimplemented from edm::EDAnalyzer.
Definition at line 67 of file ESDaqInfoTask.cc.
References timingPdfMaker::histo, i, prefixME_, x, and detailsBasic3DVector::y.
{ char histo[200]; if ( dqmStore_ ) { dqmStore_->setCurrentFolder(prefixME_ + "/EventInfo"); sprintf(histo, "DAQSummary"); meESDaqFraction_ = dqmStore_->bookFloat(histo); meESDaqFraction_->Fill(0.0); sprintf(histo, "DAQSummaryMap"); meESDaqActiveMap_ = dqmStore_->book2D(histo,histo, 80, 0.5, 80.5, 80, 0.5, 80.5); meESDaqActiveMap_->setAxisTitle("Si X", 1); meESDaqActiveMap_->setAxisTitle("Si Y", 2); dqmStore_->setCurrentFolder(prefixME_ + "/EventInfo/DAQContents"); for (int i = 0; i < 56; i++) { sprintf(histo, "EcalPreshower_%d", ESFedRangeMin_+i); meESDaqActive_[i] = dqmStore_->bookFloat(histo); meESDaqActive_[i]->Fill(0.0); ESOnFed_[i] = false; for ( int x = 0; x < 80; x++ ) { for ( int y = 0; y < 80; y++ ) { int iz = (x<40)? 1:2; int ip = (y>=40)? 1:2; int ix = (x<40)? x:x-40; int iy = (y<40)? y:y-40; int ifed = (*es_mapping_).getFED( iz, ip, ix, iy); if(ifed == ESFedRangeMin_+i){ ESOnFed_[i] = true; break; } } if(ESOnFed_[i] == true) break; } } dqmStore_->setCurrentFolder(prefixME_ + "/ESIntegrityTask"); sprintf(histo, "DAQError"); meESDaqError_ = dqmStore_->book1D(histo, histo, 56, ESFedRangeMin_-0.5, ESFedRangeMax_+0.5); meESDaqError_->setAxisTitle("FedID", 1); } }
void ESDaqInfoTask::beginLuminosityBlock | ( | const edm::LuminosityBlock & | lumiBlock, |
const edm::EventSetup & | iSetup | ||
) | [protected, virtual] |
BeginLuminosityBlock.
Reimplemented from edm::EDAnalyzer.
Definition at line 123 of file ESDaqInfoTask.cc.
References edm::EventSetup::find(), edm::eventsetup::heterocontainer::HCTypeTag::findType(), edm::EventSetup::get(), i, reset(), x, and detailsBasic3DVector::y.
{ this->reset(); for ( int x = 0; x < 80; x++ ) { for ( int y = 0; y < 80; y++ ) { int iz = (x<40)? 1:2; int ip = (y>=40)? 1:2; int ix = (x<40)? x:x-40; int iy = (y<40)? y:y-40; int ifed = (*es_mapping_).getFED( iz, ip, ix, iy); if( ifed > 0 ) meESDaqActiveMap_->setBinContent( x+1, y+1, 0.0 ); else meESDaqActiveMap_->setBinContent( x+1, y+1, -1.0 ); } } for (int i = 0; i < 56; i++) { if ( meESDaqError_ ) meESDaqError_->setBinContent(i, 0.0); } edm::eventsetup::EventSetupRecordKey recordKey(edm::eventsetup::EventSetupRecordKey::TypeTag::findType("RunInfoRcd")); if( iSetup.find( recordKey ) ) { edm::ESHandle<RunInfo> sumFED; iSetup.get<RunInfoRcd>().get(sumFED); std::vector<int> FedsInIds= sumFED->m_fed_in; float ESFedCount = 0.; for( unsigned int fedItr=0; fedItr<FedsInIds.size(); ++fedItr ) { int fedID=FedsInIds[fedItr]; if ( fedID >= ESFedRangeMin_ && fedID <= ESFedRangeMax_ ) { if( ESOnFed_[fedID - ESFedRangeMin_] ) ESFedCount++; if ( meESDaqActive_[fedID-ESFedRangeMin_] ) meESDaqActive_[fedID-ESFedRangeMin_]->Fill(1.0); if( meESDaqActiveMap_ ) { for( int x = 0; x < 80; x++ ) { for( int y = 0; y < 80; y++ ) { int iz = (x<40)? 1:2; int ip = (y>=40)? 1:2; int ix = (x<40) ? x:x-40; int iy = (x<40) ? y:y-40; int ifed = es_mapping_->getFED(iz, ip, ix, iy); if( fedID==ifed ) meESDaqActiveMap_->setBinContent( x+1, y+1, 1.0 ); } } } if( meESDaqFraction_ ) meESDaqFraction_->Fill( ESFedCount/40. ); if( meESDaqError_ ){ for( int i = 0; i < 56; i++){ if( ESOnFed_[fedID-ESFedRangeMin_] ) meESDaqError_->setBinContent(i+1, 1.0); else meESDaqError_->setBinContent(i+1, 2.0); } } } } } else { LogWarning("ESDaqInfoTask") << "Cannot find any RunInfoRcd" << endl; } }
void ESDaqInfoTask::cleanup | ( | void | ) | [protected] |
Cleanup.
Definition at line 219 of file ESDaqInfoTask.cc.
References edm::getName(), i, and prefixME_.
{ if ( dqmStore_ ) { dqmStore_->setCurrentFolder(prefixME_ + "/EventInfo"); if ( meESDaqFraction_ ) dqmStore_->removeElement( meESDaqFraction_->getName() ); if ( meESDaqActiveMap_ ) dqmStore_->removeElement( meESDaqActiveMap_->getName() ); if ( meESDaqError_ ) dqmStore_->removeElement( meESDaqError_->getName() ); dqmStore_->setCurrentFolder(prefixME_ + "/EventInfo/DAQContents"); for (int i = 0; i < 56; i++) { if ( meESDaqActive_[i] ) dqmStore_->removeElement( meESDaqActive_[i]->getName() ); } } }
void ESDaqInfoTask::endJob | ( | void | ) | [protected, virtual] |
EndJob.
Reimplemented from edm::EDAnalyzer.
Definition at line 117 of file ESDaqInfoTask.cc.
References edm::cleanup().
{ if ( enableCleanup_ ) this->cleanup(); }
void ESDaqInfoTask::endLuminosityBlock | ( | const edm::LuminosityBlock & | lumiBlock, |
const edm::EventSetup & | iSetup | ||
) | [protected, virtual] |
EndLuminosityBlock.
Reimplemented from edm::EDAnalyzer.
Definition at line 200 of file ESDaqInfoTask.cc.
{ }
void ESDaqInfoTask::reset | ( | void | ) | [protected] |
Reset.
Definition at line 204 of file ESDaqInfoTask.cc.
References i.
{ if ( meESDaqFraction_ ) meESDaqFraction_->Reset(); for (int i = 0; i < 56; i++) { if ( meESDaqActive_[i] ) meESDaqActive_[i]->Reset(); } if ( meESDaqActiveMap_ ) meESDaqActiveMap_->Reset(); if ( meESDaqError_ ) meESDaqError_->Reset(); }
DQMStore* ESDaqInfoTask::dqmStore_ [private] |
Definition at line 44 of file ESDaqInfoTask.h.
bool ESDaqInfoTask::enableCleanup_ [private] |
Definition at line 48 of file ESDaqInfoTask.h.
ESElectronicsMapper* ESDaqInfoTask::es_mapping_ [private] |
Definition at line 61 of file ESDaqInfoTask.h.
int ESDaqInfoTask::ESFedRangeMax_ [private] |
Definition at line 59 of file ESDaqInfoTask.h.
int ESDaqInfoTask::ESFedRangeMin_ [private] |
Definition at line 58 of file ESDaqInfoTask.h.
bool ESDaqInfoTask::ESOnFed_[56] [private] |
Definition at line 63 of file ESDaqInfoTask.h.
MonitorElement* ESDaqInfoTask::meESDaqActive_[56] [private] |
Definition at line 53 of file ESDaqInfoTask.h.
MonitorElement* ESDaqInfoTask::meESDaqActiveMap_ [private] |
Definition at line 54 of file ESDaqInfoTask.h.
MonitorElement* ESDaqInfoTask::meESDaqError_ [private] |
Definition at line 56 of file ESDaqInfoTask.h.
MonitorElement* ESDaqInfoTask::meESDaqFraction_ [private] |
Definition at line 52 of file ESDaqInfoTask.h.
bool ESDaqInfoTask::mergeRuns_ [private] |
Definition at line 50 of file ESDaqInfoTask.h.
std::string ESDaqInfoTask::prefixME_ [private] |
Definition at line 46 of file ESDaqInfoTask.h.