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_
 
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 36 of file EBPedestalOnlineClient.cc.

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

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

Destructor.

Definition at line 84 of file EBPedestalOnlineClient.cc.

84  {
85 
86 }

Member Function Documentation

void EBPedestalOnlineClient::analyze ( void  )
virtual

Analyze.

Implements EBClient.

Definition at line 292 of file EBPedestalOnlineClient.cc.

References abs, cloneME_, gather_cfg::cout, debug_, discrepancyMean_, dqmStore_, EcalBarrel, expectedMean_, MonitorElement::Fill(), DQMStore::get(), UtilsClient::getBinStatistics(), h03_, trackerHits::histo, 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_, Numbers::sEB(), MonitorElement::setBinContent(), and superModules_.

292  {
293 
294  ievt_++;
295  jevt_++;
296  if ( ievt_ % 10 == 0 ) {
297  if ( debug_ ) std::cout << "EBPedestalOnlineClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
298  }
299 
300  uint32_t bits03 = 0;
303 
304  char histo[200];
305 
306  MonitorElement* me;
307 
308  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
309 
310  int ism = superModules_[i];
311 
312  sprintf(histo, (prefixME_ + "/EBPedestalOnlineTask/Gain12/EBPOT pedestal %s G12").c_str(), Numbers::sEB(ism).c_str());
313  me = dqmStore_->get(histo);
314  h03_[ism-1] = UtilsClient::getHisto<TProfile2D*>( me, cloneME_, h03_[ism-1] );
315  if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
316  if ( mep03_[ism-1] ) mep03_[ism-1]->Reset();
317  if ( mer03_[ism-1] ) mer03_[ism-1]->Reset();
318 
319  for ( int ie = 1; ie <= 85; ie++ ) {
320  for ( int ip = 1; ip <= 20; ip++ ) {
321 
322  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ie, ip, 2.);
323 
324  bool update03;
325 
326  float num03;
327  float mean03;
328  float rms03;
329 
330  update03 = UtilsClient::getBinStatistics(h03_[ism-1], ie, ip, num03, mean03, rms03);
331 
332  if ( update03 ) {
333 
334  float val;
335 
336  val = 1.;
337  if ( std::abs(mean03 - expectedMean_) > discrepancyMean_ )
338  val = 0.;
339  if ( rms03 > RMSThreshold_ )
340  val = 0.;
341  if ( meg03_[ism-1] ) meg03_[ism-1]->setBinContent(ie, ip, val);
342 
343  if ( mep03_[ism-1] ) mep03_[ism-1]->Fill(mean03);
344  if ( mer03_[ism-1] ) mer03_[ism-1]->Fill(rms03);
345 
346  }
347 
348  if ( Masks::maskChannel(ism, ie, ip, bits03, EcalBarrel) ) UtilsClient::maskBinContent( meg03_[ism-1], ie, ip );
349 
350  }
351  }
352 
353  }
354 
355 }
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:81
MonitorElement * mer03_[36]
static void maskBinContent(const MonitorElement *me, const int ix, const int iy)
Mask the bin content.
Definition: UtilsClient.h:189
static const int PEDESTAL_ONLINE_HIGH_GAIN_RMS_ERROR
#define abs(x)
Definition: mlp_lapack.h:159
tuple histo
Definition: trackerHits.py:12
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:1270
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:47
void Reset(void)
reset ME (ie. contents, errors, etc)
static bool getBinStatistics(const T *histo, const int ix, const int iy, float &num, float &mean, float &rms)
Returns true if the bin contains good statistical data.
Definition: UtilsClient.h:133
void EBPedestalOnlineClient::beginJob ( void  )
virtual

BeginJob.

Implements EBClient.

Definition at line 88 of file EBPedestalOnlineClient.cc.

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

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

BeginRun.

Implements EBClient.

Definition at line 99 of file EBPedestalOnlineClient.cc.

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

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

Cleanup.

Implements EBClient.

Definition at line 174 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().

174  {
175 
176  if ( ! enableCleanup_ ) return;
177 
178  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
179 
180  int ism = superModules_[i];
181 
182  if ( cloneME_ ) {
183  if ( h03_[ism-1] ) delete h03_[ism-1];
184  }
185 
186  h03_[ism-1] = 0;
187 
188  }
189 
190  dqmStore_->setCurrentFolder( prefixME_ + "/EBPedestalOnlineClient" );
191 
192  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
193 
194  int ism = superModules_[i];
195 
196  if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
197  meg03_[ism-1] = 0;
198 
199  if ( mep03_[ism-1] ) dqmStore_->removeElement( mep03_[ism-1]->getName() );
200  mep03_[ism-1] = 0;
201 
202  if ( mer03_[ism-1] ) dqmStore_->removeElement( mer03_[ism-1]->getName() );
203  mer03_[ism-1] = 0;
204 
205  }
206 
207 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * mer03_[36]
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2338
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:47
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:237
void EBPedestalOnlineClient::endJob ( void  )
virtual

EndJob.

Implements EBClient.

Definition at line 109 of file EBPedestalOnlineClient.cc.

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

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

EndRun.

Implements EBClient.

Definition at line 117 of file EBPedestalOnlineClient.cc.

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

117  {
118 
119  if ( debug_ ) std::cout << "EBPedestalOnlineClient: endRun, jevt = " << jevt_ << std::endl;
120 
121  this->cleanup();
122 
123 }
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 125 of file EBPedestalOnlineClient.cc.

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

Referenced by beginRun().

125  {
126 
127  char histo[200];
128 
129  dqmStore_->setCurrentFolder( prefixME_ + "/EBPedestalOnlineClient" );
130 
131  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
132 
133  int ism = superModules_[i];
134 
135  if ( meg03_[ism-1] ) dqmStore_->removeElement( meg03_[ism-1]->getName() );
136  sprintf(histo, "EBPOT pedestal quality G12 %s", Numbers::sEB(ism).c_str());
137  meg03_[ism-1] = dqmStore_->book2D(histo, histo, 85, 0., 85., 20, 0., 20.);
138  meg03_[ism-1]->setAxisTitle("ieta", 1);
139  meg03_[ism-1]->setAxisTitle("iphi", 2);
140 
141  if ( mep03_[ism-1] ) dqmStore_->removeElement( mep03_[ism-1]->getName() );
142  sprintf(histo, "EBPOT pedestal mean G12 %s", Numbers::sEB(ism).c_str());
143  mep03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 150., 250.);
144  mep03_[ism-1]->setAxisTitle("mean", 1);
145 
146  if ( mer03_[ism-1] ) dqmStore_->removeElement( mer03_[ism-1]->getName() );
147  sprintf(histo, "EBPOT pedestal rms G12 %s", Numbers::sEB(ism).c_str());
148  mer03_[ism-1] = dqmStore_->book1D(histo, histo, 100, 0., 10.);
149  mer03_[ism-1]->setAxisTitle("rms", 1);
150 
151  }
152 
153  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
154 
155  int ism = superModules_[i];
156 
157  if ( meg03_[ism-1] ) meg03_[ism-1]->Reset();
158 
159  for ( int ie = 1; ie <= 85; ie++ ) {
160  for ( int ip = 1; ip <= 20; ip++ ) {
161 
162  meg03_[ism-1]->setBinContent( ie, ip, 2. );
163 
164  }
165  }
166 
167  if ( mep03_[ism-1] ) mep03_[ism-1]->Reset();
168  if ( mer03_[ism-1] ) mer03_[ism-1]->Reset();
169 
170  }
171 
172 }
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:81
MonitorElement * mer03_[36]
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:519
tuple histo
Definition: trackerHits.py:12
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2338
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:647
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:47
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:237

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().

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().