![]() |
![]() |
#include <EBTimingClient.h>
Public Member Functions | |
void | analyze (void) |
Analyze. | |
void | beginJob (void) |
BeginJob. | |
void | beginRun (void) |
BeginRun. | |
void | cleanup (void) |
Cleanup. | |
EBTimingClient (const edm::ParameterSet &ps) | |
Constructor. | |
void | endJob (void) |
EndJob. | |
void | endRun (void) |
EndRun. | |
int | getEvtPerJob () |
Get Functions. | |
int | getEvtPerRun () |
Returns the number of processed events in this Run. | |
void | setup (void) |
Setup. | |
virtual | ~EBTimingClient () |
Destructor. | |
Private Attributes | |
bool | cloneME_ |
bool | debug_ |
float | discrepancyMean_ |
DQMStore * | dqmStore_ |
bool | enableCleanup_ |
float | expectedMean_ |
TProfile2D * | h01_ [36] |
TH2F * | h02_ [36] |
int | ievt_ |
int | jevt_ |
MonitorElement * | mea01_ [36] |
MonitorElement * | meg01_ [36] |
MonitorElement * | meh01_ [36] |
MonitorElement * | meh02_ [36] |
MonitorElement * | mep01_ [36] |
MonitorElement * | mer01_ [36] |
std::string | prefixME_ |
float | RMSThreshold_ |
std::vector< int > | superModules_ |
bool | verbose_ |
Friends | |
class | EBSummaryClient |
Definition at line 32 of file EBTimingClient.h.
EBTimingClient::EBTimingClient | ( | const edm::ParameterSet & | ps | ) |
Constructor.
Definition at line 35 of file EBTimingClient.cc.
References cloneME_, debug_, discrepancyMean_, enableCleanup_, expectedMean_, edm::ParameterSet::getUntrackedParameter(), h01_, h02_, i, ecalpyutils::ism(), mea01_, meg01_, meh01_, meh02_, mep01_, mer01_, prefixME_, RMSThreshold_, superModules_, and verbose_.
{ // cloneME switch cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true); // verbose switch verbose_ = ps.getUntrackedParameter<bool>("verbose", true); // debug switch debug_ = ps.getUntrackedParameter<bool>("debug", false); // prefixME path prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", ""); // enableCleanup_ switch enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false); // vector of selected Super Modules (Defaults to all 36). superModules_.reserve(36); for ( unsigned int i = 1; i <= 36; i++ ) superModules_.push_back(i); superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_); for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; h01_[ism-1] = 0; h02_[ism-1] = 0; meh01_[ism-1] = 0; meh02_[ism-1] = 0; } for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; meg01_[ism-1] = 0; mea01_[ism-1] = 0; mep01_[ism-1] = 0; mer01_[ism-1] = 0; } expectedMean_ = 0.0; discrepancyMean_ = 12.5; RMSThreshold_ = 62.5; }
EBTimingClient::~EBTimingClient | ( | ) | [virtual] |
void EBTimingClient::analyze | ( | void | ) | [virtual] |
Analyze.
Implements EBClient.
Definition at line 314 of file EBTimingClient.cc.
References abs, cloneME_, gather_cfg::cout, debug_, discrepancyMean_, dqmStore_, EcalBarrel, expectedMean_, MonitorElement::Fill(), DQMStore::get(), UtilsClient::getBinStatistics(), h01_, h02_, trackerHits::histo, i, Numbers::icEB(), ievt_, jevt_, UtilsClient::maskBinContent(), Masks::maskChannel(), mea01_, meg01_, meh01_, meh02_, mep01_, mer01_, EcalDQMStatusHelper::PHYSICS_BAD_CHANNEL_WARNING, prefixME_, MonitorElement::Reset(), RMSThreshold_, Numbers::sEB(), MonitorElement::setBinContent(), MonitorElement::setBinError(), and superModules_.
{ ievt_++; jevt_++; if ( ievt_ % 10 == 0 ) { if ( debug_ ) std::cout << "EBTimingClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl; } uint32_t bits01 = 0; bits01 |= 1 << EcalDQMStatusHelper::PHYSICS_BAD_CHANNEL_WARNING; char histo[200]; MonitorElement* me; for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; sprintf(histo, (prefixME_ + "/EBTimingTask/EBTMT timing %s").c_str(), Numbers::sEB(ism).c_str()); me = dqmStore_->get(histo); h01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h01_[ism-1] ); meh01_[ism-1] = me; sprintf(histo, (prefixME_ + "/EBTimingTask/EBTMT timing vs amplitude %s").c_str(), Numbers::sEB(ism).c_str()); me = dqmStore_->get(histo); h02_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, h02_[ism-1] ); meh02_[ism-1] = me; if ( meg01_[ism-1] ) meg01_[ism-1]->Reset(); if ( mea01_[ism-1] ) mea01_[ism-1]->Reset(); if ( mep01_[ism-1] ) mep01_[ism-1]->Reset(); if ( mer01_[ism-1] ) mer01_[ism-1]->Reset(); for ( int ie = 1; ie <= 85; ie++ ) { for ( int ip = 1; ip <= 20; ip++ ) { if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent(ie, ip, 2.); bool update01; float num01; float mean01; float rms01; update01 = UtilsClient::getBinStatistics(h01_[ism-1], ie, ip, num01, mean01, rms01); // Task timing map is shifted of +50 ns for graphical reasons. Shift back it. mean01 -= 50.; if ( update01 ) { float val; val = 1.; if ( std::abs(mean01 - expectedMean_) > discrepancyMean_ ) val = 0.; if ( rms01 > RMSThreshold_ ) val = 0.; if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent(ie, ip, val); int ic = Numbers::icEB(ism, ie, ip); if ( mea01_[ism-1] ) { mea01_[ism-1]->setBinContent(ic, mean01); mea01_[ism-1]->setBinError(ic, rms01); } if ( mep01_[ism-1] ) mep01_[ism-1]->Fill(mean01); if ( mer01_[ism-1] ) mer01_[ism-1]->Fill(rms01); } if ( Masks::maskChannel(ism, ie, ip, bits01, EcalBarrel) ) UtilsClient::maskBinContent( meg01_[ism-1], ie, ip ); } } } }
void EBTimingClient::beginJob | ( | void | ) | [virtual] |
BeginJob.
Implements EBClient.
Definition at line 93 of file EBTimingClient.cc.
References gather_cfg::cout, debug_, dqmStore_, ievt_, jevt_, and cmsCodeRules::cppFunctionSkipper::operator.
void EBTimingClient::beginRun | ( | void | ) | [virtual] |
void EBTimingClient::cleanup | ( | void | ) | [virtual] |
Cleanup.
Implements EBClient.
Definition at line 186 of file EBTimingClient.cc.
References cloneME_, dqmStore_, enableCleanup_, edm::getName(), h01_, h02_, i, ecalpyutils::ism(), mea01_, meg01_, meh01_, meh02_, mep01_, mer01_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), and superModules_.
Referenced by endJob(), and endRun().
{ if ( ! enableCleanup_ ) return; for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; if ( cloneME_ ) { if ( h01_[ism-1] ) delete h01_[ism-1]; if ( h02_[ism-1] ) delete h02_[ism-1]; } h01_[ism-1] = 0; h02_[ism-1] = 0; meh01_[ism-1] = 0; meh02_[ism-1] = 0; } dqmStore_->setCurrentFolder( prefixME_ + "/EBTimingClient" ); for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() ); meg01_[ism-1] = 0; if ( mea01_[ism-1] ) dqmStore_->removeElement( mea01_[ism-1]->getName() ); mea01_[ism-1] = 0; if ( mep01_[ism-1] ) dqmStore_->removeElement( mep01_[ism-1]->getName() ); mep01_[ism-1] = 0; if ( mer01_[ism-1] ) dqmStore_->removeElement( mer01_[ism-1]->getName() ); mer01_[ism-1] = 0; } }
void EBTimingClient::endJob | ( | void | ) | [virtual] |
void EBTimingClient::endRun | ( | void | ) | [virtual] |
int EBTimingClient::getEvtPerJob | ( | void | ) | [inline, virtual] |
Get Functions.
Implements EBClient.
Definition at line 71 of file EBTimingClient.h.
References ievt_.
{ return ievt_; }
int EBTimingClient::getEvtPerRun | ( | void | ) | [inline, virtual] |
void EBTimingClient::setup | ( | void | ) | [virtual] |
Setup.
Implements EBClient.
Definition at line 130 of file EBTimingClient.cc.
References DQMStore::book1D(), DQMStore::book2D(), dqmStore_, edm::getName(), trackerHits::histo, i, ecalpyutils::ism(), mea01_, meg01_, mep01_, mer01_, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEB(), MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), DQMStore::setCurrentFolder(), and superModules_.
Referenced by beginRun().
{ char histo[200]; dqmStore_->setCurrentFolder( prefixME_ + "/EBTimingClient" ); for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; if ( meg01_[ism-1] ) dqmStore_->removeElement( meg01_[ism-1]->getName() ); sprintf(histo, "EBTMT timing quality %s", Numbers::sEB(ism).c_str()); meg01_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.); meg01_[ism-1]->setAxisTitle("ieta", 1); meg01_[ism-1]->setAxisTitle("iphi", 2); if ( mea01_[ism-1] ) dqmStore_->removeElement( mea01_[ism-1]->getName() ); sprintf(histo, "EBTMT timing %s", Numbers::sEB(ism).c_str()); mea01_[ism-1] = dqmStore_->book1D(histo, histo, 1700, 0., 1700.); mea01_[ism-1]->setAxisTitle("channel", 1); mea01_[ism-1]->setAxisTitle("time (ns)", 2); if ( mep01_[ism-1] ) dqmStore_->removeElement( mep01_[ism-1]->getName() ); sprintf(histo, "EBTMT timing mean %s", Numbers::sEB(ism).c_str()); mep01_[ism-1] = dqmStore_->book1D(histo, histo, 100, -50.0, 50.0); mep01_[ism-1]->setAxisTitle("mean (ns)", 1); if ( mer01_[ism-1] ) dqmStore_->removeElement( mer01_[ism-1]->getName() ); sprintf(histo, "EBTMT timing rms %s", Numbers::sEB(ism).c_str()); mer01_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0.0, 150.0); mer01_[ism-1]->setAxisTitle("rms (ns)", 1); } for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; if ( meg01_[ism-1] ) meg01_[ism-1]->Reset(); for ( int ie = 1; ie <= 85; ie++ ) { for ( int ip = 1; ip <= 20; ip++ ) { if ( meg01_[ism-1] ) meg01_[ism-1]->setBinContent( ie, ip, 2. ); } } if ( mea01_[ism-1] ) mea01_[ism-1]->Reset(); if ( mep01_[ism-1] ) mep01_[ism-1]->Reset(); if ( mer01_[ism-1] ) mer01_[ism-1]->Reset(); } }
friend class EBSummaryClient [friend] |
Definition at line 34 of file EBTimingClient.h.
bool EBTimingClient::cloneME_ [private] |
Definition at line 79 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), and EBTimingClient().
bool EBTimingClient::debug_ [private] |
Definition at line 82 of file EBTimingClient.h.
Referenced by analyze(), beginJob(), beginRun(), EBTimingClient(), endJob(), and endRun().
float EBTimingClient::discrepancyMean_ [private] |
Definition at line 109 of file EBTimingClient.h.
Referenced by analyze(), and EBTimingClient().
DQMStore* EBTimingClient::dqmStore_ [private] |
Definition at line 90 of file EBTimingClient.h.
Referenced by analyze(), beginJob(), cleanup(), and setup().
bool EBTimingClient::enableCleanup_ [private] |
Definition at line 86 of file EBTimingClient.h.
Referenced by cleanup(), and EBTimingClient().
float EBTimingClient::expectedMean_ [private] |
Definition at line 108 of file EBTimingClient.h.
Referenced by analyze(), and EBTimingClient().
TProfile2D* EBTimingClient::h01_[36] [private] |
Definition at line 95 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), and EBTimingClient().
TH2F* EBTimingClient::h02_[36] [private] |
Definition at line 96 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), and EBTimingClient().
int EBTimingClient::ievt_ [private] |
Definition at line 76 of file EBTimingClient.h.
Referenced by analyze(), beginJob(), endJob(), and getEvtPerJob().
int EBTimingClient::jevt_ [private] |
Definition at line 77 of file EBTimingClient.h.
Referenced by analyze(), beginJob(), beginRun(), endRun(), and getEvtPerRun().
MonitorElement* EBTimingClient::mea01_[36] [private] |
Definition at line 100 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), EBTimingClient(), and setup().
MonitorElement* EBTimingClient::meg01_[36] [private] |
Definition at line 98 of file EBTimingClient.h.
Referenced by analyze(), EBSummaryClient::analyze(), cleanup(), EBTimingClient(), and setup().
MonitorElement* EBTimingClient::meh01_[36] [private] |
Definition at line 92 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), and EBTimingClient().
MonitorElement* EBTimingClient::meh02_[36] [private] |
Definition at line 93 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), and EBTimingClient().
MonitorElement* EBTimingClient::mep01_[36] [private] |
Definition at line 102 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), EBTimingClient(), and setup().
MonitorElement* EBTimingClient::mer01_[36] [private] |
Definition at line 104 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), EBTimingClient(), and setup().
std::string EBTimingClient::prefixME_ [private] |
Definition at line 84 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), EBTimingClient(), and setup().
float EBTimingClient::RMSThreshold_ [private] |
Definition at line 110 of file EBTimingClient.h.
Referenced by analyze(), and EBTimingClient().
std::vector<int> EBTimingClient::superModules_ [private] |
Definition at line 88 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), EBTimingClient(), and setup().
bool EBTimingClient::verbose_ [private] |
Definition at line 81 of file EBTimingClient.h.
Referenced by EBTimingClient().