CMS 3D CMS Logo

SiPixelTrackingRecHitsValid.cc
Go to the documentation of this file.
1 
2 // File: SiPixelTrackingRecHitsValid.cc
3 // Authors: Xingtao Huang (Puerto Rico Univ.)
4 // Gavril Giurgiu (JHU)
5 // Creation Date: Oct. 2006
6 
7 #include <memory>
8 #include <string>
9 #include <iostream>
10 #include <TMath.h>
12 
22 
28 
33 
35 
37 
42 
43 
44 #include <TTree.h>
45 #include <TFile.h>
46 
47 // End job: write and close the ntuple file
49 {
50  if(debugNtuple_.size()!=0){
51  tfile_->Write();
52  tfile_->Close();
53  }
54 }
55 
57 {
58 
59  if(debugNtuple_.size()!=0){
60  tfile_ = new TFile (debugNtuple_.c_str() , "RECREATE");
61 
62  t_ = new TTree("Ntuple", "Ntuple");
63  int bufsize = 64000;
64 
65  t_->Branch("subdetId", &subdetId, "subdetId/I", bufsize);
66 
67  t_->Branch("layer" , &layer , "layer/I" , bufsize);
68  t_->Branch("ladder", &ladder, "ladder/I", bufsize);
69  t_->Branch("mod" , &mod , "mod/I" , bufsize);
70  t_->Branch("side" , &side , "side/I" , bufsize);
71  t_->Branch("disk" , &disk , "disk/I" , bufsize);
72  t_->Branch("blade" , &blade , "blade/I" , bufsize);
73  t_->Branch("panel" , &panel , "panel/I" , bufsize);
74  t_->Branch("plaq" , &plaq , "plaq/I" , bufsize);
75 
76  t_->Branch("rechitx" , &rechitx , "rechitx/F" , bufsize);
77  t_->Branch("rechity" , &rechity , "rechity/F" , bufsize);
78  t_->Branch("rechitz" , &rechitz , "rechitz/F" , bufsize);
79  t_->Branch("rechiterrx" , &rechiterrx , "rechiterrx/F" , bufsize);
80  t_->Branch("rechiterry" , &rechiterry , "rechiterry/F" , bufsize);
81  t_->Branch("rechitresx" , &rechitresx , "rechitresx/F" , bufsize);
82  t_->Branch("rechitresy" , &rechitresy , "rechitresy/F" , bufsize);
83  t_->Branch("rechitpullx", &rechitpullx, "rechitpullx/F", bufsize);
84  t_->Branch("rechitpully", &rechitpully, "rechitpully/F", bufsize);
85 
86  t_->Branch("npix" , &npix , "npix/I" , bufsize);
87  t_->Branch("nxpix" , &nxpix , "nxpix/I" , bufsize);
88  t_->Branch("nypix" , &nypix , "nypix/I" , bufsize);
89  t_->Branch("charge", &charge, "charge/F", bufsize);
90 
91  t_->Branch("alpha", &alpha, "alpha/F", bufsize);
92  t_->Branch("beta" , &beta , "beta/F" , bufsize);
93 
94  t_->Branch("phi", &phi, "phi/F", bufsize);
95  t_->Branch("eta", &eta, "eta/F", bufsize);
96 
97  t_->Branch("half" , &half , "half/I" , bufsize);
98  t_->Branch("flipped", &flipped, "flipped/I", bufsize);
99 
100  t_->Branch("simhitx", &simhitx, "simhitx/F", bufsize);
101  t_->Branch("simhity", &simhity, "simhity/F", bufsize);
102 
103  t_->Branch("nsimhit", &nsimhit, "nsimhit/I", bufsize);
104  t_->Branch("pidhit" , &pidhit , "pidhit/I" , bufsize);
105 
106  t_->Branch("evt", &evt, "evt/I", bufsize);
107  t_->Branch("run", &run, "run/I", bufsize);
108  }
109 
110 }
111 
114  dbe_(0), tfile_(0), t_(0)
115 {
116  //Read config file
117  MTCCtrack_ = ps.getParameter<bool>("MTCCtrack");
118  runStandalone = ps.getParameter<bool>("runStandalone");
119  outputFile_ = ps.getUntrackedParameter<std::string>("outputFile", "pixeltrackingrechitshisto.root");
120  siPixelRecHitCollectionToken_ = consumes<SiPixelRecHitCollection>( edm::InputTag( "siPixelRecHits" ) );
121  recoTrackCollectionToken_ = consumes<reco::TrackCollection>( edm::InputTag( ps.getUntrackedParameter<std::string>( "src" ) ) );
122  builderName_ = ps.getParameter<std::string>("TTRHBuilder");
123  checkType_ = ps.getParameter<bool>("checkType");
124  genType_ = ps.getParameter<int>("genType");
125  debugNtuple_=ps.getUntrackedParameter<std::string>("debugNtuple", "SiPixelTrackingRecHitsValid_Ntuple.root");
126 }
127 
129 
130  // Book histograms
132  //dbe_->showDirStructure();
133 
134  //float math_pi = 3.14159265;
135  //float radtodeg = 180.0 / math_pi;
136 
137  // Histogram ranges (low and high)
138 
139  float xl = -1.0;
140  float xh = 1.0;
141  float errxl = 0.0;
142  float errxh = 0.003;
143  float resxl = -0.02;
144  float resxh = 0.02;
145  float pullxl = -10.0;
146  float pullxh = 10.0;
147 
148  float yl = -4.0;
149  float yh = 4.0;
150  float erryl = 0.0;
151  float erryh = 0.010;
152  float resyl = -0.04;
153  float resyh = 0.04;
154  float pullyl = -10.0;
155  float pullyh = 10.0;
156 
157  float barrel_alphal = 80.0;
158  float barrel_alphah = 100.0;
159  float barrel_betal = 10.0;
160  float barrel_betah = 170.0;
161  //float barrel_phil = -180.0;
162  //float barrel_phih = 180.0;
163  //float barrel_etal = -2.5;
164  //float barrel_etah = 2.5;
165 
166  float forward_p1_alphal = 100.0;
167  float forward_p1_alphah = 115.0;
168  float forward_p2_alphal = 65.0;
169  float forward_p2_alphah = 80.0;
170  float forward_neg_betal = 67.0;
171  float forward_neg_betah = 73.0;
172  float forward_pos_betal = 107.0;
173  float forward_pos_betah = 113.0;
174  //float forward_phil = -180.0;
175  //float forward_phih = 180.0;
176  //float forward_neg_etal = -2.5;
177  //float forward_neg_etah = -1.5;
178  //float forward_pos_etal = 1.5;
179  //float forward_pos_etah = 2.5;
180 
181  // special ranges for pulls
182  float pull_barrel_alphal = 80.0;
183  float pull_barrel_alphah = 100.0;
184  float pull_barrel_betal = 10.0;
185  float pull_barrel_betah = 170.0;
186  float pull_barrel_phil = -180.0;
187  float pull_barrel_phih = 180.0;
188  float pull_barrel_etal = -2.4;
189  float pull_barrel_etah = 2.4;
190 
191  float pull_forward_p1_alphal = 100.0;
192  float pull_forward_p1_alphah = 112.0;
193  float pull_forward_p2_alphal = 68.0;
194  float pull_forward_p2_alphah = 80.0;
195  float pull_forward_neg_betal = 68.0;
196  float pull_forward_neg_betah = 72.0;
197  float pull_forward_pos_betal = 108.0;
198  float pull_forward_pos_betah = 112.0;
199  float pull_forward_phil = -180.0;
200  float pull_forward_phih = 180.0;
201  float pull_forward_neg_etal = -2.4;
202  float pull_forward_neg_etah = -1.4;
203  float pull_forward_pos_etal = 1.5;
204  float pull_forward_pos_etah = 2.5;
205 
206  int npixl = 0;
207  int npixh = 20;
208  int nxpixl = 0;
209  int nxpixh = 10;
210  int nypixl = 0;
211  int nypixh = 20;
212 
213  float barrel_chargel = 0.0;
214  float barrel_chargeh = 250000.0;
215  float forward_chargel = 0.0;
216  float forward_chargeh = 100000.0;
217 
218  ibooker.setCurrentFolder("Tracking/TrackingRecHits/Pixel/Histograms_per_ring-layer_or_disk-plaquette");
219 
220  // Pixel barrel has 3 layers and 8 rings; book a histogram for each module given by the (layer, ring) pair
221  for (int i=0; i<3 ; i++) // loop over layers
222  {
223  Char_t chisto[100];
224 
225  sprintf(chisto, "meResxBarrelLayer_%d", i+1);
226  meResxBarrelLayer[i] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
227  sprintf(chisto, "meResyBarrelLayer_%d", i+1);
228  meResyBarrelLayer[i] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
229  sprintf(chisto, "mePullxBarrelLayer_%d", i+1);
230  mePullxBarrelLayer[i] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
231  sprintf(chisto, "mePullyBarrelLayer_%d", i+1);
232  mePullyBarrelLayer[i] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
233 
234  sprintf(chisto, "meResXvsAlphaBarrelFlippedLaddersLayer_%d", i+1);
235  meResXvsAlphaBarrelFlippedLaddersLayer[i] = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
236  sprintf(chisto, "meResYvsAlphaBarrelFlippedLaddersLayer_%d", i+1);
237  meResYvsAlphaBarrelFlippedLaddersLayer[i] = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
238  sprintf(chisto, "meResXvsBetaBarrelFlippedLaddersLayer_%d", i+1);
239  meResXvsBetaBarrelFlippedLaddersLayer[i] = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
240  sprintf(chisto, "meResYvsBetaBarrelFlippedLaddersLayer_%d", i+1);
241  meResYvsBetaBarrelFlippedLaddersLayer[i] = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
242 
243  sprintf(chisto, "meResXvsAlphaBarrelNonFlippedLaddersLayer_%d", i+1);
245  = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
246  sprintf(chisto, "meResYvsAlphaBarrelNonFlippedLaddersLayer_%d", i+1);
248  = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
249  sprintf(chisto, "meResXvsBetaBarrelNonFlippedLaddersLayer_%d", i+1);
251  = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
252  sprintf(chisto, "meResYvsBetaBarrelNonFlippedLaddersLayer_%d", i+1);
254  = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
255 
256  for (int j=0; j<8; j++) // loop over rings
257  {
258  sprintf(chisto, "mePosxBarrelLayerModule_%d_%d", i+1, j+1);
259  mePosxBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
260  sprintf(chisto, "mePosyBarrelLayerModule_%d_%d", i+1, j+1);
261  mePosyBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
262  sprintf(chisto, "meErrxBarrelLayerModule_%d_%d", i+1, j+1);
263  meErrxBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
264  sprintf(chisto, "meErryBarrelLayerModule_%d_%d", i+1, j+1);
265  meErryBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
266  sprintf(chisto, "meResxBarrelLayerModule_%d_%d", i+1, j+1);
267  meResxBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
268  sprintf(chisto, "meResyBarrelLayerModule_%d_%d", i+1, j+1);
269  meResyBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
270  sprintf(chisto, "mePullxBarrelLayerModule_%d_%d", i+1, j+1);
271  mePullxBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
272  sprintf(chisto, "mePullyBarrelLayerModule_%d_%d", i+1, j+1);
273  mePullyBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
274  sprintf(chisto, "meNpixBarrelLayerModule_%d_%d", i+1, j+1);
275  meNpixBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
276  sprintf(chisto, "meNxpixBarrelLayerModule_%d_%d", i+1, j+1);
277  meNxpixBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
278  sprintf(chisto, "meNypixBarrelLayerModule_%d_%d", i+1, j+1);
279  meNypixBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
280  sprintf(chisto, "meChargeBarrelLayerModule_%d_%d", i+1, j+1);
281  meChargeBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, barrel_chargel, barrel_chargeh);
282 
283  sprintf(chisto, "meResXvsAlphaBarrelLayerModule_%d_%d", i+1, j+1);
284  meResXvsAlphaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
285  sprintf(chisto, "meResYvsAlphaBarrelLayerModule_%d_%d", i+1, j+1);
286  meResYvsAlphaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
287  sprintf(chisto, "meResXvsBetaBarrelLayerModule_%d_%d", i+1, j+1);
288  meResXvsBetaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
289  sprintf(chisto, "meResYvsBetaBarrelLayerModule_%d_%d", i+1, j+1);
290  meResYvsBetaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
291 
292  sprintf(chisto, "mePullXvsAlphaBarrelLayerModule_%d_%d", i+1, j+1);
293  mePullXvsAlphaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah,
294  100, pullxl, pullxh, "");
295  sprintf(chisto, "mePullYvsAlphaBarrelLayerModule_%d_%d", i+1, j+1);
296  mePullYvsAlphaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah,
297  100, pullyl, pullyh, "");
298  sprintf(chisto, "mePullXvsBetaBarrelLayerModule_%d_%d", i+1, j+1);
299  mePullXvsBetaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah,
300  100, pullxl, pullxh, "");
301  sprintf(chisto, "mePullYvsBetaBarrelLayerModule_%d_%d", i+1, j+1);
302  mePullYvsBetaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah,
303  100, pullyl, pullyh, "");
304  sprintf(chisto, "mePullXvsPhiBarrelLayerModule_%d_%d", i+1, j+1);
305  mePullXvsPhiBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100,
306  pullxl, pullxh, "");
307  sprintf(chisto, "mePullYvsPhiBarrelLayerModule_%d_%d", i+1, j+1);
308  mePullYvsPhiBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih,
309  100, pullyl, pullyh, "");
310  sprintf(chisto, "mePullXvsEtaBarrelLayerModule_%d_%d", i+1, j+1);
311  mePullXvsEtaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah,
312  100, pullxl, pullxh, "");
313  sprintf(chisto, "mePullYvsEtaBarrelLayerModule_%d_%d", i+1, j+1);
314  mePullYvsEtaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah,
315  100, pullyl, pullyh, "");
316  } // for (int j=0; j<8; j++) // loop over rings
317 
318  } // for (int i=0; i<3 ; i++) // loop over layers
319 
320  // Pixel forward detector has 2 disks, 2 panels and either 3 or 4 plaquettes
321  // Panel 1 has 4 plaquettes
322  // Panel 2 has 3 plaquettes
323 
324  // Panel 1: 2 disks, 4 plaquets
325  // Panel 2: 2 disks, 3 plaquets
326  for (int i=0; i<2 ; i++) // loop over disks
327  for (int j=0; j<4; j++) // loop over plaquettes
328  {
329  Char_t chisto[100];
330 
331  sprintf(chisto, "mePosxZmPanel1DiskPlaq_%d_%d", i+1, j+1);
332  mePosxZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
333  sprintf(chisto, "mePosyZmPanel1DiskPlaq_%d_%d", i+1, j+1);
334  mePosyZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
335  sprintf(chisto, "meErrxZmPanel1DiskPlaq_%d_%d", i+1, j+1);
336  meErrxZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
337  sprintf(chisto, "meErryZmPanel1DiskPlaq_%d_%d", i+1, j+1);
338  meErryZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
339  sprintf(chisto, "meResxZmPanel1DiskPlaq_%d_%d", i+1, j+1);
340  meResxZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
341  sprintf(chisto, "meResyZmPanel1DiskPlaq_%d_%d", i+1, j+1);
342  meResyZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
343  sprintf(chisto, "mePullxZmPanel1DiskPlaq_%d_%d", i+1, j+1);
344  mePullxZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
345  sprintf(chisto, "mePullyZmPanel1DiskPlaq_%d_%d", i+1, j+1);
346  mePullyZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
347  sprintf(chisto, "meNpixZmPanel1DiskPlaq_%d_%d", i+1, j+1);
348  meNpixZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
349  sprintf(chisto, "meNxpixZmPanel1DiskPlaq_%d_%d", i+1, j+1);
350  meNxpixZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
351  sprintf(chisto, "meNypixZmPanel1DiskPlaq_%d_%d", i+1, j+1);
352  meNypixZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
353  sprintf(chisto, "meChargeZmPanel1DiskPlaq_%d_%d", i+1, j+1);
354  meChargeZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
355 
356  sprintf(chisto, "meResXvsAlphaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
358  = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resxh, "");
359  sprintf(chisto, "meResYvsAlphaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
361  = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resyh, "");
362  sprintf(chisto, "meResXvsBetaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
364  = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resxh, "");
365  sprintf(chisto, "meResYvsBetaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
367  = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resyh, "");
368 
369  sprintf(chisto, "mePullXvsAlphaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
371  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl,pullxh, "");
372  sprintf(chisto, "mePullYvsAlphaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
374  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl,pullyh, "");
375  sprintf(chisto, "mePullXvsBetaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
377  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl,pullxh, "");
378  sprintf(chisto, "mePullYvsBetaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
380  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl,pullyh, "");
381  sprintf(chisto, "mePullXvsPhiZmPanel1DiskPlaq_%d_%d", i+1, j+1);
383  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl,pullxh, "");
384  sprintf(chisto, "mePullYvsPhiZmPanel1DiskPlaq_%d_%d", i+1, j+1);
386  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl,pullyh, "");
387  sprintf(chisto, "mePullXvsEtaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
389  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullxl,pullxh, "");
390  sprintf(chisto, "mePullYvsEtaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
392  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullyl,pullyh, "");
393 
394  sprintf(chisto, "mePosxZpPanel1DiskPlaq_%d_%d", i+1, j+1);
395  mePosxZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
396  sprintf(chisto, "mePosyZpPanel1DiskPlaq_%d_%d", i+1, j+1);
397  mePosyZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
398  sprintf(chisto, "meErrxZpPanel1DiskPlaq_%d_%d", i+1, j+1);
399  meErrxZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
400  sprintf(chisto, "meErryZpPanel1DiskPlaq_%d_%d", i+1, j+1);
401  meErryZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
402  sprintf(chisto, "meResxZpPanel1DiskPlaq_%d_%d", i+1, j+1);
403  meResxZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
404  sprintf(chisto, "meResyZpPanel1DiskPlaq_%d_%d", i+1, j+1);
405  meResyZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
406  sprintf(chisto, "mePullxZpPanel1DiskPlaq_%d_%d", i+1, j+1);
407  mePullxZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
408  sprintf(chisto, "mePullyZpPanel1DiskPlaq_%d_%d", i+1, j+1);
409  mePullyZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
410  sprintf(chisto, "meNpixZpPanel1DiskPlaq_%d_%d", i+1, j+1);
411  meNpixZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
412  sprintf(chisto, "meNxpixZpPanel1DiskPlaq_%d_%d", i+1, j+1);
413  meNxpixZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
414  sprintf(chisto, "meNypixZpPanel1DiskPlaq_%d_%d", i+1, j+1);
415  meNypixZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
416  sprintf(chisto, "meChargeZpPanel1DiskPlaq_%d_%d", i+1, j+1);
417  meChargeZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
418  sprintf(chisto, "meResXvsAlphaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
420  = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resxh, "");
421  sprintf(chisto, "meResYvsAlphaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
423  = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resyh, "");
424  sprintf(chisto, "meResXvsBetaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
426  = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resxh, "");
427  sprintf(chisto, "meResYvsBetaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
429  = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resyh, "");
430 
431  sprintf(chisto, "mePullXvsAlphaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
433  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl,pullxh, "");
434  sprintf(chisto, "mePullYvsAlphaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
436  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl,pullyh, "");
437  sprintf(chisto, "mePullXvsBetaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
439  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl,pullxh, "");
440  sprintf(chisto, "mePullYvsBetaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
442  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl,pullyh, "");
443  sprintf(chisto, "mePullXvsPhiZpPanel1DiskPlaq_%d_%d", i+1, j+1);
445  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl,pullxh, "");
446  sprintf(chisto, "mePullYvsPhiZpPanel1DiskPlaq_%d_%d", i+1, j+1);
448  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl,pullyh, "");
449  sprintf(chisto, "mePullXvsEtaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
451  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullxl,pullxh, "");
452  sprintf(chisto, "mePullYvsEtaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
454  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullyl,pullyh, "");
455 
456  if ( j>2 ) continue; // panel 2 has only 3 plaquettes
457 
458  sprintf(chisto, "mePosxZmPanel2DiskPlaq_%d_%d", i+1, j+1);
459  mePosxZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
460  sprintf(chisto, "mePosyZmPanel2DiskPlaq_%d_%d", i+1, j+1);
461  mePosyZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
462  sprintf(chisto, "meErrxZmPanel2DiskPlaq_%d_%d", i+1, j+1);
463  meErrxZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
464  sprintf(chisto, "meErryZmPanel2DiskPlaq_%d_%d", i+1, j+1);
465  meErryZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
466  sprintf(chisto, "meResxZmPanel2DiskPlaq_%d_%d", i+1, j+1);
467  meResxZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
468  sprintf(chisto, "meResyZmPanel2DiskPlaq_%d_%d", i+1, j+1);
469  meResyZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
470  sprintf(chisto, "mePullxZmPanel2DiskPlaq_%d_%d", i+1, j+1);
471  mePullxZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
472  sprintf(chisto, "mePullyZmPanel2DiskPlaq_%d_%d", i+1, j+1);
473  mePullyZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
474  sprintf(chisto, "meNpixZmPanel2DiskPlaq_%d_%d", i+1, j+1);
475  meNpixZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
476  sprintf(chisto, "meNxpixZmPanel2DiskPlaq_%d_%d", i+1, j+1);
477  meNxpixZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
478  sprintf(chisto, "meNypixZmPanel2DiskPlaq_%d_%d", i+1, j+1);
479  meNypixZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
480  sprintf(chisto, "meChargeZmPanel2DiskPlaq_%d_%d", i+1, j+1);
481  meChargeZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
482  sprintf(chisto, "meResXvsAlphaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
484  = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resxh, "");
485  sprintf(chisto, "meResYvsAlphaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
487  = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resyh, "");
488  sprintf(chisto, "meResXvsBetaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
490  = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resxh, "");
491  sprintf(chisto, "meResYvsBetaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
493  = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resyh, "");
494 
495  sprintf(chisto, "mePullXvsAlphaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
497  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl,pullxh, "");
498  sprintf(chisto, "mePullYvsAlphaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
500  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl,pullyh, "");
501  sprintf(chisto, "mePullXvsBetaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
503  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl,pullxh, "");
504  sprintf(chisto, "mePullYvsBetaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
506  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl,pullyh, "");
507  sprintf(chisto, "mePullXvsPhiZmPanel2DiskPlaq_%d_%d", i+1, j+1);
509  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl,pullxh, "");
510  sprintf(chisto, "mePullYvsPhiZmPanel2DiskPlaq_%d_%d", i+1, j+1);
512  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl,pullyh, "");
513  sprintf(chisto, "mePullXvsEtaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
515  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullxl, pullxh, "");
516  sprintf(chisto, "mePullYvsEtaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
518  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullyl, pullyh, "");
519 
520  sprintf(chisto, "mePosxZpPanel2DiskPlaq_%d_%d", i+1, j+1);
521  mePosxZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
522  sprintf(chisto, "mePosyZpPanel2DiskPlaq_%d_%d", i+1, j+1);
523  mePosyZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
524  sprintf(chisto, "meErrxZpPanel2DiskPlaq_%d_%d", i+1, j+1);
525  meErrxZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
526  sprintf(chisto, "meErryZpPanel2DiskPlaq_%d_%d", i+1, j+1);
527  meErryZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
528  sprintf(chisto, "meResxZpPanel2DiskPlaq_%d_%d", i+1, j+1);
529  meResxZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
530  sprintf(chisto, "meResyZpPanel2DiskPlaq_%d_%d", i+1, j+1);
531  meResyZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
532  sprintf(chisto, "mePullxZpPanel2DiskPlaq_%d_%d", i+1, j+1);
533  mePullxZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
534  sprintf(chisto, "mePullyZpPanel2DiskPlaq_%d_%d", i+1, j+1);
535  mePullyZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
536  sprintf(chisto, "meNpixZpPanel2DiskPlaq_%d_%d", i+1, j+1);
537  meNpixZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
538  sprintf(chisto, "meNxpixZpPanel2DiskPlaq_%d_%d", i+1, j+1);
539  meNxpixZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
540  sprintf(chisto, "meNypixZpPanel2DiskPlaq_%d_%d", i+1, j+1);
541  meNypixZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
542  sprintf(chisto, "meChargeZpPanel2DiskPlaq_%d_%d", i+1, j+1);
543  meChargeZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
544  sprintf(chisto, "meResXvsAlphaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
546  = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resxh, "");
547  sprintf(chisto, "meResYvsAlphaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
549  = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resyh, "");
550  sprintf(chisto, "meResXvsBetaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
552  = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resxh, "");
553  sprintf(chisto, "meResYvsBetaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
555  = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resyh, "");
556 
557  sprintf(chisto, "mePullXvsAlphaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
559  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl,pullxh, "");
560  sprintf(chisto, "mePullYvsAlphaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
562  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl,pullyh, "");
563  sprintf(chisto, "mePullXvsBetaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
565  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl,pullxh, "");
566  sprintf(chisto, "mePullYvsBetaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
568  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl,pullyh, "");
569  sprintf(chisto, "mePullXvsPhiZpPanel2DiskPlaq_%d_%d", i+1, j+1);
571  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl,pullxh, "");
572  sprintf(chisto, "mePullYvsPhiZpPanel2DiskPlaq_%d_%d", i+1, j+1);
574  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl,pullyh, "");
575  sprintf(chisto, "mePullXvsEtaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
577  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullxl,pullxh, "");
578  sprintf(chisto, "mePullYvsEtaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
580  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullyl,pullyh, "");
581 
582  } // for (int j=0; j<4; j++) // loop over plaquettes
583 
584  ibooker.setCurrentFolder("Tracking/TrackingRecHits/Pixel/Histograms_all");
585 
586  Char_t chisto[100];
587  sprintf(chisto, "mePosxBarrel");
588  mePosxBarrel = ibooker.book1D(chisto, chisto, 100, xl, xh);
589  sprintf(chisto, "mePosyBarrel");
590  mePosyBarrel = ibooker.book1D(chisto, chisto, 100, yl, yh);
591  sprintf(chisto, "meErrxBarrel");
592  meErrxBarrel = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
593  sprintf(chisto, "meErryBarrel");
594  meErryBarrel = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
595  sprintf(chisto, "meResxBarrel");
596  meResxBarrel = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
597  sprintf(chisto, "meResyBarrel");
598  meResyBarrel = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
599  sprintf(chisto, "mePullxBarrel");
600  mePullxBarrel = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
601  sprintf(chisto, "mePullyBarrel");
602  mePullyBarrel = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
603  sprintf(chisto, "meNpixBarrel");
604  meNpixBarrel = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
605  sprintf(chisto, "meNxpixBarrel");
606  meNxpixBarrel = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
607  sprintf(chisto, "meNypixBarrel");
608  meNypixBarrel = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
609  sprintf(chisto, "meChargeBarrel");
610  meChargeBarrel = ibooker.book1D(chisto, chisto, 100, barrel_chargel, barrel_chargeh);
611  sprintf(chisto, "meResXvsAlphaBarrel");
612  meResXvsAlphaBarrel = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
613  sprintf(chisto, "meResYvsAlphaBarrel");
614  meResYvsAlphaBarrel = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
615  sprintf(chisto, "meResXvsBetaBarrel");
616  meResXvsBetaBarrel = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
617  sprintf(chisto, "meResYvsBetaBarrel");
618  meResYvsBetaBarrel = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
619 
620  sprintf(chisto, "mePullXvsAlphaBarrel");
621  mePullXvsAlphaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
622  sprintf(chisto, "mePullYvsAlphaBarrel");
623  mePullYvsAlphaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
624  sprintf(chisto, "mePullXvsBetaBarrel");
625  mePullXvsBetaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
626  sprintf(chisto, "mePullYvsBetaBarrel");
627  mePullYvsBetaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
628  sprintf(chisto, "mePullXvsPhiBarrel");
629  mePullXvsPhiBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullxl, pullxh, "");
630  sprintf(chisto, "mePullYvsPhiBarrel");
631  mePullYvsPhiBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullyl, pullyh, "");
632  sprintf(chisto, "mePullXvsEtaBarrel");
633  mePullXvsEtaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullxl, pullxh, "");
634  sprintf(chisto, "mePullYvsEtaBarrel");
635  mePullYvsEtaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullyl, pullyh, "");
636 
637  sprintf(chisto, "mePosxBarrelHalfModule");
638  mePosxBarrelHalfModule = ibooker.book1D(chisto, chisto, 100, xl, xh);
639  sprintf(chisto, "mePosxBarrelFullModule");
640  mePosxBarrelFullModule = ibooker.book1D(chisto, chisto, 100, xl, xh);
641  sprintf(chisto, "mePosxBarrelFlippedLadders");
642  mePosxBarrelFlippedLadders = ibooker.book1D(chisto, chisto, 100, xl, xh);
643  sprintf(chisto, "mePosxBarrelNonFlippedLadders");
644  mePosxBarrelNonFlippedLadders = ibooker.book1D(chisto, chisto, 100, xl, xh);
645  sprintf(chisto, "mePosyBarrelHalfModule");
646  mePosyBarrelHalfModule = ibooker.book1D(chisto, chisto, 100, yl, yh);
647  sprintf(chisto, "mePosyBarrelFullModule");
648  mePosyBarrelFullModule = ibooker.book1D(chisto, chisto, 100, yl, yh);
649  sprintf(chisto, "mePosyBarrelFlippedLadders");
650  mePosyBarrelFlippedLadders = ibooker.book1D(chisto, chisto, 100, yl, yh);
651  sprintf(chisto, "mePosyBarrelNonFlippedLadders");
652  mePosyBarrelNonFlippedLadders = ibooker.book1D(chisto, chisto, 100, yl, yh);
653 
654  sprintf(chisto, "meResXvsAlphaBarrelFlippedLadders");
655  meResXvsAlphaBarrelFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
656  sprintf(chisto, "meResYvsAlphaBarrelFlippedLadders");
657  meResYvsAlphaBarrelFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
658  sprintf(chisto, "meResXvsBetaBarrelFlippedLadders");
659  meResXvsBetaBarrelFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
660  sprintf(chisto, "meResYvsBetaBarrelFlippedLadders");
661  meResYvsBetaBarrelFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
662 
663  sprintf(chisto, "mePullXvsAlphaBarrelFlippedLadders");
665  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
666  sprintf(chisto, "mePullYvsAlphaBarrelFlippedLadders");
668  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
669  sprintf(chisto, "mePullXvsBetaBarrelFlippedLadders");
671  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
672  sprintf(chisto, "mePullYvsBetaBarrelFlippedLadders");
674  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
675  sprintf(chisto, "mePullXvsPhiBarrelFlippedLadders");
677  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullxl, pullxh, "");
678  sprintf(chisto, "mePullYvsPhiBarrelFlippedLadders");
680  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullyl, pullyh, "");
681  sprintf(chisto, "mePullXvsEtaBarrelFlippedLadders");
683  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullxl, pullxh, "");
684  sprintf(chisto, "mePullYvsEtaBarrelFlippedLadders");
686  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullyl, pullyh, "");
687 
688 
689  sprintf(chisto, "meWPullXvsAlphaBarrelFlippedLadders");
691  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
692  sprintf(chisto, "meWPullYvsAlphaBarrelFlippedLadders");
694  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
695  sprintf(chisto, "meWPullXvsBetaBarrelFlippedLadders");
697  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
698  sprintf(chisto, "meWPullYvsBetaBarrelFlippedLadders");
700  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
701 
702  sprintf(chisto, "meResXvsAlphaBarrelNonFlippedLadders");
703  meResXvsAlphaBarrelNonFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
704  sprintf(chisto, "meResYvsAlphaBarrelNonFlippedLadders");
705  meResYvsAlphaBarrelNonFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
706  sprintf(chisto, "meResXvsBetaBarrelNonFlippedLadders");
707  meResXvsBetaBarrelNonFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
708  sprintf(chisto, "meResYvsBetaBarrelNonFlippedLadders");
709  meResYvsBetaBarrelNonFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
710 
711  sprintf(chisto, "mePullXvsAlphaBarrelNonFlippedLadders");
713  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
714  sprintf(chisto, "mePullYvsAlphaBarrelNonFlippedLadders");
716  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
717  sprintf(chisto, "mePullXvsBetaBarrelNonFlippedLadders");
719  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
720  sprintf(chisto, "mePullYvsBetaBarrelNonFlippedLadders");
722  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
723  sprintf(chisto, "mePullXvsPhiBarrelNonFlippedLadders");
725  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullxl, pullxh, "");
726  sprintf(chisto, "mePullYvsPhiBarrelNonFlippedLadders");
728  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullyl, pullyh, "");
729  sprintf(chisto, "mePullXvsEtaBarrelNonFlippedLadders");
731  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullxl, pullxh, "");
732  sprintf(chisto, "mePullYvsEtaBarrelNonFlippedLadders");
734  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullyl, pullyh, "");
735 
736 
737  sprintf(chisto, "meWPullXvsAlphaBarrelNonFlippedLadders");
739  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
740  sprintf(chisto, "meWPullYvsAlphaBarrelNonFlippedLadders");
742  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
743  sprintf(chisto, "meWPullXvsBetaBarrelNonFlippedLadders");
745  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
746  sprintf(chisto, "meWPullYvsBetaBarrelNonFlippedLadders");
748  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
749 
750 
751  sprintf(chisto, "mePosxZmPanel1");
752  mePosxZmPanel1 = ibooker.book1D(chisto, chisto, 100, xl, xh);
753  sprintf(chisto, "mePosyZmPanel1");
754  mePosyZmPanel1 = ibooker.book1D(chisto, chisto, 100, yl, yh);
755  sprintf(chisto, "meErrxZmPanel1");
756  meErrxZmPanel1 = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
757  sprintf(chisto, "meErryZmPanel1");
758  meErryZmPanel1 = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
759  sprintf(chisto, "meResxZmPanel1");
760  meResxZmPanel1 = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
761  sprintf(chisto, "meResyZmPanel1");
762  meResyZmPanel1 = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
763  sprintf(chisto, "mePullxZmPanel1");
764  mePullxZmPanel1 = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
765  sprintf(chisto, "mePullyZmPanel1");
766  mePullyZmPanel1 = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
767  sprintf(chisto, "meNpixZmPanel1");
768  meNpixZmPanel1 = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
769  sprintf(chisto, "meNxpixZmPanel1");
770  meNxpixZmPanel1 = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
771  sprintf(chisto, "meNypixZmPanel1");
772  meNypixZmPanel1 = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
773  sprintf(chisto, "meChargeZmPanel1");
774  meChargeZmPanel1 = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
775  sprintf(chisto, "meResXvsAlphaZmPanel1");
776  meResXvsAlphaZmPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resxh, "");
777  sprintf(chisto, "meResYvsAlphaZmPanel1");
778  meResYvsAlphaZmPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resyh, "");
779  sprintf(chisto, "meResXvsBetaZmPanel1");
780  meResXvsBetaZmPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resxh, "");
781  sprintf(chisto, "meResYvsBetaZmPanel1");
782  meResYvsBetaZmPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resyh, "");
783 
784  sprintf(chisto, "mePullXvsAlphaZmPanel1");
786  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl, pullxh, "");
787  sprintf(chisto, "mePullYvsAlphaZmPanel1");
789  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl, pullyh, "");
790  sprintf(chisto, "mePullXvsBetaZmPanel1");
792  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl, pullxh, "");
793  sprintf(chisto, "mePullYvsBetaZmPanel1");
795  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl, pullyh, "");
796  sprintf(chisto, "mePullXvsPhiZmPanel1");
798  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl, pullxh, "");
799  sprintf(chisto, "mePullYvsPhiZmPanel1");
801  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl, pullyh, "");
802  sprintf(chisto, "mePullXvsEtaZmPanel1");
804  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullxl, pullxh, "");
805  sprintf(chisto, "mePullYvsEtaZmPanel1");
807  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullyl, pullyh, "");
808 
809  sprintf(chisto, "meWPullXvsAlphaZmPanel1");
811  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl, pullxh, "");
812  sprintf(chisto, "meWPullYvsAlphaZmPanel1");
814  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl, pullyh, "");
815  sprintf(chisto, "meWPullXvsBetaZmPanel1");
817  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl, pullxh, "");
818  sprintf(chisto, "meWPullYvsBetaZmPanel1");
820  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl, pullyh, "");
821 
822  sprintf(chisto, "mePosxZpPanel1");
823  mePosxZpPanel1 = ibooker.book1D(chisto, chisto, 100, xl, xh);
824  sprintf(chisto, "mePosyZpPanel1");
825  mePosyZpPanel1 = ibooker.book1D(chisto, chisto, 100, yl, yh);
826  sprintf(chisto, "meErrxZpPanel1");
827  meErrxZpPanel1 = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
828  sprintf(chisto, "meErryZpPanel1");
829  meErryZpPanel1 = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
830  sprintf(chisto, "meResxZpPanel1");
831  meResxZpPanel1 = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
832  sprintf(chisto, "meResyZpPanel1");
833  meResyZpPanel1 = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
834  sprintf(chisto, "mePullxZpPanel1");
835  mePullxZpPanel1 = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
836  sprintf(chisto, "mePullyZpPanel1");
837  mePullyZpPanel1 = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
838  sprintf(chisto, "meNpixZpPanel1");
839  meNpixZpPanel1 = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
840  sprintf(chisto, "meNxpixZpPanel1");
841  meNxpixZpPanel1 = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
842  sprintf(chisto, "meNypixZpPanel1");
843  meNypixZpPanel1 = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
844  sprintf(chisto, "meChargeZpPanel1");
845  meChargeZpPanel1 = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
846  sprintf(chisto, "meResXvsAlphaZpPanel1");
847  meResXvsAlphaZpPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resxh, "");
848  sprintf(chisto, "meResYvsAlphaZpPanel1");
849  meResYvsAlphaZpPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resyh, "");
850  sprintf(chisto, "meResXvsBetaZpPanel1");
851  meResXvsBetaZpPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resxh, "");
852  sprintf(chisto, "meResYvsBetaZpPanel1");
853  meResYvsBetaZpPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resyh, "");
854 
855  sprintf(chisto, "mePullXvsAlphaZpPanel1");
857  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl, pullxh, "");
858  sprintf(chisto, "mePullYvsAlphaZpPanel1");
860  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl, pullyh, "");
861  sprintf(chisto, "mePullXvsBetaZpPanel1");
863  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl, pullxh, "");
864  sprintf(chisto, "mePullYvsBetaZpPanel1");
866  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl, pullyh, "");
867  sprintf(chisto, "mePullXvsPhiZpPanel1");
869  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl, pullxh, "");
870  sprintf(chisto, "mePullYvsPhiZpPanel1");
872  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl, pullyh, "");
873  sprintf(chisto, "mePullXvsEtaZpPanel1");
875  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullxl, pullxh, "");
876  sprintf(chisto, "mePullYvsEtaZpPanel1");
878  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullyl, pullyh, "");
879 
880  sprintf(chisto, "meWPullXvsAlphaZpPanel1");
882  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl, pullxh, "");
883  sprintf(chisto, "meWPullYvsAlphaZpPanel1");
885  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl, pullyh, "");
886  sprintf(chisto, "meWPullXvsBetaZpPanel1");
888  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl, pullxh, "");
889  sprintf(chisto, "meWPullYvsBetaZpPanel1");
891  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl, pullyh, "");
892 
893  sprintf(chisto, "mePosxZmPanel2");
894  mePosxZmPanel2 = ibooker.book1D(chisto, chisto, 100, xl, xh);
895  sprintf(chisto, "mePosyZmPanel2");
896  mePosyZmPanel2 = ibooker.book1D(chisto, chisto, 100, yl, yh);
897  sprintf(chisto, "meErrxZmPanel2");
898  meErrxZmPanel2 = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
899  sprintf(chisto, "meErryZmPanel2");
900  meErryZmPanel2 = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
901  sprintf(chisto, "meResxZmPanel2");
902  meResxZmPanel2 = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
903  sprintf(chisto, "meResyZmPanel2");
904  meResyZmPanel2 = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
905  sprintf(chisto, "mePullxZmPanel2");
906  mePullxZmPanel2 = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
907  sprintf(chisto, "mePullyZmPanel2");
908  mePullyZmPanel2 = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
909  sprintf(chisto, "meNpixZmPanel2");
910  meNpixZmPanel2 = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
911  sprintf(chisto, "meNxpixZmPanel2");
912  meNxpixZmPanel2 = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
913  sprintf(chisto, "meNypixZmPanel2");
914  meNypixZmPanel2 = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
915  sprintf(chisto, "meChargeZmPanel2");
916  meChargeZmPanel2 = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
917  sprintf(chisto, "meResXvsAlphaZmPanel2");
918  meResXvsAlphaZmPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resxh, "");
919  sprintf(chisto, "meResYvsAlphaZmPanel2");
920  meResYvsAlphaZmPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resyh, "");
921  sprintf(chisto, "meResXvsBetaZmPanel2");
922  meResXvsBetaZmPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resxh, "");
923  sprintf(chisto, "meResYvsBetaZmPanel2");
924  meResYvsBetaZmPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resyh, "");
925 
926  sprintf(chisto, "mePullXvsAlphaZmPanel2");
928  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl, pullxh, "");
929  sprintf(chisto, "mePullYvsAlphaZmPanel2");
931  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl, pullyh, "");
932  sprintf(chisto, "mePullXvsBetaZmPanel2");
934  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl, pullxh, "");
935  sprintf(chisto, "mePullYvsBetaZmPanel2");
937  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl, pullyh, "");
938  sprintf(chisto, "mePullXvsPhiZmPanel2");
940  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl, pullxh, "");
941  sprintf(chisto, "mePullYvsPhiZmPanel2");
943  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl, pullyh, "");
944  sprintf(chisto, "mePullXvsEtaZmPanel2");
946  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullxl, pullxh, "");
947  sprintf(chisto, "mePullYvsEtaZmPanel2");
949  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullyl, pullyh, "");
950 
951  sprintf(chisto, "meWPullXvsAlphaZmPanel2");
953  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl, pullxh, "");
954  sprintf(chisto, "meWPullYvsAlphaZmPanel2");
956  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl, pullyh, "");
957  sprintf(chisto, "meWPullXvsBetaZmPanel2");
959  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl, pullxh, "");
960  sprintf(chisto, "meWPullYvsBetaZmPanel2");
962  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl, pullyh, "");
963 
964 
965  sprintf(chisto, "mePosxZpPanel2");
966  mePosxZpPanel2 = ibooker.book1D(chisto, chisto, 100, xl, xh);
967  sprintf(chisto, "mePosyZpPanel2");
968  mePosyZpPanel2 = ibooker.book1D(chisto, chisto, 100, yl, yh);
969  sprintf(chisto, "meErrxZpPanel2");
970  meErrxZpPanel2 = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
971  sprintf(chisto, "meErryZpPanel2");
972  meErryZpPanel2 = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
973  sprintf(chisto, "meResxZpPanel2");
974  meResxZpPanel2 = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
975  sprintf(chisto, "meResyZpPanel2");
976  meResyZpPanel2 = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
977  sprintf(chisto, "mePullxZpPanel2");
978  mePullxZpPanel2 = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
979  sprintf(chisto, "mePullyZpPanel2");
980  mePullyZpPanel2 = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
981  sprintf(chisto, "meNpixZpPanel2");
982  meNpixZpPanel2 = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
983  sprintf(chisto, "meNxpixZpPanel2");
984  meNxpixZpPanel2 = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
985  sprintf(chisto, "meNypixZpPanel2");
986  meNypixZpPanel2 = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
987  sprintf(chisto, "meChargeZpPanel2");
988  meChargeZpPanel2 = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
989  sprintf(chisto, "meResXvsAlphaZpPanel2");
990  meResXvsAlphaZpPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resxh, "");
991  sprintf(chisto, "meResYvsAlphaZpPanel2");
992  meResYvsAlphaZpPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resyh, "");
993  sprintf(chisto, "meResXvsBetaZpPanel2");
994  meResXvsBetaZpPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resxh, "");
995  sprintf(chisto, "meResYvsBetaZpPanel2");
996  meResYvsBetaZpPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resyh, "");
997 
998  sprintf(chisto, "mePullXvsAlphaZpPanel2");
1000  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl, pullxh, "");
1001  sprintf(chisto, "mePullYvsAlphaZpPanel2");
1003  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl, pullyh, "");
1004  sprintf(chisto, "mePullXvsBetaZpPanel2");
1006  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl, pullxh, "");
1007  sprintf(chisto, "mePullYvsBetaZpPanel2");
1009  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl, pullyh, "");
1010  sprintf(chisto, "mePullXvsPhiZpPanel2");
1012  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl, pullxh, "");
1013  sprintf(chisto, "mePullYvsPhiZpPanel2");
1015  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl, pullyh, "");
1016  sprintf(chisto, "mePullXvsEtaZpPanel2");
1018  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullxl, pullxh, "");
1019  sprintf(chisto, "mePullYvsEtaZpPanel2");
1021  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullyl, pullyh, "");
1022 
1023  sprintf(chisto, "meWPullXvsAlphaZpPanel2");
1025  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl, pullxh, "");
1026  sprintf(chisto, "meWPullYvsAlphaZpPanel2");
1028  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl, pullyh, "");
1029  sprintf(chisto, "meWPullXvsBetaZpPanel2");
1031  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl, pullxh, "");
1032  sprintf(chisto, "meWPullYvsBetaZpPanel2");
1034  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl, pullyh, "");
1035 
1036  // all hits (not only from tracks)
1037  sprintf(chisto, "mePosxBarrel_all_hits");
1038  mePosxBarrel_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1039  sprintf(chisto, "mePosyBarrel_all_hits");
1040  mePosyBarrel_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1041 
1042  sprintf(chisto, "mePosxZmPanel1_all_hits");
1043  mePosxZmPanel1_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1044  sprintf(chisto, "mePosyZmPanel1_all_hits");
1045  mePosyZmPanel1_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1046  sprintf(chisto, "mePosxZmPanel2_all_hits");
1047  mePosxZmPanel2_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1048  sprintf(chisto, "mePosyZmPanel2_all_hits");
1049  mePosyZmPanel2_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1050 
1051  sprintf(chisto, "mePosxZpPanel1_all_hits");
1052  mePosxZpPanel1_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1053  sprintf(chisto, "mePosyZpPanel1_all_hits");
1054  mePosyZpPanel1_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1055  sprintf(chisto, "mePosxZpPanel2_all_hits");
1056  mePosxZpPanel2_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1057  sprintf(chisto, "mePosyZpPanel2_all_hits");
1058  mePosyZpPanel2_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1059 
1060  // control histograms
1061  meTracksPerEvent = ibooker.book1D("meTracksPerEvent" , "meTracksPerEvent" , 200, 0.0, 200.0);
1062  mePixRecHitsPerTrack = ibooker.book1D("mePixRecHitsPerTrack", "mePixRecHitsPerTrack", 6, 0.0, 6.0);
1063 
1064 }
1065 
1066 // Virtual destructor needed.
1068 {
1069  //save local root file only in standalone mode
1070  if ( runStandalone && outputFile_.size() != 0 && dbe_ ) dbe_->save(outputFile_);
1071 }
1072 
1073 // Functions that gets called by framework every event
1075 {
1076  //Retrieve tracker topology from geometry
1078  es.get<TrackerTopologyRcd>().get(tTopo);
1079 
1080 
1081  run = e.id().run();
1082  evt = e.id().event();
1083 
1084  // if ( evt%1000 == 0 )
1085  //cout << "evt = " << evt << endl;
1086 
1087  float math_pi = 3.14159265;
1088  float radtodeg = 180.0 / math_pi;
1089 
1090  DetId detId;
1091 
1093  LocalError error;
1094  float mindist = 999999.9;
1095 
1096  std::vector<PSimHit> matched;
1098 
1100  es.get<TrackerDigiGeometryRecord> ().get (pDD);
1101  const TrackerGeometry* tracker = &(* pDD);
1102 
1103  if ( !MTCCtrack_ )
1104  {
1105  // --------------------------------------- all hits -----------------------------------------------------------
1106  //--- Fetch Pixel RecHits
1108  e.getByToken( siPixelRecHitCollectionToken_, recHitColl );
1109 
1110  //cout <<" ----- Found "
1111  // << const_cast<SiPixelRecHitCollection*>(recHitColl.product())->size()
1112  // << " Pixel RecHits" << std::endl;
1113 
1114  //-----Iterate over detunits
1115  for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++)
1116  {
1117  DetId detId = ((*it)->geographicalId());
1118 
1119  unsigned int subid = detId.subdetId();
1120  if ( !((subid==1) || (subid==2)) )
1121  continue; // end subid if
1122 
1123  SiPixelRecHitCollection::const_iterator match = recHitColl->find(detId);
1124  if (match == recHitColl->end()) continue;
1125 
1126  SiPixelRecHitCollection::DetSet pixelrechitRange = *match;
1127  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorBegin = pixelrechitRange.begin();
1128  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorEnd = pixelrechitRange.end();
1129  SiPixelRecHitCollection::DetSet::const_iterator pixeliter = pixelrechitRangeIteratorBegin;
1130  std::vector<PSimHit> matched;
1131 
1132  //----Loop over rechits for this detId
1133  for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
1134  {
1135  LocalPoint lp = pixeliter->localPosition();
1136  float rechitx = lp.x();
1137  float rechity = lp.y();
1138 
1139  detId = (*it)->geographicalId();
1140  subdetId = (int)detId.subdetId();
1141  if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel )
1142  {
1143  mePosxBarrel_all_hits->Fill( rechitx );
1144  mePosyBarrel_all_hits->Fill( rechity );
1145  }
1146  else if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap )
1147  {
1148 
1149  side = tTopo->pxfSide(detId);
1150  disk = tTopo->pxfDisk(detId);
1151  blade = tTopo->pxfBlade(detId);
1152  panel = tTopo->pxfPanel(detId);
1153  plaq = tTopo->pxfModule(detId); // also known as plaquette
1154 
1155  if ( side==1 )
1156  {
1157  if ( panel==1 )
1158  {
1159  mePosxZmPanel1_all_hits->Fill( rechitx );
1160  mePosyZmPanel1_all_hits->Fill( rechity );
1161  }
1162  else if ( panel==2 )
1163  {
1164  mePosxZmPanel2_all_hits->Fill( rechitx );
1165  mePosyZmPanel2_all_hits->Fill( rechity );
1166  }
1167  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "..............................................Wrong panel number !";
1168  } // if ( side==1 )
1169  else if ( side==2 )
1170  {
1171  if ( panel==1 )
1172  {
1173  mePosxZpPanel1_all_hits->Fill( rechitx );
1174  mePosyZpPanel1_all_hits->Fill( rechity );
1175  }
1176  else if ( panel==2 )
1177  {
1178  mePosxZpPanel2_all_hits->Fill( rechitx );
1179  mePosyZpPanel2_all_hits->Fill( rechity );
1180  }
1181  else edm::LogWarning("SiPixelTrackingRecHitsValid")<< "..............................................Wrong panel number !";
1182  } //else if ( side==2 )
1183  else edm::LogWarning("SiPixelTrackingRecHitsValid") << ".......................................................Wrong side !" ;
1184 
1185  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
1186  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "Pixel rechit collection but we are not in the pixel detector" << (int)detId.subdetId() ;
1187 
1188  }
1189  }
1190  // ------------------------------------------------ all hits ---------------------------------------------------------------
1191 
1192  // Get tracks
1194  e.getByToken( recoTrackCollectionToken_, trackCollection );
1195  const reco::TrackCollection *tracks = trackCollection.product();
1196  reco::TrackCollection::const_iterator tciter;
1197 
1198  int n_tracks = (int)tracks->size(); // number of tracks in this event
1199  meTracksPerEvent->Fill( n_tracks );
1200 
1201  if ( tracks->size() > 0 )
1202  {
1203  // Loop on tracks
1204  for ( tciter=tracks->begin(); tciter!=tracks->end(); tciter++)
1205  {
1206  phi = tciter->momentum().phi() / math_pi*180.0;
1207  eta = tciter->momentum().eta();
1208 
1209  int n_hits = 0;
1210  // First loop on hits: find matched hits
1211  for ( trackingRecHit_iterator it = tciter->recHitsBegin(); it != tciter->recHitsEnd(); it++)
1212  {
1213  const TrackingRecHit &thit = **it;
1214  // Is it a matched hit?
1215  const SiPixelRecHit* matchedhit = dynamic_cast<const SiPixelRecHit*>(&thit);
1216 
1217  if ( matchedhit )
1218  {
1219  ++n_hits;
1220 
1221  layer = -9999;
1222  ladder = -9999;
1223  mod = -9999;
1224  side = -9999;
1225  disk = -9999;
1226  blade = -9999;
1227  panel = -9999;
1228  plaq = -9999;
1229 
1230  rechitx = -9999.9;
1231  rechity = -9999.9;
1232  rechitz = -9999.9;
1233  rechiterrx = -9999.9;
1234  rechiterry = -9999.9;
1235  rechitresx = -9999.9;
1236  rechitresy = -9999.9;
1237  rechitpullx = -9999.9;
1238  rechitpully = -9999.9;
1239 
1240  npix = -9999;
1241  nxpix = -9999;
1242  nypix = -9999;
1243  charge = -9999.9;
1244 
1245  alpha = -9999.9;
1246  beta = -9999.9;
1247 
1248  half = -9999;
1249  flipped = -9999;
1250 
1251  nsimhit = -9999;
1252 
1253  simhitx = -9999.9;
1254  simhity = -9999.9;
1255 
1256  position = (*it)->localPosition();
1257  error = (*it)->localPositionError();
1258 
1259  rechitx = position.x();
1260  rechity = position.y();
1261  rechitz = position.z();
1262  rechiterrx = sqrt(error.xx());
1263  rechiterry = sqrt(error.yy());
1264 
1265  npix = (*matchedhit).cluster()->size();
1266  nxpix = (*matchedhit).cluster()->sizeX();
1267  nypix = (*matchedhit).cluster()->sizeY();
1268  charge = (*matchedhit).cluster()->charge();
1269 
1270  //Association of the rechit to the simhit
1271  matched.clear();
1272  matched = associate.associateHit(*matchedhit);
1273 
1274  nsimhit = (int)matched.size();
1275 
1276  if ( !matched.empty() )
1277  {
1278  mindist = 999999.9;
1279  float distx, disty, dist;
1280  bool found_hit_from_generated_particle = false;
1281 
1282  int n_assoc_muon = 0;
1283 
1284  std::vector<PSimHit>::const_iterator closestit = matched.begin();
1285  for (std::vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); m++)
1286  {
1287  if ( checkType_ )
1288  {
1289  int pid = (*m).particleType();
1290  if ( abs(pid) != genType_ )
1291  continue;
1292 
1293  }
1294 
1295  float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
1296  float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
1297 
1298  distx = fabs(rechitx - simhitx);
1299  disty = fabs(rechity - simhity);
1300  dist = sqrt( distx*distx + disty*disty );
1301 
1302  if ( dist < mindist )
1303  {
1304  n_assoc_muon++;
1305 
1306  mindist = dist;
1307  closestit = m;
1308  found_hit_from_generated_particle = true;
1309  }
1310  } // for (std::vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); m++)
1311 
1312  // This recHit does not have any simHit with the same particleType as the particles generated
1313  // Ignore it as most probably come from delta rays.
1314  if ( checkType_ && !found_hit_from_generated_particle )
1315  continue;
1316 
1317  if ( n_assoc_muon > 1 )
1318  {
1319  edm::LogWarning("SiPixelTrackingRecHitsValid") << " ----- This is not good: n_assoc_muon = " << n_assoc_muon ;
1320  edm::LogWarning("SiPixelTrackingRecHitsValid") << "evt = " << evt ;
1321  }
1322 
1323  pidhit = (*closestit).particleType();
1324 
1325  simhitx = 0.5*( (*closestit).entryPoint().x() + (*closestit).exitPoint().x() );
1326  simhity = 0.5*( (*closestit).entryPoint().y() + (*closestit).exitPoint().y() );
1327 
1330  rechitpullx = ( rechitx - simhitx ) / sqrt(error.xx());
1331  rechitpully = ( rechity - simhity ) / sqrt(error.yy());
1332 
1333  float simhitpx = (*closestit).momentumAtEntry().x();
1334  float simhitpy = (*closestit).momentumAtEntry().y();
1335  float simhitpz = (*closestit).momentumAtEntry().z();
1336 
1337  //beta = atan2(simhitpz, simhitpy) * radtodeg;
1338  //alpha = atan2(simhitpz, simhitpx) * radtodeg;
1339 
1340  beta = fabs(atan2(simhitpz, simhitpy)) * radtodeg;
1341  alpha = fabs(atan2(simhitpz, simhitpx)) * radtodeg;
1342 
1343  detId = (*it)->geographicalId();
1344 
1345  subdetId = (int)detId.subdetId();
1346 
1347  if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel )
1348  {
1352  meErryBarrel->Fill( rechiterry );
1357  meNpixBarrel->Fill( npix );
1358  meNxpixBarrel->Fill( nxpix );
1359  meNypixBarrel->Fill( nypix );
1373 
1374  const PixelGeomDetUnit * theGeomDet
1375  = dynamic_cast<const PixelGeomDetUnit*> ( tracker->idToDet(detId) );
1376  //const PixelTopology * topol = (&(theGeomDet->specificTopology()));
1377 
1378  int tmp_nrows = theGeomDet->specificTopology().nrows();
1379 
1380  if ( tmp_nrows == 80 )
1381  {
1384  half = 1;
1385  }
1386  else if ( tmp_nrows == 160 )
1387  {
1390  half = 0;
1391  }
1392  else
1393  edm::LogWarning("SiPixelTrackingRecHitsValid") << "-------------------------------------------------- Wrong module size !!!";
1394 
1395  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp();
1396  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp();
1397 
1398  if ( tmp2<tmp1 )
1399  { // flipped
1402  flipped = 1;
1403 
1416 
1421  }
1422  else
1423  { // not flipped
1426  flipped = 0;
1427 
1440 
1445  }
1446 
1447 
1448  layer = tTopo->pxbLayer(detId); // Layer: 1,2,3.
1449  ladder = tTopo->pxbLadder(detId); // Ladder: 1-20, 32, 44.
1450  mod = tTopo->pxbModule(detId); // Mod: 1-8.
1451 
1455  meErryBarrelLayerModule[layer-1][mod-1]->Fill( rechiterry );
1460  meNpixBarrelLayerModule[layer-1][mod-1]->Fill( npix );
1476 
1481 
1482  if ( tmp2<tmp1 )
1483  { // flipped
1488  }
1489  else
1490  { // not flipped
1495  }
1496 
1497  }
1498  else if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap )
1499  {
1500 
1501  side = tTopo->pxfSide(detId);
1502  disk = tTopo->pxfDisk(detId);
1503  blade = tTopo->pxfBlade(detId);
1504  panel = tTopo->pxfPanel(detId);
1505  plaq = tTopo->pxfModule(detId); // also known as plaquette
1506 
1507  if ( side==1 )
1508  {
1509  if ( panel==1 )
1510  {
1514  meErryZmPanel1->Fill( rechiterry );
1519  meNpixZmPanel1->Fill( npix );
1535 
1540 
1544  meErryZmPanel1DiskPlaq[disk-1][plaq-1]->Fill( rechiterry );
1549  meNpixZmPanel1DiskPlaq[disk-1][plaq-1]->Fill( npix );
1565 
1566  }
1567  else if ( panel==2 )
1568  {
1572  meErryZmPanel2->Fill( rechiterry );
1577  meNpixZmPanel2->Fill( npix );
1593 
1598 
1602  meErryZmPanel2DiskPlaq[disk-1][plaq-1]->Fill( rechiterry );
1607  meNpixZmPanel2DiskPlaq[disk-1][plaq-1]->Fill( npix );
1623 
1624  }
1625  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "..............................................Wrong panel number !";
1626  } // if ( side==1 )
1627  else if ( side==2 )
1628  {
1629  if ( panel==1 )
1630  {
1634  meErryZpPanel1->Fill( rechiterry );
1639  meNpixZpPanel1->Fill( npix );
1655 
1660 
1664  meErryZpPanel1DiskPlaq[disk-1][plaq-1]->Fill( rechiterry );
1669  meNpixZpPanel1DiskPlaq[disk-1][plaq-1]->Fill( npix );
1685 
1686  }
1687  else if ( panel==2 )
1688  {
1692  meErryZpPanel2->Fill( rechiterry );
1697  meNpixZpPanel2->Fill( npix );
1713 
1718 
1722  meErryZpPanel2DiskPlaq[disk-1][plaq-1]->Fill( rechiterry );
1727  meNpixZpPanel2DiskPlaq[disk-1][plaq-1]->Fill( npix );
1743 
1744  }
1745  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "..............................................Wrong panel number !";
1746  } //else if ( side==2 )
1747  else edm::LogWarning("SiPixelTrackingRecHitsValid") << ".......................................................Wrong side !" ;
1748 
1749  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
1750  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "Pixel rechit but we are not in the pixel detector" << (int)detId.subdetId() ;
1751 
1752  if(debugNtuple_.size()!=0)t_->Fill();
1753 
1754  } // if ( !matched.empty() )
1755  //else
1756  //cout << "---------------- RecHit with no associated SimHit !!! -------------------------- " << endl;
1757 
1758  } // matchedhit.
1759 
1760  } // end of loop on hits
1761 
1762  mePixRecHitsPerTrack->Fill( n_hits );
1763  //cout << "n_hits = " << n_hits << endl;
1764 
1765  } //end of loop on track
1766 
1767  } // tracks > 0.
1768 
1769  } //end of MTCCTrack
1770 
1771 }
RunNumber_t run() const
Definition: EventID.h:39
MonitorElement * meWPullXvsAlphaBarrelNonFlippedLadders
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:41
MonitorElement * meResXvsAlphaBarrelNonFlippedLaddersLayer[3]
MonitorElement * meErryBarrelLayerModule[3][8]
MonitorElement * meNpixZmPanel1DiskPlaq[2][4]
MonitorElement * meResYvsAlphaBarrelFlippedLaddersLayer[3]
T getUntrackedParameter(std::string const &, T const &) const
MonitorElement * mePullYvsEtaBarrelLayerModule[3][8]
MonitorElement * meErryZpPanel2DiskPlaq[2][3]
MonitorElement * meResyZpPanel1DiskPlaq[2][4]
float xx() const
Definition: LocalError.h:24
MonitorElement * mePullxZpPanel2DiskPlaq[2][3]
virtual int nrows() const =0
MonitorElement * mePullXvsBetaBarrelLayerModule[3][8]
MonitorElement * meResyZmPanel2DiskPlaq[2][3]
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * mePullXvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * meResYvsAlphaBarrelNonFlippedLaddersLayer[3]
const_iterator end(bool update=false) const
MonitorElement * mePullYvsAlphaBarrelNonFlippedLadders
MonitorElement * mePullYvsAlphaZmPanel1DiskPlaq[2][4]
T perp() const
Definition: PV3DBase.h:72
MonitorElement * meChargeZmPanel2DiskPlaq[2][3]
MonitorElement * mePosxZmPanel1DiskPlaq[2][4]
MonitorElement * mePosyBarrelLayerModule[3][8]
MonitorElement * meResxZpPanel1DiskPlaq[2][4]
MonitorElement * meNpixZpPanel2DiskPlaq[2][3]
MonitorElement * meResyZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsEtaZpPanel1DiskPlaq[2][4]
MonitorElement * bookProfile(Args &&...args)
Definition: DQMStore.h:157
MonitorElement * meWPullXvsBetaBarrelNonFlippedLadders
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:508
MonitorElement * meResYvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsEtaZmPanel2DiskPlaq[2][3]
MonitorElement * meErrxZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaBarrelNonFlippedLaddersLayer[3]
unsigned int pxfDisk(const DetId &id) const
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es)
MonitorElement * meErrxZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsBetaBarrelFlippedLaddersLayer[3]
MonitorElement * mePullxBarrelLayerModule[3][8]
MonitorElement * mePosyZpPanel1DiskPlaq[2][4]
MonitorElement * meNxpixZpPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsBetaZpPanel1DiskPlaq[2][4]
unsigned int pxbLadder(const DetId &id) const
MonitorElement * mePullXvsPhiZmPanel1DiskPlaq[2][4]
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
T y() const
Definition: PV3DBase.h:63
MonitorElement * meResXvsBetaBarrelFlippedLaddersLayer[3]
MonitorElement * mePullyZmPanel1DiskPlaq[2][4]
MonitorElement * meErrxBarrelLayerModule[3][8]
MonitorElement * meErryZmPanel2DiskPlaq[2][3]
MonitorElement * mePosxZmPanel2DiskPlaq[2][3]
MonitorElement * meChargeZpPanel2DiskPlaq[2][3]
unsigned int pxbModule(const DetId &id) const
MonitorElement * mePullXvsEtaZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsAlphaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsAlphaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullxZmPanel1DiskPlaq[2][4]
MonitorElement * mePullyZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsAlphaBarrelLayerModule[3][8]
MonitorElement * meNpixZpPanel1DiskPlaq[2][4]
MonitorElement * mePosyZmPanel2DiskPlaq[2][3]
TrackerHitAssociator::Config trackerHitAssociatorConfig_
MonitorElement * mePullyBarrelLayerModule[3][8]
MonitorElement * mePullXvsPhiZpPanel2DiskPlaq[2][3]
MonitorElement * meResyBarrelLayerModule[3][8]
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
MonitorElement * meWPullYvsBetaBarrelNonFlippedLadders
MonitorElement * meNypixBarrelLayerModule[3][8]
edm::EDGetTokenT< reco::TrackCollection > recoTrackCollectionToken_
MonitorElement * mePullyZpPanel1DiskPlaq[2][4]
MonitorElement * meNypixZpPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsAlphaZpPanel1DiskPlaq[2][4]
void Fill(long long x)
MonitorElement * meErryZmPanel1DiskPlaq[2][4]
MonitorElement * mePullxZmPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsEtaZpPanel1DiskPlaq[2][4]
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
MonitorElement * mePullXvsPhiZmPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsBetaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsPhiBarrelLayerModule[3][8]
MonitorElement * mePullYvsPhiZmPanel2DiskPlaq[2][3]
MonitorElement * meWPullYvsAlphaBarrelNonFlippedLadders
MonitorElement * meResYvsAlphaZpPanel2DiskPlaq[2][3]
float yy() const
Definition: LocalError.h:26
MonitorElement * meNpixBarrelLayerModule[3][8]
MonitorElement * meResxZpPanel2DiskPlaq[2][3]
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
T sqrt(T t)
Definition: SSEVec.h:18
MonitorElement * meChargeZpPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsBetaZpPanel2DiskPlaq[2][3]
T z() const
Definition: PV3DBase.h:64
MonitorElement * meResYvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * meResxBarrelLayerModule[3][8]
MonitorElement * meNxpixZmPanel1DiskPlaq[2][4]
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * mePosxZpPanel2DiskPlaq[2][3]
MonitorElement * mePosxZpPanel1DiskPlaq[2][4]
MonitorElement * meNxpixZpPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsEtaZpPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsPhiZpPanel1DiskPlaq[2][4]
MonitorElement * meResxZmPanel2DiskPlaq[2][3]
MonitorElement * meResXvsBetaZmPanel2DiskPlaq[2][3]
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
MonitorElement * mePullyZmPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsBetaBarrelLayerModule[3][8]
MonitorElement * meErrxZmPanel2DiskPlaq[2][3]
MonitorElement * meNypixZmPanel1DiskPlaq[2][4]
unsigned int pxfModule(const DetId &id) const
MonitorElement * mePullXvsEtaZmPanel1DiskPlaq[2][4]
MonitorElement * meErrxZpPanel1DiskPlaq[2][4]
MonitorElement * meErryZpPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaZpPanel2DiskPlaq[2][3]
MonitorElement * meResXvsBetaZpPanel1DiskPlaq[2][4]
unsigned int pxbLayer(const DetId &id) const
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
MonitorElement * mePullYvsPhiZmPanel1DiskPlaq[2][4]
Definition: DetId.h:18
MonitorElement * meChargeZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsAlphaZpPanel2DiskPlaq[2][3]
MonitorElement * meNypixZmPanel2DiskPlaq[2][3]
MonitorElement * mePullYvsPhiZpPanel2DiskPlaq[2][3]
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
MonitorElement * mePullYvsBetaZmPanel1DiskPlaq[2][4]
T const * product() const
Definition: Handle.h:81
MonitorElement * mePullXvsEtaBarrelLayerModule[3][8]
MonitorElement * mePullXvsBetaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsAlphaZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsBetaBarrelLayerModule[3][8]
const T & get() const
Definition: EventSetup.h:55
MonitorElement * mePullXvsAlphaBarrelNonFlippedLadders
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
SiPixelTrackingRecHitsValid(const edm::ParameterSet &conf)
MonitorElement * mePullYvsAlphaBarrelLayerModule[3][8]
MonitorElement * mePullYvsEtaZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * meChargeBarrelLayerModule[3][8]
const_iterator find(id_type i, bool update=false) const
MonitorElement * meResXvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsBetaZpPanel2DiskPlaq[2][3]
edm::EventID id() const
Definition: EventBase.h:60
MonitorElement * meResYvsBetaZpPanel1DiskPlaq[2][4]
MonitorElement * mePosxBarrelLayerModule[3][8]
iterator end()
Definition: DetSetNew.h:70
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, const uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE", const bool resetMEsAfterWriting=false)
Definition: DQMStore.cc:2668
MonitorElement * meResYvsAlphaZmPanel2DiskPlaq[2][3]
static int position[264][3]
Definition: ReadPGInfo.cc:509
MonitorElement * meResyZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsBetaZpPanel1DiskPlaq[2][4]
MonitorElement * meResYvsBetaZpPanel2DiskPlaq[2][3]
const TrackerGeomDet * idToDet(DetId) const override
MonitorElement * mePullXvsEtaZmPanel2DiskPlaq[2][3]
MonitorElement * meResYvsAlphaBarrelLayerModule[3][8]
unsigned int pxfSide(const DetId &id) const
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
MonitorElement * mePosyZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsAlphaZmPanel2DiskPlaq[2][3]
MonitorElement * mePullxZpPanel1DiskPlaq[2][4]
T x() const
Definition: PV3DBase.h:62
MonitorElement * meResXvsAlphaZpPanel2DiskPlaq[2][3]
MonitorElement * meResXvsAlphaBarrelLayerModule[3][8]
MonitorElement * meResYvsBetaZmPanel2DiskPlaq[2][3]
MonitorElement * meNpixZmPanel2DiskPlaq[2][3]
unsigned int pxfPanel(const DetId &id) const
unsigned int pxfBlade(const DetId &id) const
MonitorElement * meResXvsAlphaBarrelFlippedLaddersLayer[3]
MonitorElement * meResXvsBetaBarrelLayerModule[3][8]
MonitorElement * mePullYvsPhiBarrelLayerModule[3][8]
virtual void analyze(const edm::Event &e, const edm::EventSetup &c)
MonitorElement * meNypixZpPanel2DiskPlaq[2][3]
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
Definition: Run.h:43
MonitorElement * mePosyZmPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsPhiZpPanel1DiskPlaq[2][4]
MonitorElement * meNxpixBarrelLayerModule[3][8]
MonitorElement * meNxpixZmPanel2DiskPlaq[2][3]
Our base class.
Definition: SiPixelRecHit.h:23
MonitorElement * meResxZmPanel1DiskPlaq[2][4]
iterator begin()
Definition: DetSetNew.h:67
MonitorElement * meResYvsBetaBarrelNonFlippedLaddersLayer[3]