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

#include <EETriggerTowerClient.h>

Inheritance diagram for EETriggerTowerClient:
EEClient

Public Member Functions

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

Private Attributes

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

Friends

class EESummaryClient
 

Detailed Description

Definition at line 35 of file EETriggerTowerClient.h.

Constructor & Destructor Documentation

EETriggerTowerClient::EETriggerTowerClient ( const edm::ParameterSet ps)

Constructor.

Definition at line 26 of file EETriggerTowerClient.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_.

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

Destructor.

Definition at line 71 of file EETriggerTowerClient.cc.

71  {
72 
73 }

Member Function Documentation

void EETriggerTowerClient::analyze ( void  )
virtual

Analyze.

Implements EEClient.

Definition at line 208 of file EETriggerTowerClient.cc.

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

208  {
209 
210  ievt_++;
211  jevt_++;
212  if ( ievt_ % 10 == 0 ) {
213  if ( debug_ ) std::cout << "EETriggerTowerClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
214  }
215 
216  MonitorElement* me;
217 
218  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
219 
220  int ism = superModules_[i];
221 
222  me = dqmStore_->get( prefixME_ + "/EETriggerTowerTask/EETTT EmulError " + Numbers::sEE(ism) );
223  l01_[ism-1] = UtilsClient::getHisto( me, cloneME_, l01_[ism-1] );
224  mel01_[ism-1] = me;
225 
226  me = dqmStore_->get( prefixME_ + "/EETriggerTowerTask/EETTT EmulFineGrainVetoError " + Numbers::sEE(ism) );
227  l02_[ism-1] = UtilsClient::getHisto( me, cloneME_, l02_[ism-1] );
228  mel02_[ism-1] = me;
229 
230  me = dqmStore_->get( prefixME_ + "/EETriggerTowerTask/EETTT EmulMatch " + Numbers::sEE(ism) );
231  o01_[ism-1] = UtilsClient::getHisto( me, cloneME_, o01_[ism-1] );
232  meo01_[ism-1] = me;
233 
234  if ( me_o01_[ism-1] ) me_o01_[ism-1]->Reset();
235  if ( me_o02_[ism-1] ) me_o02_[ism-1]->Reset();
236 
237  for (int ix = 1; ix <= 50; ix++) {
238  for (int iy = 1; iy <= 50; iy++) {
239 
240  if ( o01_[ism-1] ) {
241  // find the most frequent TP timing that matches the emulator
242  float index=-1;
243  double max=0;
244  double total=0;
245  for (int j=0; j<6; j++) {
246  double sampleEntries = o01_[ism-1]->GetBinContent(ix, iy, j+1);
247  if(sampleEntries > max) {
248  index=j;
249  max = sampleEntries;
250  }
251  total += sampleEntries;
252  }
253  if ( max > 0 ) {
254  if ( index == 0 ) {
255  if(me_o01_[ism-1]) me_o01_[ism-1]->setBinContent(ix, iy, -1);
256  } else {
257  if(me_o01_[ism-1]) me_o01_[ism-1]->setBinContent(ix, iy, index );
258  }
259  }
260  double fraction = (total > 0) ? 1.0 - max/total : 0.;
261  if ( me_o02_[ism-1] ) me_o02_[ism-1]->setBinContent(ix, iy, fraction);
262  }
263 
264  }
265  }
266 
267  }
268 
269 }
MonitorElement * meo01_[18]
static std::string sEE(const unsigned ism)
Definition: Numbers.cc:226
int i
Definition: DBlmapReader.cc:9
void setBinContent(int binx, double content)
set content of bin (1-D)
static T getHisto(const MonitorElement *me, bool clone=false, T ret=0)
Returns the histogram contained by the Monitor Element.
Definition: UtilsClient.h:91
MonitorElement * me_o01_[18]
std::vector< int > superModules_
const T & max(const T &a, const T &b)
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:1473
MonitorElement * me_o02_[18]
MonitorElement * mel02_[18]
MonitorElement * mel01_[18]
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 EETriggerTowerClient::beginJob ( void  )
virtual

BeginJob.

Implements EEClient.

Definition at line 75 of file EETriggerTowerClient.cc.

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

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

BeginRun.

Implements EEClient.

Definition at line 86 of file EETriggerTowerClient.cc.

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

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

Cleanup.

Implements EEClient.

Definition at line 150 of file EETriggerTowerClient.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().

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

EndJob.

Implements EEClient.

Definition at line 96 of file EETriggerTowerClient.cc.

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

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

EndRun.

Implements EEClient.

Definition at line 104 of file EETriggerTowerClient.cc.

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

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

Get Functions.

Implements EEClient.

Definition at line 74 of file EETriggerTowerClient.h.

References ievt_.

74 { return ievt_; }
int EETriggerTowerClient::getEvtPerRun ( void  )
inlinevirtual

Returns the number of processed events in this Run.

Implements EEClient.

Definition at line 75 of file EETriggerTowerClient.h.

References jevt_.

75 { return jevt_; }
void EETriggerTowerClient::setup ( void  )
virtual

Setup.

Implements EEClient.

Definition at line 112 of file EETriggerTowerClient.cc.

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

Referenced by beginRun().

112  {
113 
115 
116  dqmStore_->setCurrentFolder( prefixME_ + "/EETriggerTowerClient" );
117 
118  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
119 
120  int ism = superModules_[i];
121 
122  if ( me_o01_[ism-1] ) dqmStore_->removeElement( me_o01_[ism-1]->getName() );
123  name = "EETTT Trigger Primitives Timing " + Numbers::sEE(ism);
124  me_o01_[ism-1] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
125  me_o01_[ism-1]->setAxisTitle("ix", 1);
126  if ( ism >= 1 && ism <= 9 ) me_o01_[ism-1]->setAxisTitle("101-ix", 1);
127  me_o01_[ism-1]->setAxisTitle("iy", 2);
128 
129  if ( me_o02_[ism-1] ) dqmStore_->removeElement( me_o02_[ism-1]->getName() );
130  name = "EETTT Non Single Timing " + Numbers::sEE(ism);
131  me_o02_[ism-1] = dqmStore_->book2D(name, name, 50, Numbers::ix0EE(ism)+0., Numbers::ix0EE(ism)+50., 50, Numbers::iy0EE(ism)+0., Numbers::iy0EE(ism)+50.);
132  me_o02_[ism-1]->setAxisTitle("ix", 1);
133  if ( ism >= 1 && ism <= 9 ) me_o02_[ism-1]->setAxisTitle("101-ix", 1);
134  me_o02_[ism-1]->setAxisTitle("iy", 2);
135  me_o02_[ism-1]->setAxisTitle("fraction", 3);
136 
137  }
138 
139  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
140 
141  int ism = superModules_[i];
142 
143  if ( me_o01_[ism-1] ) me_o01_[ism-1]->Reset();
144  if ( me_o02_[ism-1] ) me_o02_[ism-1]->Reset();
145 
146  }
147 
148 }
static std::string sEE(const unsigned ism)
Definition: Numbers.cc:226
int i
Definition: DBlmapReader.cc:9
MonitorElement * me_o01_[18]
static int ix0EE(const unsigned ism)
Definition: Numbers.cc:773
static int iy0EE(const unsigned ism)
Definition: Numbers.cc:812
std::vector< int > superModules_
void removeElement(const std::string &name)
Definition: DQMStore.cc:2577
MonitorElement * me_o02_[18]
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:850
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:434

Friends And Related Function Documentation

friend class EESummaryClient
friend

Definition at line 37 of file EETriggerTowerClient.h.

Member Data Documentation

bool EETriggerTowerClient::cloneME_
private

Definition at line 82 of file EETriggerTowerClient.h.

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

bool EETriggerTowerClient::debug_
private

Definition at line 85 of file EETriggerTowerClient.h.

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

DQMStore* EETriggerTowerClient::dqmStore_
private

Definition at line 93 of file EETriggerTowerClient.h.

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

bool EETriggerTowerClient::enableCleanup_
private

Definition at line 89 of file EETriggerTowerClient.h.

Referenced by cleanup(), and EETriggerTowerClient().

int EETriggerTowerClient::ievt_
private

Definition at line 79 of file EETriggerTowerClient.h.

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

int EETriggerTowerClient::jevt_
private

Definition at line 80 of file EETriggerTowerClient.h.

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

TH2F* EETriggerTowerClient::l01_[18]
private
TH2F* EETriggerTowerClient::l02_[18]
private

Definition at line 100 of file EETriggerTowerClient.h.

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

MonitorElement* EETriggerTowerClient::me_o01_[18]
private
MonitorElement* EETriggerTowerClient::me_o02_[18]
private
MonitorElement* EETriggerTowerClient::mel01_[18]
private

Definition at line 95 of file EETriggerTowerClient.h.

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

MonitorElement* EETriggerTowerClient::mel02_[18]
private

Definition at line 96 of file EETriggerTowerClient.h.

Referenced by analyze().

MonitorElement* EETriggerTowerClient::meo01_[18]
private

Definition at line 97 of file EETriggerTowerClient.h.

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

TH3F* EETriggerTowerClient::o01_[18]
private

Definition at line 101 of file EETriggerTowerClient.h.

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

std::string EETriggerTowerClient::prefixME_
private

Definition at line 87 of file EETriggerTowerClient.h.

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

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

Definition at line 91 of file EETriggerTowerClient.h.

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

bool EETriggerTowerClient::verbose_
private

Definition at line 84 of file EETriggerTowerClient.h.

Referenced by EETriggerTowerClient().