CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 
113 {
114  //Read config file
115  MTCCtrack_ = ps.getParameter<bool>("MTCCtrack");
116  runStandalone = ps.getParameter<bool>("runStandalone");
117  outputFile_ = ps.getUntrackedParameter<std::string>("outputFile", "pixeltrackingrechitshisto.root");
118  siPixelRecHitCollectionToken_ = consumes<SiPixelRecHitCollection>( edm::InputTag( "siPixelRecHits" ) );
119  recoTrackCollectionToken_ = consumes<reco::TrackCollection>( edm::InputTag( ps.getUntrackedParameter<std::string>( "src" ) ) );
120  builderName_ = ps.getParameter<std::string>("TTRHBuilder");
121  checkType_ = ps.getParameter<bool>("checkType");
122  genType_ = ps.getParameter<int>("genType");
123  debugNtuple_=ps.getUntrackedParameter<std::string>("debugNtuple", "SiPixelTrackingRecHitsValid_Ntuple.root");
124 }
125 
127 
128  // Book histograms
130  //dbe_->showDirStructure();
131 
132  //float math_pi = 3.14159265;
133  //float radtodeg = 180.0 / math_pi;
134 
135  // Histogram ranges (low and high)
136 
137  float xl = -1.0;
138  float xh = 1.0;
139  float errxl = 0.0;
140  float errxh = 0.003;
141  float resxl = -0.02;
142  float resxh = 0.02;
143  float pullxl = -10.0;
144  float pullxh = 10.0;
145 
146  float yl = -4.0;
147  float yh = 4.0;
148  float erryl = 0.0;
149  float erryh = 0.010;
150  float resyl = -0.04;
151  float resyh = 0.04;
152  float pullyl = -10.0;
153  float pullyh = 10.0;
154 
155  float barrel_alphal = 80.0;
156  float barrel_alphah = 100.0;
157  float barrel_betal = 10.0;
158  float barrel_betah = 170.0;
159  //float barrel_phil = -180.0;
160  //float barrel_phih = 180.0;
161  //float barrel_etal = -2.5;
162  //float barrel_etah = 2.5;
163 
164  float forward_p1_alphal = 100.0;
165  float forward_p1_alphah = 115.0;
166  float forward_p2_alphal = 65.0;
167  float forward_p2_alphah = 80.0;
168  float forward_neg_betal = 67.0;
169  float forward_neg_betah = 73.0;
170  float forward_pos_betal = 107.0;
171  float forward_pos_betah = 113.0;
172  //float forward_phil = -180.0;
173  //float forward_phih = 180.0;
174  //float forward_neg_etal = -2.5;
175  //float forward_neg_etah = -1.5;
176  //float forward_pos_etal = 1.5;
177  //float forward_pos_etah = 2.5;
178 
179  // special ranges for pulls
180  float pull_barrel_alphal = 80.0;
181  float pull_barrel_alphah = 100.0;
182  float pull_barrel_betal = 10.0;
183  float pull_barrel_betah = 170.0;
184  float pull_barrel_phil = -180.0;
185  float pull_barrel_phih = 180.0;
186  float pull_barrel_etal = -2.4;
187  float pull_barrel_etah = 2.4;
188 
189  float pull_forward_p1_alphal = 100.0;
190  float pull_forward_p1_alphah = 112.0;
191  float pull_forward_p2_alphal = 68.0;
192  float pull_forward_p2_alphah = 80.0;
193  float pull_forward_neg_betal = 68.0;
194  float pull_forward_neg_betah = 72.0;
195  float pull_forward_pos_betal = 108.0;
196  float pull_forward_pos_betah = 112.0;
197  float pull_forward_phil = -180.0;
198  float pull_forward_phih = 180.0;
199  float pull_forward_neg_etal = -2.4;
200  float pull_forward_neg_etah = -1.4;
201  float pull_forward_pos_etal = 1.5;
202  float pull_forward_pos_etah = 2.5;
203 
204  int npixl = 0;
205  int npixh = 20;
206  int nxpixl = 0;
207  int nxpixh = 10;
208  int nypixl = 0;
209  int nypixh = 20;
210 
211  float barrel_chargel = 0.0;
212  float barrel_chargeh = 250000.0;
213  float forward_chargel = 0.0;
214  float forward_chargeh = 100000.0;
215 
216  ibooker.setCurrentFolder("Tracking/TrackingRecHits/Pixel/Histograms_per_ring-layer_or_disk-plaquette");
217 
218  // Pixel barrel has 3 layers and 8 rings; book a histogram for each module given by the (layer, ring) pair
219  for (int i=0; i<3 ; i++) // loop over layers
220  {
221  Char_t chisto[100];
222 
223  sprintf(chisto, "meResxBarrelLayer_%d", i+1);
224  meResxBarrelLayer[i] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
225  sprintf(chisto, "meResyBarrelLayer_%d", i+1);
226  meResyBarrelLayer[i] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
227  sprintf(chisto, "mePullxBarrelLayer_%d", i+1);
228  mePullxBarrelLayer[i] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
229  sprintf(chisto, "mePullyBarrelLayer_%d", i+1);
230  mePullyBarrelLayer[i] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
231 
232  sprintf(chisto, "meResXvsAlphaBarrelFlippedLaddersLayer_%d", i+1);
233  meResXvsAlphaBarrelFlippedLaddersLayer[i] = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
234  sprintf(chisto, "meResYvsAlphaBarrelFlippedLaddersLayer_%d", i+1);
235  meResYvsAlphaBarrelFlippedLaddersLayer[i] = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
236  sprintf(chisto, "meResXvsBetaBarrelFlippedLaddersLayer_%d", i+1);
237  meResXvsBetaBarrelFlippedLaddersLayer[i] = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
238  sprintf(chisto, "meResYvsBetaBarrelFlippedLaddersLayer_%d", i+1);
239  meResYvsBetaBarrelFlippedLaddersLayer[i] = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
240 
241  sprintf(chisto, "meResXvsAlphaBarrelNonFlippedLaddersLayer_%d", i+1);
243  = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
244  sprintf(chisto, "meResYvsAlphaBarrelNonFlippedLaddersLayer_%d", i+1);
246  = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
247  sprintf(chisto, "meResXvsBetaBarrelNonFlippedLaddersLayer_%d", i+1);
249  = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
250  sprintf(chisto, "meResYvsBetaBarrelNonFlippedLaddersLayer_%d", i+1);
252  = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
253 
254  for (int j=0; j<8; j++) // loop over rings
255  {
256  sprintf(chisto, "mePosxBarrelLayerModule_%d_%d", i+1, j+1);
257  mePosxBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
258  sprintf(chisto, "mePosyBarrelLayerModule_%d_%d", i+1, j+1);
259  mePosyBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
260  sprintf(chisto, "meErrxBarrelLayerModule_%d_%d", i+1, j+1);
261  meErrxBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
262  sprintf(chisto, "meErryBarrelLayerModule_%d_%d", i+1, j+1);
263  meErryBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
264  sprintf(chisto, "meResxBarrelLayerModule_%d_%d", i+1, j+1);
265  meResxBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
266  sprintf(chisto, "meResyBarrelLayerModule_%d_%d", i+1, j+1);
267  meResyBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
268  sprintf(chisto, "mePullxBarrelLayerModule_%d_%d", i+1, j+1);
269  mePullxBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
270  sprintf(chisto, "mePullyBarrelLayerModule_%d_%d", i+1, j+1);
271  mePullyBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
272  sprintf(chisto, "meNpixBarrelLayerModule_%d_%d", i+1, j+1);
273  meNpixBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
274  sprintf(chisto, "meNxpixBarrelLayerModule_%d_%d", i+1, j+1);
275  meNxpixBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
276  sprintf(chisto, "meNypixBarrelLayerModule_%d_%d", i+1, j+1);
277  meNypixBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
278  sprintf(chisto, "meChargeBarrelLayerModule_%d_%d", i+1, j+1);
279  meChargeBarrelLayerModule[i][j] = ibooker.book1D(chisto, chisto, 100, barrel_chargel, barrel_chargeh);
280 
281  sprintf(chisto, "meResXvsAlphaBarrelLayerModule_%d_%d", i+1, j+1);
282  meResXvsAlphaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
283  sprintf(chisto, "meResYvsAlphaBarrelLayerModule_%d_%d", i+1, j+1);
284  meResYvsAlphaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
285  sprintf(chisto, "meResXvsBetaBarrelLayerModule_%d_%d", i+1, j+1);
286  meResXvsBetaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
287  sprintf(chisto, "meResYvsBetaBarrelLayerModule_%d_%d", i+1, j+1);
288  meResYvsBetaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
289 
290  sprintf(chisto, "mePullXvsAlphaBarrelLayerModule_%d_%d", i+1, j+1);
291  mePullXvsAlphaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah,
292  100, pullxl, pullxh, "");
293  sprintf(chisto, "mePullYvsAlphaBarrelLayerModule_%d_%d", i+1, j+1);
294  mePullYvsAlphaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah,
295  100, pullyl, pullyh, "");
296  sprintf(chisto, "mePullXvsBetaBarrelLayerModule_%d_%d", i+1, j+1);
297  mePullXvsBetaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah,
298  100, pullxl, pullxh, "");
299  sprintf(chisto, "mePullYvsBetaBarrelLayerModule_%d_%d", i+1, j+1);
300  mePullYvsBetaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah,
301  100, pullyl, pullyh, "");
302  sprintf(chisto, "mePullXvsPhiBarrelLayerModule_%d_%d", i+1, j+1);
303  mePullXvsPhiBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100,
304  pullxl, pullxh, "");
305  sprintf(chisto, "mePullYvsPhiBarrelLayerModule_%d_%d", i+1, j+1);
306  mePullYvsPhiBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih,
307  100, pullyl, pullyh, "");
308  sprintf(chisto, "mePullXvsEtaBarrelLayerModule_%d_%d", i+1, j+1);
309  mePullXvsEtaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah,
310  100, pullxl, pullxh, "");
311  sprintf(chisto, "mePullYvsEtaBarrelLayerModule_%d_%d", i+1, j+1);
312  mePullYvsEtaBarrelLayerModule[i][j] = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah,
313  100, pullyl, pullyh, "");
314  } // for (int j=0; j<8; j++) // loop over rings
315 
316  } // for (int i=0; i<3 ; i++) // loop over layers
317 
318  // Pixel forward detector has 2 disks, 2 panels and either 3 or 4 plaquettes
319  // Panel 1 has 4 plaquettes
320  // Panel 2 has 3 plaquettes
321 
322  // Panel 1: 2 disks, 4 plaquets
323  // Panel 2: 2 disks, 3 plaquets
324  for (int i=0; i<2 ; i++) // loop over disks
325  for (int j=0; j<4; j++) // loop over plaquettes
326  {
327  Char_t chisto[100];
328 
329  sprintf(chisto, "mePosxZmPanel1DiskPlaq_%d_%d", i+1, j+1);
330  mePosxZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
331  sprintf(chisto, "mePosyZmPanel1DiskPlaq_%d_%d", i+1, j+1);
332  mePosyZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
333  sprintf(chisto, "meErrxZmPanel1DiskPlaq_%d_%d", i+1, j+1);
334  meErrxZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
335  sprintf(chisto, "meErryZmPanel1DiskPlaq_%d_%d", i+1, j+1);
336  meErryZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
337  sprintf(chisto, "meResxZmPanel1DiskPlaq_%d_%d", i+1, j+1);
338  meResxZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
339  sprintf(chisto, "meResyZmPanel1DiskPlaq_%d_%d", i+1, j+1);
340  meResyZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
341  sprintf(chisto, "mePullxZmPanel1DiskPlaq_%d_%d", i+1, j+1);
342  mePullxZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
343  sprintf(chisto, "mePullyZmPanel1DiskPlaq_%d_%d", i+1, j+1);
344  mePullyZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
345  sprintf(chisto, "meNpixZmPanel1DiskPlaq_%d_%d", i+1, j+1);
346  meNpixZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
347  sprintf(chisto, "meNxpixZmPanel1DiskPlaq_%d_%d", i+1, j+1);
348  meNxpixZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
349  sprintf(chisto, "meNypixZmPanel1DiskPlaq_%d_%d", i+1, j+1);
350  meNypixZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
351  sprintf(chisto, "meChargeZmPanel1DiskPlaq_%d_%d", i+1, j+1);
352  meChargeZmPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
353 
354  sprintf(chisto, "meResXvsAlphaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
356  = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resxh, "");
357  sprintf(chisto, "meResYvsAlphaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
359  = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resyh, "");
360  sprintf(chisto, "meResXvsBetaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
362  = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resxh, "");
363  sprintf(chisto, "meResYvsBetaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
365  = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resyh, "");
366 
367  sprintf(chisto, "mePullXvsAlphaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
369  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl,pullxh, "");
370  sprintf(chisto, "mePullYvsAlphaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
372  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl,pullyh, "");
373  sprintf(chisto, "mePullXvsBetaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
375  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl,pullxh, "");
376  sprintf(chisto, "mePullYvsBetaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
378  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl,pullyh, "");
379  sprintf(chisto, "mePullXvsPhiZmPanel1DiskPlaq_%d_%d", i+1, j+1);
381  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl,pullxh, "");
382  sprintf(chisto, "mePullYvsPhiZmPanel1DiskPlaq_%d_%d", i+1, j+1);
384  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl,pullyh, "");
385  sprintf(chisto, "mePullXvsEtaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
387  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullxl,pullxh, "");
388  sprintf(chisto, "mePullYvsEtaZmPanel1DiskPlaq_%d_%d", i+1, j+1);
390  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullyl,pullyh, "");
391 
392  sprintf(chisto, "mePosxZpPanel1DiskPlaq_%d_%d", i+1, j+1);
393  mePosxZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
394  sprintf(chisto, "mePosyZpPanel1DiskPlaq_%d_%d", i+1, j+1);
395  mePosyZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
396  sprintf(chisto, "meErrxZpPanel1DiskPlaq_%d_%d", i+1, j+1);
397  meErrxZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
398  sprintf(chisto, "meErryZpPanel1DiskPlaq_%d_%d", i+1, j+1);
399  meErryZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
400  sprintf(chisto, "meResxZpPanel1DiskPlaq_%d_%d", i+1, j+1);
401  meResxZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
402  sprintf(chisto, "meResyZpPanel1DiskPlaq_%d_%d", i+1, j+1);
403  meResyZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
404  sprintf(chisto, "mePullxZpPanel1DiskPlaq_%d_%d", i+1, j+1);
405  mePullxZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
406  sprintf(chisto, "mePullyZpPanel1DiskPlaq_%d_%d", i+1, j+1);
407  mePullyZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
408  sprintf(chisto, "meNpixZpPanel1DiskPlaq_%d_%d", i+1, j+1);
409  meNpixZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
410  sprintf(chisto, "meNxpixZpPanel1DiskPlaq_%d_%d", i+1, j+1);
411  meNxpixZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
412  sprintf(chisto, "meNypixZpPanel1DiskPlaq_%d_%d", i+1, j+1);
413  meNypixZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
414  sprintf(chisto, "meChargeZpPanel1DiskPlaq_%d_%d", i+1, j+1);
415  meChargeZpPanel1DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
416  sprintf(chisto, "meResXvsAlphaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
418  = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resxh, "");
419  sprintf(chisto, "meResYvsAlphaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
421  = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resyh, "");
422  sprintf(chisto, "meResXvsBetaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
424  = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resxh, "");
425  sprintf(chisto, "meResYvsBetaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
427  = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resyh, "");
428 
429  sprintf(chisto, "mePullXvsAlphaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
431  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl,pullxh, "");
432  sprintf(chisto, "mePullYvsAlphaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
434  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl,pullyh, "");
435  sprintf(chisto, "mePullXvsBetaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
437  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl,pullxh, "");
438  sprintf(chisto, "mePullYvsBetaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
440  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl,pullyh, "");
441  sprintf(chisto, "mePullXvsPhiZpPanel1DiskPlaq_%d_%d", i+1, j+1);
443  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl,pullxh, "");
444  sprintf(chisto, "mePullYvsPhiZpPanel1DiskPlaq_%d_%d", i+1, j+1);
446  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl,pullyh, "");
447  sprintf(chisto, "mePullXvsEtaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
449  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullxl,pullxh, "");
450  sprintf(chisto, "mePullYvsEtaZpPanel1DiskPlaq_%d_%d", i+1, j+1);
452  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullyl,pullyh, "");
453 
454  if ( j>2 ) continue; // panel 2 has only 3 plaquettes
455 
456  sprintf(chisto, "mePosxZmPanel2DiskPlaq_%d_%d", i+1, j+1);
457  mePosxZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
458  sprintf(chisto, "mePosyZmPanel2DiskPlaq_%d_%d", i+1, j+1);
459  mePosyZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
460  sprintf(chisto, "meErrxZmPanel2DiskPlaq_%d_%d", i+1, j+1);
461  meErrxZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
462  sprintf(chisto, "meErryZmPanel2DiskPlaq_%d_%d", i+1, j+1);
463  meErryZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
464  sprintf(chisto, "meResxZmPanel2DiskPlaq_%d_%d", i+1, j+1);
465  meResxZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
466  sprintf(chisto, "meResyZmPanel2DiskPlaq_%d_%d", i+1, j+1);
467  meResyZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
468  sprintf(chisto, "mePullxZmPanel2DiskPlaq_%d_%d", i+1, j+1);
469  mePullxZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
470  sprintf(chisto, "mePullyZmPanel2DiskPlaq_%d_%d", i+1, j+1);
471  mePullyZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
472  sprintf(chisto, "meNpixZmPanel2DiskPlaq_%d_%d", i+1, j+1);
473  meNpixZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
474  sprintf(chisto, "meNxpixZmPanel2DiskPlaq_%d_%d", i+1, j+1);
475  meNxpixZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
476  sprintf(chisto, "meNypixZmPanel2DiskPlaq_%d_%d", i+1, j+1);
477  meNypixZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
478  sprintf(chisto, "meChargeZmPanel2DiskPlaq_%d_%d", i+1, j+1);
479  meChargeZmPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
480  sprintf(chisto, "meResXvsAlphaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
482  = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resxh, "");
483  sprintf(chisto, "meResYvsAlphaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
485  = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resyh, "");
486  sprintf(chisto, "meResXvsBetaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
488  = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resxh, "");
489  sprintf(chisto, "meResYvsBetaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
491  = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resyh, "");
492 
493  sprintf(chisto, "mePullXvsAlphaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
495  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl,pullxh, "");
496  sprintf(chisto, "mePullYvsAlphaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
498  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl,pullyh, "");
499  sprintf(chisto, "mePullXvsBetaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
501  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl,pullxh, "");
502  sprintf(chisto, "mePullYvsBetaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
504  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl,pullyh, "");
505  sprintf(chisto, "mePullXvsPhiZmPanel2DiskPlaq_%d_%d", i+1, j+1);
507  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl,pullxh, "");
508  sprintf(chisto, "mePullYvsPhiZmPanel2DiskPlaq_%d_%d", i+1, j+1);
510  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl,pullyh, "");
511  sprintf(chisto, "mePullXvsEtaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
513  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullxl, pullxh, "");
514  sprintf(chisto, "mePullYvsEtaZmPanel2DiskPlaq_%d_%d", i+1, j+1);
516  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullyl, pullyh, "");
517 
518  sprintf(chisto, "mePosxZpPanel2DiskPlaq_%d_%d", i+1, j+1);
519  mePosxZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, xl, xh);
520  sprintf(chisto, "mePosyZpPanel2DiskPlaq_%d_%d", i+1, j+1);
521  mePosyZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, yl, yh);
522  sprintf(chisto, "meErrxZpPanel2DiskPlaq_%d_%d", i+1, j+1);
523  meErrxZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
524  sprintf(chisto, "meErryZpPanel2DiskPlaq_%d_%d", i+1, j+1);
525  meErryZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
526  sprintf(chisto, "meResxZpPanel2DiskPlaq_%d_%d", i+1, j+1);
527  meResxZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
528  sprintf(chisto, "meResyZpPanel2DiskPlaq_%d_%d", i+1, j+1);
529  meResyZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
530  sprintf(chisto, "mePullxZpPanel2DiskPlaq_%d_%d", i+1, j+1);
531  mePullxZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
532  sprintf(chisto, "mePullyZpPanel2DiskPlaq_%d_%d", i+1, j+1);
533  mePullyZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
534  sprintf(chisto, "meNpixZpPanel2DiskPlaq_%d_%d", i+1, j+1);
535  meNpixZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
536  sprintf(chisto, "meNxpixZpPanel2DiskPlaq_%d_%d", i+1, j+1);
537  meNxpixZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
538  sprintf(chisto, "meNypixZpPanel2DiskPlaq_%d_%d", i+1, j+1);
539  meNypixZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
540  sprintf(chisto, "meChargeZpPanel2DiskPlaq_%d_%d", i+1, j+1);
541  meChargeZpPanel2DiskPlaq[i][j] = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
542  sprintf(chisto, "meResXvsAlphaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
544  = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resxh, "");
545  sprintf(chisto, "meResYvsAlphaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
547  = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resyh, "");
548  sprintf(chisto, "meResXvsBetaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
550  = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resxh, "");
551  sprintf(chisto, "meResYvsBetaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
553  = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resyh, "");
554 
555  sprintf(chisto, "mePullXvsAlphaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
557  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl,pullxh, "");
558  sprintf(chisto, "mePullYvsAlphaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
560  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl,pullyh, "");
561  sprintf(chisto, "mePullXvsBetaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
563  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl,pullxh, "");
564  sprintf(chisto, "mePullYvsBetaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
566  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl,pullyh, "");
567  sprintf(chisto, "mePullXvsPhiZpPanel2DiskPlaq_%d_%d", i+1, j+1);
569  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl,pullxh, "");
570  sprintf(chisto, "mePullYvsPhiZpPanel2DiskPlaq_%d_%d", i+1, j+1);
572  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl,pullyh, "");
573  sprintf(chisto, "mePullXvsEtaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
575  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullxl,pullxh, "");
576  sprintf(chisto, "mePullYvsEtaZpPanel2DiskPlaq_%d_%d", i+1, j+1);
578  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullyl,pullyh, "");
579 
580  } // for (int j=0; j<4; j++) // loop over plaquettes
581 
582  ibooker.setCurrentFolder("Tracking/TrackingRecHits/Pixel/Histograms_all");
583 
584  Char_t chisto[100];
585  sprintf(chisto, "mePosxBarrel");
586  mePosxBarrel = ibooker.book1D(chisto, chisto, 100, xl, xh);
587  sprintf(chisto, "mePosyBarrel");
588  mePosyBarrel = ibooker.book1D(chisto, chisto, 100, yl, yh);
589  sprintf(chisto, "meErrxBarrel");
590  meErrxBarrel = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
591  sprintf(chisto, "meErryBarrel");
592  meErryBarrel = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
593  sprintf(chisto, "meResxBarrel");
594  meResxBarrel = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
595  sprintf(chisto, "meResyBarrel");
596  meResyBarrel = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
597  sprintf(chisto, "mePullxBarrel");
598  mePullxBarrel = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
599  sprintf(chisto, "mePullyBarrel");
600  mePullyBarrel = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
601  sprintf(chisto, "meNpixBarrel");
602  meNpixBarrel = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
603  sprintf(chisto, "meNxpixBarrel");
604  meNxpixBarrel = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
605  sprintf(chisto, "meNypixBarrel");
606  meNypixBarrel = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
607  sprintf(chisto, "meChargeBarrel");
608  meChargeBarrel = ibooker.book1D(chisto, chisto, 100, barrel_chargel, barrel_chargeh);
609  sprintf(chisto, "meResXvsAlphaBarrel");
610  meResXvsAlphaBarrel = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
611  sprintf(chisto, "meResYvsAlphaBarrel");
612  meResYvsAlphaBarrel = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
613  sprintf(chisto, "meResXvsBetaBarrel");
614  meResXvsBetaBarrel = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
615  sprintf(chisto, "meResYvsBetaBarrel");
616  meResYvsBetaBarrel = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
617 
618  sprintf(chisto, "mePullXvsAlphaBarrel");
619  mePullXvsAlphaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
620  sprintf(chisto, "mePullYvsAlphaBarrel");
621  mePullYvsAlphaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
622  sprintf(chisto, "mePullXvsBetaBarrel");
623  mePullXvsBetaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
624  sprintf(chisto, "mePullYvsBetaBarrel");
625  mePullYvsBetaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
626  sprintf(chisto, "mePullXvsPhiBarrel");
627  mePullXvsPhiBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullxl, pullxh, "");
628  sprintf(chisto, "mePullYvsPhiBarrel");
629  mePullYvsPhiBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullyl, pullyh, "");
630  sprintf(chisto, "mePullXvsEtaBarrel");
631  mePullXvsEtaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullxl, pullxh, "");
632  sprintf(chisto, "mePullYvsEtaBarrel");
633  mePullYvsEtaBarrel = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullyl, pullyh, "");
634 
635  sprintf(chisto, "mePosxBarrelHalfModule");
636  mePosxBarrelHalfModule = ibooker.book1D(chisto, chisto, 100, xl, xh);
637  sprintf(chisto, "mePosxBarrelFullModule");
638  mePosxBarrelFullModule = ibooker.book1D(chisto, chisto, 100, xl, xh);
639  sprintf(chisto, "mePosxBarrelFlippedLadders");
640  mePosxBarrelFlippedLadders = ibooker.book1D(chisto, chisto, 100, xl, xh);
641  sprintf(chisto, "mePosxBarrelNonFlippedLadders");
642  mePosxBarrelNonFlippedLadders = ibooker.book1D(chisto, chisto, 100, xl, xh);
643  sprintf(chisto, "mePosyBarrelHalfModule");
644  mePosyBarrelHalfModule = ibooker.book1D(chisto, chisto, 100, yl, yh);
645  sprintf(chisto, "mePosyBarrelFullModule");
646  mePosyBarrelFullModule = ibooker.book1D(chisto, chisto, 100, yl, yh);
647  sprintf(chisto, "mePosyBarrelFlippedLadders");
648  mePosyBarrelFlippedLadders = ibooker.book1D(chisto, chisto, 100, yl, yh);
649  sprintf(chisto, "mePosyBarrelNonFlippedLadders");
650  mePosyBarrelNonFlippedLadders = ibooker.book1D(chisto, chisto, 100, yl, yh);
651 
652  sprintf(chisto, "meResXvsAlphaBarrelFlippedLadders");
653  meResXvsAlphaBarrelFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
654  sprintf(chisto, "meResYvsAlphaBarrelFlippedLadders");
655  meResYvsAlphaBarrelFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
656  sprintf(chisto, "meResXvsBetaBarrelFlippedLadders");
657  meResXvsBetaBarrelFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
658  sprintf(chisto, "meResYvsBetaBarrelFlippedLadders");
659  meResYvsBetaBarrelFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
660 
661  sprintf(chisto, "mePullXvsAlphaBarrelFlippedLadders");
663  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
664  sprintf(chisto, "mePullYvsAlphaBarrelFlippedLadders");
666  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
667  sprintf(chisto, "mePullXvsBetaBarrelFlippedLadders");
669  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
670  sprintf(chisto, "mePullYvsBetaBarrelFlippedLadders");
672  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
673  sprintf(chisto, "mePullXvsPhiBarrelFlippedLadders");
675  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullxl, pullxh, "");
676  sprintf(chisto, "mePullYvsPhiBarrelFlippedLadders");
678  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullyl, pullyh, "");
679  sprintf(chisto, "mePullXvsEtaBarrelFlippedLadders");
681  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullxl, pullxh, "");
682  sprintf(chisto, "mePullYvsEtaBarrelFlippedLadders");
684  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullyl, pullyh, "");
685 
686 
687  sprintf(chisto, "meWPullXvsAlphaBarrelFlippedLadders");
689  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
690  sprintf(chisto, "meWPullYvsAlphaBarrelFlippedLadders");
692  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
693  sprintf(chisto, "meWPullXvsBetaBarrelFlippedLadders");
695  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
696  sprintf(chisto, "meWPullYvsBetaBarrelFlippedLadders");
698  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
699 
700  sprintf(chisto, "meResXvsAlphaBarrelNonFlippedLadders");
701  meResXvsAlphaBarrelNonFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resxh, "");
702  sprintf(chisto, "meResYvsAlphaBarrelNonFlippedLadders");
703  meResYvsAlphaBarrelNonFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_alphal, barrel_alphah, 100, 0.0, resyh, "");
704  sprintf(chisto, "meResXvsBetaBarrelNonFlippedLadders");
705  meResXvsBetaBarrelNonFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resxh, "");
706  sprintf(chisto, "meResYvsBetaBarrelNonFlippedLadders");
707  meResYvsBetaBarrelNonFlippedLadders = ibooker.bookProfile(chisto, chisto, 20, barrel_betal, barrel_betah, 100, 0.0, resyh, "");
708 
709  sprintf(chisto, "mePullXvsAlphaBarrelNonFlippedLadders");
711  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
712  sprintf(chisto, "mePullYvsAlphaBarrelNonFlippedLadders");
714  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
715  sprintf(chisto, "mePullXvsBetaBarrelNonFlippedLadders");
717  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
718  sprintf(chisto, "mePullYvsBetaBarrelNonFlippedLadders");
720  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
721  sprintf(chisto, "mePullXvsPhiBarrelNonFlippedLadders");
723  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullxl, pullxh, "");
724  sprintf(chisto, "mePullYvsPhiBarrelNonFlippedLadders");
726  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_phil, pull_barrel_phih, 100, pullyl, pullyh, "");
727  sprintf(chisto, "mePullXvsEtaBarrelNonFlippedLadders");
729  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullxl, pullxh, "");
730  sprintf(chisto, "mePullYvsEtaBarrelNonFlippedLadders");
732  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_etal, pull_barrel_etah, 100, pullyl, pullyh, "");
733 
734 
735  sprintf(chisto, "meWPullXvsAlphaBarrelNonFlippedLadders");
737  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullxl, pullxh, "");
738  sprintf(chisto, "meWPullYvsAlphaBarrelNonFlippedLadders");
740  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_alphal, pull_barrel_alphah, 100, pullyl, pullyh, "");
741  sprintf(chisto, "meWPullXvsBetaBarrelNonFlippedLadders");
743  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullxl, pullxh, "");
744  sprintf(chisto, "meWPullYvsBetaBarrelNonFlippedLadders");
746  = ibooker.bookProfile(chisto, chisto, 20, pull_barrel_betal, pull_barrel_betah, 100, pullyl, pullyh, "");
747 
748 
749  sprintf(chisto, "mePosxZmPanel1");
750  mePosxZmPanel1 = ibooker.book1D(chisto, chisto, 100, xl, xh);
751  sprintf(chisto, "mePosyZmPanel1");
752  mePosyZmPanel1 = ibooker.book1D(chisto, chisto, 100, yl, yh);
753  sprintf(chisto, "meErrxZmPanel1");
754  meErrxZmPanel1 = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
755  sprintf(chisto, "meErryZmPanel1");
756  meErryZmPanel1 = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
757  sprintf(chisto, "meResxZmPanel1");
758  meResxZmPanel1 = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
759  sprintf(chisto, "meResyZmPanel1");
760  meResyZmPanel1 = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
761  sprintf(chisto, "mePullxZmPanel1");
762  mePullxZmPanel1 = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
763  sprintf(chisto, "mePullyZmPanel1");
764  mePullyZmPanel1 = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
765  sprintf(chisto, "meNpixZmPanel1");
766  meNpixZmPanel1 = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
767  sprintf(chisto, "meNxpixZmPanel1");
768  meNxpixZmPanel1 = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
769  sprintf(chisto, "meNypixZmPanel1");
770  meNypixZmPanel1 = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
771  sprintf(chisto, "meChargeZmPanel1");
772  meChargeZmPanel1 = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
773  sprintf(chisto, "meResXvsAlphaZmPanel1");
774  meResXvsAlphaZmPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resxh, "");
775  sprintf(chisto, "meResYvsAlphaZmPanel1");
776  meResYvsAlphaZmPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resyh, "");
777  sprintf(chisto, "meResXvsBetaZmPanel1");
778  meResXvsBetaZmPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resxh, "");
779  sprintf(chisto, "meResYvsBetaZmPanel1");
780  meResYvsBetaZmPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resyh, "");
781 
782  sprintf(chisto, "mePullXvsAlphaZmPanel1");
784  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl, pullxh, "");
785  sprintf(chisto, "mePullYvsAlphaZmPanel1");
787  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl, pullyh, "");
788  sprintf(chisto, "mePullXvsBetaZmPanel1");
790  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl, pullxh, "");
791  sprintf(chisto, "mePullYvsBetaZmPanel1");
793  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl, pullyh, "");
794  sprintf(chisto, "mePullXvsPhiZmPanel1");
796  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl, pullxh, "");
797  sprintf(chisto, "mePullYvsPhiZmPanel1");
799  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl, pullyh, "");
800  sprintf(chisto, "mePullXvsEtaZmPanel1");
802  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullxl, pullxh, "");
803  sprintf(chisto, "mePullYvsEtaZmPanel1");
805  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullyl, pullyh, "");
806 
807  sprintf(chisto, "meWPullXvsAlphaZmPanel1");
809  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl, pullxh, "");
810  sprintf(chisto, "meWPullYvsAlphaZmPanel1");
812  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl, pullyh, "");
813  sprintf(chisto, "meWPullXvsBetaZmPanel1");
815  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl, pullxh, "");
816  sprintf(chisto, "meWPullYvsBetaZmPanel1");
818  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl, pullyh, "");
819 
820  sprintf(chisto, "mePosxZpPanel1");
821  mePosxZpPanel1 = ibooker.book1D(chisto, chisto, 100, xl, xh);
822  sprintf(chisto, "mePosyZpPanel1");
823  mePosyZpPanel1 = ibooker.book1D(chisto, chisto, 100, yl, yh);
824  sprintf(chisto, "meErrxZpPanel1");
825  meErrxZpPanel1 = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
826  sprintf(chisto, "meErryZpPanel1");
827  meErryZpPanel1 = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
828  sprintf(chisto, "meResxZpPanel1");
829  meResxZpPanel1 = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
830  sprintf(chisto, "meResyZpPanel1");
831  meResyZpPanel1 = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
832  sprintf(chisto, "mePullxZpPanel1");
833  mePullxZpPanel1 = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
834  sprintf(chisto, "mePullyZpPanel1");
835  mePullyZpPanel1 = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
836  sprintf(chisto, "meNpixZpPanel1");
837  meNpixZpPanel1 = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
838  sprintf(chisto, "meNxpixZpPanel1");
839  meNxpixZpPanel1 = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
840  sprintf(chisto, "meNypixZpPanel1");
841  meNypixZpPanel1 = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
842  sprintf(chisto, "meChargeZpPanel1");
843  meChargeZpPanel1 = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
844  sprintf(chisto, "meResXvsAlphaZpPanel1");
845  meResXvsAlphaZpPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resxh, "");
846  sprintf(chisto, "meResYvsAlphaZpPanel1");
847  meResYvsAlphaZpPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_p1_alphal, forward_p1_alphah, 100, 0.0, resyh, "");
848  sprintf(chisto, "meResXvsBetaZpPanel1");
849  meResXvsBetaZpPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resxh, "");
850  sprintf(chisto, "meResYvsBetaZpPanel1");
851  meResYvsBetaZpPanel1 = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resyh, "");
852 
853  sprintf(chisto, "mePullXvsAlphaZpPanel1");
855  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl, pullxh, "");
856  sprintf(chisto, "mePullYvsAlphaZpPanel1");
858  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl, pullyh, "");
859  sprintf(chisto, "mePullXvsBetaZpPanel1");
861  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl, pullxh, "");
862  sprintf(chisto, "mePullYvsBetaZpPanel1");
864  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl, pullyh, "");
865  sprintf(chisto, "mePullXvsPhiZpPanel1");
867  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl, pullxh, "");
868  sprintf(chisto, "mePullYvsPhiZpPanel1");
870  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl, pullyh, "");
871  sprintf(chisto, "mePullXvsEtaZpPanel1");
873  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullxl, pullxh, "");
874  sprintf(chisto, "mePullYvsEtaZpPanel1");
876  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullyl, pullyh, "");
877 
878  sprintf(chisto, "meWPullXvsAlphaZpPanel1");
880  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullxl, pullxh, "");
881  sprintf(chisto, "meWPullYvsAlphaZpPanel1");
883  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p1_alphal, pull_forward_p1_alphah, 100, pullyl, pullyh, "");
884  sprintf(chisto, "meWPullXvsBetaZpPanel1");
886  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl, pullxh, "");
887  sprintf(chisto, "meWPullYvsBetaZpPanel1");
889  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl, pullyh, "");
890 
891  sprintf(chisto, "mePosxZmPanel2");
892  mePosxZmPanel2 = ibooker.book1D(chisto, chisto, 100, xl, xh);
893  sprintf(chisto, "mePosyZmPanel2");
894  mePosyZmPanel2 = ibooker.book1D(chisto, chisto, 100, yl, yh);
895  sprintf(chisto, "meErrxZmPanel2");
896  meErrxZmPanel2 = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
897  sprintf(chisto, "meErryZmPanel2");
898  meErryZmPanel2 = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
899  sprintf(chisto, "meResxZmPanel2");
900  meResxZmPanel2 = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
901  sprintf(chisto, "meResyZmPanel2");
902  meResyZmPanel2 = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
903  sprintf(chisto, "mePullxZmPanel2");
904  mePullxZmPanel2 = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
905  sprintf(chisto, "mePullyZmPanel2");
906  mePullyZmPanel2 = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
907  sprintf(chisto, "meNpixZmPanel2");
908  meNpixZmPanel2 = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
909  sprintf(chisto, "meNxpixZmPanel2");
910  meNxpixZmPanel2 = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
911  sprintf(chisto, "meNypixZmPanel2");
912  meNypixZmPanel2 = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
913  sprintf(chisto, "meChargeZmPanel2");
914  meChargeZmPanel2 = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
915  sprintf(chisto, "meResXvsAlphaZmPanel2");
916  meResXvsAlphaZmPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resxh, "");
917  sprintf(chisto, "meResYvsAlphaZmPanel2");
918  meResYvsAlphaZmPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resyh, "");
919  sprintf(chisto, "meResXvsBetaZmPanel2");
920  meResXvsBetaZmPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resxh, "");
921  sprintf(chisto, "meResYvsBetaZmPanel2");
922  meResYvsBetaZmPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_neg_betal, forward_neg_betah, 100, 0.0, resyh, "");
923 
924  sprintf(chisto, "mePullXvsAlphaZmPanel2");
926  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl, pullxh, "");
927  sprintf(chisto, "mePullYvsAlphaZmPanel2");
929  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl, pullyh, "");
930  sprintf(chisto, "mePullXvsBetaZmPanel2");
932  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl, pullxh, "");
933  sprintf(chisto, "mePullYvsBetaZmPanel2");
935  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl, pullyh, "");
936  sprintf(chisto, "mePullXvsPhiZmPanel2");
938  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl, pullxh, "");
939  sprintf(chisto, "mePullYvsPhiZmPanel2");
941  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl, pullyh, "");
942  sprintf(chisto, "mePullXvsEtaZmPanel2");
944  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullxl, pullxh, "");
945  sprintf(chisto, "mePullYvsEtaZmPanel2");
947  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_etal, pull_forward_neg_etah, 100, pullyl, pullyh, "");
948 
949  sprintf(chisto, "meWPullXvsAlphaZmPanel2");
951  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl, pullxh, "");
952  sprintf(chisto, "meWPullYvsAlphaZmPanel2");
954  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl, pullyh, "");
955  sprintf(chisto, "meWPullXvsBetaZmPanel2");
957  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullxl, pullxh, "");
958  sprintf(chisto, "meWPullYvsBetaZmPanel2");
960  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_neg_betal, pull_forward_neg_betah, 100, pullyl, pullyh, "");
961 
962 
963  sprintf(chisto, "mePosxZpPanel2");
964  mePosxZpPanel2 = ibooker.book1D(chisto, chisto, 100, xl, xh);
965  sprintf(chisto, "mePosyZpPanel2");
966  mePosyZpPanel2 = ibooker.book1D(chisto, chisto, 100, yl, yh);
967  sprintf(chisto, "meErrxZpPanel2");
968  meErrxZpPanel2 = ibooker.book1D(chisto, chisto, 100, errxl, errxh);
969  sprintf(chisto, "meErryZpPanel2");
970  meErryZpPanel2 = ibooker.book1D(chisto, chisto, 100, erryl, erryh);
971  sprintf(chisto, "meResxZpPanel2");
972  meResxZpPanel2 = ibooker.book1D(chisto, chisto, 100, resxl, resxh);
973  sprintf(chisto, "meResyZpPanel2");
974  meResyZpPanel2 = ibooker.book1D(chisto, chisto, 100, resyl, resyh);
975  sprintf(chisto, "mePullxZpPanel2");
976  mePullxZpPanel2 = ibooker.book1D(chisto, chisto, 100, pullxl, pullxh);
977  sprintf(chisto, "mePullyZpPanel2");
978  mePullyZpPanel2 = ibooker.book1D(chisto, chisto, 100, pullyl, pullyh);
979  sprintf(chisto, "meNpixZpPanel2");
980  meNpixZpPanel2 = ibooker.book1D(chisto, chisto, 100, npixl, npixh);
981  sprintf(chisto, "meNxpixZpPanel2");
982  meNxpixZpPanel2 = ibooker.book1D(chisto, chisto, 100, nxpixl, nxpixh);
983  sprintf(chisto, "meNypixZpPanel2");
984  meNypixZpPanel2 = ibooker.book1D(chisto, chisto, 100, nypixl, nypixh);
985  sprintf(chisto, "meChargeZpPanel2");
986  meChargeZpPanel2 = ibooker.book1D(chisto, chisto, 100, forward_chargel, forward_chargeh);
987  sprintf(chisto, "meResXvsAlphaZpPanel2");
988  meResXvsAlphaZpPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resxh, "");
989  sprintf(chisto, "meResYvsAlphaZpPanel2");
990  meResYvsAlphaZpPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_p2_alphal, forward_p2_alphah, 100, 0.0, resyh, "");
991  sprintf(chisto, "meResXvsBetaZpPanel2");
992  meResXvsBetaZpPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resxh, "");
993  sprintf(chisto, "meResYvsBetaZpPanel2");
994  meResYvsBetaZpPanel2 = ibooker.bookProfile(chisto, chisto, 20, forward_pos_betal, forward_pos_betah, 100, 0.0, resyh, "");
995 
996  sprintf(chisto, "mePullXvsAlphaZpPanel2");
998  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl, pullxh, "");
999  sprintf(chisto, "mePullYvsAlphaZpPanel2");
1001  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl, pullyh, "");
1002  sprintf(chisto, "mePullXvsBetaZpPanel2");
1004  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl, pullxh, "");
1005  sprintf(chisto, "mePullYvsBetaZpPanel2");
1007  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl, pullyh, "");
1008  sprintf(chisto, "mePullXvsPhiZpPanel2");
1010  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullxl, pullxh, "");
1011  sprintf(chisto, "mePullYvsPhiZpPanel2");
1013  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_phil, pull_forward_phih, 100, pullyl, pullyh, "");
1014  sprintf(chisto, "mePullXvsEtaZpPanel2");
1016  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullxl, pullxh, "");
1017  sprintf(chisto, "mePullYvsEtaZpPanel2");
1019  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_etal, pull_forward_pos_etah, 100, pullyl, pullyh, "");
1020 
1021  sprintf(chisto, "meWPullXvsAlphaZpPanel2");
1023  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullxl, pullxh, "");
1024  sprintf(chisto, "meWPullYvsAlphaZpPanel2");
1026  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_p2_alphal, pull_forward_p2_alphah, 100, pullyl, pullyh, "");
1027  sprintf(chisto, "meWPullXvsBetaZpPanel2");
1029  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullxl, pullxh, "");
1030  sprintf(chisto, "meWPullYvsBetaZpPanel2");
1032  = ibooker.bookProfile(chisto, chisto, 20, pull_forward_pos_betal, pull_forward_pos_betah, 100, pullyl, pullyh, "");
1033 
1034  // all hits (not only from tracks)
1035  sprintf(chisto, "mePosxBarrel_all_hits");
1036  mePosxBarrel_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1037  sprintf(chisto, "mePosyBarrel_all_hits");
1038  mePosyBarrel_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1039 
1040  sprintf(chisto, "mePosxZmPanel1_all_hits");
1041  mePosxZmPanel1_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1042  sprintf(chisto, "mePosyZmPanel1_all_hits");
1043  mePosyZmPanel1_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1044  sprintf(chisto, "mePosxZmPanel2_all_hits");
1045  mePosxZmPanel2_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1046  sprintf(chisto, "mePosyZmPanel2_all_hits");
1047  mePosyZmPanel2_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1048 
1049  sprintf(chisto, "mePosxZpPanel1_all_hits");
1050  mePosxZpPanel1_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1051  sprintf(chisto, "mePosyZpPanel1_all_hits");
1052  mePosyZpPanel1_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1053  sprintf(chisto, "mePosxZpPanel2_all_hits");
1054  mePosxZpPanel2_all_hits = ibooker.book1D(chisto, chisto, 100, xl, xh);
1055  sprintf(chisto, "mePosyZpPanel2_all_hits");
1056  mePosyZpPanel2_all_hits = ibooker.book1D(chisto, chisto, 100, yl, yh);
1057 
1058  // control histograms
1059  meTracksPerEvent = ibooker.book1D("meTracksPerEvent" , "meTracksPerEvent" , 200, 0.0, 200.0);
1060  mePixRecHitsPerTrack = ibooker.book1D("mePixRecHitsPerTrack", "mePixRecHitsPerTrack", 6, 0.0, 6.0);
1061 
1062 }
1063 
1064 // Virtual destructor needed.
1066 {
1067  //save local root file only in standalone mode
1068  if ( runStandalone && outputFile_.size() != 0 && dbe_ ) dbe_->save(outputFile_);
1069 }
1070 
1071 // Functions that gets called by framework every event
1073 {
1074  //Retrieve tracker topology from geometry
1076  es.get<IdealGeometryRecord>().get(tTopo);
1077 
1078 
1079  run = e.id().run();
1080  evt = e.id().event();
1081 
1082  // if ( evt%1000 == 0 )
1083  //cout << "evt = " << evt << endl;
1084 
1085  float math_pi = 3.14159265;
1086  float radtodeg = 180.0 / math_pi;
1087 
1088  DetId detId;
1089 
1091  LocalError error;
1092  float mindist = 999999.9;
1093 
1094  std::vector<PSimHit> matched;
1095  TrackerHitAssociator associate(e,conf_);
1096 
1098  es.get<TrackerDigiGeometryRecord> ().get (pDD);
1099  const TrackerGeometry* tracker = &(* pDD);
1100 
1101  if ( !MTCCtrack_ )
1102  {
1103  // --------------------------------------- all hits -----------------------------------------------------------
1104  //--- Fetch Pixel RecHits
1106  e.getByToken( siPixelRecHitCollectionToken_, recHitColl );
1107 
1108  //cout <<" ----- Found "
1109  // << const_cast<SiPixelRecHitCollection*>(recHitColl.product())->size()
1110  // << " Pixel RecHits" << std::endl;
1111 
1112  //-----Iterate over detunits
1113  for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++)
1114  {
1115  DetId detId = ((*it)->geographicalId());
1116 
1117  unsigned int subid = detId.subdetId();
1118  if ( !((subid==1) || (subid==2)) )
1119  continue; // end subid if
1120 
1121  SiPixelRecHitCollection::const_iterator match = recHitColl->find(detId);
1122  if (match == recHitColl->end()) continue;
1123 
1124  SiPixelRecHitCollection::DetSet pixelrechitRange = *match;
1125  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorBegin = pixelrechitRange.begin();
1126  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorEnd = pixelrechitRange.end();
1127  SiPixelRecHitCollection::DetSet::const_iterator pixeliter = pixelrechitRangeIteratorBegin;
1128  std::vector<PSimHit> matched;
1129 
1130  //----Loop over rechits for this detId
1131  for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
1132  {
1133  LocalPoint lp = pixeliter->localPosition();
1134  float rechitx = lp.x();
1135  float rechity = lp.y();
1136 
1137  detId = (*it)->geographicalId();
1138  subdetId = (int)detId.subdetId();
1139  if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel )
1140  {
1141  mePosxBarrel_all_hits->Fill( rechitx );
1142  mePosyBarrel_all_hits->Fill( rechity );
1143  }
1144  else if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap )
1145  {
1146 
1147  side = tTopo->pxfSide(detId);
1148  disk = tTopo->pxfDisk(detId);
1149  blade = tTopo->pxfBlade(detId);
1150  panel = tTopo->pxfPanel(detId);
1151  plaq = tTopo->pxfModule(detId); // also known as plaquette
1152 
1153  if ( side==1 )
1154  {
1155  if ( panel==1 )
1156  {
1157  mePosxZmPanel1_all_hits->Fill( rechitx );
1158  mePosyZmPanel1_all_hits->Fill( rechity );
1159  }
1160  else if ( panel==2 )
1161  {
1162  mePosxZmPanel2_all_hits->Fill( rechitx );
1163  mePosyZmPanel2_all_hits->Fill( rechity );
1164  }
1165  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "..............................................Wrong panel number !";
1166  } // if ( side==1 )
1167  else if ( side==2 )
1168  {
1169  if ( panel==1 )
1170  {
1171  mePosxZpPanel1_all_hits->Fill( rechitx );
1172  mePosyZpPanel1_all_hits->Fill( rechity );
1173  }
1174  else if ( panel==2 )
1175  {
1176  mePosxZpPanel2_all_hits->Fill( rechitx );
1177  mePosyZpPanel2_all_hits->Fill( rechity );
1178  }
1179  else edm::LogWarning("SiPixelTrackingRecHitsValid")<< "..............................................Wrong panel number !";
1180  } //else if ( side==2 )
1181  else edm::LogWarning("SiPixelTrackingRecHitsValid") << ".......................................................Wrong side !" ;
1182 
1183  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
1184  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "Pixel rechit collection but we are not in the pixel detector" << (int)detId.subdetId() ;
1185 
1186  }
1187  }
1188  // ------------------------------------------------ all hits ---------------------------------------------------------------
1189 
1190  // Get tracks
1191  edm::Handle<reco::TrackCollection> trackCollection;
1192  e.getByToken( recoTrackCollectionToken_, trackCollection );
1193  const reco::TrackCollection *tracks = trackCollection.product();
1194  reco::TrackCollection::const_iterator tciter;
1195 
1196  int n_tracks = (int)tracks->size(); // number of tracks in this event
1197  meTracksPerEvent->Fill( n_tracks );
1198 
1199  if ( tracks->size() > 0 )
1200  {
1201  // Loop on tracks
1202  for ( tciter=tracks->begin(); tciter!=tracks->end(); tciter++)
1203  {
1204  phi = tciter->momentum().phi() / math_pi*180.0;
1205  eta = tciter->momentum().eta();
1206 
1207  int n_hits = 0;
1208  // First loop on hits: find matched hits
1209  for ( trackingRecHit_iterator it = tciter->recHitsBegin(); it != tciter->recHitsEnd(); it++)
1210  {
1211  const TrackingRecHit &thit = **it;
1212  // Is it a matched hit?
1213  const SiPixelRecHit* matchedhit = dynamic_cast<const SiPixelRecHit*>(&thit);
1214 
1215  if ( matchedhit )
1216  {
1217  ++n_hits;
1218 
1219  layer = -9999;
1220  ladder = -9999;
1221  mod = -9999;
1222  side = -9999;
1223  disk = -9999;
1224  blade = -9999;
1225  panel = -9999;
1226  plaq = -9999;
1227 
1228  rechitx = -9999.9;
1229  rechity = -9999.9;
1230  rechitz = -9999.9;
1231  rechiterrx = -9999.9;
1232  rechiterry = -9999.9;
1233  rechitresx = -9999.9;
1234  rechitresy = -9999.9;
1235  rechitpullx = -9999.9;
1236  rechitpully = -9999.9;
1237 
1238  npix = -9999;
1239  nxpix = -9999;
1240  nypix = -9999;
1241  charge = -9999.9;
1242 
1243  alpha = -9999.9;
1244  beta = -9999.9;
1245 
1246  half = -9999;
1247  flipped = -9999;
1248 
1249  nsimhit = -9999;
1250 
1251  simhitx = -9999.9;
1252  simhity = -9999.9;
1253 
1254  position = (*it)->localPosition();
1255  error = (*it)->localPositionError();
1256 
1257  rechitx = position.x();
1258  rechity = position.y();
1259  rechitz = position.z();
1260  rechiterrx = sqrt(error.xx());
1261  rechiterry = sqrt(error.yy());
1262 
1263  npix = (*matchedhit).cluster()->size();
1264  nxpix = (*matchedhit).cluster()->sizeX();
1265  nypix = (*matchedhit).cluster()->sizeY();
1266  charge = (*matchedhit).cluster()->charge();
1267 
1268  //Association of the rechit to the simhit
1269  matched.clear();
1270  matched = associate.associateHit(*matchedhit);
1271 
1272  nsimhit = (int)matched.size();
1273 
1274  if ( !matched.empty() )
1275  {
1276  mindist = 999999.9;
1277  float distx, disty, dist;
1278  bool found_hit_from_generated_particle = false;
1279 
1280  int n_assoc_muon = 0;
1281 
1282  std::vector<PSimHit>::const_iterator closestit = matched.begin();
1283  for (std::vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); m++)
1284  {
1285  if ( checkType_ )
1286  {
1287  int pid = (*m).particleType();
1288  if ( abs(pid) != genType_ )
1289  continue;
1290 
1291  }
1292 
1293  float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
1294  float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
1295 
1296  distx = fabs(rechitx - simhitx);
1297  disty = fabs(rechity - simhity);
1298  dist = sqrt( distx*distx + disty*disty );
1299 
1300  if ( dist < mindist )
1301  {
1302  n_assoc_muon++;
1303 
1304  mindist = dist;
1305  closestit = m;
1306  found_hit_from_generated_particle = true;
1307  }
1308  } // for (std::vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); m++)
1309 
1310  // This recHit does not have any simHit with the same particleType as the particles generated
1311  // Ignore it as most probably come from delta rays.
1312  if ( checkType_ && !found_hit_from_generated_particle )
1313  continue;
1314 
1315  if ( n_assoc_muon > 1 )
1316  {
1317  edm::LogWarning("SiPixelTrackingRecHitsValid") << " ----- This is not good: n_assoc_muon = " << n_assoc_muon ;
1318  edm::LogWarning("SiPixelTrackingRecHitsValid") << "evt = " << evt ;
1319  }
1320 
1321  pidhit = (*closestit).particleType();
1322 
1323  simhitx = 0.5*( (*closestit).entryPoint().x() + (*closestit).exitPoint().x() );
1324  simhity = 0.5*( (*closestit).entryPoint().y() + (*closestit).exitPoint().y() );
1325 
1328  rechitpullx = ( rechitx - simhitx ) / sqrt(error.xx());
1329  rechitpully = ( rechity - simhity ) / sqrt(error.yy());
1330 
1331  float simhitpx = (*closestit).momentumAtEntry().x();
1332  float simhitpy = (*closestit).momentumAtEntry().y();
1333  float simhitpz = (*closestit).momentumAtEntry().z();
1334 
1335  //beta = atan2(simhitpz, simhitpy) * radtodeg;
1336  //alpha = atan2(simhitpz, simhitpx) * radtodeg;
1337 
1338  beta = fabs(atan2(simhitpz, simhitpy)) * radtodeg;
1339  alpha = fabs(atan2(simhitpz, simhitpx)) * radtodeg;
1340 
1341  detId = (*it)->geographicalId();
1342 
1343  subdetId = (int)detId.subdetId();
1344 
1345  if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel )
1346  {
1350  meErryBarrel->Fill( rechiterry );
1355  meNpixBarrel->Fill( npix );
1356  meNxpixBarrel->Fill( nxpix );
1357  meNypixBarrel->Fill( nypix );
1371 
1372  const PixelGeomDetUnit * theGeomDet
1373  = dynamic_cast<const PixelGeomDetUnit*> ( tracker->idToDet(detId) );
1374  //const PixelTopology * topol = (&(theGeomDet->specificTopology()));
1375 
1376  int tmp_nrows = theGeomDet->specificTopology().nrows();
1377 
1378  if ( tmp_nrows == 80 )
1379  {
1382  half = 1;
1383  }
1384  else if ( tmp_nrows == 160 )
1385  {
1388  half = 0;
1389  }
1390  else
1391  edm::LogWarning("SiPixelTrackingRecHitsValid") << "-------------------------------------------------- Wrong module size !!!";
1392 
1393  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp();
1394  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp();
1395 
1396  if ( tmp2<tmp1 )
1397  { // flipped
1400  flipped = 1;
1401 
1414 
1419  }
1420  else
1421  { // not flipped
1424  flipped = 0;
1425 
1438 
1443  }
1444 
1445 
1446  layer = tTopo->pxbLayer(detId); // Layer: 1,2,3.
1447  ladder = tTopo->pxbLadder(detId); // Ladder: 1-20, 32, 44.
1448  mod = tTopo->pxbModule(detId); // Mod: 1-8.
1449 
1453  meErryBarrelLayerModule[layer-1][mod-1]->Fill( rechiterry );
1458  meNpixBarrelLayerModule[layer-1][mod-1]->Fill( npix );
1474 
1479 
1480  if ( tmp2<tmp1 )
1481  { // flipped
1486  }
1487  else
1488  { // not flipped
1493  }
1494 
1495  }
1496  else if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap )
1497  {
1498 
1499  side = tTopo->pxfSide(detId);
1500  disk = tTopo->pxfDisk(detId);
1501  blade = tTopo->pxfBlade(detId);
1502  panel = tTopo->pxfPanel(detId);
1503  plaq = tTopo->pxfModule(detId); // also known as plaquette
1504 
1505  if ( side==1 )
1506  {
1507  if ( panel==1 )
1508  {
1512  meErryZmPanel1->Fill( rechiterry );
1517  meNpixZmPanel1->Fill( npix );
1533 
1538 
1542  meErryZmPanel1DiskPlaq[disk-1][plaq-1]->Fill( rechiterry );
1547  meNpixZmPanel1DiskPlaq[disk-1][plaq-1]->Fill( npix );
1563 
1564  }
1565  else if ( panel==2 )
1566  {
1570  meErryZmPanel2->Fill( rechiterry );
1575  meNpixZmPanel2->Fill( npix );
1591 
1596 
1600  meErryZmPanel2DiskPlaq[disk-1][plaq-1]->Fill( rechiterry );
1605  meNpixZmPanel2DiskPlaq[disk-1][plaq-1]->Fill( npix );
1621 
1622  }
1623  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "..............................................Wrong panel number !";
1624  } // if ( side==1 )
1625  else if ( side==2 )
1626  {
1627  if ( panel==1 )
1628  {
1632  meErryZpPanel1->Fill( rechiterry );
1637  meNpixZpPanel1->Fill( npix );
1653 
1658 
1662  meErryZpPanel1DiskPlaq[disk-1][plaq-1]->Fill( rechiterry );
1667  meNpixZpPanel1DiskPlaq[disk-1][plaq-1]->Fill( npix );
1683 
1684  }
1685  else if ( panel==2 )
1686  {
1690  meErryZpPanel2->Fill( rechiterry );
1695  meNpixZpPanel2->Fill( npix );
1711 
1716 
1720  meErryZpPanel2DiskPlaq[disk-1][plaq-1]->Fill( rechiterry );
1725  meNpixZpPanel2DiskPlaq[disk-1][plaq-1]->Fill( npix );
1741 
1742  }
1743  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "..............................................Wrong panel number !";
1744  } //else if ( side==2 )
1745  else edm::LogWarning("SiPixelTrackingRecHitsValid") << ".......................................................Wrong side !" ;
1746 
1747  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
1748  else edm::LogWarning("SiPixelTrackingRecHitsValid") << "Pixel rechit but we are not in the pixel detector" << (int)detId.subdetId() ;
1749 
1750  if(debugNtuple_.size()!=0)t_->Fill();
1751 
1752  } // if ( !matched.empty() )
1753  //else
1754  //cout << "---------------- RecHit with no associated SimHit !!! -------------------------- " << endl;
1755 
1756  } // matchedhit.
1757 
1758  } // end of loop on hits
1759 
1760  mePixRecHitsPerTrack->Fill( n_hits );
1761  //cout << "n_hits = " << n_hits << endl;
1762 
1763  } //end of loop on track
1764 
1765  } // tracks > 0.
1766 
1767  } //end of MTCCTrack
1768 
1769 }
RunNumber_t run() const
Definition: EventID.h:42
MonitorElement * meWPullXvsAlphaBarrelNonFlippedLadders
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:114
edm::EDGetTokenT< SiPixelRecHitCollection > siPixelRecHitCollectionToken_
T getParameter(std::string const &) const
EventNumber_t event() const
Definition: EventID.h:44
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]
int i
Definition: DBlmapReader.cc:9
MonitorElement * meErryZpPanel2DiskPlaq[2][3]
MonitorElement * meResyZpPanel1DiskPlaq[2][4]
float xx() const
Definition: LocalError.h:24
MonitorElement * mePullxZpPanel2DiskPlaq[2][3]
MonitorElement * mePullXvsBetaBarrelLayerModule[3][8]
MonitorElement * meResyZmPanel2DiskPlaq[2][3]
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
MonitorElement * mePullXvsAlphaZmPanel1DiskPlaq[2][4]
MonitorElement * meResYvsAlphaBarrelNonFlippedLaddersLayer[3]
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:155
MonitorElement * meWPullXvsBetaBarrelNonFlippedLadders
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
MonitorElement * meResYvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsEtaZmPanel2DiskPlaq[2][3]
MonitorElement * meErrxZmPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaBarrelNonFlippedLaddersLayer[3]
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]
MonitorElement * mePullXvsPhiZmPanel1DiskPlaq[2][4]
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:10
T y() const
Definition: PV3DBase.h:63
MonitorElement * meResXvsBetaBarrelFlippedLaddersLayer[3]
MonitorElement * mePullyZmPanel1DiskPlaq[2][4]
MonitorElement * meErrxBarrelLayerModule[3][8]
MonitorElement * meErryZmPanel2DiskPlaq[2][3]
virtual int nrows() const =0
MonitorElement * mePosxZmPanel2DiskPlaq[2][3]
MonitorElement * meChargeZpPanel2DiskPlaq[2][3]
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]
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:35
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]
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]
T sqrt(T t)
Definition: SSEVec.h:48
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:113
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
MonitorElement * mePosxZpPanel2DiskPlaq[2][3]
int j
Definition: DBlmapReader.cc:9
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]
virtual const GeomDet * idToDet(DetId) const
MonitorElement * meErrxZmPanel2DiskPlaq[2][3]
MonitorElement * meNypixZmPanel1DiskPlaq[2][4]
DQMStore * dbe_
MonitorElement * mePullXvsEtaZmPanel1DiskPlaq[2][4]
MonitorElement * meErrxZpPanel1DiskPlaq[2][4]
MonitorElement * meErryZpPanel1DiskPlaq[2][4]
MonitorElement * meResXvsBetaZpPanel2DiskPlaq[2][3]
MonitorElement * meResXvsBetaZpPanel1DiskPlaq[2][4]
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:274
MonitorElement * mePullYvsBetaZmPanel1DiskPlaq[2][4]
MonitorElement * mePullXvsEtaBarrelLayerModule[3][8]
MonitorElement * mePullXvsBetaZmPanel2DiskPlaq[2][3]
tuple tracks
Definition: testEve_cfg.py:39
MonitorElement * mePullXvsAlphaZpPanel2DiskPlaq[2][3]
MonitorElement * meResYvsBetaBarrelLayerModule[3][8]
const T & get() const
Definition: EventSetup.h:55
MonitorElement * mePullXvsAlphaBarrelNonFlippedLadders
tuple pid
Definition: sysUtil.py:22
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]
T const * product() const
Definition: Handle.h:81
MonitorElement * mePullYvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * meChargeBarrelLayerModule[3][8]
MonitorElement * meResXvsAlphaZpPanel1DiskPlaq[2][4]
MonitorElement * mePullYvsBetaZpPanel2DiskPlaq[2][3]
edm::EventID id() const
Definition: EventBase.h:56
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:2540
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]
MonitorElement * mePullXvsEtaZmPanel2DiskPlaq[2][3]
MonitorElement * meResYvsAlphaBarrelLayerModule[3][8]
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:6
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]
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]
Definition: Run.h:41
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]