CMS 3D CMS Logo

SiPixelRecHitModule.cc
Go to the documentation of this file.
6 // STL
7 #include <cstdlib>
8 #include <iostream>
9 #include <memory>
10 #include <string>
11 #include <vector>
12 
13 // Data Formats
20 
21 // Constructors
22 //
25 SiPixelRecHitModule::SiPixelRecHitModule(const uint32_t &id) : id_(id) {}
26 
27 //
28 // Destructor
29 //
31 //
32 // Book histograms
33 //
35  DQMStore::IBooker &iBooker,
36  const TrackerTopology *pTT,
37  int type,
38  bool twoD,
39  bool reducedSet,
40  bool isUpgrade) {
41  bool barrel = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
42  bool endcap = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
43  bool isHalfModule = false;
44 
45  if (barrel) {
46  // if (!isUpgrade) {
47  isHalfModule = PixelBarrelName(DetId(id_), pTT, isUpgrade).isHalfModule();
48  //} else if (isUpgrade) {
49  // isHalfModule = PixelBarrelNameUpgrade(DetId(id_)).isHalfModule();
50  //}
51  }
52 
53  std::string hid;
54  // Get collection name and instantiate Histo Id builder
55  edm::InputTag src = iConfig.getParameter<edm::InputTag>("src");
56  // Get DQM interface
57 
58  if (type == 0) {
59  SiPixelHistogramId *theHistogramId = new SiPixelHistogramId(src.label());
60  if (!reducedSet) {
61  if (twoD) {
62  // XYPosition
63  hid = theHistogramId->setHistoId("xypos", id_);
64  meXYPos_ = iBooker.book2D(hid, "XY Position", 100, -1., 1, 100, -4, 4);
65  meXYPos_->setAxisTitle("X Position", 1);
66  meXYPos_->setAxisTitle("Y Position", 2);
67  } else {
68  // projections of XYPosition
69  hid = theHistogramId->setHistoId("xypos", id_);
70  meXYPos_px_ = iBooker.book1D(hid + "_px", "X Position", 100, -1., 1);
71  meXYPos_px_->setAxisTitle("X Position", 1);
72  meXYPos_py_ = iBooker.book1D(hid + "_py", "Y Position", 100, -4, 4);
73  meXYPos_py_->setAxisTitle("Y Position", 1);
74  }
75  }
76  hid = theHistogramId->setHistoId("ClustX", id_);
77  meClustX_ = iBooker.book1D(hid, "RecHit X size", 10, 0., 10.);
78  meClustX_->setAxisTitle("RecHit size X dimension", 1);
79  hid = theHistogramId->setHistoId("ClustY", id_);
80  meClustY_ = iBooker.book1D(hid, "RecHit Y size", 15, 0., 15.);
81  meClustY_->setAxisTitle("RecHit size Y dimension", 1);
82 
83  hid = theHistogramId->setHistoId("ErrorX", id_);
84  meErrorX_ = iBooker.book1D(hid, "RecHit error X", 100, 0., 0.02);
85  meErrorX_->setAxisTitle("RecHit error X", 1);
86  hid = theHistogramId->setHistoId("ErrorY", id_);
87  meErrorY_ = iBooker.book1D(hid, "RecHit error Y", 100, 0., 0.02);
88  meErrorY_->setAxisTitle("RecHit error Y", 1);
89 
90  // Removed to save offline memory
91  // hid = theHistogramId->setHistoId("nRecHits",id_);
92  // menRecHits_ = iBooker.book1D(hid, "# of rechits in this module", 8, 0,
93  // 8); menRecHits_->setAxisTitle("number of rechits",1);
94  delete theHistogramId;
95  }
96 
97  if (type == 1 && barrel) {
98  uint32_t DBladder;
99  // if (!isUpgrade) { DBladder = PixelBarrelName(DetId(id_)).ladderName(); }
100  // else { DBladder = PixelBarrelNameUpgrade(DetId(id_)).ladderName(); }
101  DBladder = PixelBarrelName(DetId(id_), pTT, isUpgrade).ladderName();
102  char sladder[80];
103  sprintf(sladder, "Ladder_%02i", DBladder);
104  hid = src.label() + "_" + sladder;
105  if (isHalfModule)
106  hid += "H";
107  else
108  hid += "F";
109  if (!reducedSet) {
110  if (twoD) {
111  meXYPosLad_ = iBooker.book2D("xypos_" + hid, "XY Position", 100, -1., 1, 100, -4, 4);
112  meXYPosLad_->setAxisTitle("X Position", 1);
113  meXYPosLad_->setAxisTitle("Y Position", 2);
114  } else {
115  // projections of XYPosition
116  meXYPosLad_px_ = iBooker.book1D("xypos_" + hid + "_px", "X Position", 100, -1., 1);
117  meXYPosLad_px_->setAxisTitle("X Position", 1);
118  meXYPosLad_py_ = iBooker.book1D("xypos_" + hid + "_py", "Y Position", 100, -4, 4);
119  meXYPosLad_py_->setAxisTitle("Y Position", 1);
120  }
121  }
122  meClustXLad_ = iBooker.book1D("ClustX_" + hid, "RecHit X size", 10, 0., 10.);
123  meClustXLad_->setAxisTitle("RecHit size X dimension", 1);
124  meClustYLad_ = iBooker.book1D("ClustY_" + hid, "RecHit Y size", 15, 0., 15.);
125  meClustYLad_->setAxisTitle("RecHit size Y dimension", 1);
126  meErrorXLad_ = iBooker.book1D("ErrorX_" + hid, "RecHit error X", 100, 0., 0.02);
127  meErrorXLad_->setAxisTitle("RecHit error X", 1);
128  meErrorYLad_ = iBooker.book1D("ErrorY_" + hid, "RecHit error Y", 100, 0., 0.02);
129  meErrorYLad_->setAxisTitle("RecHit error Y", 1);
130  menRecHitsLad_ = iBooker.book1D("nRecHits_" + hid, "# of rechits in this module", 8, 0, 8);
131  menRecHitsLad_->setAxisTitle("number of rechits", 1);
132  }
133 
134  if (type == 2 && barrel) {
135  uint32_t DBlayer;
136  // if (!isUpgrade) { DBlayer = PixelBarrelName(DetId(id_)).layerName(); }
137  // else { DBlayer = PixelBarrelNameUpgrade(DetId(id_)).layerName(); }
138  DBlayer = PixelBarrelName(DetId(id_), pTT, isUpgrade).layerName();
139  char slayer[80];
140  sprintf(slayer, "Layer_%i", DBlayer);
141  hid = src.label() + "_" + slayer;
142 
143  if (!reducedSet) {
144  if (twoD) {
145  meXYPosLay_ = iBooker.book2D("xypos_" + hid, "XY Position", 100, -1., 1, 100, -4, 4);
146  meXYPosLay_->setAxisTitle("X Position", 1);
147  meXYPosLay_->setAxisTitle("Y Position", 2);
148  } else {
149  // projections of XYPosition
150  meXYPosLay_px_ = iBooker.book1D("xypos_" + hid + "_px", "X Position", 100, -1., 1);
151  meXYPosLay_px_->setAxisTitle("X Position", 1);
152  meXYPosLay_py_ = iBooker.book1D("xypos_" + hid + "_py", "Y Position", 100, -4, 4);
153  meXYPosLay_py_->setAxisTitle("Y Position", 1);
154  }
155  }
156 
157  meClustXLay_ = iBooker.book1D("ClustX_" + hid, "RecHit X size", 10, 0., 10.);
158  meClustXLay_->setAxisTitle("RecHit size X dimension", 1);
159  meClustYLay_ = iBooker.book1D("ClustY_" + hid, "RecHit Y size", 15, 0., 15.);
160  meClustYLay_->setAxisTitle("RecHit size Y dimension", 1);
161  meErrorXLay_ = iBooker.book1D("ErrorX_" + hid, "RecHit error X", 100, 0., 0.02);
162  meErrorXLay_->setAxisTitle("RecHit error X", 1);
163  meErrorYLay_ = iBooker.book1D("ErrorY_" + hid, "RecHit error Y", 100, 0., 0.02);
164  meErrorYLay_->setAxisTitle("RecHit error Y", 1);
165  menRecHitsLay_ = iBooker.book1D("nRecHits_" + hid, "# of rechits in this module", 8, 0, 8);
166  menRecHitsLay_->setAxisTitle("number of rechits", 1);
167  }
168 
169  if (type == 3 && barrel) {
170  uint32_t DBmodule;
171  // if (!isUpgrade) { DBmodule = PixelBarrelName(DetId(id_)).moduleName(); }
172  // else { DBmodule = PixelBarrelNameUpgrade(DetId(id_)).moduleName(); }
173  DBmodule = PixelBarrelName(DetId(id_), pTT, isUpgrade).moduleName();
174  char smodule[80];
175  sprintf(smodule, "Ring_%i", DBmodule);
176  hid = src.label() + "_" + smodule;
177 
178  if (!reducedSet) {
179  if (twoD) {
180  meXYPosPhi_ = iBooker.book2D("xypos_" + hid, "XY Position", 100, -1., 1, 100, -4, 4);
181  meXYPosPhi_->setAxisTitle("X Position", 1);
182  meXYPosPhi_->setAxisTitle("Y Position", 2);
183  } else {
184  // projections of XYPosition
185  meXYPosPhi_px_ = iBooker.book1D("xypos_" + hid + "_px", "X Position", 100, -1., 1);
186  meXYPosPhi_px_->setAxisTitle("X Position", 1);
187  meXYPosPhi_py_ = iBooker.book1D("xypos_" + hid + "_py", "Y Position", 100, -4, 4);
188  meXYPosPhi_py_->setAxisTitle("Y Position", 1);
189  }
190  }
191  meClustXPhi_ = iBooker.book1D("ClustX_" + hid, "RecHit X size", 10, 0., 10.);
192  meClustXPhi_->setAxisTitle("RecHit size X dimension", 1);
193  meClustYPhi_ = iBooker.book1D("ClustY_" + hid, "RecHit Y size", 15, 0., 15.);
194  meClustYPhi_->setAxisTitle("RecHit size Y dimension", 1);
195  meErrorXPhi_ = iBooker.book1D("ErrorX_" + hid, "RecHit error X", 100, 0., 0.02);
196  meErrorXPhi_->setAxisTitle("RecHit error X", 1);
197  meErrorYPhi_ = iBooker.book1D("ErrorY_" + hid, "RecHit error Y", 100, 0., 0.02);
198  meErrorYPhi_->setAxisTitle("RecHit error Y", 1);
199  menRecHitsPhi_ = iBooker.book1D("nRecHits_" + hid, "# of rechits in this module", 8, 0, 8);
200  menRecHitsPhi_->setAxisTitle("number of rechits", 1);
201  }
202 
203  if (type == 4 && endcap) {
204  uint32_t blade;
205  // if (!isUpgrade) { blade= PixelEndcapName(DetId(id_)).bladeName(); }
206  // else { blade= PixelEndcapNameUpgrade(DetId(id_)).bladeName(); }
207  blade = PixelEndcapName(DetId(id_), pTT, isUpgrade).bladeName();
208 
209  char sblade[80];
210  sprintf(sblade, "Blade_%02i", blade);
211  hid = src.label() + "_" + sblade;
212  // meXYPosBlade_ = iBooker.book2D("xypos_" + hid,"XY
213  // Position",100,-1.,1,100,-4,4); meXYPosBlade_->setAxisTitle("X
214  // Position",1); meXYPosBlade_->setAxisTitle("Y Position",2);
215 
216  meClustXBlade_ = iBooker.book1D("ClustX_" + hid, "RecHit X size", 10, 0., 10.);
217  meClustXBlade_->setAxisTitle("RecHit size X dimension", 1);
218  meClustYBlade_ = iBooker.book1D("ClustY_" + hid, "RecHit Y size", 15, 0., 15.);
219  meClustYBlade_->setAxisTitle("RecHit size Y dimension", 1);
220  meErrorXBlade_ = iBooker.book1D("ErrorX_" + hid, "RecHit error X", 100, 0., 0.02);
221  meErrorXBlade_->setAxisTitle("RecHit error X", 1);
222  meErrorYBlade_ = iBooker.book1D("ErrorY_" + hid, "RecHit error Y", 100, 0., 0.02);
223  meErrorYBlade_->setAxisTitle("RecHit error Y", 1);
224  menRecHitsBlade_ = iBooker.book1D("nRecHits_" + hid, "# of rechits in this module", 8, 0, 8);
225  menRecHitsBlade_->setAxisTitle("number of rechits", 1);
226  }
227  if (type == 5 && endcap) {
228  uint32_t disk;
229  // if (!isUpgrade) { disk = PixelEndcapName(DetId(id_)).diskName(); }
230  // else { disk = PixelEndcapNameUpgrade(DetId(id_)).diskName(); }
231  disk = PixelEndcapName(DetId(id_), pTT, isUpgrade).diskName();
232 
233  char sdisk[80];
234  sprintf(sdisk, "Disk_%i", disk);
235  hid = src.label() + "_" + sdisk;
236  // meXYPosDisk_ = iBooker.book2D("xypos_" + hid,"XY
237  // Position",100,-1.,1,100,-4,4); meXYPosDisk_->setAxisTitle("X
238  // Position",1); meXYPosDisk_->setAxisTitle("Y Position",2);
239 
240  meClustXDisk_ = iBooker.book1D("ClustX_" + hid, "RecHit X size", 10, 0., 10.);
241  meClustXDisk_->setAxisTitle("RecHit size X dimension", 1);
242  meClustYDisk_ = iBooker.book1D("ClustY_" + hid, "RecHit Y size", 15, 0., 15.);
243  meClustYDisk_->setAxisTitle("RecHit size Y dimension", 1);
244  meErrorXDisk_ = iBooker.book1D("ErrorX_" + hid, "RecHit error X", 100, 0., 0.02);
245  meErrorXDisk_->setAxisTitle("RecHit error X", 1);
246  meErrorYDisk_ = iBooker.book1D("ErrorY_" + hid, "RecHit error Y", 100, 0., 0.02);
247  meErrorYDisk_->setAxisTitle("RecHit error Y", 1);
248  menRecHitsDisk_ = iBooker.book1D("nRecHits_" + hid, "# of rechits in this module", 8, 0, 8);
249  menRecHitsDisk_->setAxisTitle("number of rechits", 1);
250  }
251 
252  if (type == 6 && endcap) {
253  uint32_t panel;
254  uint32_t module;
255  /*if (!isUpgrade) {
256  panel= PixelEndcapName(DetId(id_)).pannelName();
257  module= PixelEndcapName(DetId(id_)).plaquetteName();
258  } else {
259  panel= PixelEndcapNameUpgrade(DetId(id_)).pannelName();
260  module= PixelEndcapNameUpgrade(DetId(id_)).plaquetteName();
261  }*/
262  panel = PixelEndcapName(DetId(id_), pTT, isUpgrade).pannelName();
264 
265  char slab[80];
266  sprintf(slab, "Panel_%i_Ring_%i", panel, module);
267  hid = src.label() + "_" + slab;
268 
269  if (!reducedSet) {
270  if (twoD) {
271  meXYPosRing_ = iBooker.book2D("xypos_" + hid, "XY Position", 100, -1., 1, 100, -4, 4);
272  meXYPosRing_->setAxisTitle("X Position", 1);
273  meXYPosRing_->setAxisTitle("Y Position", 2);
274  } else {
275  // projections of XYPosition
276  meXYPosRing_px_ = iBooker.book1D("xypos_" + hid + "_px", "X Position", 100, -1., 1);
277  meXYPosRing_px_->setAxisTitle("X Position", 1);
278  meXYPosRing_py_ = iBooker.book1D("xypos_" + hid + "_py", "Y Position", 100, -4, 4);
279  meXYPosRing_py_->setAxisTitle("Y Position", 1);
280  }
281  }
282  meClustXRing_ = iBooker.book1D("ClustX_" + hid, "RecHit X size", 10, 0., 10.);
283  meClustXRing_->setAxisTitle("RecHit size X dimension", 1);
284  meClustYRing_ = iBooker.book1D("ClustY_" + hid, "RecHit Y size", 15, 0., 15.);
285  meClustYRing_->setAxisTitle("RecHit size Y dimension", 1);
286  meErrorXRing_ = iBooker.book1D("ErrorX_" + hid, "RecHit error X", 100, 0., 0.02);
287  meErrorXRing_->setAxisTitle("RecHit error X", 1);
288  meErrorYRing_ = iBooker.book1D("ErrorY_" + hid, "RecHit error Y", 100, 0., 0.02);
289  meErrorYRing_->setAxisTitle("RecHit error Y", 1);
290  menRecHitsRing_ = iBooker.book1D("nRecHits_" + hid, "# of rechits in this module", 8, 0, 8);
291  menRecHitsRing_->setAxisTitle("number of rechits", 1);
292  }
293 }
294 //
295 // Fill histograms
296 //
297 void SiPixelRecHitModule::fill(const float &rechit_x,
298  const float &rechit_y,
299  const int &sizeX,
300  const int &sizeY,
301  const float &lerr_x,
302  const float &lerr_y,
303  bool modon,
304  bool ladon,
305  bool layon,
306  bool phion,
307  bool bladeon,
308  bool diskon,
309  bool ringon,
310  bool twoD,
311  bool reducedSet) {
312  bool barrel = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
313  bool endcap = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
314 
315  // std::cout << rechit_x << " " << rechit_y << " " << sizeX << " " << sizeY <<
316  // std::endl;
317  if (modon) {
318  meClustX_->Fill(sizeX);
319  meClustY_->Fill(sizeY);
320  meErrorX_->Fill(lerr_x);
321  meErrorY_->Fill(lerr_y);
322  if (!reducedSet) {
323  if (twoD)
324  meXYPos_->Fill(rechit_x, rechit_y);
325  else {
326  meXYPos_px_->Fill(rechit_x);
327  meXYPos_py_->Fill(rechit_y);
328  }
329  }
330  }
331  // std::cout<<"number of detector units="<<numberOfDetUnits<<std::endl;
332 
333  if (ladon && barrel) {
336  meErrorXLad_->Fill(lerr_x);
337  meErrorYLad_->Fill(lerr_y);
338  if (!reducedSet) {
339  if (twoD)
340  meXYPosLad_->Fill(rechit_x, rechit_y);
341  else {
342  meXYPosLad_px_->Fill(rechit_x);
343  meXYPosLad_py_->Fill(rechit_y);
344  }
345  }
346  }
347 
348  if (layon && barrel) {
351  meErrorXLay_->Fill(lerr_x);
352  meErrorYLay_->Fill(lerr_y);
353  if (!reducedSet) {
354  if (twoD)
355  meXYPosLay_->Fill(rechit_x, rechit_y);
356  else {
357  meXYPosLay_px_->Fill(rechit_x);
358  meXYPosLay_py_->Fill(rechit_y);
359  }
360  }
361  }
362 
363  if (phion && barrel) {
366  meErrorXPhi_->Fill(lerr_x);
367  meErrorYPhi_->Fill(lerr_y);
368  if (!reducedSet) {
369  if (twoD)
370  meXYPosPhi_->Fill(rechit_x, rechit_y);
371  else {
372  meXYPosPhi_px_->Fill(rechit_x);
373  meXYPosPhi_py_->Fill(rechit_y);
374  }
375  }
376  }
377 
378  if (bladeon && endcap) {
379  // meXYPosBlade_->Fill(rechit_x, rechit_y);
382  meErrorXBlade_->Fill(lerr_x);
383  meErrorYBlade_->Fill(lerr_y);
384  }
385 
386  if (diskon && endcap) {
387  // meXYPosDisk_->Fill(rechit_x, rechit_y);
390  meErrorXDisk_->Fill(lerr_x);
391  meErrorYDisk_->Fill(lerr_y);
392  }
393 
394  if (ringon && endcap) {
397  meErrorXRing_->Fill(lerr_x);
398  meErrorYRing_->Fill(lerr_y);
399  if (!reducedSet) {
400  if (twoD)
401  meXYPosRing_->Fill(rechit_x, rechit_y);
402  else {
403  meXYPosRing_px_->Fill(rechit_x);
404  meXYPosRing_py_->Fill(rechit_y);
405  }
406  }
407  }
408 }
409 
411  const int &nrec, bool modon, bool ladon, bool layon, bool phion, bool bladeon, bool diskon, bool ringon) {
412  bool barrel = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
413  bool endcap = DetId(id_).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
414 
415  // if(modon) menRecHits_->Fill(nrec);
416  // barrel
417  if (ladon && barrel)
418  menRecHitsLad_->Fill(nrec);
419  if (layon && barrel)
420  menRecHitsLay_->Fill(nrec);
421  if (phion && barrel)
422  menRecHitsPhi_->Fill(nrec);
423  // endcap
424  if (bladeon && endcap)
425  menRecHitsBlade_->Fill(nrec);
426  if (diskon && endcap)
427  menRecHitsDisk_->Fill(nrec);
428  if (ringon && endcap)
429  menRecHitsRing_->Fill(nrec);
430 }
MonitorElement * menRecHitsLay_
MonitorElement * meXYPosPhi_px_
MonitorElement * meClustYRing_
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
MonitorElement * meClustXLay_
MonitorElement * meXYPosPhi_
void nfill(const int &nrec, bool modon=true, bool ladon=false, bool layon=false, bool phion=false, bool bladeon=false, bool diskon=false, bool ringon=false)
MonitorElement * meXYPosPhi_py_
MonitorElement * meErrorXDisk_
MonitorElement * meClustYPhi_
SiPixelRecHitModule()
Default constructor.
MonitorElement * meXYPosLay_py_
int bladeName() const
blade id
int moduleName() const
module id (index in z)
MonitorElement * meClustXDisk_
MonitorElement * meClustYDisk_
MonitorElement * meErrorY_
MonitorElement * meErrorYRing_
~SiPixelRecHitModule()
Destructor.
MonitorElement * meClustXLad_
MonitorElement * meErrorYPhi_
MonitorElement * meXYPosRing_px_
MonitorElement * meXYPosLay_
MonitorElement * meErrorXLad_
MonitorElement * meClustX_
MonitorElement * meClustXBlade_
void Fill(long long x)
MonitorElement * meClustXPhi_
MonitorElement * meXYPosLad_px_
MonitorElement * meErrorXBlade_
bool isHalfModule() const
full or half module
int diskName() const
disk id
MonitorElement * meXYPosRing_
MonitorElement * meErrorYLad_
MonitorElement * menRecHitsRing_
MonitorElement * meXYPosLay_px_
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:48
MonitorElement * meClustXRing_
MonitorElement * meXYPos_py_
MonitorElement * meErrorYLay_
MonitorElement * meXYPos_
std::string setHistoId(std::string variable, uint32_t &rawId)
Set Histogram Id.
Definition: DetId.h:17
void book(const edm::ParameterSet &iConfig, DQMStore::IBooker &iBooker, const TrackerTopology *pTT, int type=0, bool twoD=true, bool reducedSet=false, bool isUpgrade=false)
Book histograms.
MonitorElement * meXYPosLad_
int layerName() const
layer id
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
MonitorElement * meErrorYDisk_
MonitorElement * menRecHitsDisk_
MonitorElement * meErrorX_
MonitorElement * menRecHitsPhi_
MonitorElement * menRecHitsLad_
MonitorElement * meClustYLad_
MonitorElement * meClustY_
MonitorElement * meXYPosRing_py_
int ladderName() const
ladder id (index in phi)
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MonitorElement * meXYPosLad_py_
MonitorElement * meErrorXLay_
int pannelName() const
pannel id
MonitorElement * menRecHitsBlade_
MonitorElement * meClustYBlade_
void fill(const float &rechit_x, const float &rechit_y, const int &sizeX, const int &sizeY, const float &lerr_x, const float &lerr_y, bool modon=true, bool ladon=false, bool layon=false, bool phion=false, bool bladeon=false, bool diskon=false, bool ringon=false, bool twoD=true, bool reducedSet=false)
Fill histograms.
MonitorElement * meClustYLay_
MonitorElement * meXYPos_px_
MonitorElement * meErrorXRing_
MonitorElement * meErrorYBlade_
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * meErrorXPhi_
int plaquetteName() const
plaquetteId (in pannel)