CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes | Friends
EBPedestalOnlineClient Class Reference

#include <EBPedestalOnlineClient.h>

Inheritance diagram for EBPedestalOnlineClient:
EBClient

Public Member Functions

void analyze (void)
 Analyze. More...
 
void beginJob (void)
 BeginJob. More...
 
void beginRun (void)
 BeginRun. More...
 
void cleanup (void)
 Cleanup. More...
 
 EBPedestalOnlineClient (const edm::ParameterSet &ps)
 Constructor. More...
 
void endJob (void)
 EndJob. More...
 
void endRun (void)
 EndRun. More...
 
int getEvtPerJob ()
 Get Functions. More...
 
int getEvtPerRun ()
 Returns the number of processed events in this Run. More...
 
void setup (void)
 Setup. More...
 
virtual ~EBPedestalOnlineClient ()
 Destructor. More...
 
- Public Member Functions inherited from EBClient
virtual ~EBClient (void)
 

Private Attributes

bool cloneME_
 
bool debug_
 
float discrepancyMean_
 
DQMStoredqmStore_
 
bool enableCleanup_
 
float expectedMean_
 
TProfile2D * h03_ [36]
 
int ievt_
 
int jevt_
 
MonitorElementmeg03_ [36]
 
MonitorElementmep03_ [36]
 
MonitorElementmer03_ [36]
 
std::string prefixME_
 
float RMSThreshold_
 
float RMSThresholdHighEta_
 
std::vector< int > superModules_
 
bool verbose_
 

Friends

class EBSummaryClient
 

Detailed Description

Definition at line 33 of file EBPedestalOnlineClient.h.

Constructor & Destructor Documentation

EBPedestalOnlineClient::EBPedestalOnlineClient ( const edm::ParameterSet ps)

Constructor.

Definition at line 37 of file EBPedestalOnlineClient.cc.

References cloneME_, debug_, discrepancyMean_, enableCleanup_, expectedMean_, edm::ParameterSet::getUntrackedParameter(), h03_, i, ecalpyutils::ism(), meg03_, mep03_, mer03_, prefixME_, RMSThreshold_, RMSThresholdHighEta_, superModules_, and verbose_.

37  {
38 
39  // cloneME switch
40  cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
41 
42  // verbose switch
43  verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
44 
45  // debug switch
46  debug_ = ps.getUntrackedParameter<bool>("debug", false);
47 
48  // prefixME path
49  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
50 
51  // enableCleanup_ switch
52  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
53 
54  // vector of selected Super Modules (Defaults to all 36).
55  superModules_.reserve(36);
56  for ( unsigned int i = 1; i <= 36; i++ ) superModules_.push_back(i);
57  superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
58 
59  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
60 
61  int ism = superModules_[i];
62 
63  h03_[ism-1] = 0;
64 
65  }
66 
67  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
68 
69  int ism = superModules_[i];
70 
71  meg03_[ism-1] = 0;
72 
73  mep03_[ism-1] = 0;
74 
75  mer03_[ism-1] = 0;
76 
77  }
78 
79  expectedMean_ = 200.0;
80  discrepancyMean_ = 25.0;
81  RMSThreshold_ = 3.0;
83 
84 }
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
MonitorElement * mer03_[36]
std::vector< int > superModules_
MonitorElement * meg03_[36]
MonitorElement * mep03_[36]
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
EBPedestalOnlineClient::~EBPedestalOnlineClient ( )
virtual

Destructor.

Definition at line 86 of file EBPedestalOnlineClient.cc.

86  {
87 
88 }

Member Function Documentation

void EBPedestalOnlineClient::analyze ( void  )
virtual

Analyze.

Implements EBClient.

Definition at line 294 of file EBPedestalOnlineClient.cc.

References abs, cloneME_, gather_cfg::cout, debug_, discrepancyMean_, dqmStore_, EcalBarrel, expectedMean_, MonitorElement::Fill(), DQMStore::get(), UtilsClient::getBinStatistics(), h03_, i, ievt_, jevt_, UtilsClient::maskBinContent(), Masks::maskChannel(), meg03_, mep03_, mer03_, EcalDQMStatusHelper::PEDESTAL_ONLINE_HIGH_GAIN_MEAN_ERROR, EcalDQMStatusHelper::PEDESTAL_ONLINE_HIGH_GAIN_RMS_ERROR, prefixME_, MonitorElement::Reset(), RMSThreshold_, RMSThresholdHighEta_, Numbers::sEB(), MonitorElement::setBinContent(), and superModules_.

294  {
295 
296  ievt_++;
297  jevt_++;
298  if ( ievt_ % 10 == 0 ) {
299  if ( debug_ ) std::cout << "EBPedestalOnlineClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
300  }
301 
302  uint32_t bits03 = 0;
305 
306  MonitorElement* me;
307 
308  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
309 
310  int ism = superModules_[i];
311 
312  me = dqmStore_->get( prefixME_ + "/EBPedestalOnlineTask/Gain12/EBPOT pedestal " + Numbers::sEB(ism) + " G12" );
313  h03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h03_[ism-1] );
314  if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
315  if ( mep03_[ism-1] ) mep03_[ism-1]->Reset();
316  if ( mer03_[ism-1] ) mer03_[ism-1]->Reset();
317 
318  for ( int ie = 1; ie <= 85; ie++ ) {
319  for ( int ip = 1; ip <= 20; ip++ ) {
320 
321  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ie, ip, 2.);
322 
323  bool update03;
324 
325  float num03;
326  float mean03;
327  float rms03;
328 
329  update03 = UtilsClient::getBinStatistics(h03_[ism-1], ie, ip, num03, mean03, rms03);
330 
331  if ( update03 ) {
332 
333  float val;
334 
335  val = 1.;
336  if ( std::abs(mean03 - expectedMean_) > discrepancyMean_ )
337  val = 0.;
338  if ( (ie<=40 && rms03 > RMSThreshold_) || (ie>40 && rms03 > RMSThresholdHighEta_) )
339  val = 0.;
340  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ie, ip, val);
341 
342  if ( mep03_[ism-1] ) mep03_[ism-1]->Fill(mean03);
343  if ( mer03_[ism-1] ) mer03_[ism-1]->Fill(rms03);
344 
345  }
346 
347  if ( Masks::maskChannel(ism, ie, ip, bits03, EcalBarrel) ) UtilsClient::maskBinContent( meg03_[ism-1], ie, ip );
348 
349  }
350  }
351 
352  }
353 
354 }
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
static bool maskChannel(int ism, int i1, int i2, uint32_t bits, const EcalSubdetector subdet)
Definition: Masks.cc:60
static std::string sEB(const int ism)
Definition: Numbers.cc:87
MonitorElement * mer03_[36]
static const int PEDESTAL_ONLINE_HIGH_GAIN_RMS_ERROR
#define abs(x)
Definition: mlp_lapack.h:159
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
Definition: UtilsClient.cc:231
std::vector< int > superModules_
void Fill(long long x)
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1265
static bool getBinStatistics(TH1 *histo, const int ix, const int iy, float &num, float &mean, float &rms, float minEntries=1.)
Returns true if the bin contains good statistical data.
Definition: UtilsClient.cc:74
static const int PEDESTAL_ONLINE_HIGH_GAIN_MEAN_ERROR
MonitorElement * meg03_[36]
MonitorElement * mep03_[36]
tuple cout
Definition: gather_cfg.py:41
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void Reset(void)
reset ME (ie. contents, errors, etc)
void EBPedestalOnlineClient::beginJob ( void  )
virtual

BeginJob.

Implements EBClient.

Definition at line 90 of file EBPedestalOnlineClient.cc.

References gather_cfg::cout, debug_, dqmStore_, ievt_, jevt_, and cmsCodeRules.cppFunctionSkipper::operator.

90  {
91 
93 
94  if ( debug_ ) std::cout << "EBPedestalOnlineClient: beginJob" << std::endl;
95 
96  ievt_ = 0;
97  jevt_ = 0;
98 
99 }
tuple cout
Definition: gather_cfg.py:41
void EBPedestalOnlineClient::beginRun ( void  )
virtual

BeginRun.

Implements EBClient.

Definition at line 101 of file EBPedestalOnlineClient.cc.

References gather_cfg::cout, debug_, jevt_, and setup().

101  {
102 
103  if ( debug_ ) std::cout << "EBPedestalOnlineClient: beginRun" << std::endl;
104 
105  jevt_ = 0;
106 
107  this->setup();
108 
109 }
tuple cout
Definition: gather_cfg.py:41
void EBPedestalOnlineClient::cleanup ( void  )
virtual

Cleanup.

Implements EBClient.

Definition at line 176 of file EBPedestalOnlineClient.cc.

References cloneME_, dqmStore_, enableCleanup_, edm::getName(), h03_, i, ecalpyutils::ism(), meg03_, mep03_, mer03_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), and superModules_.

Referenced by endJob(), and endRun().

176  {
177 
178  if ( ! enableCleanup_ ) return;
179 
180  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
181 
182  int ism = superModules_[i];
183 
184  if ( cloneME_ ) {
185  if ( h03_[ism-1] ) delete h03_[ism-1];
186  }
187 
188  h03_[ism-1] = 0;
189 
190  }
191 
192  dqmStore_->setCurrentFolder( prefixME_ + "/EBPedestalOnlineClient" );
193 
194  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
195 
196  int ism = superModules_[i];
197 
198  if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
199  meg03_[ism-1] = 0;
200 
201  if ( mep03_[ism-1] ) dqmStore_->removeElement( mep03_[ism-1]->getName() );
202  mep03_[ism-1] = 0;
203 
204  if ( mer03_[ism-1] ) dqmStore_->removeElement( mer03_[ism-1]->getName() );
205  mer03_[ism-1] = 0;
206 
207  }
208 
209 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * mer03_[36]
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2353
std::string getName(Reflex::Type &cc)
Definition: ClassFiller.cc:18
MonitorElement * meg03_[36]
MonitorElement * mep03_[36]
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
void EBPedestalOnlineClient::endJob ( void  )
virtual

EndJob.

Implements EBClient.

Definition at line 111 of file EBPedestalOnlineClient.cc.

References cleanup(), gather_cfg::cout, debug_, and ievt_.

111  {
112 
113  if ( debug_ ) std::cout << "EBPedestalOnlineClient: endJob, ievt = " << ievt_ << std::endl;
114 
115  this->cleanup();
116 
117 }
tuple cout
Definition: gather_cfg.py:41
void EBPedestalOnlineClient::endRun ( void  )
virtual

EndRun.

Implements EBClient.

Definition at line 119 of file EBPedestalOnlineClient.cc.

References cleanup(), gather_cfg::cout, debug_, and jevt_.

119  {
120 
121  if ( debug_ ) std::cout << "EBPedestalOnlineClient: endRun, jevt = " << jevt_ << std::endl;
122 
123  this->cleanup();
124 
125 }
tuple cout
Definition: gather_cfg.py:41
int EBPedestalOnlineClient::getEvtPerJob ( void  )
inlinevirtual

Get Functions.

Implements EBClient.

Definition at line 72 of file EBPedestalOnlineClient.h.

References ievt_.

int EBPedestalOnlineClient::getEvtPerRun ( void  )
inlinevirtual

Returns the number of processed events in this Run.

Implements EBClient.

Definition at line 73 of file EBPedestalOnlineClient.h.

References jevt_.

void EBPedestalOnlineClient::setup ( void  )
virtual

Setup.

Implements EBClient.

Definition at line 127 of file EBPedestalOnlineClient.cc.

References DQMStore::book1D(), DQMStore::book2D(), dqmStore_, edm::getName(), i, ecalpyutils::ism(), meg03_, mep03_, mer03_, mergeVDriftHistosByStation::name, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEB(), MonitorElement::setAxisTitle(), MonitorElement::setBinContent(), DQMStore::setCurrentFolder(), and superModules_.

Referenced by beginRun().

127  {
128 
129  std::string name;
130 
131  dqmStore_->setCurrentFolder( prefixME_ + "/EBPedestalOnlineClient" );
132 
133  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
134 
135  int ism = superModules_[i];
136 
137  if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
138  name = "EBPOT pedestal quality G12 " + Numbers::sEB(ism);
139  meg03_[ism-1] = dqmStore_->book2D(name, name, 85, 0., 85., 20, 0., 20.);
140  meg03_[ism-1]->setAxisTitle("ieta", 1);
141  meg03_[ism-1]->setAxisTitle("iphi", 2);
142 
143  if ( mep03_[ism-1] ) dqmStore_->removeElement( mep03_[ism-1]->getName() );
144  name = "EBPOT pedestal mean G12 " + Numbers::sEB(ism);
145  mep03_[ism-1] = dqmStore_->book1D(name, name, 100, 150., 250.);
146  mep03_[ism-1]->setAxisTitle("mean", 1);
147 
148  if ( mer03_[ism-1] ) dqmStore_->removeElement( mer03_[ism-1]->getName() );
149  name = "EBPOT pedestal rms G12 " + Numbers::sEB(ism);
150  mer03_[ism-1] = dqmStore_->book1D(name, name, 100, 0., 10.);
151  mer03_[ism-1]->setAxisTitle("rms", 1);
152 
153  }
154 
155  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
156 
157  int ism = superModules_[i];
158 
159  if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
160 
161  for ( int ie = 1; ie <= 85; ie++ ) {
162  for ( int ip = 1; ip <= 20; ip++ ) {
163 
164  meg03_[ism-1]->setBinContent( ie, ip, 2. );
165 
166  }
167  }
168 
169  if ( mep03_[ism-1] ) mep03_[ism-1]->Reset();
170  if ( mer03_[ism-1] ) mer03_[ism-1]->Reset();
171 
172  }
173 
174 }
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
static std::string sEB(const int ism)
Definition: Numbers.cc:87
MonitorElement * mer03_[36]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2353
std::string getName(Reflex::Type &cc)
Definition: ClassFiller.cc:18
MonitorElement * meg03_[36]
MonitorElement * mep03_[36]
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
Definition: DQMStore.cc:642
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void Reset(void)
reset ME (ie. contents, errors, etc)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232

Friends And Related Function Documentation

friend class EBSummaryClient
friend

Definition at line 35 of file EBPedestalOnlineClient.h.

Member Data Documentation

bool EBPedestalOnlineClient::cloneME_
private

Definition at line 80 of file EBPedestalOnlineClient.h.

Referenced by analyze(), cleanup(), and EBPedestalOnlineClient().

bool EBPedestalOnlineClient::debug_
private
float EBPedestalOnlineClient::discrepancyMean_
private

Definition at line 104 of file EBPedestalOnlineClient.h.

Referenced by analyze(), and EBPedestalOnlineClient().

DQMStore* EBPedestalOnlineClient::dqmStore_
private

Definition at line 91 of file EBPedestalOnlineClient.h.

Referenced by analyze(), beginJob(), cleanup(), and setup().

bool EBPedestalOnlineClient::enableCleanup_
private

Definition at line 87 of file EBPedestalOnlineClient.h.

Referenced by cleanup(), and EBPedestalOnlineClient().

float EBPedestalOnlineClient::expectedMean_
private

Definition at line 103 of file EBPedestalOnlineClient.h.

Referenced by analyze(), and EBPedestalOnlineClient().

TProfile2D* EBPedestalOnlineClient::h03_[36]
private

Definition at line 93 of file EBPedestalOnlineClient.h.

Referenced by analyze(), cleanup(), and EBPedestalOnlineClient().

int EBPedestalOnlineClient::ievt_
private

Definition at line 77 of file EBPedestalOnlineClient.h.

Referenced by analyze(), beginJob(), endJob(), and getEvtPerJob().

int EBPedestalOnlineClient::jevt_
private

Definition at line 78 of file EBPedestalOnlineClient.h.

Referenced by analyze(), beginJob(), beginRun(), endRun(), and getEvtPerRun().

MonitorElement* EBPedestalOnlineClient::meg03_[36]
private
MonitorElement* EBPedestalOnlineClient::mep03_[36]
private

Definition at line 97 of file EBPedestalOnlineClient.h.

Referenced by analyze(), cleanup(), EBPedestalOnlineClient(), and setup().

MonitorElement* EBPedestalOnlineClient::mer03_[36]
private

Definition at line 99 of file EBPedestalOnlineClient.h.

Referenced by analyze(), cleanup(), EBPedestalOnlineClient(), and setup().

std::string EBPedestalOnlineClient::prefixME_
private

Definition at line 85 of file EBPedestalOnlineClient.h.

Referenced by analyze(), cleanup(), EBPedestalOnlineClient(), and setup().

float EBPedestalOnlineClient::RMSThreshold_
private

Definition at line 105 of file EBPedestalOnlineClient.h.

Referenced by analyze(), and EBPedestalOnlineClient().

float EBPedestalOnlineClient::RMSThresholdHighEta_
private

Definition at line 105 of file EBPedestalOnlineClient.h.

Referenced by analyze(), and EBPedestalOnlineClient().

std::vector<int> EBPedestalOnlineClient::superModules_
private

Definition at line 89 of file EBPedestalOnlineClient.h.

Referenced by analyze(), cleanup(), EBPedestalOnlineClient(), and setup().

bool EBPedestalOnlineClient::verbose_
private

Definition at line 82 of file EBPedestalOnlineClient.h.

Referenced by EBPedestalOnlineClient().