CMS 3D CMS Logo

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

#include <DTTriggerLutTest.h>

Inheritance diagram for DTTriggerLutTest:
DTLocalTriggerBaseTest DQMEDHarvester edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources > edm::one::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 DTTriggerLutTest (const edm::ParameterSet &ps)
 Constructor. More...
 
virtual ~DTTriggerLutTest ()
 Destructor. More...
 
- Public Member Functions inherited from DTLocalTriggerBaseTest
 DTLocalTriggerBaseTest ()
 Constructor. More...
 
virtual ~DTLocalTriggerBaseTest ()
 Destructor. More...
 
- Public Member Functions inherited from DQMEDHarvester
virtual void analyze (edm::Event const &, edm::EventSetup const &) final
 
virtual void beginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
 DQMEDHarvester (void)
 
virtual void endJob () final
 
virtual void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
- Public Member Functions inherited from edm::one::EDAnalyzer< edm::one::WatchRuns, edm::one::WatchLuminosityBlocks, edm::one::SharedResources >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

void beginRun (const edm::Run &r, const edm::EventSetup &c)
 BeginRun. More...
 
void dqmEndJob (DQMStore::IBooker &, DQMStore::IGetter &)
 
void dqmEndLuminosityBlock (DQMStore::IBooker &, DQMStore::IGetter &, edm::LuminosityBlock const &, edm::EventSetup const &)
 Perform client diagnostic in online. More...
 
void runClientDiagnostic (DQMStore::IBooker &, DQMStore::IGetter &)
 Run client analysis. More...
 
- Protected Member Functions inherited from DTLocalTriggerBaseTest
void bookCmsHistos (DQMStore::IBooker &, std::string hTag, std::string folder="", bool isGlb=false)
 Book the new MEs (CMS summary) More...
 
void bookSectorHistos (DQMStore::IBooker &, int wheel, int sector, std::string hTag, std::string folder="")
 Book the new MEs (for each sector) More...
 
void bookWheelHistos (DQMStore::IBooker &, int wheel, std::string hTag, std::string folder="")
 Book the new MEs (for each wheel) More...
 
std::string category ()
 Get message logger name. More...
 
void endRun (edm::Run const &run, edm::EventSetup const &context)
 Perform client diagnostic in offline. More...
 
std::string fullName (std::string htype)
 Create fullname from histo partial name. More...
 
template<class T >
TgetHisto (MonitorElement *me)
 Convert ME to Histogram fo type T. More...
 
std::string getMEName (std::string histoTag, std::string subfolder, const DTChamberId &chambid)
 Get the ME name (by chamber) More...
 
std::string getMEName (std::string histoTag, std::string subfolder, int wh)
 Get the ME name (by wheel) More...
 
std::pair< float, float > phiRange (const DTChamberId &id)
 Calculate phi range for histograms. More...
 
void setConfig (const edm::ParameterSet &ps, std::string name)
 Set configuration variables. More...
 
std::string & topFolder (bool isDCC)
 Get top folder name. More...
 
- Protected Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

void bookCmsHistos1d (DQMStore::IBooker &, std::string hTag, std::string folder="")
 
void fillWhPlot (MonitorElement *plot, int sect, int stat, float value, bool lessIsBest=true)
 Fill summary plots managing double MB4 chambers. More...
 
int performLutTest (double perc, double threshold1, double threshold2)
 Perform Lut Test logical operations. More...
 

Private Attributes

bool bookingdone
 
bool detailedAnalysis
 
double thresholdErrPhi
 
double thresholdErrPhiB
 
double thresholdWarnPhi
 
double thresholdWarnPhiB
 
double validRange
 

Additional Inherited Members

- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Attributes inherited from DTLocalTriggerBaseTest
std::string baseFolderDCC
 
std::string baseFolderDDU
 
std::map< std::string,
MonitorElement * > 
cmsME
 
std::string hwSource
 
std::vector< std::string > hwSources
 
edm::ESHandle< DTGeometrymuonGeom
 
int nevents
 
unsigned int nLumiSegs
 
edm::ParameterSet parameters
 
int prescaleFactor
 
int run
 
bool runOnline
 
std::map< int, std::map
< std::string, MonitorElement * > > 
secME
 
std::string sourceFolder
 
std::string testName
 
std::string trigSource
 
std::vector< std::string > trigSources
 
std::map< int, std::map
< std::string, MonitorElement * > > 
whME
 

Detailed Description

Definition at line 22 of file DTTriggerLutTest.h.

Constructor & Destructor Documentation

DTTriggerLutTest::DTTriggerLutTest ( const edm::ParameterSet ps)

Constructor.

Definition at line 37 of file DTTriggerLutTest.cc.

References edm::ParameterSet::getUntrackedParameter().

37  {
38 
39  setConfig(ps,"DTTriggerLut");
40  baseFolderDCC = "DT/03-LocalTrigger-DCC/";
41  baseFolderDDU = "DT/04-LocalTrigger-DDU/";
42  thresholdWarnPhi = ps.getUntrackedParameter<double>("thresholdWarnPhi");
43  thresholdErrPhi = ps.getUntrackedParameter<double>("thresholdErrPhi");
44  thresholdWarnPhiB = ps.getUntrackedParameter<double>("thresholdWarnPhiB");
45  thresholdErrPhiB = ps.getUntrackedParameter<double>("thresholdErrPhiB");
46  validRange = ps.getUntrackedParameter<double>("validRange");
47  detailedAnalysis = ps.getUntrackedParameter<bool>("detailedAnalysis");
48 
49  bookingdone = 0;
50 
51 }
T getUntrackedParameter(std::string const &, T const &) const
void setConfig(const edm::ParameterSet &ps, std::string name)
Set configuration variables.
DTTriggerLutTest::~DTTriggerLutTest ( )
virtual

Destructor.

Definition at line 54 of file DTTriggerLutTest.cc.

54  {
55 
56 }

Member Function Documentation

void DTTriggerLutTest::beginRun ( const edm::Run r,
const edm::EventSetup c 
)
protectedvirtual

BeginRun.

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 112 of file DTTriggerLutTest.cc.

References DTLocalTriggerBaseTest::beginRun().

112  {
113 
115 
116 }
void beginRun(edm::Run const &run, edm::EventSetup const &context)
BeginRun.
void DTTriggerLutTest::bookCmsHistos1d ( DQMStore::IBooker ,
std::string  hTag,
std::string  folder = "" 
)
private

Definition at line 327 of file DTTriggerLutTest.cc.

References DQMStore::IBooker::book1D(), python.rootplot.argparse::category, newFWLiteAna::fullName, LogTrace, MonitorElement::setAxisTitle(), and DQMStore::IBooker::setCurrentFolder().

327  {
328 
329  string basedir = topFolder(true);
330  if (folder != "") {
331  basedir += folder +"/" ;
332  }
333  ibooker.setCurrentFolder(basedir);
334 
335  string hName = fullName(hTag);
336  LogTrace(category()) << "[" << testName << "Test]: booking " << basedir << hName;
337 
338  MonitorElement* me = ibooker.book1D(hName.c_str(),hName.c_str(),101,-0.005,1.005);
339  me->setAxisTitle("Percentage",1);
340  cmsME[hName] = me;
341 
342 }
#define LogTrace(id)
std::string category()
Get message logger name.
std::map< std::string, MonitorElement * > cmsME
std::string & topFolder(bool isDCC)
Get top folder name.
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::string fullName(std::string htype)
Create fullname from histo partial name.
void DTTriggerLutTest::dqmEndJob ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
protectedvirtual

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 361 of file DTTriggerLutTest.cc.

361 {}
void DTTriggerLutTest::dqmEndLuminosityBlock ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter,
edm::LuminosityBlock const &  lumiSeg,
edm::EventSetup const &  context 
)
protectedvirtual

Perform client diagnostic in online.

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 59 of file DTTriggerLutTest.cc.

References Parameters::parameters.

60  {
61  if (bookingdone) return;
62  bookingdone = 1;
63 
64  vector<string>::const_iterator iTr = trigSources.begin();
65  vector<string>::const_iterator trEnd = trigSources.end();
66  vector<string>::const_iterator iHw = hwSources.begin();
67  vector<string>::const_iterator hwEnd = hwSources.end();
68 
69  //Booking
70  if(parameters.getUntrackedParameter<bool>("staticBooking")){
71 
72  for (; iTr != trEnd; ++iTr){
73  trigSource = (*iTr);
74  for (; iHw != hwEnd; ++iHw){
75  hwSource = (*iHw);
76  // Loop over the TriggerUnits
77  for (int wh=-2; wh<=2; ++wh){
78  if (detailedAnalysis){
79  bookWheelHistos(ibooker,wh,"PhiResidualPercentage");
80  bookWheelHistos(ibooker,wh,"PhibResidualPercentage");
81  }
82 
83  bookWheelHistos(ibooker,wh,"PhiLutSummary","Summaries");
84  bookWheelHistos(ibooker,wh,"PhibLutSummary","Summaries");
85 
86  if (detailedAnalysis){
87  bookWheelHistos(ibooker,wh,"PhiResidualMean");
88  bookWheelHistos(ibooker,wh,"PhiResidualRMS");
89  bookWheelHistos(ibooker,wh,"PhibResidualMean");
90  bookWheelHistos(ibooker,wh,"PhibResidualRMS");
91  bookWheelHistos(ibooker,wh,"CorrelationFactorPhi");
92  bookWheelHistos(ibooker,wh,"CorrelationFactorPhib");
93  bookWheelHistos(ibooker,wh,"DoublePeakFlagPhib");
94  }
95 
96  }
97 
98  bookCmsHistos(ibooker,"TrigLutSummary","",true);
99  bookCmsHistos(ibooker,"PhiLutSummary");
100  bookCmsHistos(ibooker,"PhibLutSummary");
101  if (detailedAnalysis){
102 
103  bookCmsHistos1d(ibooker,"PhiPercentageSummary");
104  bookCmsHistos1d(ibooker,"PhibPercentageSummary");
105  }
106  }
107  }
108  }
109 }
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::string > trigSources
void bookCmsHistos1d(DQMStore::IBooker &, std::string hTag, std::string folder="")
std::vector< std::string > hwSources
void bookWheelHistos(DQMStore::IBooker &, int wheel, std::string hTag, std::string folder="")
Book the new MEs (for each wheel)
void bookCmsHistos(DQMStore::IBooker &, std::string hTag, std::string folder="", bool isGlb=false)
Book the new MEs (CMS summary)
void DTTriggerLutTest::fillWhPlot ( MonitorElement plot,
int  sect,
int  stat,
float  value,
bool  lessIsBest = true 
)
private

Fill summary plots managing double MB4 chambers.

Definition at line 344 of file DTTriggerLutTest.cc.

References MonitorElement::getBinContent(), and MonitorElement::setBinContent().

344  {
345 
346  if (sect>12) {
347  int scsect = sect==13 ? 4 : 10;
348  if ((value>plot->getBinContent(scsect,stat)) == lessIsBest) {
349  plot->setBinContent(scsect,stat,value);
350  }
351  }
352  else {
353  plot->setBinContent(sect,stat,value);
354  }
355 
356  return;
357 
358 }
void setBinContent(int binx, double content)
set content of bin (1-D)
double getBinContent(int binx) const
get content of bin (1-D)
int DTTriggerLutTest::performLutTest ( double  perc,
double  threshold1,
double  threshold2 
)
private

Perform Lut Test logical operations.

Definition at line 316 of file DTTriggerLutTest.cc.

References query::result.

316  {
317 
318  bool isInWarn = perc<thresholdWarn;
319  bool isInErr = perc<thresholdErr;
320 
321  int result= isInErr ? 2 : isInWarn ? 3 : 0;
322 
323  return result;
324 
325 }
tuple result
Definition: query.py:137
void DTTriggerLutTest::runClientDiagnostic ( DQMStore::IBooker ibooker,
DQMStore::IGetter igetter 
)
protectedvirtual

Run client analysis.

Implements DTLocalTriggerBaseTest.

Definition at line 118 of file DTTriggerLutTest.cc.

References corr, newFWLiteAna::fullName, DQMStore::IGetter::get(), edm::max(), Mean, plotscripts::rms(), and DTChamberId::wheel().

118  {
119 
120  // Reset lut percentage 1D summaries
121  if (detailedAnalysis){
122  cmsME.find(fullName("PhiPercentageSummary"))->second->Reset();
123  cmsME.find(fullName("PhibPercentageSummary"))->second->Reset();
124  }
125 
126  // Loop over Trig & Hw sources
127  for (vector<string>::const_iterator iTr = trigSources.begin(); iTr != trigSources.end(); ++iTr){
128  trigSource = (*iTr);
129  for (vector<string>::const_iterator iHw = hwSources.begin(); iHw != hwSources.end(); ++iHw){
130  hwSource = (*iHw);
131  vector<const DTChamber*>::const_iterator chIt = muonGeom->chambers().begin();
132  vector<const DTChamber*>::const_iterator chEnd = muonGeom->chambers().end();
133  for (; chIt != chEnd; ++chIt) {
134 
135  DTChamberId chId((*chIt)->id());
136  int wh = chId.wheel();
137  int sect = chId.sector();
138  int stat = chId.station();
139 
140  std::map<std::string,MonitorElement*> &innerME = whME[wh];
141 
142  // Make Phi Residual Summary
143  TH1F * PhiResidual = getHisto<TH1F>(igetter.get(getMEName("PhiResidual","Segment", chId)));
144  int phiSummary = 1;
145  if (PhiResidual && PhiResidual->GetEntries()>10) {
146 
147  if( innerME.find(fullName("PhiResidualPercentage")) == innerME.end() ){
148  bookWheelHistos(ibooker,wh,"PhiResidualPercentage");
149  }
150 
151  float rangeBin = validRange/(PhiResidual->GetBinWidth(1));
152  float center = (PhiResidual->GetNbinsX())/2.;
153  float perc = (PhiResidual->Integral(floor(center-rangeBin),ceil(center+rangeBin)))/(PhiResidual->Integral());
154  fillWhPlot(innerME.find(fullName("PhiResidualPercentage"))->second,sect,stat,perc,false);
156  if (detailedAnalysis) cmsME.find(fullName("PhiPercentageSummary"))->second->Fill(perc);
157 
158  }
159 
160  fillWhPlot(innerME.find(fullName("PhiLutSummary"))->second,sect,stat,phiSummary);
161 
162  if (detailedAnalysis){
163 
164  if ((phiSummary==0)||(phiSummary==3)){ //Information on the Peak
165 
166  if( innerME.find(fullName("PhiResidualMean")) == innerME.end() ){
167  bookWheelHistos(ibooker,wh,"PhiResidualMean");
168  bookWheelHistos(ibooker,wh,"PhiResidualRMS");
169  }
170 
171  float center = (PhiResidual->GetNbinsX())/2.;
172  float rangeBin = validRange/(PhiResidual->GetBinWidth(1));
173  PhiResidual->GetXaxis()->SetRange(floor(center-rangeBin),ceil(center+rangeBin));
174  float max = PhiResidual->GetMaximumBin();
175  float maxBin = PhiResidual->GetXaxis()->FindBin(max);
176  float nBinMax = 0.5/(PhiResidual->GetBinWidth(1));
177  PhiResidual->GetXaxis()->SetRange(floor(maxBin-nBinMax),ceil(maxBin+nBinMax));
178  float Mean = PhiResidual->GetMean();
179  float rms = PhiResidual->GetRMS();
180 
181  fillWhPlot(innerME.find(fullName("PhiResidualMean"))->second,sect,stat,Mean);
182  fillWhPlot(innerME.find(fullName("PhiResidualRMS"))->second,sect,stat,rms);
183 
184  }
185 
186  TH2F * TrackPhitkvsPhitrig = getHisto<TH2F>(igetter.get(getMEName("PhitkvsPhitrig","Segment", chId)));
187 
188  if (TrackPhitkvsPhitrig && TrackPhitkvsPhitrig->GetEntries()>100) {
189  float corr = TrackPhitkvsPhitrig->GetCorrelationFactor();
190  if( innerME.find(fullName("CorrelationFactorPhi")) == innerME.end() ){
191  bookWheelHistos(ibooker,wh,"CorrelationFactorPhi");
192  }
193  fillWhPlot(innerME.find(fullName("CorrelationFactorPhi"))->second,sect,stat,corr,false);
194  }
195 
196  }
197 
198 
199  // Make Phib Residual Summary
200  TH1F * PhibResidual = getHisto<TH1F>(igetter.get(getMEName("PhibResidual","Segment", chId)));
201  int phibSummary = stat==3 ? -1 : 1; // station 3 has no meaningful MB3 phi bending information
202 
203  if (stat != 3 && PhibResidual && PhibResidual->GetEntries()>10) {// station 3 has no meaningful MB3 phi bending information
204 
205  if( innerME.find(fullName("PhibResidualPercentage")) == innerME.end() ){
206  bookWheelHistos(ibooker,wh,"PhibResidualPercentage");
207  }
208 
209  float rangeBin = validRange/(PhibResidual->GetBinWidth(1));
210  float center = (PhibResidual->GetNbinsX())/2.;
211  float perc = (PhibResidual->Integral(floor(center-rangeBin),ceil(center+rangeBin)))/(PhibResidual->Integral());
212 
213  fillWhPlot(innerME.find(fullName("PhibResidualPercentage"))->second,sect,stat,perc,false);
215  if (detailedAnalysis) cmsME.find(fullName("PhibPercentageSummary"))->second->Fill(perc);
216 
217  }
218 
219  fillWhPlot(innerME.find(fullName("PhibLutSummary"))->second,sect,stat,phibSummary);
220 
221  if (detailedAnalysis){
222 
223  if ((phibSummary==0)||(phibSummary==3)){
224 
225  if( innerME.find(fullName("PhibResidualMean")) == innerME.end() ){
226  bookWheelHistos(ibooker,wh,"PhibResidualMean");
227  bookWheelHistos(ibooker,wh,"PhibResidualRMS");
228  }
229 
230  float center = (PhibResidual->GetNbinsX())/2.;
231  float rangeBin = validRange/(PhibResidual->GetBinWidth(1));
232  PhibResidual->GetXaxis()->SetRange(floor(center-rangeBin),ceil(center+rangeBin));
233  float max = PhibResidual->GetMaximumBin();
234  float maxBin = PhibResidual->GetXaxis()->FindBin(max);
235  float nBinMax = 0.5/(PhibResidual->GetBinWidth(1));
236  PhibResidual->GetXaxis()->SetRange(floor(maxBin-nBinMax),ceil(maxBin+nBinMax));
237  float Mean = PhibResidual->GetMean();
238  float rms = PhibResidual->GetRMS();
239 
240  fillWhPlot(innerME.find(fullName("PhibResidualMean"))->second,sect,stat,Mean);
241  fillWhPlot(innerME.find(fullName("PhibResidualRMS"))->second,sect,stat,rms);
242  }
243 
244  TH2F * TrackPhibtkvsPhibtrig = getHisto<TH2F>(igetter.get(getMEName("PhibtkvsPhibtrig","Segment", chId)));
245  if (TrackPhibtkvsPhibtrig && TrackPhibtkvsPhibtrig->GetEntries()>100) {
246 
247  float corr = TrackPhibtkvsPhibtrig->GetCorrelationFactor();
248  if( innerME.find(fullName("CorrelationFactorPhib")) == innerME.end() ){
249  bookWheelHistos(ibooker,wh,"CorrelationFactorPhib");
250  }
251 
252  fillWhPlot(innerME.find(fullName("CorrelationFactorPhib"))->second,sect,stat,corr,false);
253 
254  }
255 
256  }
257  }
258  }
259  }
260 
261  // Barrel Summary Plots
262  for (vector<string>::const_iterator iTr = trigSources.begin(); iTr != trigSources.end(); ++iTr){
263  trigSource = (*iTr);
264  for (vector<string>::const_iterator iHw = hwSources.begin(); iHw != hwSources.end(); ++iHw){
265  hwSource = (*iHw);
266  for (int wh=-2; wh<=2; ++wh){
267 
268  std::map<std::string,MonitorElement*> *innerME = &(whME[wh]);
269 
270  TH2F* phiWhSummary = getHisto<TH2F>(innerME->find(fullName("PhiLutSummary"))->second);
271  TH2F* phibWhSummary = getHisto<TH2F>(innerME->find(fullName("PhibLutSummary"))->second);
272 
273  for (int sect=1; sect<=12; ++sect){
274 
275  int phiSectorTotal = 0; // CB dai 1 occhio a questo
276  int phibSectorTotal = 0;
277  int nullphi = 0;
278  int nullphib = 0;
279  int phiStatus = 5;
280  int phibStatus = 5;
281  int glbStatus = 0;
282 
283  for (int stat=1; stat<=4; ++stat){
284  if (phiWhSummary->GetBinContent(sect,stat)==2){
285  phiSectorTotal +=1;
286  glbStatus += 1;
287  }
288  if (phiWhSummary->GetBinContent(sect,stat)==1)
289  nullphi+=1;
290  if (phibWhSummary->GetBinContent(sect,stat)==2) {
291  phibSectorTotal+=1;
292  glbStatus += 1;
293  }
294  if (phibWhSummary->GetBinContent(sect,stat)==1)
295  nullphib+=1;
296  }
297  if (nullphi!=4)
298  phiStatus=phiSectorTotal;
299  else
300  phiStatus=5;
301  if (nullphib!=3)
302  phibStatus=phibSectorTotal;
303  else
304  phibStatus=5;
305 
306  cmsME.find("TrigLutSummary")->second->setBinContent(sect,wh+3,glbStatus);
307  cmsME.find(fullName("PhiLutSummary"))->second->setBinContent(sect,wh+3,phiStatus);
308  cmsME.find(fullName("PhibLutSummary"))->second->setBinContent(sect,wh+3,phibStatus);
309  }
310  }
311  }
312  }
313 
314 }
std::vector< std::string > trigSources
std::map< int, std::map< std::string, MonitorElement * > > whME
MonitorElement * get(const std::string &path)
Definition: DQMStore.cc:302
int performLutTest(double perc, double threshold1, double threshold2)
Perform Lut Test logical operations.
void fillWhPlot(MonitorElement *plot, int sect, int stat, float value, bool lessIsBest=true)
Fill summary plots managing double MB4 chambers.
edm::ESHandle< DTGeometry > muonGeom
JetCorrectorParameters corr
Definition: classes.h:5
std::string getMEName(std::string histoTag, std::string subfolder, const DTChamberId &chambid)
Get the ME name (by chamber)
std::map< std::string, MonitorElement * > cmsME
std::vector< std::string > hwSources
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:45
void bookWheelHistos(DQMStore::IBooker &, int wheel, std::string hTag, std::string folder="")
Book the new MEs (for each wheel)
std::string fullName(std::string htype)
Create fullname from histo partial name.

Member Data Documentation

bool DTTriggerLutTest::bookingdone
private

Definition at line 59 of file DTTriggerLutTest.h.

bool DTTriggerLutTest::detailedAnalysis
private

Definition at line 57 of file DTTriggerLutTest.h.

double DTTriggerLutTest::thresholdErrPhi
private

Definition at line 54 of file DTTriggerLutTest.h.

double DTTriggerLutTest::thresholdErrPhiB
private

Definition at line 55 of file DTTriggerLutTest.h.

double DTTriggerLutTest::thresholdWarnPhi
private

Definition at line 54 of file DTTriggerLutTest.h.

double DTTriggerLutTest::thresholdWarnPhiB
private

Definition at line 55 of file DTTriggerLutTest.h.

double DTTriggerLutTest::validRange
private

Definition at line 56 of file DTTriggerLutTest.h.