CMS 3D CMS Logo

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

#include <DTBlockedROChannelsTest.h>

Inheritance diagram for DTBlockedROChannelsTest:
edm::EDAnalyzer

Classes

class  DTRobBinsMap
 

Public Member Functions

 DTBlockedROChannelsTest (const edm::ParameterSet &ps)
 Constructor. More...
 
 ~DTBlockedROChannelsTest ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Protected Member Functions

void analyze (const edm::Event &e, const edm::EventSetup &c)
 Analyze. More...
 
void beginJob ()
 BeginJob. More...
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context)
 
void beginRun (const edm::Run &run, const edm::EventSetup &c)
 BeginRun. More...
 
void endJob ()
 Endjob. More...
 
void endLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &c)
 DQM Client Diagnostic in online mode. More...
 
void endRun (edm::Run const &run, edm::EventSetup const &eSetup)
 DQM Client Diagnostic in offline mode. More...
 
void performClientDiagnostic ()
 DQM Client operations. More...
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Private Member Functions

int readOutToGeometry (int dduId, int rosNumber, int &wheel, int &sector)
 

Private Attributes

std::map< DTChamberId,
DTRobBinsMap
chamberMap
 
DQMStoredbe
 
DTTimeEvolutionHistohSystFractionVsLS
 
edm::ESHandle< DTReadOutMappingmapping
 
int nevents
 
int neventsPrev
 
unsigned int nLumiSegs
 
int nupdates
 
bool offlineMode
 
int prescaleFactor
 
unsigned int prevNLumiSegs
 
double prevTotalPerc
 
std::map< int, double > resultsPerLumi
 
int run
 
MonitorElementsummaryHisto
 
std::map< int, MonitorElement * > wheelHitos
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Detailed Description

Definition at line 26 of file DTBlockedROChannelsTest.h.

Constructor & Destructor Documentation

DTBlockedROChannelsTest::DTBlockedROChannelsTest ( const edm::ParameterSet ps)

Constructor.

Definition at line 30 of file DTBlockedROChannelsTest.cc.

References edm::ParameterSet::getUntrackedParameter(), LogTrace, offlineMode, and prescaleFactor.

30  : nevents(0),
31  neventsPrev(0),
32  prevNLumiSegs(0),
33  prevTotalPerc(0),
35 {
36  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
37  << "[DTBlockedROChannelsTest]: Constructor";
38 
39  // prescale on the # of LS to update the test
40  prescaleFactor = ps.getUntrackedParameter<int>("diagnosticPrescale", 1);
41 
42  offlineMode = ps.getUntrackedParameter<bool>("offlineMode", true);
43 }
T getUntrackedParameter(std::string const &, T const &) const
DTTimeEvolutionHisto * hSystFractionVsLS
#define LogTrace(id)
DTBlockedROChannelsTest::~DTBlockedROChannelsTest ( )

Destructor.

Definition at line 47 of file DTBlockedROChannelsTest.cc.

References LogTrace, and nupdates.

47  {
48  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
49  << "DataIntegrityTest: analyzed " << nupdates << " updates";
50 }
#define LogTrace(id)

Member Function Documentation

void DTBlockedROChannelsTest::analyze ( const edm::Event e,
const edm::EventSetup c 
)
protectedvirtual

Analyze.

Implements edm::EDAnalyzer.

Definition at line 147 of file DTBlockedROChannelsTest.cc.

References LogTrace, and nevents.

147  {
148  // count the analyzed events
149  nevents++;
150  if(nevents%1000 == 0)
151  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
152  << "[DTBlockedROChannelsTest]: "<<nevents<<" events";
153 }
#define LogTrace(id)
void DTBlockedROChannelsTest::beginJob ( void  )
protectedvirtual

BeginJob.

Reimplemented from edm::EDAnalyzer.

Definition at line 55 of file DTBlockedROChannelsTest.cc.

References DQMStore::book2D(), dbe, hSystFractionVsLS, LogTrace, nupdates, offlineMode, cppFunctionSkipper::operator, run, MonitorElement::setAxisTitle(), DQMStore::setCurrentFolder(), summaryHisto, and wheelHitos.

55  {
56  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
57  << "[DTBlockedROChannelsTest]: BeginJob";
58 
59  nupdates = 0;
60  run=0;
61 
63 
64  // book the summary histogram
65  dbe->setCurrentFolder("DT/00-ROChannels");
66  summaryHisto = dbe->book2D("ROChannelSummary","Summary Blocked RO Channels",12,1,13,5,-2,3);
67  summaryHisto->setAxisTitle("Sector",1);
68  summaryHisto->setAxisTitle("Wheel",2);
69 
70  for(int wheel = -2; wheel != 3; ++wheel) {
71  stringstream namestream; namestream << "ROChannelSummary_W" << wheel;
72  stringstream titlestream; titlestream << "Blocked RO Channels (Wh " << wheel << ")";
73  wheelHitos[wheel] = dbe->book2D(namestream.str().c_str(),titlestream.str().c_str(),12,1,13,4,1,5);
74  wheelHitos[wheel]->setAxisTitle("Sector",1);
75  wheelHitos[wheel]->setBinLabel(1,"MB1",2);
76  wheelHitos[wheel]->setBinLabel(2,"MB2",2);
77  wheelHitos[wheel]->setBinLabel(3,"MB3",2);
78  wheelHitos[wheel]->setBinLabel(4,"MB4",2);
79  }
80 
81  if(!offlineMode) {
82  hSystFractionVsLS = new DTTimeEvolutionHisto(dbe, "EnabledROChannelsVsLS", "% RO channels",
83  500, 5, true, 3);
84  }
85 
86 }
DTTimeEvolutionHisto * hSystFractionVsLS
std::map< int, MonitorElement * > wheelHitos
#define LogTrace(id)
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:845
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:429
void DTBlockedROChannelsTest::beginLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  context 
)
protectedvirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 128 of file DTBlockedROChannelsTest.cc.

References LogTrace, nevents, edm::LuminosityBlockBase::run(), and run.

129  {
130  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
131  <<"[DTBlockedROChannelsTest]: Begin of LS transition";
132 
133  // Get the run number
134  run = lumiSeg.run();
135  nevents = 0;
136 
137  // // loop over all chambers and read the values at the beginning of the LS
138  // for(map<DTChamberId, DTRobBinsMap>::iterator chAndRobs = chamberMap.begin();
139  // chAndRobs != chamberMap.end(); ++chAndRobs) {
140  // (*chAndRobs).second.readNewValues();
141  // }
142 
143 }
#define LogTrace(id)
void DTBlockedROChannelsTest::beginRun ( const edm::Run run,
const edm::EventSetup c 
)
protectedvirtual

BeginRun.

Reimplemented from edm::EDAnalyzer.

Definition at line 91 of file DTBlockedROChannelsTest.cc.

References chamberMap, dbe, edm::EventSetup::get(), LogTrace, mapping, FEDNumbering::MAXDTFEDID, FEDNumbering::MINDTFEDID, and relativeConstraints::station.

91  {
92  // get the RO mapping
93  context.get<DTReadOutMappingRcd>().get(mapping);
94 
95  // fill the map of the robs per chamber
96  for(int dduId = FEDNumbering::MINDTFEDID; dduId<=FEDNumbering::MAXDTFEDID; ++dduId) { //loop over DDUs
97  for(int ros = 1; ros != 13; ++ros) { // loop over ROSs
98  for(int rob = 1; rob != 26; ++rob) { // loop over ROBs
99  int wheel = 0;
100  int station = 0;
101  int sector = 0;
102  int dummy = 0;
103  if(!mapping->readOutToGeometry(dduId,ros,rob-1,0,2,wheel,station,sector,dummy,dummy,dummy) ||
104  !mapping->readOutToGeometry(dduId,ros,rob-1,0,16,wheel,station,sector,dummy,dummy,dummy)) {
105  DTChamberId chId(wheel, station, sector);
106  if(chamberMap.find(chId) == chamberMap.end()) {
107  chamberMap[chId] = DTRobBinsMap(dduId, ros, dbe);
108  chamberMap[chId].addRobBin(rob);
109  }
110  chamberMap[chId].addRobBin(rob);
111  } else {
112  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
113  << "[DTRobBinsMap] FED: " << dduId << " ROS " << ros << " ROB: " << rob-1
114  << " not in the mapping!" << endl;
115  }
116  }
117  }
118  }
119  // loop over all chambers and remove the init flag
120  for(map<DTChamberId, DTRobBinsMap>::iterator chAndRobs = chamberMap.begin();
121  chAndRobs != chamberMap.end(); ++chAndRobs) {
122  chAndRobs->second.init(false);
123  }
124 }
std::map< DTChamberId, DTRobBinsMap > chamberMap
edm::ESHandle< DTReadOutMapping > mapping
#define LogTrace(id)
void DTBlockedROChannelsTest::endJob ( void  )
protectedvirtual

Endjob.

Reimplemented from edm::EDAnalyzer.

Definition at line 257 of file DTBlockedROChannelsTest.cc.

References LogTrace.

257  {
258  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
259  <<"[DTBlockedROChannelsTest] endjob called!";
260 }
#define LogTrace(id)
void DTBlockedROChannelsTest::endLuminosityBlock ( edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  c 
)
protectedvirtual

DQM Client Diagnostic in online mode.

Reimplemented from edm::EDAnalyzer.

Definition at line 157 of file DTBlockedROChannelsTest.cc.

References edm::LuminosityBlockBase::id(), LogTrace, edm::LuminosityBlockID::luminosityBlock(), nLumiSegs, nupdates, offlineMode, performClientDiagnostic(), and prescaleFactor.

157  {
158 
159  // counts number of lumiSegs
160  nLumiSegs = lumiSeg.id().luminosityBlock();
161 
162  // prescale factor
163  if (nLumiSegs%prescaleFactor != 0 || offlineMode) return;
164 
165  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
166  <<"[DTBlockedROChannelsTest]: End of LS " << nLumiSegs << ". Client called in online mode, performing client operations";
168 
169  // counts number of updats
170  nupdates++;
171 
172 }
#define LogTrace(id)
void performClientDiagnostic()
DQM Client operations.
void DTBlockedROChannelsTest::endRun ( edm::Run const &  run,
edm::EventSetup const &  eSetup 
)
protectedvirtual

DQM Client Diagnostic in offline mode.

Reimplemented from edm::EDAnalyzer.

Definition at line 265 of file DTBlockedROChannelsTest.cc.

References LogTrace, offlineMode, and performClientDiagnostic().

265  {
266 
267  if (offlineMode) {
268  LogTrace("DTDQM|DTRawToDigi|DTMonitorClient|DTBlockedROChannelsTest")
269  <<"[DTBlockedROChannelsTest] endRun called. Client called in offline mode, performing operations.";
271  }
272  // commented out since trend plots need to be updated in by lumi certification
273  // if(offlineMode) {
274  // // fill a trend plot based on the results stored in the map
275  // float fBin = resultsPerLumi.begin()->first;
276  // float lBin = resultsPerLumi.rbegin()->first;
277  // dbe->setCurrentFolder("DT/00-ROChannels");
278 
279  // // MonitorElement* hSystFractionVsLS = dbe->book1D("EnabledROChannelsVsLS", "% RO channels vs LS", nBins,fBin,lBin);
280  // hSystFractionVsLS = new DTTimeEvolutionHisto(dbe, "EnabledROChannelsVsLS", "% RO channels",
281  // (int)lBin-(int)fBin, fBin, 1, false, 2);
282 
283  // for(map<int, double>::const_iterator bin = resultsPerLumi.begin();
284  // bin != resultsPerLumi.end(); ++bin) {
285  // hSystFractionVsLS->setTimeSlotValue((*bin).second, (*bin).first);
286  // }
287  // }
288 }
#define LogTrace(id)
void performClientDiagnostic()
DQM Client operations.
void DTBlockedROChannelsTest::performClientDiagnostic ( )
protected

DQM Client operations.

Definition at line 175 of file DTBlockedROChannelsTest.cc.

References DTTimeEvolutionHisto::accumulateValueTimeSlot(), chamberMap, dbe, MonitorElement::Fill(), DQMStore::get(), MonitorElement::getIntValue(), hSystFractionVsLS, nevents, neventsPrev, nLumiSegs, offlineMode, prevTotalPerc, MonitorElement::Reset(), pileupReCalc_HLTpaths::scale, DTChamberId::sector(), DTChamberId::station(), summaryHisto, DTTimeEvolutionHisto::updateTimeSlot(), DTChamberId::wheel(), and wheelHitos.

Referenced by endLuminosityBlock(), and endRun().

175  {
176 
177  // skip empty LSs
178 
179  if(nevents == 0) { // hack to work also in offline DQM
180  MonitorElement *procEvt = dbe->get("DT/EventInfo/processedEvents");
181  if(procEvt != 0) {
182  int procEvents = procEvt->getIntValue();
183  nevents = procEvents - neventsPrev;
184  neventsPrev = procEvents;
185  }
186  }
187 
188  double totalPerc = prevTotalPerc;
189  // check again!
190  if(nevents != 0) { // skip the computation if no events in the last LS
191 
192  // reset the histos
193  summaryHisto->Reset();
194  for(int wheel = -2; wheel != 3; ++wheel) {
195  wheelHitos[wheel]->Reset();
196  }
197 
198  totalPerc = 0.;
199 
200  // loop over all chambers and fill the wheel plots
201  for(map<DTChamberId, DTRobBinsMap>::iterator chAndRobs = chamberMap.begin();
202  chAndRobs != chamberMap.end(); ++chAndRobs) {
203  DTChamberId chId = (*chAndRobs).first;
204  double scale = 1.;
205  int sectorForPlot = chId.sector();
206  if(sectorForPlot == 13 || (sectorForPlot == 4 && chId.station() ==4)) {
207  sectorForPlot = 4;
208  scale = 0.5;
209  } else if(sectorForPlot == 14 || (sectorForPlot == 10 && chId.station() ==4)) {
210  sectorForPlot = 10;
211  scale = 0.5;
212  }
213 
214  // NOTE: can be called only ONCE per event per each chamber
215  double chPercent = (*chAndRobs).second.getChamberPercentage();
216  wheelHitos[chId.wheel()]->Fill(sectorForPlot, chId.station(),
217  scale*chPercent);
218  totalPerc += chPercent*scale*1./240.; // CB has to be 240 as double stations are taken into account by scale factor
219  // if(chPercent != 1.) {
220  // cout << "Ch: " << (*chAndRobs).first << endl;
221  // cout << " perc: " << chPercent << endl;
222  // }
223  // Fill the summary
224  summaryHisto->Fill(sectorForPlot, chId.wheel(), 0.25*scale*chPercent);
225  }
226  }
227 
228  // commented out since trend plots need to be updated in by lumi certification
229  // // this part is executed even if no events were processed in order to include the last LS
230  // if(offlineMode) { // save the results in a map and draw them in the end-run
231  // if(resultsPerLumi.size() == 0) { // the first 2 LS are analyzed together
232  // // cout << "LS: " << nLumiSegs << " total %: " << totalPerc << endl;
233  // resultsPerLumi[nLumiSegs] = totalPerc;
234  // } else {
235  // // cout << "LS: " << nLumiSegs << " total %: " << prevTotalPerc << endl;
236  // resultsPerLumi[nLumiSegs] = prevTotalPerc;
237  // }
238  // prevTotalPerc = totalPerc;
239  // prevNLumiSegs = nLumiSegs;
240 
241  // } else { // directly fill the histo
242  // hSystFractionVsLS->accumulateValueTimeSlot(totalPerc);
243  // hSystFractionVsLS->updateTimeSlot(nLumiSegs, nevents);
244  // prevTotalPerc = totalPerc;
245  // }
246 
247  if(!offlineMode) { // fill trend histo only in online
250  prevTotalPerc = totalPerc;
251  }
252 
253 }
DTTimeEvolutionHisto * hSystFractionVsLS
void accumulateValueTimeSlot(float value)
std::map< DTChamberId, DTRobBinsMap > chamberMap
void Fill(long long x)
std::map< int, MonitorElement * > wheelHitos
MonitorElement * get(const std::string &path) const
get ME from full pathname (e.g. &quot;my/long/dir/my_histo&quot;)
Definition: DQMStore.cc:1468
int64_t getIntValue(void) const
void updateTimeSlot(int ls, int nEventsInLS)
int sector() const
Definition: DTChamberId.h:63
int station() const
Return the station number.
Definition: DTChamberId.h:53
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:47
void Reset(void)
reset ME (ie. contents, errors, etc)
int DTBlockedROChannelsTest::readOutToGeometry ( int  dduId,
int  rosNumber,
int &  wheel,
int &  sector 
)
private

Definition at line 292 of file DTBlockedROChannelsTest.cc.

References mapping.

292  {
293 
294  int dummy;
295  return mapping->readOutToGeometry(dduId,ros,2,2,2,wheel,dummy,sector,dummy,dummy,dummy);
296 
297 }
edm::ESHandle< DTReadOutMapping > mapping

Member Data Documentation

std::map<DTChamberId, DTRobBinsMap> DTBlockedROChannelsTest::chamberMap
private

Definition at line 133 of file DTBlockedROChannelsTest.h.

Referenced by beginRun(), and performClientDiagnostic().

DQMStore* DTBlockedROChannelsTest::dbe
private
DTTimeEvolutionHisto* DTBlockedROChannelsTest::hSystFractionVsLS
private

Definition at line 92 of file DTBlockedROChannelsTest.h.

Referenced by beginJob(), and performClientDiagnostic().

edm::ESHandle<DTReadOutMapping> DTBlockedROChannelsTest::mapping
private

Definition at line 82 of file DTBlockedROChannelsTest.h.

Referenced by beginRun(), and readOutToGeometry().

int DTBlockedROChannelsTest::nevents
private
int DTBlockedROChannelsTest::neventsPrev
private

Definition at line 73 of file DTBlockedROChannelsTest.h.

Referenced by performClientDiagnostic().

unsigned int DTBlockedROChannelsTest::nLumiSegs
private

Definition at line 74 of file DTBlockedROChannelsTest.h.

Referenced by endLuminosityBlock(), and performClientDiagnostic().

int DTBlockedROChannelsTest::nupdates
private
bool DTBlockedROChannelsTest::offlineMode
private
int DTBlockedROChannelsTest::prescaleFactor
private

Definition at line 70 of file DTBlockedROChannelsTest.h.

Referenced by DTBlockedROChannelsTest(), and endLuminosityBlock().

unsigned int DTBlockedROChannelsTest::prevNLumiSegs
private

Definition at line 75 of file DTBlockedROChannelsTest.h.

double DTBlockedROChannelsTest::prevTotalPerc
private

Definition at line 76 of file DTBlockedROChannelsTest.h.

Referenced by performClientDiagnostic().

std::map<int, double> DTBlockedROChannelsTest::resultsPerLumi
private

Definition at line 91 of file DTBlockedROChannelsTest.h.

int DTBlockedROChannelsTest::run
private
MonitorElement* DTBlockedROChannelsTest::summaryHisto
private

Definition at line 87 of file DTBlockedROChannelsTest.h.

Referenced by beginJob(), and performClientDiagnostic().

std::map<int, MonitorElement*> DTBlockedROChannelsTest::wheelHitos
private

Definition at line 86 of file DTBlockedROChannelsTest.h.

Referenced by beginJob(), and performClientDiagnostic().