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 edm::EDAnalyzer 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 edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 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
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Protected Member Functions

void beginJob ()
 BeginJob. More...
 
void beginRun (const edm::Run &r, const edm::EventSetup &c)
 BeginRun. More...
 
void runClientDiagnostic ()
 Run client analysis. More...
 
- Protected Member Functions inherited from DTLocalTriggerBaseTest
void analyze (const edm::Event &e, const edm::EventSetup &c)
 Analyze. More...
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context)
 Perform begin lumiblock operations. More...
 
void bookCmsHistos (std::string hTag, std::string folder="", bool isGlb=false)
 Book the new MEs (CMS summary) More...
 
void bookSectorHistos (int wheel, int sector, std::string hTag, std::string folder="")
 Book the new MEs (for each sector) More...
 
void bookWheelHistos (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 endJob ()
 EndJob. More...
 
void endLuminosityBlock (edm::LuminosityBlock const &lumiSeg, edm::EventSetup const &context)
 Perform client diagnostic in online. 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::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 (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 detailedAnalysis
 
double thresholdErrPhi
 
double thresholdErrPhiB
 
double thresholdWarnPhi
 
double thresholdWarnPhiB
 
double validRange
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Attributes inherited from DTLocalTriggerBaseTest
std::string baseFolderDCC
 
std::string baseFolderDDU
 
std::map< std::string,
MonitorElement * > 
cmsME
 
DQMStoredbe
 
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 19 of file DTTriggerLutTest.h.

Constructor & Destructor Documentation

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

Constructor.

Definition at line 34 of file DTTriggerLutTest.cc.

References edm::ParameterSet::getUntrackedParameter().

34  {
35 
36  setConfig(ps,"DTTriggerLut");
37  baseFolderDCC = "DT/03-LocalTrigger-DCC/";
38  baseFolderDDU = "DT/04-LocalTrigger-DDU/";
39  thresholdWarnPhi = ps.getUntrackedParameter<double>("thresholdWarnPhi");
40  thresholdErrPhi = ps.getUntrackedParameter<double>("thresholdErrPhi");
41  thresholdWarnPhiB = ps.getUntrackedParameter<double>("thresholdWarnPhiB");
42  thresholdErrPhiB = ps.getUntrackedParameter<double>("thresholdErrPhiB");
43  validRange = ps.getUntrackedParameter<double>("validRange");
44  detailedAnalysis = ps.getUntrackedParameter<bool>("detailedAnalysis");
45 
46 }
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 49 of file DTTriggerLutTest.cc.

49  {
50 
51 }

Member Function Documentation

void DTTriggerLutTest::beginJob ( void  )
protectedvirtual

BeginJob.

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 54 of file DTTriggerLutTest.cc.

References DTLocalTriggerBaseTest::beginJob(), and Parameters::parameters.

54  {
55 
57 
58  vector<string>::const_iterator iTr = trigSources.begin();
59  vector<string>::const_iterator trEnd = trigSources.end();
60  vector<string>::const_iterator iHw = hwSources.begin();
61  vector<string>::const_iterator hwEnd = hwSources.end();
62 
63  //Booking
64  if(parameters.getUntrackedParameter<bool>("staticBooking")){
65 
66  for (; iTr != trEnd; ++iTr){
67  trigSource = (*iTr);
68  for (; iHw != hwEnd; ++iHw){
69  hwSource = (*iHw);
70  // Loop over the TriggerUnits
71  for (int wh=-2; wh<=2; ++wh){
72  if (detailedAnalysis){
73  bookWheelHistos(wh,"PhiResidualPercentage");
74  bookWheelHistos(wh,"PhibResidualPercentage");
75  }
76 
77  bookWheelHistos(wh,"PhiLutSummary","Summaries");
78  bookWheelHistos(wh,"PhibLutSummary","Summaries");
79 
80  if (detailedAnalysis){
81  bookWheelHistos(wh,"PhiResidualMean");
82  bookWheelHistos(wh,"PhiResidualRMS");
83  bookWheelHistos(wh,"PhibResidualMean");
84  bookWheelHistos(wh,"PhibResidualRMS");
85  bookWheelHistos(wh,"CorrelationFactorPhi");
86  bookWheelHistos(wh,"CorrelationFactorPhib");
87  bookWheelHistos(wh,"DoublePeakFlagPhib");
88  }
89 
90  }
91 
92  bookCmsHistos("TrigLutSummary","",true);
93  bookCmsHistos("PhiLutSummary");
94  bookCmsHistos("PhibLutSummary");
95  if (detailedAnalysis){
96  bookCmsHistos1d("PhiPercentageSummary");
97  bookCmsHistos1d("PhibPercentageSummary");
98  }
99  }
100  }
101  }
102 
103 }
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::string > trigSources
void bookCmsHistos1d(std::string hTag, std::string folder="")
void bookCmsHistos(std::string hTag, std::string folder="", bool isGlb=false)
Book the new MEs (CMS summary)
void bookWheelHistos(int wheel, std::string hTag, std::string folder="")
Book the new MEs (for each wheel)
std::vector< std::string > hwSources
void DTTriggerLutTest::beginRun ( const edm::Run r,
const edm::EventSetup c 
)
protectedvirtual

BeginRun.

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 106 of file DTTriggerLutTest.cc.

References DTLocalTriggerBaseTest::beginRun().

106  {
107 
109 
110 }
void beginRun(edm::Run const &run, edm::EventSetup const &context)
BeginRun.
void DTTriggerLutTest::bookCmsHistos1d ( std::string  hTag,
std::string  folder = "" 
)
private

Definition at line 359 of file DTTriggerLutTest.cc.

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

359  {
360 
361  string basedir = topFolder(true);
362  if (folder != "") {
363  basedir += folder +"/" ;
364  }
365  dbe->setCurrentFolder(basedir);
366 
367  string hName = fullName(hTag);
368  LogTrace(category()) << "[" << testName << "Test]: booking " << basedir << hName;
369 
370 
371  MonitorElement* me = dbe->book1D(hName.c_str(),hName.c_str(),101,-0.005,1.005);
372  me->setAxisTitle("Percentage",1);
373  cmsME[hName] = me;
374 
375 }
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:872
#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 setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:584
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 377 of file DTTriggerLutTest.cc.

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

377  {
378 
379  if (sect>12) {
380  int scsect = sect==13 ? 4 : 10;
381  if ((value>plot->getBinContent(scsect,stat)) == lessIsBest) {
382  plot->setBinContent(scsect,stat,value);
383  }
384  }
385  else {
386  plot->setBinContent(sect,stat,value);
387  }
388 
389  return;
390 
391 }
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 348 of file DTTriggerLutTest.cc.

References query::result.

348  {
349 
350  bool isInWarn = perc<thresholdWarn;
351  bool isInErr = perc<thresholdErr;
352 
353  int result= isInErr ? 2 : isInWarn ? 3 : 0;
354 
355  return result;
356 
357 }
tuple result
Definition: query.py:137
void DTTriggerLutTest::runClientDiagnostic ( )
protectedvirtual

Run client analysis.

Implements DTLocalTriggerBaseTest.

Definition at line 113 of file DTTriggerLutTest.cc.

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

113  {
114 
115  // Reset lut percentage 1D summaries
116  if (detailedAnalysis){
117  cmsME.find(fullName("PhiPercentageSummary"))->second->Reset();
118  cmsME.find(fullName("PhibPercentageSummary"))->second->Reset();
119  }
120 
121  // Loop over Trig & Hw sources
122  for (vector<string>::const_iterator iTr = trigSources.begin(); iTr != trigSources.end(); ++iTr){
123  trigSource = (*iTr);
124  for (vector<string>::const_iterator iHw = hwSources.begin(); iHw != hwSources.end(); ++iHw){
125  hwSource = (*iHw);
126  vector<DTChamber*>::const_iterator chIt = muonGeom->chambers().begin();
127  vector<DTChamber*>::const_iterator chEnd = muonGeom->chambers().end();
128  for (; chIt != chEnd; ++chIt) {
129 
130  DTChamberId chId((*chIt)->id());
131  int wh = chId.wheel();
132  int sect = chId.sector();
133  int stat = chId.station();
134 
135  std::map<std::string,MonitorElement*> &innerME = whME[wh];
136 
137  // Make Phi Residual Summary
138  TH1F * PhiResidual = getHisto<TH1F>(dbe->get(getMEName("PhiResidual","Segment", chId)));
139  int phiSummary = 1;
140  if (PhiResidual && PhiResidual->GetEntries()>10) {
141 
142  if( innerME.find(fullName("PhiResidualPercentage")) == innerME.end() ){
143  bookWheelHistos(wh,"PhiResidualPercentage");
144  }
145 
146  float rangeBin = validRange/(PhiResidual->GetBinWidth(1));
147  float center = (PhiResidual->GetNbinsX())/2.;
148  float perc = (PhiResidual->Integral(floor(center-rangeBin),ceil(center+rangeBin)))/(PhiResidual->Integral());
149  fillWhPlot(innerME.find(fullName("PhiResidualPercentage"))->second,sect,stat,perc,false);
151  if (detailedAnalysis) cmsME.find(fullName("PhiPercentageSummary"))->second->Fill(perc);
152 
153  }
154 
155  fillWhPlot(innerME.find(fullName("PhiLutSummary"))->second,sect,stat,phiSummary);
156 
157  if (detailedAnalysis){
158 
159 // if ((phiSummary ==0)&& (PhiResidual->GetEntries()>100)) { //Precision Peak test
160 
161 // Float_t *source = new float[31];
162 // Float_t *dest = new float[31];
163 // //TSpectrum *g = new TSpectrum(5);
164 // float media = PhiResidual->GetMean();
165 // int center = PhiResidual->GetXaxis()->FindBin(media);
166 // for (int i = 0; i < 30; i++) {
167 // source[i]=PhiResidual->GetBinContent(center+i-15);}
168 // int nFound = g->SearchHighRes(source, dest, 30, 1, 6, kFALSE, 5, kTRUE,2);
169 // /if (nFound>1) { // has more than 1 peak
170 // if( innerME.find(fullName("DoublePeakFlagPhi")) == innerME.end() ){
171 // bookWheelHistos(wh,"DoublePeakFlagPhi");
172 // }
173 // }
174 
175 // fillWhPlot(innerME.find(fullName("DoublePeakFlagPhi"))->second,sect,stat,1,false);
176 // }
177 
178  if ((phiSummary==0)||(phiSummary==3)){ //Information on the Peak
179 
180  if( innerME.find(fullName("PhiResidualMean")) == innerME.end() ){
181  bookWheelHistos(wh,"PhiResidualMean");
182  bookWheelHistos(wh,"PhiResidualRMS");
183  }
184 
185  float center = (PhiResidual->GetNbinsX())/2.;
186  float rangeBin = validRange/(PhiResidual->GetBinWidth(1));
187  PhiResidual->GetXaxis()->SetRange(floor(center-rangeBin),ceil(center+rangeBin));
188  float max = PhiResidual->GetMaximumBin();
189  float maxBin = PhiResidual->GetXaxis()->FindBin(max);
190  float nBinMax = 0.5/(PhiResidual->GetBinWidth(1));
191  PhiResidual->GetXaxis()->SetRange(floor(maxBin-nBinMax),ceil(maxBin+nBinMax));
192  float Mean = PhiResidual->GetMean();
193  float rms = PhiResidual->GetRMS();
194 
195  fillWhPlot(innerME.find(fullName("PhiResidualMean"))->second,sect,stat,Mean);
196  fillWhPlot(innerME.find(fullName("PhiResidualRMS"))->second,sect,stat,rms);
197 
198  }
199 
200  TH2F * TrackPhitkvsPhitrig = getHisto<TH2F>(dbe->get(getMEName("PhitkvsPhitrig","Segment", chId)));
201 
202  if (TrackPhitkvsPhitrig && TrackPhitkvsPhitrig->GetEntries()>100) {
203  float corr = TrackPhitkvsPhitrig->GetCorrelationFactor();
204  if( innerME.find(fullName("CorrelationFactorPhi")) == innerME.end() ){
205  bookWheelHistos(wh,"CorrelationFactorPhi");
206  }
207  fillWhPlot(innerME.find(fullName("CorrelationFactorPhi"))->second,sect,stat,corr,false);
208  }
209 
210  }
211 
212 
213  // Make Phib Residual Summary
214  TH1F * PhibResidual = getHisto<TH1F>(dbe->get(getMEName("PhibResidual","Segment", chId)));
215  int phibSummary = stat==3 ? -1 : 1; // station 3 has no meaningful MB3 phi bending information
216 
217  if (stat != 3 && PhibResidual && PhibResidual->GetEntries()>10) {// station 3 has no meaningful MB3 phi bending information
218 
219  if( innerME.find(fullName("PhibResidualPercentage")) == innerME.end() ){
220  bookWheelHistos(wh,"PhibResidualPercentage");
221  }
222 
223  float rangeBin = validRange/(PhibResidual->GetBinWidth(1));
224  float center = (PhibResidual->GetNbinsX())/2.;
225  float perc = (PhibResidual->Integral(floor(center-rangeBin),ceil(center+rangeBin)))/(PhibResidual->Integral());
226 
227  fillWhPlot(innerME.find(fullName("PhibResidualPercentage"))->second,sect,stat,perc,false);
229  if (detailedAnalysis) cmsME.find(fullName("PhibPercentageSummary"))->second->Fill(perc);
230 
231  }
232 
233  fillWhPlot(innerME.find(fullName("PhibLutSummary"))->second,sect,stat,phibSummary);
234 
235  if (detailedAnalysis){
236 
237 // if ((phibSummary ==0)&& (PhibResidual->GetEntries()>100)) { //Precision Peak test
238 // Float_t * source = new float[31];
239 // Float_t * dest = new float[31];
240 // TSpectrum *spec = new TSpectrum(5);
241 // float media = PhibResidual->GetMean();
242 // int center= PhibResidual->GetXaxis()->FindBin(media);
243 // for (int i = 0; i < 30; i++) {
244 // source[i]=PhibResidual->GetBinContent(center+i-15);
245 // }
246 // int nFound = spec->SearchHighRes(source,dest,30,1,6,kFALSE,5,kTRUE,2);
247 // if (nFound>1) { // has more than 1 peak
248 // if( innerME.find(fullName("DoublePeakFlagPhib")) == innerME.end() ){
249 // bookWheelHistos(wh,"DoublePeakFlagPhib");
250 // }
251 // fillWhPlot(innerME.find(fullName("DoublePeakFlagPhib"))->second,sect,stat,1,false);
252 // }
253 // }
254 
255  if ((phibSummary==0)||(phibSummary==3)){
256 
257  if( innerME.find(fullName("PhibResidualMean")) == innerME.end() ){
258  bookWheelHistos(wh,"PhibResidualMean");
259  bookWheelHistos(wh,"PhibResidualRMS");
260  }
261 
262  float center = (PhibResidual->GetNbinsX())/2.;
263  float rangeBin = validRange/(PhibResidual->GetBinWidth(1));
264  PhibResidual->GetXaxis()->SetRange(floor(center-rangeBin),ceil(center+rangeBin));
265  float max = PhibResidual->GetMaximumBin();
266  float maxBin = PhibResidual->GetXaxis()->FindBin(max);
267  float nBinMax = 0.5/(PhibResidual->GetBinWidth(1));
268  PhibResidual->GetXaxis()->SetRange(floor(maxBin-nBinMax),ceil(maxBin+nBinMax));
269  float Mean = PhibResidual->GetMean();
270  float rms = PhibResidual->GetRMS();
271 
272  fillWhPlot(innerME.find(fullName("PhibResidualMean"))->second,sect,stat,Mean);
273  fillWhPlot(innerME.find(fullName("PhibResidualRMS"))->second,sect,stat,rms);
274  }
275 
276  TH2F * TrackPhibtkvsPhibtrig = getHisto<TH2F>(dbe->get(getMEName("PhibtkvsPhibtrig","Segment", chId)));
277  if (TrackPhibtkvsPhibtrig && TrackPhibtkvsPhibtrig->GetEntries()>100) {
278 
279  float corr = TrackPhibtkvsPhibtrig->GetCorrelationFactor();
280  if( innerME.find(fullName("CorrelationFactorPhib")) == innerME.end() ){
281  bookWheelHistos(wh,"CorrelationFactorPhib");
282  }
283 
284  fillWhPlot(innerME.find(fullName("CorrelationFactorPhib"))->second,sect,stat,corr,false);
285 
286  }
287 
288  }
289  }
290  }
291  }
292 
293  // Barrel Summary Plots
294  for (vector<string>::const_iterator iTr = trigSources.begin(); iTr != trigSources.end(); ++iTr){
295  trigSource = (*iTr);
296  for (vector<string>::const_iterator iHw = hwSources.begin(); iHw != hwSources.end(); ++iHw){
297  hwSource = (*iHw);
298  for (int wh=-2; wh<=2; ++wh){
299 
300  std::map<std::string,MonitorElement*> *innerME = &(whME[wh]);
301 
302  TH2F* phiWhSummary = getHisto<TH2F>(innerME->find(fullName("PhiLutSummary"))->second);
303  TH2F* phibWhSummary = getHisto<TH2F>(innerME->find(fullName("PhibLutSummary"))->second);
304 
305  for (int sect=1; sect<=12; ++sect){
306 
307  int phiSectorTotal = 0; // CB dai 1 occhio a questo
308  int phibSectorTotal = 0;
309  int nullphi = 0;
310  int nullphib = 0;
311  int phiStatus = 5;
312  int phibStatus = 5;
313  int glbStatus = 0;
314 
315  for (int stat=1; stat<=4; ++stat){
316  if (phiWhSummary->GetBinContent(sect,stat)==2){
317  phiSectorTotal +=1;
318  glbStatus += 1;
319  }
320  if (phiWhSummary->GetBinContent(sect,stat)==1)
321  nullphi+=1;
322  if (phibWhSummary->GetBinContent(sect,stat)==2) {
323  phibSectorTotal+=1;
324  glbStatus += 1;
325  }
326  if (phibWhSummary->GetBinContent(sect,stat)==1)
327  nullphib+=1;
328  }
329  if (nullphi!=4)
330  phiStatus=phiSectorTotal;
331  else
332  phiStatus=5;
333  if (nullphib!=3)
334  phibStatus=phibSectorTotal;
335  else
336  phibStatus=5;
337 
338  cmsME.find("TrigLutSummary")->second->setBinContent(sect,wh+3,glbStatus);
339  cmsME.find(fullName("PhiLutSummary"))->second->setBinContent(sect,wh+3,phiStatus);
340  cmsME.find(fullName("PhibLutSummary"))->second->setBinContent(sect,wh+3,phibStatus);
341  }
342  }
343  }
344  }
345 
346 }
std::vector< std::string > trigSources
std::map< int, std::map< std::string, MonitorElement * > > whME
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
void bookWheelHistos(int wheel, std::string hTag, std::string folder="")
Book the new MEs (for each wheel)
const T & max(const T &a, const T &b)
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
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
std::string fullName(std::string htype)
Create fullname from histo partial name.

Member Data Documentation

bool DTTriggerLutTest::detailedAnalysis
private

Definition at line 53 of file DTTriggerLutTest.h.

double DTTriggerLutTest::thresholdErrPhi
private

Definition at line 50 of file DTTriggerLutTest.h.

double DTTriggerLutTest::thresholdErrPhiB
private

Definition at line 51 of file DTTriggerLutTest.h.

double DTTriggerLutTest::thresholdWarnPhi
private

Definition at line 50 of file DTTriggerLutTest.h.

double DTTriggerLutTest::thresholdWarnPhiB
private

Definition at line 51 of file DTTriggerLutTest.h.

double DTTriggerLutTest::validRange
private

Definition at line 52 of file DTTriggerLutTest.h.