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
EBTriggerTowerClient Class Reference

#include <EBTriggerTowerClient.h>

Inheritance diagram for EBTriggerTowerClient:
EBClient

Public Member Functions

void analyze (void)
 Analyze. More...
 
void beginJob (void)
 BeginJob. More...
 
void beginRun (void)
 BeginRun. More...
 
void cleanup (void)
 Cleanup. More...
 
 EBTriggerTowerClient (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 ~EBTriggerTowerClient ()
 Destructor. More...
 
- Public Member Functions inherited from EBClient
virtual ~EBClient (void)
 

Private Attributes

bool cloneME_
 
bool debug_
 
DQMStoredqmStore_
 
bool enableCleanup_
 
int ievt_
 
int jevt_
 
TH2F * l01_ [36]
 
TH2F * l02_ [36]
 
MonitorElementme_o01_ [36]
 
MonitorElementme_o02_ [36]
 
MonitorElementmel01_ [36]
 
MonitorElementmel02_ [36]
 
MonitorElementmeo01_ [36]
 
TH3F * o01_ [36]
 
std::string prefixME_
 
std::vector< int > superModules_
 
bool verbose_
 

Friends

class EBSummaryClient
 

Detailed Description

Definition at line 33 of file EBTriggerTowerClient.h.

Constructor & Destructor Documentation

EBTriggerTowerClient::EBTriggerTowerClient ( const edm::ParameterSet ps)

Constructor.

Definition at line 24 of file EBTriggerTowerClient.cc.

References cloneME_, debug_, enableCleanup_, edm::ParameterSet::getUntrackedParameter(), i, ecalpyutils::ism(), l01_, me_o01_, me_o02_, mel01_, meo01_, o01_, prefixME_, AlCaHLTBitMon_QueryRunRegistry::string, superModules_, and verbose_.

24  {
25 
26  // cloneME switch
27  cloneME_ = ps.getUntrackedParameter<bool>("cloneME", true);
28 
29  // verbose switch
30  verbose_ = ps.getUntrackedParameter<bool>("verbose", true);
31 
32  // debug switch
33  debug_ = ps.getUntrackedParameter<bool>("debug", false);
34 
35  // prefixME path
36  prefixME_ = ps.getUntrackedParameter<std::string>("prefixME", "");
37 
38  // enableCleanup_ switch
39  enableCleanup_ = ps.getUntrackedParameter<bool>("enableCleanup", false);
40 
41  // vector of selected Super Modules (Defaults to all 36).
42  superModules_.reserve(36);
43  for ( unsigned int i = 1; i <= 36; i++ ) superModules_.push_back(i);
44  superModules_ = ps.getUntrackedParameter<std::vector<int> >("superModules", superModules_);
45 
46  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
47 
48  int ism = superModules_[i];
49 
50  l01_[ism-1] = 0;
51  o01_[ism-1] = 0;
52 
53  mel01_[ism-1] = 0;
54  meo01_[ism-1] = 0;
55 
56  }
57 
58  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
59 
60  int ism = superModules_[i];
61 
62  me_o01_[ism-1] = 0;
63  me_o02_[ism-1] = 0;
64 
65  }
66 
67 }
T getUntrackedParameter(std::string const &, T const &) const
int i
Definition: DBlmapReader.cc:9
MonitorElement * me_o02_[36]
MonitorElement * mel01_[36]
MonitorElement * meo01_[36]
std::vector< int > superModules_
MonitorElement * me_o01_[36]
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
EBTriggerTowerClient::~EBTriggerTowerClient ( )
virtual

Destructor.

Definition at line 69 of file EBTriggerTowerClient.cc.

69  {
70 
71 }

Member Function Documentation

void EBTriggerTowerClient::analyze ( void  )
virtual

Analyze.

Implements EBClient.

Definition at line 204 of file EBTriggerTowerClient.cc.

References cloneME_, gather_cfg::cout, debug_, dqmStore_, DQMStore::get(), i, ievt_, getHLTprescales::index, j, jevt_, l01_, l02_, max(), me_o01_, me_o02_, mel01_, mel02_, meo01_, o01_, prefixME_, MonitorElement::Reset(), Numbers::sEB(), MonitorElement::setBinContent(), superModules_, and pileupDistInMC::total.

204  {
205 
206  ievt_++;
207  jevt_++;
208  if ( ievt_ % 10 == 0 ) {
209  if ( debug_ ) std::cout << "EBTriggerTowerClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
210  }
211 
212  MonitorElement* me;
213 
214  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
215 
216  int ism = superModules_[i];
217 
218  me = dqmStore_->get( prefixME_ + "/EBTriggerTowerTask/EBTTT EmulError " + Numbers::sEB(ism) );
219  l01_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, l01_[ism-1] );
220  mel01_[ism-1] = me;
221 
222  me = dqmStore_->get( prefixME_ + "/EBTriggerTowerTask/EBTTT EmulFineGrainVetoError " + Numbers::sEB(ism) );
223  l02_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, l02_[ism-1] );
224  mel02_[ism-1] = me;
225 
226  me = dqmStore_->get( prefixME_ + "/EBTriggerTowerTask/EBTTT EmulMatch " + Numbers::sEB(ism) );
227  o01_[ism-1] = UtilsClient::getHisto<TH3F*>( me, cloneME_, o01_[ism-1] );
228  meo01_[ism-1] = me;
229 
230  if ( me_o01_[ism-1] ) me_o01_[ism-1]->Reset();
231  if ( me_o02_[ism-1] ) me_o02_[ism-1]->Reset();
232 
233  for (int ie = 1; ie <= 17; ie++) {
234  for (int ip = 1; ip <= 4; ip++) {
235 
236  if ( o01_[ism-1] ) {
237  // find the most frequent TP timing that matches the emulator
238  float index=-1;
239  double max=0;
240  double total=0;
241  for (int j=0; j<6; j++) {
242  double sampleEntries = o01_[ism-1]->GetBinContent(ie, ip, j+1);
243  if(sampleEntries > max) {
244  index=j;
245  max = sampleEntries;
246  }
247  total += sampleEntries;
248  }
249  if ( max > 0 ) {
250  if ( index == 0 ) {
251  me_o01_[ism-1]->setBinContent(ie, ip, -1);
252  } else {
253  me_o01_[ism-1]->setBinContent(ie, ip, index );
254  }
255  }
256  double fraction = (total > 0) ? 1.0 - max/total : 0.;
257  if ( me_o02_[ism-1] ) me_o02_[ism-1]->setBinContent(ie, ip, fraction);
258  }
259 
260  }
261  }
262 
263  }
264 
265 }
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
MonitorElement * me_o02_[36]
MonitorElement * mel01_[36]
static std::string sEB(const unsigned ism)
Definition: Numbers.cc:91
MonitorElement * mel02_[36]
MonitorElement * meo01_[36]
const T & max(const T &a, const T &b)
std::vector< int > superModules_
int j
Definition: DBlmapReader.cc:9
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1623
MonitorElement * me_o01_[36]
tuple cout
Definition: gather_cfg.py:121
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void Reset(void)
reset ME (ie. contents, errors, etc)
void EBTriggerTowerClient::beginJob ( void  )
virtual

BeginJob.

Implements EBClient.

Definition at line 73 of file EBTriggerTowerClient.cc.

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

73  {
74 
76 
77  if ( debug_ ) std::cout << "EBTriggerTowerClient: beginJob" << std::endl;
78 
79  ievt_ = 0;
80  jevt_ = 0;
81 
82 }
tuple cout
Definition: gather_cfg.py:121
void EBTriggerTowerClient::beginRun ( void  )
virtual

BeginRun.

Implements EBClient.

Definition at line 84 of file EBTriggerTowerClient.cc.

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

84  {
85 
86  if ( debug_ ) std::cout << "EBTriggerTowerClient: beginRun" << std::endl;
87 
88  jevt_ = 0;
89 
90  this->setup();
91 
92 }
tuple cout
Definition: gather_cfg.py:121
void EBTriggerTowerClient::cleanup ( void  )
virtual

Cleanup.

Implements EBClient.

Definition at line 146 of file EBTriggerTowerClient.cc.

References cloneME_, dqmStore_, enableCleanup_, i, ecalpyutils::ism(), l01_, me_o01_, me_o02_, mel01_, meo01_, o01_, prefixME_, DQMStore::removeElement(), DQMStore::setCurrentFolder(), and superModules_.

Referenced by endJob(), and endRun().

146  {
147 
148  if ( ! enableCleanup_ ) return;
149 
150  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
151 
152  int ism = superModules_[i];
153 
154  if ( cloneME_ ) {
155  if ( l01_[ism-1] ) delete l01_[ism-1];
156  if ( o01_[ism-1] ) delete o01_[ism-1];
157  }
158 
159  l01_[ism-1] = 0;
160  o01_[ism-1] = 0;
161 
162  mel01_[ism-1] = 0;
163  meo01_[ism-1] = 0;
164 
165  }
166 
167  dqmStore_->setCurrentFolder( prefixME_ + "/EBTriggerTowerClient" );
168 
169  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
170 
171  int ism = superModules_[i];
172 
173  if ( me_o01_[ism-1] ) dqmStore_->removeElement( me_o01_[ism-1]->getName() );
174  me_o01_[ism-1] = 0;
175  if ( me_o02_[ism-1] ) dqmStore_->removeElement( me_o02_[ism-1]->getName() );
176  me_o02_[ism-1] = 0;
177 
178  }
179 
180 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * me_o02_[36]
MonitorElement * mel01_[36]
MonitorElement * meo01_[36]
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
MonitorElement * me_o01_[36]
int ism(int ieta, int iphi)
Definition: EcalPyUtils.cc:56
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
void EBTriggerTowerClient::endJob ( void  )
virtual

EndJob.

Implements EBClient.

Definition at line 94 of file EBTriggerTowerClient.cc.

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

94  {
95 
96  if ( debug_ ) std::cout << "EBTriggerTowerClient: endJob, ievt = " << ievt_ << std::endl;
97 
98  this->cleanup();
99 
100 }
void cleanup(void)
Cleanup.
tuple cout
Definition: gather_cfg.py:121
void EBTriggerTowerClient::endRun ( void  )
virtual

EndRun.

Implements EBClient.

Definition at line 102 of file EBTriggerTowerClient.cc.

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

102  {
103 
104  if ( debug_ ) std::cout << "EBTriggerTowerClient: endRun, jevt = " << jevt_ << std::endl;
105 
106  this->cleanup();
107 
108 }
void cleanup(void)
Cleanup.
tuple cout
Definition: gather_cfg.py:121
int EBTriggerTowerClient::getEvtPerJob ( void  )
inlinevirtual

Get Functions.

Implements EBClient.

Definition at line 72 of file EBTriggerTowerClient.h.

References ievt_.

72 { return ievt_; }
int EBTriggerTowerClient::getEvtPerRun ( void  )
inlinevirtual

Returns the number of processed events in this Run.

Implements EBClient.

Definition at line 73 of file EBTriggerTowerClient.h.

References jevt_.

73 { return jevt_; }
void EBTriggerTowerClient::setup ( void  )
virtual

Setup.

Implements EBClient.

Definition at line 110 of file EBTriggerTowerClient.cc.

References DQMStore::book2D(), dqmStore_, i, ecalpyutils::ism(), me_o01_, me_o02_, mergeVDriftHistosByStation::name, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEB(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, and superModules_.

Referenced by beginRun().

110  {
111 
113 
114  dqmStore_->setCurrentFolder( prefixME_ + "/EBTriggerTowerClient" );
115 
116  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
117 
118  int ism = superModules_[i];
119 
120  if ( me_o01_[ism-1] ) dqmStore_->removeElement( me_o01_[ism-1]->getName() );
121  name = "EBTTT Trigger Primitives Timing " + Numbers::sEB(ism);
122  me_o01_[ism-1] = dqmStore_->book2D(name, name, 17, 0., 17., 4, 0., 4.);
123  me_o01_[ism-1]->setAxisTitle("ieta'", 1);
124  me_o01_[ism-1]->setAxisTitle("iphi'", 2);
125 
126  if ( me_o02_[ism-1] ) dqmStore_->removeElement( me_o02_[ism-1]->getName() );
127  name = "EBTTT Non Single Timing " + Numbers::sEB(ism);
128  me_o02_[ism-1] = dqmStore_->book2D(name, name, 17, 0., 17., 4, 0., 4.);
129  me_o02_[ism-1]->setAxisTitle("ieta'", 1);
130  me_o02_[ism-1]->setAxisTitle("iphi'", 2);
131  me_o02_[ism-1]->setAxisTitle("fraction", 3);
132 
133  }
134 
135  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
136 
137  int ism = superModules_[i];
138 
139  if ( me_o01_[ism-1] ) me_o01_[ism-1]->Reset();
140  if ( me_o02_[ism-1] ) me_o02_[ism-1]->Reset();
141 
142  }
143 
144 }
int i
Definition: DBlmapReader.cc:9
MonitorElement * me_o02_[36]
static std::string sEB(const unsigned ism)
Definition: Numbers.cc:91
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2772
MonitorElement * me_o01_[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:1000
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:584

Friends And Related Function Documentation

friend class EBSummaryClient
friend

Definition at line 35 of file EBTriggerTowerClient.h.

Member Data Documentation

bool EBTriggerTowerClient::cloneME_
private

Definition at line 80 of file EBTriggerTowerClient.h.

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

bool EBTriggerTowerClient::debug_
private

Definition at line 83 of file EBTriggerTowerClient.h.

Referenced by analyze(), beginJob(), beginRun(), EBTriggerTowerClient(), endJob(), and endRun().

DQMStore* EBTriggerTowerClient::dqmStore_
private

Definition at line 91 of file EBTriggerTowerClient.h.

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

bool EBTriggerTowerClient::enableCleanup_
private

Definition at line 87 of file EBTriggerTowerClient.h.

Referenced by cleanup(), and EBTriggerTowerClient().

int EBTriggerTowerClient::ievt_
private

Definition at line 77 of file EBTriggerTowerClient.h.

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

int EBTriggerTowerClient::jevt_
private

Definition at line 78 of file EBTriggerTowerClient.h.

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

TH2F* EBTriggerTowerClient::l01_[36]
private
TH2F* EBTriggerTowerClient::l02_[36]
private

Definition at line 97 of file EBTriggerTowerClient.h.

Referenced by EBSummaryClient::analyze(), and analyze().

MonitorElement* EBTriggerTowerClient::me_o01_[36]
private
MonitorElement* EBTriggerTowerClient::me_o02_[36]
private
MonitorElement* EBTriggerTowerClient::mel01_[36]
private

Definition at line 93 of file EBTriggerTowerClient.h.

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

MonitorElement* EBTriggerTowerClient::mel02_[36]
private

Definition at line 94 of file EBTriggerTowerClient.h.

Referenced by analyze().

MonitorElement* EBTriggerTowerClient::meo01_[36]
private

Definition at line 95 of file EBTriggerTowerClient.h.

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

TH3F* EBTriggerTowerClient::o01_[36]
private

Definition at line 98 of file EBTriggerTowerClient.h.

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

std::string EBTriggerTowerClient::prefixME_
private

Definition at line 85 of file EBTriggerTowerClient.h.

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

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

Definition at line 89 of file EBTriggerTowerClient.h.

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

bool EBTriggerTowerClient::verbose_
private

Definition at line 82 of file EBTriggerTowerClient.h.

Referenced by EBTriggerTowerClient().