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 35 of file EBTriggerTowerClient.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 25 of file EBTriggerTowerClient.cc.

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

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

Destructor.

Definition at line 70 of file EBTriggerTowerClient.cc.

70  {
71 
72 }

Member Function Documentation

void EBTriggerTowerClient::analyze ( void  )
virtual

Analyze.

Implements EBClient.

Definition at line 205 of file EBTriggerTowerClient.cc.

References cloneME_, gather_cfg::cout, debug_, dqmStore_, DQMStore::get(), trackerHits::histo, 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.

205  {
206 
207  ievt_++;
208  jevt_++;
209  if ( ievt_ % 10 == 0 ) {
210  if ( debug_ ) std::cout << "EBTriggerTowerClient: ievt/jevt = " << ievt_ << "/" << jevt_ << std::endl;
211  }
212 
213  char histo[200];
214 
215  MonitorElement* me;
216 
217  for ( unsigned int i=0; i<superModules_.size(); i++ ) {
218 
219  int ism = superModules_[i];
220 
221  sprintf(histo, (prefixME_ + "/EBTriggerTowerTask/EBTTT EmulError %s").c_str(), Numbers::sEB(ism).c_str());
222  me = dqmStore_->get(histo);
223  l01_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, l01_[ism-1] );
224  mel01_[ism-1] = me;
225 
226  sprintf(histo, (prefixME_ + "/EBTriggerTowerTask/EBTTT EmulFineGrainVetoError %s").c_str(), Numbers::sEB(ism).c_str());
227  me = dqmStore_->get(histo);
228  l02_[ism-1] = UtilsClient::getHisto<TH2F*>( me, cloneME_, l02_[ism-1] );
229  mel02_[ism-1] = me;
230 
231  sprintf(histo, (prefixME_ + "/EBTriggerTowerTask/EBTTT EmulMatch %s").c_str(), Numbers::sEB(ism).c_str());
232  me = dqmStore_->get(histo);
233  o01_[ism-1] = UtilsClient::getHisto<TH3F*>( me, cloneME_, o01_[ism-1] );
234  meo01_[ism-1] = me;
235 
236  if ( me_o01_[ism-1] ) me_o01_[ism-1]->Reset();
237  if ( me_o02_[ism-1] ) me_o02_[ism-1]->Reset();
238 
239  for (int ie = 1; ie <= 17; ie++) {
240  for (int ip = 1; ip <= 4; ip++) {
241 
242  if ( o01_[ism-1] ) {
243  // find the most frequent TP timing that matches the emulator
244  float index=-1;
245  double max=0;
246  double total=0;
247  for (int j=0; j<6; j++) {
248  double sampleEntries = o01_[ism-1]->GetBinContent(ie, ip, j+1);
249  if(sampleEntries > max) {
250  index=j;
251  max = sampleEntries;
252  }
253  total += sampleEntries;
254  }
255  if ( max > 0 ) {
256  if ( index == 0 ) {
257  me_o01_[ism-1]->setBinContent(ie, ip, -1);
258  } else {
259  me_o01_[ism-1]->setBinContent(ie, ip, index );
260  }
261  }
262  double fraction = (total > 0) ? 1.0 - max/total : 0.;
263  if ( me_o02_[ism-1] ) me_o02_[ism-1]->setBinContent(ie, ip, fraction);
264  }
265 
266  }
267  }
268 
269  }
270 
271 }
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 * me_o02_[36]
MonitorElement * mel01_[36]
MonitorElement * mel02_[36]
tuple histo
Definition: trackerHits.py:12
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:1270
MonitorElement * me_o01_[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)
void EBTriggerTowerClient::beginJob ( void  )
virtual

BeginJob.

Implements EBClient.

Definition at line 74 of file EBTriggerTowerClient.cc.

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

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

BeginRun.

Implements EBClient.

Definition at line 85 of file EBTriggerTowerClient.cc.

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

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

Cleanup.

Implements EBClient.

Definition at line 147 of file EBTriggerTowerClient.cc.

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

Referenced by endJob(), and endRun().

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

EndJob.

Implements EBClient.

Definition at line 95 of file EBTriggerTowerClient.cc.

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

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

EndRun.

Implements EBClient.

Definition at line 103 of file EBTriggerTowerClient.cc.

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

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

Get Functions.

Implements EBClient.

Definition at line 74 of file EBTriggerTowerClient.h.

References ievt_.

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

Returns the number of processed events in this Run.

Implements EBClient.

Definition at line 75 of file EBTriggerTowerClient.h.

References jevt_.

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

Setup.

Implements EBClient.

Definition at line 111 of file EBTriggerTowerClient.cc.

References DQMStore::book2D(), dqmStore_, edm::getName(), trackerHits::histo, i, ecalpyutils::ism(), me_o01_, me_o02_, prefixME_, DQMStore::removeElement(), MonitorElement::Reset(), Numbers::sEB(), MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), and superModules_.

Referenced by beginRun().

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

Member Data Documentation

bool EBTriggerTowerClient::cloneME_
private

Definition at line 82 of file EBTriggerTowerClient.h.

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

bool EBTriggerTowerClient::debug_
private

Definition at line 85 of file EBTriggerTowerClient.h.

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

DQMStore* EBTriggerTowerClient::dqmStore_
private

Definition at line 93 of file EBTriggerTowerClient.h.

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

bool EBTriggerTowerClient::enableCleanup_
private

Definition at line 89 of file EBTriggerTowerClient.h.

Referenced by cleanup(), and EBTriggerTowerClient().

int EBTriggerTowerClient::ievt_
private

Definition at line 79 of file EBTriggerTowerClient.h.

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

int EBTriggerTowerClient::jevt_
private

Definition at line 80 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 99 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 95 of file EBTriggerTowerClient.h.

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

MonitorElement* EBTriggerTowerClient::mel02_[36]
private

Definition at line 96 of file EBTriggerTowerClient.h.

Referenced by analyze().

MonitorElement* EBTriggerTowerClient::meo01_[36]
private

Definition at line 97 of file EBTriggerTowerClient.h.

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

TH3F* EBTriggerTowerClient::o01_[36]
private

Definition at line 100 of file EBTriggerTowerClient.h.

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

std::string EBTriggerTowerClient::prefixME_
private

Definition at line 87 of file EBTriggerTowerClient.h.

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

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

Definition at line 91 of file EBTriggerTowerClient.h.

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

bool EBTriggerTowerClient::verbose_
private

Definition at line 84 of file EBTriggerTowerClient.h.

Referenced by EBTriggerTowerClient().