#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] |
MonitorElement * | meTimeSummaryMapProjEta_ |
MonitorElement * | meTimeSummaryMapProjPhi_ |
int | nHitThreshold_ |
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 36 of file EBTimingClient.cc.
References cloneME_, debug_, discrepancyMean_, dqmStore_, enableCleanup_, expectedMean_, edm::ParameterSet::getUntrackedParameter(), h01_, h02_, i, ievt_, ecalpyutils::ism(), jevt_, mea01_, meg01_, meh01_, meh02_, mep01_, mer01_, meTimeSummaryMapProjEta_, meTimeSummaryMapProjPhi_, nHitThreshold_, 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; } meTimeSummaryMapProjEta_ = 0; meTimeSummaryMapProjPhi_ = 0; expectedMean_ = 0.0; discrepancyMean_ = 2.0; RMSThreshold_ = 6.0; nHitThreshold_ = ps.getUntrackedParameter<int>("timingNHitThrehold", 5); ievt_ = 0; jevt_ = 0; dqmStore_ = 0; }
EBTimingClient::~EBTimingClient | ( | ) | [virtual] |
void EBTimingClient::analyze | ( | void | ) | [virtual] |
Analyze.
Implements EBClient.
Definition at line 338 of file EBTimingClient.cc.
References abs, cloneME_, gather_cfg::cout, debug_, discrepancyMean_, dqmStore_, EcalBarrel, eta(), expectedMean_, MonitorElement::Fill(), DQMStore::get(), UtilsClient::getBinStatistics(), h01_, h02_, i, Numbers::icEB(), ievt_, jevt_, UtilsClient::maskBinContent(), Masks::maskChannel(), mea01_, meg01_, meh01_, meh02_, mep01_, mer01_, meTimeSummaryMapProjEta_, meTimeSummaryMapProjPhi_, nHitThreshold_, phi, 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; MonitorElement* me; if( meTimeSummaryMapProjEta_ ) meTimeSummaryMapProjEta_->Reset(); if( meTimeSummaryMapProjPhi_ ) meTimeSummaryMapProjPhi_->Reset(); for ( unsigned int i=0; i<superModules_.size(); i++ ) { int ism = superModules_[i]; me = dqmStore_->get( prefixME_ + "/EBTimingTask/EBTMT timing " + Numbers::sEB(ism) ); h01_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h01_[ism-1] ); meh01_[ism-1] = me; me = dqmStore_->get( prefixME_ + "/EBTimingTask/EBTMT timing vs amplitude " + Numbers::sEB(ism) ); 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, nHitThreshold_); // 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); float eta, phi; if ( ism <= 18 ) { eta = -ie+0.5; phi = ip+20*(ism-1)-0.5; } else { eta = ie-0.5; phi = (20-ip)+20*(ism-19)+0.5; } if( meTimeSummaryMapProjEta_ ) meTimeSummaryMapProjEta_->Fill(eta, mean01); if( meTimeSummaryMapProjPhi_ ) meTimeSummaryMapProjPhi_->Fill(phi, mean01); } 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 102 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 207 of file EBTimingClient.cc.
References cloneME_, dqmStore_, enableCleanup_, edm::getName(), MonitorElement::getName(), h01_, h02_, i, ecalpyutils::ism(), mea01_, meg01_, meh01_, meh02_, mep01_, mer01_, meTimeSummaryMapProjEta_, meTimeSummaryMapProjPhi_, 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; } if ( meTimeSummaryMapProjEta_ ) dqmStore_->removeElement( meTimeSummaryMapProjEta_->getName() ); if ( meTimeSummaryMapProjPhi_ ) dqmStore_->removeElement( meTimeSummaryMapProjPhi_->getName() ); }
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 139 of file EBTimingClient.cc.
References DQMStore::book1D(), DQMStore::book2D(), DQMStore::bookProfile(), dqmStore_, edm::getName(), i, ecalpyutils::ism(), mea01_, meg01_, mep01_, mer01_, meTimeSummaryMapProjEta_, meTimeSummaryMapProjPhi_, mergeVDriftHistosByStation::name, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEB(), MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), DQMStore::setCurrentFolder(), and superModules_.
Referenced by beginRun().
{ std::string name; 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() ); name = "EBTMT timing quality " + Numbers::sEB(ism); meg01_[ism-1] = dqmStore_->book2D(name, name, 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() ); name = "EBTMT timing " + Numbers::sEB(ism); mea01_[ism-1] = dqmStore_->book1D(name, name, 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() ); name = "EBTMT timing mean " + Numbers::sEB(ism); mep01_[ism-1] = dqmStore_->book1D(name, name, 100, -25.0, 25.0); mep01_[ism-1]->setAxisTitle("mean (ns)", 1); if ( mer01_[ism-1] ) dqmStore_->removeElement( mer01_[ism-1]->getName() ); name = "EBTMT timing rms " + Numbers::sEB(ism); mer01_[ism-1] = dqmStore_->book1D(name, name, 100, 0.0, 10.0); mer01_[ism-1]->setAxisTitle("rms (ns)", 1); } name = "EBTMT timing projection eta"; meTimeSummaryMapProjEta_ = dqmStore_->bookProfile(name, name, 34, -85., 85., -20., 20., ""); meTimeSummaryMapProjEta_->setAxisTitle("jeta", 1); meTimeSummaryMapProjEta_->setAxisTitle("time (ns)", 2); name = "EBTMT timing projection phi"; meTimeSummaryMapProjPhi_ = dqmStore_->bookProfile(name, name, 72, 0., 360., -20., 20., ""); meTimeSummaryMapProjPhi_->setAxisTitle("jphi", 1); meTimeSummaryMapProjPhi_->setAxisTitle("time (ns)", 2); 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 112 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(), EBTimingClient(), 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 111 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(), EBTimingClient(), endJob(), and getEvtPerJob().
int EBTimingClient::jevt_ [private] |
Definition at line 77 of file EBTimingClient.h.
Referenced by analyze(), beginJob(), beginRun(), EBTimingClient(), 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(), 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().
Definition at line 106 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), EBTimingClient(), and setup().
Definition at line 107 of file EBTimingClient.h.
Referenced by analyze(), cleanup(), EBTimingClient(), and setup().
int EBTimingClient::nHitThreshold_ [private] |
Definition at line 115 of file EBTimingClient.h.
Referenced by analyze(), and EBTimingClient().
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 113 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().