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 Attributes
DTTriggerEfficiencyTest Class Reference

#include <DTTriggerEfficiencyTest.h>

Inheritance diagram for DTTriggerEfficiencyTest:
DTLocalTriggerBaseTest edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

 DTTriggerEfficiencyTest (const edm::ParameterSet &ps)
 Constructor. More...
 
virtual ~DTTriggerEfficiencyTest ()
 Destructor. More...
 
- Public Member Functions inherited from DTLocalTriggerBaseTest
 DTLocalTriggerBaseTest ()
 Constructor. More...
 
virtual ~DTLocalTriggerBaseTest ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 
- Public Member Functions inherited from edm::EDConsumerBase
 EDConsumerBase ()
 
ProductHolderIndex indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndex > &) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) 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 bookChambHistos (DTChamberId chambId, std::string htype, std::string folder="")
 Book the new MEs (for each chamber) More...
 
void bookHistos (std::string hTag, std::string folder)
 Book the new MEs (global) More...
 
void bookWheelHistos (int wheel, std::string hTag, std::string folder)
 Book the new MEs (for each wheel) More...
 
std::string getMEName (std::string histoTag, std::string folder, int wh)
 Get the ME name (by wheel) More...
 
void makeEfficiencyME (TH2F *numerator, TH2F *denominator, MonitorElement *result2DWh, MonitorElement *result1DWh, MonitorElement *result1D)
 Compute 1D/2D efficiency plots. More...
 
void makeEfficiencyME (TH2F *numerator, TH2F *denominator, MonitorElement *result2DWh)
 Compute 2D efficiency plots. More...
 
void runClientDiagnostic ()
 DQM Client Diagnostic. 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::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
CurrentProcessingContext const * currentContext () const
 
- 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 Attributes

std::map< uint32_t, std::map
< std::string, MonitorElement * > > 
chambME
 
bool detailedPlots
 
std::map< int, std::map
< std::string, MonitorElement * > > 
EffDistrPerWh
 
std::map< std::string,
MonitorElement * > 
globalEffDistr
 
DTTrigGeomUtilstrigGeomUtils
 

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 &)
 
- 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 22 of file DTTriggerEfficiencyTest.h.

Constructor & Destructor Documentation

DTTriggerEfficiencyTest::DTTriggerEfficiencyTest ( const edm::ParameterSet ps)

Constructor.

Definition at line 39 of file DTTriggerEfficiencyTest.cc.

References edm::ParameterSet::getUntrackedParameter().

39  {
40 
41  setConfig(ps,"DTTriggerEfficiency");
42  baseFolderDCC = "DT/03-LocalTrigger-DCC/";
43  baseFolderDDU = "DT/04-LocalTrigger-DDU/";
44  detailedPlots = ps.getUntrackedParameter<bool>("detailedAnalysis",true);
45 
46 }
T getUntrackedParameter(std::string const &, T const &) const
void setConfig(const edm::ParameterSet &ps, std::string name)
Set configuration variables.
DTTriggerEfficiencyTest::~DTTriggerEfficiencyTest ( )
virtual

Destructor.

Definition at line 49 of file DTTriggerEfficiencyTest.cc.

49  {
50 
51 }

Member Function Documentation

void DTTriggerEfficiencyTest::beginJob ( void  )
protectedvirtual

BeginJob.

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 54 of file DTTriggerEfficiencyTest.cc.

References DTLocalTriggerBaseTest::beginJob().

54  {
55 
57 
58 }
void DTTriggerEfficiencyTest::beginRun ( const edm::Run r,
const edm::EventSetup c 
)
protectedvirtual

BeginRun.

Reimplemented from DTLocalTriggerBaseTest.

Definition at line 61 of file DTTriggerEfficiencyTest.cc.

References DTLocalTriggerBaseTest::beginRun(), bookHistos(), and Parameters::parameters.

61  {
62 
65 
66  vector<string>::const_iterator iTr = trigSources.begin();
67  vector<string>::const_iterator trEnd = trigSources.end();
68  vector<string>::const_iterator iHw = hwSources.begin();
69  vector<string>::const_iterator hwEnd = hwSources.end();
70 
71 
72  //Booking
73  if(parameters.getUntrackedParameter<bool>("staticBooking", true)){
74  for (; iTr != trEnd; ++iTr){
75  trigSource = (*iTr);
76  for (; iHw != hwEnd; ++iHw){
77  hwSource = (*iHw);
78  // Loop over the TriggerUnits
79  bookHistos("TrigEffPhi","");
80  bookHistos("TrigEffCorrPhi","");
81  for (int wh=-2; wh<=2; ++wh){
82  if (detailedPlots) {
83  for (int sect=1; sect<=12; ++sect){
84  for (int stat=1; stat<=4; ++stat){
85  DTChamberId chId(wh,stat,sect);
86  bookChambHistos(chId,"TrigEffPosvsAnglePhi","Segment");
87  bookChambHistos(chId,"TrigEffPosvsAngleCorrPhi","Segment");
88  }
89  }
90  }
91  bookWheelHistos(wh,"TrigEffPhi","");
92  bookWheelHistos(wh,"TrigEffCorrPhi","");
93  }
94  }
95  }
96  }
97 
98 }
T getUntrackedParameter(std::string const &, T const &) const
std::vector< std::string > trigSources
void bookWheelHistos(int wheel, std::string hTag, std::string folder)
Book the new MEs (for each wheel)
void bookChambHistos(DTChamberId chambId, std::string htype, std::string folder="")
Book the new MEs (for each chamber)
void beginRun(edm::Run const &run, edm::EventSetup const &context)
BeginRun.
void bookHistos(std::string hTag, std::string folder)
Book the new MEs (global)
edm::ESHandle< DTGeometry > muonGeom
std::vector< std::string > hwSources
void DTTriggerEfficiencyTest::bookChambHistos ( DTChamberId  chambId,
std::string  htype,
std::string  folder = "" 
)
protected

Book the new MEs (for each chamber)

Definition at line 315 of file DTTriggerEfficiencyTest.cc.

References python.rootplot.argparse::category, newFWLiteAna::fullName, LogTrace, edm::max(), edm::min(), pileupCalc::nbins, DetId::rawId(), DTChamberId::sector(), DTChamberId::station(), relativeConstraints::station, and DTChamberId::wheel().

315  {
316 
317  stringstream wheel; wheel << chambId.wheel();
318  stringstream station; station << chambId.station();
319  stringstream sector; sector << chambId.sector();
320 
321  string fullType = fullName(htype);
322  bool isDCC = hwSource=="DCC" ;
323  string HistoName = fullType + "_W" + wheel.str() + "_Sec" + sector.str() + "_St" + station.str();
324 
325  dbe->setCurrentFolder(topFolder(isDCC) +
326  "Wheel" + wheel.str() +
327  "/Sector" + sector.str() +
328  "/Station" + station.str() +
329  "/" + folder + "/");
330 
331  LogTrace(category()) << "[" << testName << "Test]: booking " + topFolder(isDCC) + "Wheel" << wheel.str()
332  <<"/Sector" << sector.str() << "/Station" << station.str() << "/" + folder + "/" << HistoName;
333 
334 
335  uint32_t indexChId = chambId.rawId();
336  float min, max;
337  int nbins;
338  trigGeomUtils->phiRange(chambId,min,max,nbins,20);
339  if (htype.find("TrigEffPosvsAnglePhi") == 0 ){
340  chambME[indexChId][fullType] = dbe->book2D(HistoName.c_str(),"Trigger efficiency (any qual.) position vs angle (Phi)",12,-30.,30.,nbins,min,max);
341  return;
342  }
343  if (htype.find("TrigEffPosvsAngleCorrPhi") == 0 ){
344  chambME[indexChId][fullType] = dbe->book2D(HistoName.c_str(),"Trigger efficiency (correlated) pos vs angle (Phi)",12,-30.,30.,nbins,min,max);
345  return;
346  }
347 
348 }
#define min(a, b)
Definition: mlp_lapack.h:161
std::map< uint32_t, std::map< std::string, MonitorElement * > > chambME
uint32_t rawId() const
get the raw id
Definition: DetId.h:45
const T & max(const T &a, const T &b)
#define LogTrace(id)
std::string category()
Get message logger name.
void phiRange(const DTChamberId &id, float &min, float &max, int &nbins, float step=15)
Compute phi range in local chamber coordinates.
std::string HistoName
int sector() const
Definition: DTChamberId.h:63
std::string & topFolder(bool isDCC)
Get top folder name.
int station() const
Return the station number.
Definition: DTChamberId.h:53
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 wheel() const
Return the wheel number.
Definition: DTChamberId.h:47
std::string fullName(std::string htype)
Create fullname from histo partial name.
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
void DTTriggerEfficiencyTest::bookHistos ( std::string  hTag,
std::string  folder 
)
protected

Book the new MEs (global)

Definition at line 241 of file DTTriggerEfficiencyTest.cc.

References newFWLiteAna::fullName.

241  {
242 
243  string basedir;
244  bool isDCC = hwSource=="DCC" ;
245  basedir = topFolder(isDCC); //Book summary histo outside Task directory
246 
247  if (folder != "") {
248  basedir += folder +"/" ;
249  }
250  dbe->setCurrentFolder(basedir);
251 
252  string fullTag = fullName(hTag);
253  string hname = fullTag + "_All";
254 
255  globalEffDistr[fullTag] = dbe->book1D(hname.c_str(),hname.c_str(),51,0.,1.02);
256  globalEffDistr[fullTag] ->setAxisTitle("Trig Eff",1);
257 
258 }
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:722
std::map< std::string, MonitorElement * > globalEffDistr
std::string & topFolder(bool isDCC)
Get top folder name.
std::string fullName(std::string htype)
Create fullname from histo partial name.
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:434
void DTTriggerEfficiencyTest::bookWheelHistos ( int  wheel,
std::string  hTag,
std::string  folder 
)
protected

Book the new MEs (for each wheel)

Definition at line 260 of file DTTriggerEfficiencyTest.cc.

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

260  {
261 
262  stringstream wh; wh << wheel;
263  string basedir;
264  bool isDCC = hwSource=="DCC" ;
265  if (hTag.find("Summary") != string::npos) {
266  basedir = topFolder(isDCC); //Book summary histo outside wheel directories
267  } else {
268  basedir = topFolder(isDCC) + "Wheel" + wh.str() + "/" ;
269 
270  }
271  if (folder != "") {
272  basedir += folder +"/" ;
273  }
274  dbe->setCurrentFolder(basedir);
275 
276  string fullTag = fullName(hTag);
277  string hname = fullTag+ "_W" + wh.str();
278 
279  string hnameAll = fullTag+ "_All_W" + wh.str();
280 
281  LogTrace(category()) << "[" << testName << "Test]: booking "<< basedir << hname;
282 
283  (EffDistrPerWh[wheel])[fullTag] = dbe->book1D(hnameAll.c_str(),hnameAll.c_str(),51,0.,1.02);
284 
285  if (hTag.find("Phi")!= string::npos ||
286  hTag.find("Summary") != string::npos ){
287  MonitorElement* me = dbe->book2D(hname.c_str(),hname.c_str(),12,1,13,4,1,5);
288 
289  // setLabelPh(me);
290  me->setBinLabel(1,"MB1",2);
291  me->setBinLabel(2,"MB2",2);
292  me->setBinLabel(3,"MB3",2);
293  me->setBinLabel(4,"MB4",2);
294  me->setAxisTitle("Sector",1);
295 
296  whME[wheel][fullTag] = me;
297  return;
298  }
299 
300  if (hTag.find("Theta") != string::npos){
301  MonitorElement* me =dbe->book2D(hname.c_str(),hname.c_str(),12,1,13,3,1,4);
302 
303  // setLabelTh(me);
304  me->setBinLabel(1,"MB1",2);
305  me->setBinLabel(2,"MB2",2);
306  me->setBinLabel(3,"MB3",2);
307  me->setAxisTitle("Sector",1);
308 
309  whME[wheel][fullTag] = me;
310  return;
311  }
312 
313 }
std::map< int, std::map< std::string, MonitorElement * > > whME
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:722
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
std::map< int, std::map< std::string, MonitorElement * > > EffDistrPerWh
#define LogTrace(id)
std::string category()
Get message logger name.
std::string & topFolder(bool isDCC)
Get top folder name.
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
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:434
string DTTriggerEfficiencyTest::getMEName ( std::string  histoTag,
std::string  folder,
int  wh 
)
protected

Get the ME name (by wheel)

Definition at line 228 of file DTTriggerEfficiencyTest.cc.

References newFWLiteAna::fullName.

228  {
229 
230  stringstream wheel; wheel << wh;
231 
232  string folderName = topFolder(hwSource=="DCC") + folder + "/";
233 
234  string histoname = sourceFolder + folderName
235  + fullName(histoTag) + "_W" + wheel.str();
236 
237  return histoname;
238 
239 }
std::string & topFolder(bool isDCC)
Get top folder name.
std::string fullName(std::string htype)
Create fullname from histo partial name.
void DTTriggerEfficiencyTest::makeEfficiencyME ( TH2F *  numerator,
TH2F *  denominator,
MonitorElement result2DWh,
MonitorElement result1DWh,
MonitorElement result1D 
)
protected

Compute 1D/2D efficiency plots.

Definition at line 173 of file DTTriggerEfficiencyTest.cc.

References postValidation_cfi::efficiency, error, MonitorElement::Fill(), MonitorElement::getTH2F(), and mathSSE::sqrt().

173  {
174 
175  TH2F* efficiency = result2DWh->getTH2F();
176  efficiency->Divide(numerator,denominator,1,1,"");
177 
178  int nbinsx = efficiency->GetNbinsX();
179  int nbinsy = efficiency->GetNbinsY();
180  for (int binx=1; binx<=nbinsx; ++binx){
181  for (int biny=1; biny<=nbinsy; ++biny){
182  float error = 0;
183  float bineff = efficiency->GetBinContent(binx,biny);
184 
185  result1DWh->Fill(bineff);
186  result1D->Fill(bineff);
187 
188  if (denominator->GetBinContent(binx,biny)){
189  error = sqrt(bineff*(1-bineff)/denominator->GetBinContent(binx,biny));
190  }
191  else {
192  error = 1;
193  efficiency->SetBinContent(binx,biny,0.);
194  }
195 
196  efficiency->SetBinError(binx,biny,error);
197  }
198  }
199 
200 }
list numerator
Definition: cuy.py:483
void Fill(long long x)
list denominator
Definition: cuy.py:484
T sqrt(T t)
Definition: SSEVec.h:48
TH2F * getTH2F(void) const
void DTTriggerEfficiencyTest::makeEfficiencyME ( TH2F *  numerator,
TH2F *  denominator,
MonitorElement result2DWh 
)
protected

Compute 2D efficiency plots.

Definition at line 202 of file DTTriggerEfficiencyTest.cc.

References postValidation_cfi::efficiency, error, MonitorElement::getTH2F(), and mathSSE::sqrt().

202  {
203 
204  TH2F* efficiency = result2DWh->getTH2F();
205  efficiency->Divide(numerator,denominator,1,1,"");
206 
207  int nbinsx = efficiency->GetNbinsX();
208  int nbinsy = efficiency->GetNbinsY();
209  for (int binx=1; binx<=nbinsx; ++binx){
210  for (int biny=1; biny<=nbinsy; ++biny){
211  float error = 0;
212  float bineff = efficiency->GetBinContent(binx,biny);
213 
214  if (denominator->GetBinContent(binx,biny)){
215  error = sqrt(bineff*(1-bineff)/denominator->GetBinContent(binx,biny));
216  }
217  else {
218  error = 1;
219  efficiency->SetBinContent(binx,biny,0.);
220  }
221 
222  efficiency->SetBinError(binx,biny,error);
223  }
224  }
225 
226 }
list numerator
Definition: cuy.py:483
list denominator
Definition: cuy.py:484
T sqrt(T t)
Definition: SSEVec.h:48
TH2F * getTH2F(void) const
void DTTriggerEfficiencyTest::runClientDiagnostic ( )
protectedvirtual

DQM Client Diagnostic.

Implements DTLocalTriggerBaseTest.

Definition at line 101 of file DTTriggerEfficiencyTest.cc.

References bookHistos(), spr::find(), newFWLiteAna::fullName, DetId::rawId(), and edm::second().

101  {
102 
103  // Loop over Trig & Hw sources
104  for (vector<string>::const_iterator iTr = trigSources.begin(); iTr != trigSources.end(); ++iTr){
105  trigSource = (*iTr);
106  for (vector<string>::const_iterator iHw = hwSources.begin(); iHw != hwSources.end(); ++iHw){
107  hwSource = (*iHw);
108  // Loop over the TriggerUnits
109  if( globalEffDistr.find(fullName("TrigEffPhi")) == globalEffDistr.end() ){
110  bookHistos("TrigEffPhi","");
111  bookHistos("TrigEffCorrPhi","");
112  }
113  for (int wh=-2; wh<=2; ++wh){
114 
115  TH2F * TrigEffDenum = getHisto<TH2F>(dbe->get(getMEName("TrigEffDenum","Task",wh)));
116  TH2F * TrigEffNum = getHisto<TH2F>(dbe->get(getMEName("TrigEffNum","Task",wh)));
117  TH2F * TrigEffCorrNum = getHisto<TH2F>(dbe->get(getMEName("TrigEffCorrNum","Task",wh)));
118 
119  if (TrigEffDenum && TrigEffNum && TrigEffCorrNum && TrigEffDenum->GetEntries()>1) {
120 
121  if( whME[wh].find(fullName("TrigEffPhi")) == whME[wh].end() ){
122  bookWheelHistos(wh,"TrigEffPhi","");
123  bookWheelHistos(wh,"TrigEffCorrPhi","");
124  }
125 
126  MonitorElement* Eff1DAll_TrigEffPhi = (&globalEffDistr)->find(fullName("TrigEffPhi"))->second;
127  MonitorElement* Eff1DAll_TrigEffCorrPhi = (&globalEffDistr)->find(fullName("TrigEffCorrPhi"))->second;
128 
129  MonitorElement* Eff1DWh_TrigEffPhi = (&(EffDistrPerWh[wh]))->find(fullName("TrigEffPhi"))->second;
130  MonitorElement* Eff1DWh_TrigEffCorrPhi = (&(EffDistrPerWh[wh]))->find(fullName("TrigEffCorrPhi"))->second;
131 
132  MonitorElement* Eff2DWh_TrigEffPhi = (&(whME[wh]))->find(fullName("TrigEffPhi"))->second;
133  MonitorElement* Eff2DWh_TrigEffCorrPhi = (&(whME[wh]))->find(fullName("TrigEffCorrPhi"))->second;
134 
135  makeEfficiencyME(TrigEffNum,TrigEffDenum,Eff2DWh_TrigEffPhi,Eff1DWh_TrigEffPhi,Eff1DAll_TrigEffPhi);
136  makeEfficiencyME(TrigEffCorrNum,TrigEffDenum,Eff2DWh_TrigEffCorrPhi,Eff1DWh_TrigEffCorrPhi,Eff1DAll_TrigEffCorrPhi);
137 
138  }
139 
140  if (detailedPlots) {
141  for (int stat=1; stat<=4; ++stat){
142  for (int sect=1; sect<=12; ++sect){
143  DTChamberId chId(wh,stat,sect);
144  uint32_t indexCh = chId.rawId();
145 
146  // Perform Efficiency analysis (Phi+Segments 2D)
147  TH2F * TrackPosvsAngle = getHisto<TH2F>(dbe->get(getMEName("TrackPosvsAngle","Segment", chId)));
148  TH2F * TrackPosvsAngleAnyQual = getHisto<TH2F>(dbe->get(getMEName("TrackPosvsAngleAnyQual","Segment", chId)));
149  TH2F * TrackPosvsAngleCorr = getHisto<TH2F>(dbe->get(getMEName("TrackPosvsAngleCorr","Segment", chId)));
150 
151  if (TrackPosvsAngle && TrackPosvsAngleAnyQual && TrackPosvsAngleCorr && TrackPosvsAngle->GetEntries()>1) {
152 
153  if( chambME[indexCh].find(fullName("TrigEffAnglePhi")) == chambME[indexCh].end()){
154  bookChambHistos(chId,"TrigEffPosvsAnglePhi","Segment");
155  bookChambHistos(chId,"TrigEffPosvsAngleCorrPhi","Segment");
156  }
157 
158  std::map<std::string,MonitorElement*> *innerME = &(chambME[indexCh]);
159  makeEfficiencyME(TrackPosvsAngleAnyQual,TrackPosvsAngle,innerME->find(fullName("TrigEffPosvsAnglePhi"))->second);
160  makeEfficiencyME(TrackPosvsAngleCorr,TrackPosvsAngle,innerME->find(fullName("TrigEffPosvsAngleCorrPhi"))->second);
161 
162  }
163  }
164  }
165  }
166  }
167 
168  }
169  }
170 
171 }
void makeEfficiencyME(TH2F *numerator, TH2F *denominator, MonitorElement *result2DWh, MonitorElement *result1DWh, MonitorElement *result1D)
Compute 1D/2D efficiency plots.
std::vector< std::string > trigSources
void bookWheelHistos(int wheel, std::string hTag, std::string folder)
Book the new MEs (for each wheel)
std::map< int, std::map< std::string, MonitorElement * > > whME
void bookChambHistos(DTChamberId chambId, std::string htype, std::string folder="")
Book the new MEs (for each chamber)
std::map< int, std::map< std::string, MonitorElement * > > EffDistrPerWh
std::map< std::string, MonitorElement * > globalEffDistr
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::map< uint32_t, std::map< std::string, MonitorElement * > > chambME
void bookHistos(std::string hTag, std::string folder)
Book the new MEs (global)
U second(std::pair< T, U > const &p)
std::string getMEName(std::string histoTag, std::string folder, int wh)
Get the ME name (by wheel)
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
std::vector< std::string > hwSources
std::string fullName(std::string htype)
Create fullname from histo partial name.

Member Data Documentation

std::map<uint32_t,std::map<std::string,MonitorElement*> > DTTriggerEfficiencyTest::chambME
private

Definition at line 67 of file DTTriggerEfficiencyTest.h.

bool DTTriggerEfficiencyTest::detailedPlots
private

Definition at line 69 of file DTTriggerEfficiencyTest.h.

std::map<int,std::map<std::string,MonitorElement*> > DTTriggerEfficiencyTest::EffDistrPerWh
private

Definition at line 66 of file DTTriggerEfficiencyTest.h.

std::map<std::string, MonitorElement*> DTTriggerEfficiencyTest::globalEffDistr
private

Definition at line 65 of file DTTriggerEfficiencyTest.h.

DTTrigGeomUtils* DTTriggerEfficiencyTest::trigGeomUtils
private

Definition at line 68 of file DTTriggerEfficiencyTest.h.