CMS 3D CMS Logo

SiPixelErrorEstimation.cc
Go to the documentation of this file.
1 // Package: SiPixelErrorEstimation
2 // Class: SiPixelErrorEstimation
3 // Original Author: Gavril Giurgiu (JHU)
4 // Created: Fri May 4 17:48:24 CDT 2007
5 
6 #include <iostream>
8 
11 
15 
21 
23 
25 
28 
31 
32 using namespace std;
33 using namespace edm;
34 
36  : tfile_(nullptr),
37  ttree_all_hits_(nullptr),
38  ttree_track_hits_(nullptr),
39  ttree_track_hits_strip_(nullptr),
40  trackerHitAssociatorConfig_(consumesCollector()) {
41  //Read config file
42  outputFile_ = ps.getUntrackedParameter<string>("outputFile", "SiPixelErrorEstimation_Ntuple.root");
43 
44  // Replace "ctfWithMaterialTracks" with "generalTracks"
45  //src_ = ps.getUntrackedParameter<std::string>( "src", "ctfWithMaterialTracks" );
46  src_ = ps.getUntrackedParameter<std::string>("src", "generalTracks");
47 
48  checkType_ = ps.getParameter<bool>("checkType");
49  genType_ = ps.getParameter<int>("genType");
50  include_trk_hits_ = ps.getParameter<bool>("include_trk_hits");
51 
52  tTrajectory = consumes<std::vector<Trajectory>>(src_);
53  tPixRecHitCollection = consumes<SiPixelRecHitCollection>(edm::InputTag("siPixelRecHits"));
54  tSimTrackContainer = consumes<edm::SimTrackContainer>(edm::InputTag("g4SimHits"));
55  tTrackCollection = consumes<reco::TrackCollection>(src_);
56 }
57 
59 
61  int bufsize = 64000;
62 
63  tfile_ = new TFile(outputFile_.c_str(), "RECREATE");
64 
65  ttree_track_hits_strip_ = new TTree("TrackHitNtupleStrip", "TrackHitNtupleStrip");
66 
67  ttree_track_hits_strip_->Branch("strip_rechitx", &strip_rechitx, "strip_rechitx/F", bufsize);
68  ttree_track_hits_strip_->Branch("strip_rechity", &strip_rechity, "strip_rechity/F", bufsize);
69  ttree_track_hits_strip_->Branch("strip_rechitz", &strip_rechitz, "strip_rechitz/F", bufsize);
70 
71  ttree_track_hits_strip_->Branch("strip_rechiterrx", &strip_rechiterrx, "strip_rechiterrx/F", bufsize);
72  ttree_track_hits_strip_->Branch("strip_rechiterry", &strip_rechiterry, "strip_rechiterry/F", bufsize);
73 
74  ttree_track_hits_strip_->Branch("strip_rechitresx", &strip_rechitresx, "strip_rechitresx/F", bufsize);
75 
76  ttree_track_hits_strip_->Branch("strip_rechitresx2", &strip_rechitresx2, "strip_rechitresx2/F", bufsize);
77 
78  ttree_track_hits_strip_->Branch("strip_rechitresy", &strip_rechitresy, "strip_rechitresy/F", bufsize);
79 
80  ttree_track_hits_strip_->Branch("strip_rechitpullx", &strip_rechitpullx, "strip_rechitpullx/F", bufsize);
81  ttree_track_hits_strip_->Branch("strip_rechitpully", &strip_rechitpully, "strip_rechitpully/F", bufsize);
82 
83  ttree_track_hits_strip_->Branch("strip_is_stereo", &strip_is_stereo, "strip_is_stereo/I", bufsize);
84  ttree_track_hits_strip_->Branch("strip_hit_type", &strip_hit_type, "strip_hit_type/I", bufsize);
85  ttree_track_hits_strip_->Branch("detector_type", &detector_type, "detector_type/I", bufsize);
86 
87  ttree_track_hits_strip_->Branch("strip_trk_pt", &strip_trk_pt, "strip_trk_pt/F", bufsize);
88  ttree_track_hits_strip_->Branch("strip_cotalpha", &strip_cotalpha, "strip_cotalpha/F", bufsize);
89  ttree_track_hits_strip_->Branch("strip_cotbeta", &strip_cotbeta, "strip_cotbeta/F", bufsize);
90  ttree_track_hits_strip_->Branch("strip_locbx", &strip_locbx, "strip_locbx/F", bufsize);
91  ttree_track_hits_strip_->Branch("strip_locby", &strip_locby, "strip_locby/F", bufsize);
92  ttree_track_hits_strip_->Branch("strip_locbz", &strip_locbz, "strip_locbz/F", bufsize);
93  ttree_track_hits_strip_->Branch("strip_charge", &strip_charge, "strip_charge/F", bufsize);
94  ttree_track_hits_strip_->Branch("strip_size", &strip_size, "strip_size/I", bufsize);
95 
96  ttree_track_hits_strip_->Branch("strip_edge", &strip_edge, "strip_edge/I", bufsize);
97  ttree_track_hits_strip_->Branch("strip_nsimhit", &strip_nsimhit, "strip_nsimhit/I", bufsize);
98  ttree_track_hits_strip_->Branch("strip_pidhit", &strip_pidhit, "strip_pidhit/I", bufsize);
99  ttree_track_hits_strip_->Branch("strip_simproc", &strip_simproc, "strip_simproc/I", bufsize);
100 
101  ttree_track_hits_strip_->Branch("strip_subdet_id", &strip_subdet_id, "strip_subdet_id/I", bufsize);
102 
103  ttree_track_hits_strip_->Branch("strip_tib_layer", &strip_tib_layer, "strip_tib_layer/I", bufsize);
104  ttree_track_hits_strip_->Branch("strip_tib_module", &strip_tib_module, "strip_tib_module/I", bufsize);
105  ttree_track_hits_strip_->Branch("strip_tib_order", &strip_tib_order, "strip_tib_order/I", bufsize);
106  ttree_track_hits_strip_->Branch("strip_tib_side", &strip_tib_side, "strip_tib_side/I", bufsize);
107  ttree_track_hits_strip_->Branch(
108  "strip_tib_is_double_side", &strip_tib_is_double_side, "strip_tib_is_double_side/I", bufsize);
109  ttree_track_hits_strip_->Branch(
110  "strip_tib_is_z_plus_side", &strip_tib_is_z_plus_side, "strip_tib_is_z_plus_side/I", bufsize);
111  ttree_track_hits_strip_->Branch(
112  "strip_tib_is_z_minus_side", &strip_tib_is_z_minus_side, "strip_tib_is_z_minus_side/I", bufsize);
113  ttree_track_hits_strip_->Branch(
114  "strip_tib_layer_number", &strip_tib_layer_number, "strip_tib_layer_number/I", bufsize);
115  ttree_track_hits_strip_->Branch(
116  "strip_tib_string_number", &strip_tib_string_number, "strip_tib_string_number/I", bufsize);
117  ttree_track_hits_strip_->Branch(
118  "strip_tib_module_number", &strip_tib_module_number, "strip_tib_module_number/I", bufsize);
119  ttree_track_hits_strip_->Branch(
120  "strip_tib_is_internal_string", &strip_tib_is_internal_string, "strip_tib_is_internal_string/I", bufsize);
121  ttree_track_hits_strip_->Branch(
122  "strip_tib_is_external_string", &strip_tib_is_external_string, "strip_tib_is_external_string/I", bufsize);
123  ttree_track_hits_strip_->Branch("strip_tib_is_rphi", &strip_tib_is_rphi, "strip_tib_is_rphi/I", bufsize);
124  ttree_track_hits_strip_->Branch("strip_tib_is_stereo", &strip_tib_is_stereo, "strip_tib_is_stereo/I", bufsize);
125  ttree_track_hits_strip_->Branch("strip_tob_layer", &strip_tob_layer, "strip_tob_layer/I", bufsize);
126  ttree_track_hits_strip_->Branch("strip_tob_module", &strip_tob_module, "strip_tob_module/I", bufsize);
127  ttree_track_hits_strip_->Branch("strip_tob_side", &strip_tob_side, "strip_tob_side/I", bufsize);
128  ttree_track_hits_strip_->Branch(
129  "strip_tob_is_double_side", &strip_tob_is_double_side, "strip_tob_is_double_side/I", bufsize);
130  ttree_track_hits_strip_->Branch(
131  "strip_tob_is_z_plus_side", &strip_tob_is_z_plus_side, "strip_tob_is_z_plus_side/I", bufsize);
132  ttree_track_hits_strip_->Branch(
133  "strip_tob_is_z_minus_side", &strip_tob_is_z_minus_side, "strip_tob_is_z_minus_side/I", bufsize);
134  ttree_track_hits_strip_->Branch(
135  "strip_tob_layer_number", &strip_tob_layer_number, "strip_tob_layer_number/I", bufsize);
136  ttree_track_hits_strip_->Branch("strip_tob_rod_number", &strip_tob_rod_number, "strip_tob_rod_number/I", bufsize);
137  ttree_track_hits_strip_->Branch(
138  "strip_tob_module_number", &strip_tob_module_number, "strip_tob_module_number/I", bufsize);
139 
140  ttree_track_hits_strip_->Branch("strip_prob", &strip_prob, "strip_prob/F", bufsize);
141  ttree_track_hits_strip_->Branch("strip_qbin", &strip_qbin, "strip_qbin/I", bufsize);
142 
143  ttree_track_hits_strip_->Branch("strip_nprm", &strip_nprm, "strip_nprm/I", bufsize);
144 
145  ttree_track_hits_strip_->Branch("strip_pidhit1", &strip_pidhit1, "strip_pidhit1/I", bufsize);
146  ttree_track_hits_strip_->Branch("strip_simproc1", &strip_simproc1, "strip_simproc1/I", bufsize);
147 
148  ttree_track_hits_strip_->Branch("strip_pidhit2", &strip_pidhit2, "strip_pidhit2/I", bufsize);
149  ttree_track_hits_strip_->Branch("strip_simproc2", &strip_simproc2, "strip_simproc2/I", bufsize);
150 
151  ttree_track_hits_strip_->Branch("strip_pidhit3", &strip_pidhit3, "strip_pidhit3/I", bufsize);
152  ttree_track_hits_strip_->Branch("strip_simproc3", &strip_simproc3, "strip_simproc3/I", bufsize);
153 
154  ttree_track_hits_strip_->Branch("strip_pidhit4", &strip_pidhit4, "strip_pidhit4/I", bufsize);
155  ttree_track_hits_strip_->Branch("strip_simproc4", &strip_simproc4, "strip_simproc4/I", bufsize);
156 
157  ttree_track_hits_strip_->Branch("strip_pidhit5", &strip_pidhit5, "strip_pidhit5/I", bufsize);
158  ttree_track_hits_strip_->Branch("strip_simproc5", &strip_simproc5, "strip_simproc5/I", bufsize);
159 
160  ttree_track_hits_strip_->Branch("strip_split", &strip_split, "strip_split/I", bufsize);
161 
162  ttree_track_hits_strip_->Branch("strip_clst_err_x", &strip_clst_err_x, "strip_clst_err_x/F", bufsize);
163  ttree_track_hits_strip_->Branch("strip_clst_err_y", &strip_clst_err_y, "strip_clst_err_y/F", bufsize);
164 
165  if (include_trk_hits_) {
166  //tfile_ = new TFile ("SiPixelErrorEstimation_Ntuple.root" , "RECREATE");
167  //const char* tmp_name = outputFile_.c_str();
168 
169  ttree_track_hits_ = new TTree("TrackHitNtuple", "TrackHitNtuple");
170 
171  ttree_track_hits_->Branch("evt", &evt, "evt/I", bufsize);
172  ttree_track_hits_->Branch("run", &run, "run/I", bufsize);
173 
174  ttree_track_hits_->Branch("subdetId", &subdetId, "subdetId/I", bufsize);
175 
176  ttree_track_hits_->Branch("layer", &layer, "layer/I", bufsize);
177  ttree_track_hits_->Branch("ladder", &ladder, "ladder/I", bufsize);
178  ttree_track_hits_->Branch("mod", &mod, "mod/I", bufsize);
179 
180  ttree_track_hits_->Branch("side", &side, "side/I", bufsize);
181  ttree_track_hits_->Branch("disk", &disk, "disk/I", bufsize);
182  ttree_track_hits_->Branch("blade", &blade, "blade/I", bufsize);
183  ttree_track_hits_->Branch("panel", &panel, "panel/I", bufsize);
184  ttree_track_hits_->Branch("plaq", &plaq, "plaq/I", bufsize);
185 
186  ttree_track_hits_->Branch("half", &half, "half/I", bufsize);
187  ttree_track_hits_->Branch("flipped", &flipped, "flipped/I", bufsize);
188 
189  ttree_track_hits_->Branch("rechitx", &rechitx, "rechitx/F", bufsize);
190  ttree_track_hits_->Branch("rechity", &rechity, "rechity/F", bufsize);
191  ttree_track_hits_->Branch("rechitz", &rechitz, "rechitz/F", bufsize);
192 
193  ttree_track_hits_->Branch("rechiterrx", &rechiterrx, "rechiterrx/F", bufsize);
194  ttree_track_hits_->Branch("rechiterry", &rechiterry, "rechiterry/F", bufsize);
195 
196  ttree_track_hits_->Branch("rechitresx", &rechitresx, "rechitresx/F", bufsize);
197  ttree_track_hits_->Branch("rechitresy", &rechitresy, "rechitresy/F", bufsize);
198 
199  ttree_track_hits_->Branch("rechitpullx", &rechitpullx, "rechitpullx/F", bufsize);
200  ttree_track_hits_->Branch("rechitpully", &rechitpully, "rechitpully/F", bufsize);
201 
202  ttree_track_hits_->Branch("npix", &npix, "npix/I", bufsize);
203  ttree_track_hits_->Branch("nxpix", &nxpix, "nxpix/I", bufsize);
204  ttree_track_hits_->Branch("nypix", &nypix, "nypix/I", bufsize);
205  ttree_track_hits_->Branch("charge", &charge, "charge/F", bufsize);
206 
207  ttree_track_hits_->Branch("edgex", &edgex, "edgex/I", bufsize);
208  ttree_track_hits_->Branch("edgey", &edgey, "edgey/I", bufsize);
209 
210  ttree_track_hits_->Branch("bigx", &bigx, "bigx/I", bufsize);
211  ttree_track_hits_->Branch("bigy", &bigy, "bigy/I", bufsize);
212 
213  ttree_track_hits_->Branch("alpha", &alpha, "alpha/F", bufsize);
214  ttree_track_hits_->Branch("beta", &beta, "beta/F", bufsize);
215 
216  ttree_track_hits_->Branch("trk_alpha", &trk_alpha, "trk_alpha/F", bufsize);
217  ttree_track_hits_->Branch("trk_beta", &trk_beta, "trk_beta/F", bufsize);
218 
219  ttree_track_hits_->Branch("phi", &phi, "phi/F", bufsize);
220  ttree_track_hits_->Branch("eta", &eta, "eta/F", bufsize);
221 
222  ttree_track_hits_->Branch("simhitx", &simhitx, "simhitx/F", bufsize);
223  ttree_track_hits_->Branch("simhity", &simhity, "simhity/F", bufsize);
224 
225  ttree_track_hits_->Branch("nsimhit", &nsimhit, "nsimhit/I", bufsize);
226  ttree_track_hits_->Branch("pidhit", &pidhit, "pidhit/I", bufsize);
227  ttree_track_hits_->Branch("simproc", &simproc, "simproc/I", bufsize);
228 
229  ttree_track_hits_->Branch("pixel_split", &pixel_split, "pixel_split/I", bufsize);
230 
231  ttree_track_hits_->Branch("pixel_clst_err_x", &pixel_clst_err_x, "pixel_clst_err_x/F", bufsize);
232  ttree_track_hits_->Branch("pixel_clst_err_y", &pixel_clst_err_y, "pixel_clst_err_y/F", bufsize);
233 
234  } // if ( include_trk_hits_ )
235 
236  // ----------------------------------------------------------------------
237 
238  ttree_all_hits_ = new TTree("AllHitNtuple", "AllHitNtuple");
239 
240  ttree_all_hits_->Branch("evt", &evt, "evt/I", bufsize);
241  ttree_all_hits_->Branch("run", &run, "run/I", bufsize);
242 
243  ttree_all_hits_->Branch("subdetid", &all_subdetid, "subdetid/I", bufsize);
244 
245  ttree_all_hits_->Branch("layer", &all_layer, "layer/I", bufsize);
246  ttree_all_hits_->Branch("ladder", &all_ladder, "ladder/I", bufsize);
247  ttree_all_hits_->Branch("mod", &all_mod, "mod/I", bufsize);
248 
249  ttree_all_hits_->Branch("side", &all_side, "side/I", bufsize);
250  ttree_all_hits_->Branch("disk", &all_disk, "disk/I", bufsize);
251  ttree_all_hits_->Branch("blade", &all_blade, "blade/I", bufsize);
252  ttree_all_hits_->Branch("panel", &all_panel, "panel/I", bufsize);
253  ttree_all_hits_->Branch("plaq", &all_plaq, "plaq/I", bufsize);
254 
255  ttree_all_hits_->Branch("half", &all_half, "half/I", bufsize);
256  ttree_all_hits_->Branch("flipped", &all_flipped, "flipped/I", bufsize);
257 
258  ttree_all_hits_->Branch("cols", &all_cols, "cols/I", bufsize);
259  ttree_all_hits_->Branch("rows", &all_rows, "rows/I", bufsize);
260 
261  ttree_all_hits_->Branch("rechitx", &all_rechitx, "rechitx/F", bufsize);
262  ttree_all_hits_->Branch("rechity", &all_rechity, "rechity/F", bufsize);
263  ttree_all_hits_->Branch("rechitz", &all_rechitz, "rechitz/F", bufsize);
264 
265  ttree_all_hits_->Branch("rechiterrx", &all_rechiterrx, "rechiterrx/F", bufsize);
266  ttree_all_hits_->Branch("rechiterry", &all_rechiterry, "rechiterry/F", bufsize);
267 
268  ttree_all_hits_->Branch("rechitresx", &all_rechitresx, "rechitresx/F", bufsize);
269  ttree_all_hits_->Branch("rechitresy", &all_rechitresy, "rechitresy/F", bufsize);
270 
271  ttree_all_hits_->Branch("rechitpullx", &all_rechitpullx, "rechitpullx/F", bufsize);
272  ttree_all_hits_->Branch("rechitpully", &all_rechitpully, "rechitpully/F", bufsize);
273 
274  ttree_all_hits_->Branch("npix", &all_npix, "npix/I", bufsize);
275  ttree_all_hits_->Branch("nxpix", &all_nxpix, "nxpix/I", bufsize);
276  ttree_all_hits_->Branch("nypix", &all_nypix, "nypix/I", bufsize);
277 
278  ttree_all_hits_->Branch("edgex", &all_edgex, "edgex/I", bufsize);
279  ttree_all_hits_->Branch("edgey", &all_edgey, "edgey/I", bufsize);
280 
281  ttree_all_hits_->Branch("bigx", &all_bigx, "bigx/I", bufsize);
282  ttree_all_hits_->Branch("bigy", &all_bigy, "bigy/I", bufsize);
283 
284  ttree_all_hits_->Branch("alpha", &all_alpha, "alpha/F", bufsize);
285  ttree_all_hits_->Branch("beta", &all_beta, "beta/F", bufsize);
286 
287  ttree_all_hits_->Branch("simhitx", &all_simhitx, "simhitx/F", bufsize);
288  ttree_all_hits_->Branch("simhity", &all_simhity, "simhity/F", bufsize);
289 
290  ttree_all_hits_->Branch("nsimhit", &all_nsimhit, "nsimhit/I", bufsize);
291  ttree_all_hits_->Branch("pidhit", &all_pidhit, "pidhit/I", bufsize);
292  ttree_all_hits_->Branch("simproc", &all_simproc, "simproc/I", bufsize);
293 
294  ttree_all_hits_->Branch("vtxr", &all_vtxr, "vtxr/F", bufsize);
295  ttree_all_hits_->Branch("vtxz", &all_vtxz, "vtxz/F", bufsize);
296 
297  ttree_all_hits_->Branch("simpx", &all_simpx, "simpx/F", bufsize);
298  ttree_all_hits_->Branch("simpy", &all_simpy, "simpy/F", bufsize);
299  ttree_all_hits_->Branch("simpz", &all_simpz, "simpz/F", bufsize);
300 
301  ttree_all_hits_->Branch("eloss", &all_eloss, "eloss/F", bufsize);
302 
303  ttree_all_hits_->Branch("simphi", &all_simphi, "simphi/F", bufsize);
304  ttree_all_hits_->Branch("simtheta", &all_simtheta, "simtheta/F", bufsize);
305 
306  ttree_all_hits_->Branch("trkid", &all_trkid, "trkid/I", bufsize);
307 
308  ttree_all_hits_->Branch("x1", &all_x1, "x1/F", bufsize);
309  ttree_all_hits_->Branch("x2", &all_x2, "x2/F", bufsize);
310  ttree_all_hits_->Branch("y1", &all_x1, "y1/F", bufsize);
311  ttree_all_hits_->Branch("y2", &all_x2, "y2/F", bufsize);
312  ttree_all_hits_->Branch("z1", &all_x1, "z1/F", bufsize);
313  ttree_all_hits_->Branch("z2", &all_x2, "z2/F", bufsize);
314 
315  ttree_all_hits_->Branch("row1", &all_row1, "row1/F", bufsize);
316  ttree_all_hits_->Branch("row2", &all_row2, "row2/F", bufsize);
317  ttree_all_hits_->Branch("col1", &all_col1, "col1/F", bufsize);
318  ttree_all_hits_->Branch("col2", &all_col2, "col2/F", bufsize);
319 
320  ttree_all_hits_->Branch("gx1", &all_gx1, "gx1/F", bufsize);
321  ttree_all_hits_->Branch("gx2", &all_gx2, "gx2/F", bufsize);
322  ttree_all_hits_->Branch("gy1", &all_gx1, "gy1/F", bufsize);
323  ttree_all_hits_->Branch("gy2", &all_gx2, "gy2/F", bufsize);
324  ttree_all_hits_->Branch("gz1", &all_gx1, "gz1/F", bufsize);
325  ttree_all_hits_->Branch("gz2", &all_gx2, "gz2/F", bufsize);
326 
327  ttree_all_hits_->Branch("simtrketa", &all_simtrketa, "simtrketa/F", bufsize);
328  ttree_all_hits_->Branch("simtrkphi", &all_simtrkphi, "simtrkphi/F", bufsize);
329 
330  ttree_all_hits_->Branch("clust_row", &all_clust_row, "clust_row/F", bufsize);
331  ttree_all_hits_->Branch("clust_col", &all_clust_col, "clust_col/F", bufsize);
332 
333  ttree_all_hits_->Branch("clust_x", &all_clust_x, "clust_x/F", bufsize);
334  ttree_all_hits_->Branch("clust_y", &all_clust_y, "clust_y/F", bufsize);
335 
336  ttree_all_hits_->Branch("clust_q", &all_clust_q, "clust_q/F", bufsize);
337 
338  ttree_all_hits_->Branch("clust_maxpixcol", &all_clust_maxpixcol, "clust_maxpixcol/I", bufsize);
339  ttree_all_hits_->Branch("clust_maxpixrow", &all_clust_maxpixrow, "clust_maxpixrow/I", bufsize);
340  ttree_all_hits_->Branch("clust_minpixcol", &all_clust_minpixcol, "clust_minpixcol/I", bufsize);
341  ttree_all_hits_->Branch("clust_minpixrow", &all_clust_minpixrow, "clust_minpixrow/I", bufsize);
342 
343  ttree_all_hits_->Branch("clust_geoid", &all_clust_geoid, "clust_geoid/I", bufsize);
344 
345  ttree_all_hits_->Branch("clust_alpha", &all_clust_alpha, "clust_alpha/F", bufsize);
346  ttree_all_hits_->Branch("clust_beta", &all_clust_beta, "clust_beta/F", bufsize);
347 
348  ttree_all_hits_->Branch("rowpix", all_pixrow, "row[npix]/F", bufsize);
349  ttree_all_hits_->Branch("colpix", all_pixcol, "col[npix]/F", bufsize);
350  ttree_all_hits_->Branch("adc", all_pixadc, "adc[npix]/F", bufsize);
351  ttree_all_hits_->Branch("xpix", all_pixx, "x[npix]/F", bufsize);
352  ttree_all_hits_->Branch("ypix", all_pixy, "y[npix]/F", bufsize);
353  ttree_all_hits_->Branch("gxpix", all_pixgx, "gx[npix]/F", bufsize);
354  ttree_all_hits_->Branch("gypix", all_pixgy, "gy[npix]/F", bufsize);
355  ttree_all_hits_->Branch("gzpix", all_pixgz, "gz[npix]/F", bufsize);
356 
357  ttree_all_hits_->Branch("hit_probx", &all_hit_probx, "hit_probx/F", bufsize);
358  ttree_all_hits_->Branch("hit_proby", &all_hit_proby, "hit_proby/F", bufsize);
359 
360  ttree_all_hits_->Branch("all_pixel_split", &all_pixel_split, "all_pixel_split/I", bufsize);
361 
362  ttree_all_hits_->Branch("all_pixel_clst_err_x", &all_pixel_clst_err_x, "all_pixel_clst_err_x/F", bufsize);
363  ttree_all_hits_->Branch("all_pixel_clst_err_y", &all_pixel_clst_err_y, "all_pixel_clst_err_y/F", bufsize);
364 }
365 
367  tfile_->Write();
368  tfile_->Close();
369 }
370 
372  //Retrieve tracker topology from geometry
373  edm::ESHandle<TrackerTopology> tTopoHandle;
374  es.get<TrackerTopologyRcd>().get(tTopoHandle);
375  const TrackerTopology* const tTopo = tTopoHandle.product();
376 
377  using namespace edm;
378 
379  run = e.id().run();
380  evt = e.id().event();
381 
382  if (evt % 1000 == 0)
383  cout << "evt = " << evt << endl;
384 
385  float math_pi = 3.14159265;
386  float radtodeg = 180.0 / math_pi;
387 
390  float mindist = 999999.9;
391 
392  std::vector<PSimHit> matched;
394 
396  es.get<TrackerDigiGeometryRecord>().get(pDD);
397  const TrackerGeometry* tracker = &(*pDD);
398 
399  //cout << "...1..." << endl;
400 
403  //const MagneticField* magField_ = magFieldHandle.product();
404 
405  edm::FileInPath FileInPath_;
406 
407  // Strip hits ==============================================================================================================
408 
409  edm::Handle<vector<Trajectory>> trajCollectionHandle;
410 
411  e.getByToken(tTrajectory, trajCollectionHandle);
412  //e.getByLabel( "generalTracks", trajCollectionHandle);
413 
414  for (vector<Trajectory>::const_iterator it = trajCollectionHandle->begin(); it != trajCollectionHandle->end(); ++it) {
415  vector<TrajectoryMeasurement> tmColl = it->measurements();
416  for (vector<TrajectoryMeasurement>::const_iterator itTraj = tmColl.begin(); itTraj != tmColl.end(); ++itTraj) {
417  if (!itTraj->updatedState().isValid())
418  continue;
419 
420  strip_rechitx = -9999999.9;
421  strip_rechity = -9999999.9;
422  strip_rechitz = -9999999.9;
423  strip_rechiterrx = -9999999.9;
424  strip_rechiterry = -9999999.9;
425  strip_rechitresx = -9999999.9;
426  strip_rechitresx2 = -9999999.9;
427 
428  strip_rechitresy = -9999999.9;
429  strip_rechitpullx = -9999999.9;
430  strip_rechitpully = -9999999.9;
431  strip_is_stereo = -9999999;
432  strip_hit_type = -9999999;
433  detector_type = -9999999;
434 
435  strip_trk_pt = -9999999.9;
436  strip_cotalpha = -9999999.9;
437  strip_cotbeta = -9999999.9;
438  strip_locbx = -9999999.9;
439  strip_locby = -9999999.9;
440  strip_locbz = -9999999.9;
441  strip_charge = -9999999.9;
442  strip_size = -9999999;
443 
444  strip_edge = -9999999;
445  strip_nsimhit = -9999999;
446  strip_pidhit = -9999999;
447  strip_simproc = -9999999;
448 
449  strip_subdet_id = -9999999;
450 
451  strip_tib_layer = -9999999;
452  strip_tib_module = -9999999;
453  strip_tib_order = -9999999;
454  strip_tib_side = -9999999;
455  strip_tib_is_double_side = -9999999;
456  strip_tib_is_z_plus_side = -9999999;
457  strip_tib_is_z_minus_side = -9999999;
458  strip_tib_layer_number = -9999999;
459  strip_tib_string_number = -9999999;
460  strip_tib_module_number = -9999999;
461  strip_tib_is_internal_string = -9999999;
462  strip_tib_is_external_string = -9999999;
463  strip_tib_is_rphi = -9999999;
464  strip_tib_is_stereo = -9999999;
465 
466  strip_tob_layer = -9999999;
467  strip_tob_module = -9999999;
468  strip_tob_side = -9999999;
469  strip_tob_is_double_side = -9999999;
470  strip_tob_is_z_plus_side = -9999999;
471  strip_tob_is_z_minus_side = -9999999;
472  strip_tob_layer_number = -9999999;
473  strip_tob_rod_number = -9999999;
474  strip_tob_module_number = -9999999;
475 
476  strip_tob_is_rphi = -9999999;
477  strip_tob_is_stereo = -9999999;
478 
479  strip_prob = -9999999.9;
480  strip_qbin = -9999999;
481 
482  strip_nprm = -9999999;
483 
484  strip_pidhit1 = -9999999;
485  strip_simproc1 = -9999999;
486 
487  strip_pidhit2 = -9999999;
488  strip_simproc2 = -9999999;
489 
490  strip_pidhit3 = -9999999;
491  strip_simproc3 = -9999999;
492 
493  strip_pidhit4 = -9999999;
494  strip_simproc4 = -9999999;
495 
496  strip_pidhit5 = -9999999;
497  strip_simproc5 = -9999999;
498 
499  strip_split = -9999999;
500  strip_clst_err_x = -9999999.9;
501  strip_clst_err_y = -9999999.9;
502 
503  const TransientTrackingRecHit::ConstRecHitPointer trans_trk_rec_hit_point = itTraj->recHit();
504 
505  if (trans_trk_rec_hit_point == nullptr)
506  continue;
507 
508  const TrackingRecHit* trk_rec_hit = (*trans_trk_rec_hit_point).hit();
509 
510  if (trk_rec_hit == nullptr)
511  continue;
512 
513  DetId detid = (trk_rec_hit)->geographicalId();
514 
515  strip_subdet_id = (int)detid.subdetId();
516 
517  if ((int)detid.subdetId() != (int)(StripSubdetector::TIB) &&
518  (int)detid.subdetId() != (int)(StripSubdetector::TOB))
519  continue;
520 
521  const SiStripMatchedRecHit2D* matchedhit =
522  dynamic_cast<const SiStripMatchedRecHit2D*>((*trans_trk_rec_hit_point).hit());
523  const SiStripRecHit2D* hit2d = dynamic_cast<const SiStripRecHit2D*>((*trans_trk_rec_hit_point).hit());
524  const SiStripRecHit1D* hit1d = dynamic_cast<const SiStripRecHit1D*>((*trans_trk_rec_hit_point).hit());
525 
526  if (!matchedhit && !hit2d && !hit1d)
527  continue;
528 
529  position = (trk_rec_hit)->localPosition();
530  error = (trk_rec_hit)->localPositionError();
531 
532  strip_rechitx = position.x();
533  strip_rechity = position.y();
534  strip_rechitz = position.z();
535  strip_rechiterrx = sqrt(error.xx());
536  strip_rechiterry = sqrt(error.yy());
537 
538  //cout << "strip_rechitx = " << strip_rechitx << endl;
539  //cout << "strip_rechity = " << strip_rechity << endl;
540  //cout << "strip_rechitz = " << strip_rechitz << endl;
541 
542  //cout << "strip_rechiterrx = " << strip_rechiterrx << endl;
543  //cout << "strip_rechiterry = " << strip_rechiterry << endl;
544 
545  TrajectoryStateOnSurface tsos = itTraj->updatedState();
546 
547  strip_trk_pt = tsos.globalMomentum().perp();
548 
549  LocalTrajectoryParameters ltp = tsos.localParameters();
550 
551  LocalVector localDir = ltp.momentum() / ltp.momentum().mag();
552 
553  float locx = localDir.x();
554  float locy = localDir.y();
555  float locz = localDir.z();
556 
557  //alpha_ = atan2( locz, locx );
558  //beta_ = atan2( locz, locy );
559 
560  strip_cotalpha = locx / locz;
561  strip_cotbeta = locy / locz;
562 
563  StripSubdetector StripSubdet = (StripSubdetector)detid;
564 
565  if (StripSubdet.stereo() == 0)
566  strip_is_stereo = 0;
567  else
568  strip_is_stereo = 1;
569 
570  SiStripDetId si_strip_det_id = SiStripDetId(detid);
571 
572  //const StripGeomDetUnit* strip_geom_det_unit = dynamic_cast<const StripGeomDetUnit*> ( tracker->idToDet( detid ) );
573  const StripGeomDetUnit* strip_geom_det_unit = (const StripGeomDetUnit*)tracker->idToDetUnit(detid);
574 
575  if (strip_geom_det_unit != nullptr) {
576  LocalVector lbfield = (strip_geom_det_unit->surface())
577  .toLocal((*magneticField).inTesla(strip_geom_det_unit->surface().position()));
578 
579  strip_locbx = lbfield.x();
580  strip_locby = lbfield.y();
581  strip_locbz = lbfield.z();
582  }
583 
584  //enum ModuleGeometry {UNKNOWNGEOMETRY, IB1, IB2, OB1, OB2, W1A, W2A, W3A, W1B, W2B, W3B, W4, W5, W6, W7};
585 
586  if (si_strip_det_id.moduleGeometry() == SiStripModuleGeometry::IB1) {
587  detector_type = 1;
588  //cout << "si_strip_det_id.moduleGeometry() = IB1" << endl;
589  //cout << "si_strip_det_id.moduleGeometry() = " << si_strip_det_id.moduleGeometry() << endl;
590  } else if (si_strip_det_id.moduleGeometry() == SiStripModuleGeometry::IB2) {
591  detector_type = 2;
592  //cout << "si_strip_det_id.moduleGeometry() = IB2" << endl;
593  //cout << "si_strip_det_id.moduleGeometry() = " << si_strip_det_id.moduleGeometry() << endl;
594  } else if (si_strip_det_id.moduleGeometry() == SiStripModuleGeometry::OB1) {
595  detector_type = 3;
596  //cout << "si_strip_det_id.moduleGeometry() = OB1" << endl;
597  //cout << "si_strip_det_id.moduleGeometry() = " << si_strip_det_id.moduleGeometry() << endl;
598  } else if (si_strip_det_id.moduleGeometry() == SiStripModuleGeometry::OB2) {
599  detector_type = 4;
600  //cout << "si_strip_det_id.moduleGeometry() = OB2" << endl;
601  //cout << "si_strip_det_id.moduleGeometry() = " << si_strip_det_id.moduleGeometry() << endl;
602  }
603 
604  // Store ntuple variables
605 
606  if ((int)detid.subdetId() == int(StripSubdetector::TIB)) {
607  strip_tib_layer = (int)tTopo->tibLayer(detid);
608  strip_tib_module = (int)tTopo->tibModule(detid);
609  strip_tib_order = (int)tTopo->tibOrder(detid);
610  strip_tib_side = (int)tTopo->tibSide(detid);
614  strip_tib_layer_number = (int)tTopo->tibLayer(detid);
615  strip_tib_string_number = (int)tTopo->tibString(detid);
616  strip_tib_module_number = (int)tTopo->tibModule(detid);
619  strip_tib_is_rphi = (int)tTopo->tibIsRPhi(detid);
620  strip_tib_is_stereo = (int)tTopo->tibIsStereo(detid);
621  }
622 
623  if ((int)detid.subdetId() == int(StripSubdetector::TOB)) {
624  strip_tob_layer = (int)tTopo->tobLayer(detid);
625  strip_tob_module = (int)tTopo->tobModule(detid);
626 
627  strip_tob_side = (int)tTopo->tobSide(detid);
631  strip_tob_layer_number = (int)tTopo->tobLayer(detid);
632  strip_tob_rod_number = (int)tTopo->tobRod(detid);
633  strip_tob_module_number = (int)tTopo->tobModule(detid);
634 
635  strip_tob_is_rphi = (int)tTopo->tobIsRPhi(detid);
636  strip_tob_is_stereo = (int)tTopo->tobIsStereo(detid);
637  }
638 
639  if (matchedhit) {
640  //cout << endl << endl << endl;
641  //cout << "Found a SiStripMatchedRecHit2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endl;
642  //cout << endl << endl << endl;
643  strip_hit_type = 0;
644 
645  } // if ( matchedhit )
646 
647  if (hit1d) {
648  strip_hit_type = 1;
649 
650  const SiStripRecHit1D::ClusterRef& cluster = hit1d->cluster();
651 
652  if (cluster->getSplitClusterError() > 0.0)
653  strip_split = 1;
654  else
655  strip_split = 0;
656 
657  strip_clst_err_x = cluster->getSplitClusterError();
658  //strip_clst_err_y = ...
659 
660  // Get cluster total charge
661  const auto& stripCharges = cluster->amplitudes();
662  uint16_t charge = 0;
663  for (unsigned int i = 0; i < stripCharges.size(); ++i) {
664  charge += stripCharges[i];
665  }
666 
668  strip_size = (int)((cluster->amplitudes()).size());
669 
670  // Association of the rechit to the simhit
671  float mindist = 999999.9;
672  matched.clear();
673 
674  matched = associate.associateHit(*hit1d);
675 
676  strip_nsimhit = (int)matched.size();
677 
678  if (!matched.empty()) {
679  PSimHit closest;
680 
681  // Get the closest simhit
682 
683  int strip_nprimaries = 0;
684  int current_index = 0;
685 
686  for (vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); ++m) {
687  ++current_index;
688 
689  if ((*m).processType() == 2)
690  ++strip_nprimaries;
691 
692  if (current_index == 1) {
693  strip_pidhit1 = (*m).particleType();
694  strip_simproc1 = (*m).processType();
695  } else if (current_index == 2) {
696  strip_pidhit2 = (*m).particleType();
697  strip_simproc2 = (*m).processType();
698  } else if (current_index == 3) {
699  strip_pidhit3 = (*m).particleType();
700  strip_simproc3 = (*m).processType();
701  } else if (current_index == 4) {
702  strip_pidhit4 = (*m).particleType();
703  strip_simproc4 = (*m).processType();
704  } else if (current_index == 5) {
705  strip_pidhit5 = (*m).particleType();
706  strip_simproc5 = (*m).processType();
707  }
708 
709  float dist = abs((hit1d)->localPosition().x() - (*m).localPosition().x());
710 
711  if (dist < mindist) {
712  mindist = dist;
713  closest = (*m);
714  }
715 
716  } // for ( vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); ++m)
717 
718  strip_nprm = strip_nprimaries;
719 
722 
723  strip_rechitresx2 = strip_rechitx - matched[0].localPosition().x();
724 
727 
728  strip_pidhit = closest.particleType();
729  strip_simproc = closest.processType();
730 
731  } // if( !matched.empty())
732 
733  //strip_prob = (hit1d)->getTemplProb();
734  //strip_qbin = (hit1d)->getTemplQbin();
735 
736  //cout << endl;
737  //cout << "SiPixelErrorEstimation 1d hit: " << endl;
738  //cout << "prob 1d = " << strip_prob << endl;
739  //cout << "qbin 1d = " << strip_qbin << endl;
740  //cout << endl;
741 
742  // Is the cluster on edge ?
743  /*
744  SiStripDetInfoFileReader* reader;
745 
746  FileInPath_("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat");
747 
748  reader = new SiStripDetInfoFileReader( FileInPath_.fullPath() );
749 
750  uint16_t firstStrip = cluster->firstStrip();
751  uint16_t lastStrip = firstStrip + (cluster->amplitudes()).size() -1;
752  unsigned short Nstrips;
753  Nstrips = reader->getNumberOfApvsAndStripLength(id1).first*128;
754 
755  if ( firstStrip == 0 || lastStrip == (Nstrips-1) )
756  strip_edge = 1;
757  else
758  strip_edge = 0;
759  */
760 
761  } // if ( hit1d )
762 
763  if (hit2d) {
764  strip_hit_type = 2;
765 
766  const SiStripRecHit1D::ClusterRef& cluster = hit2d->cluster();
767 
768  //if ( cluster->getSplitClusterError() > 0.0 )
769  //strip_split = 1;
770  //else
771  //strip_split = 0;
772 
773  //strip_clst_err_x = cluster->getSplitClusterError();
774  //strip_clst_err_y = ...
775 
776  // Get cluster total charge
777  auto& stripCharges = cluster->amplitudes();
778  uint16_t charge = 0;
779  for (unsigned int i = 0; i < stripCharges.size(); ++i) {
780  charge += stripCharges[i];
781  }
782 
784  strip_size = (int)((cluster->amplitudes()).size());
785 
786  // Association of the rechit to the simhit
787  float mindist = 999999.9;
788  matched.clear();
789 
790  matched = associate.associateHit(*hit2d);
791 
792  strip_nsimhit = (int)matched.size();
793 
794  if (!matched.empty()) {
795  PSimHit closest;
796 
797  // Get the closest simhit
798 
799  for (vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); ++m) {
800  float dist = abs((hit2d)->localPosition().x() - (*m).localPosition().x());
801 
802  if (dist < mindist) {
803  mindist = dist;
804  closest = (*m);
805  }
806  }
807 
810 
813 
814  strip_pidhit = closest.particleType();
815  strip_simproc = closest.processType();
816 
817  } // if( !matched.empty())
818 
819  //strip_prob = (hit2d)->getTemplProb();
820  //strip_qbin = (hit2d)->getTemplQbin();
821 
822  //cout << endl;
823  //cout << "SiPixelErrorEstimation 2d hit: " << endl;
824  //cout << "prob 2d = " << strip_prob << endl;
825  //cout << "qbin 2d = " << strip_qbin << endl;
826  //cout << endl;
827 
828  } // if ( hit2d )
829 
830  ttree_track_hits_strip_->Fill();
831 
832  } // for ( vector<TrajectoryMeasurement>::const_iterator itTraj = tmColl.begin(); itTraj!=tmColl.end(); ++itTraj )
833 
834  } // for( vector<Trajectory>::const_iterator it = trajCollectionHandle->begin(); it!=trajCollectionHandle->end(); ++it)
835 
836  //cout << "...2..." << endl;
837 
838  // --------------------------------------- all hits -----------------------------------------------------------
840  e.getByToken(tPixRecHitCollection, recHitColl);
841 
843  e.getByToken(tSimTrackContainer, simtracks);
844 
845  //-----Iterate over detunits
846  for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++) {
847  DetId detId = ((*it)->geographicalId());
848 
849  SiPixelRecHitCollection::const_iterator dsmatch = recHitColl->find(detId);
850  if (dsmatch == recHitColl->end())
851  continue;
852 
853  SiPixelRecHitCollection::DetSet pixelrechitRange = *dsmatch;
854  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorBegin = pixelrechitRange.begin();
855  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorEnd = pixelrechitRange.end();
856  SiPixelRecHitCollection::DetSet::const_iterator pixeliter = pixelrechitRangeIteratorBegin;
857  std::vector<PSimHit> matched;
858 
859  //----Loop over rechits for this detId
860  for (; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter) {
861  matched.clear();
862  matched = associate.associateHit(*pixeliter);
863  // only consider rechits that have associated simhit
864  // otherwise cannot determine residiual
865  if (matched.empty()) {
866  cout << "SiPixelErrorEstimation::analyze: rechits without associated simhit !!!!!!!" << endl;
867  continue;
868  }
869 
870  all_subdetid = -9999;
871 
872  all_layer = -9999;
873  all_ladder = -9999;
874  all_mod = -9999;
875 
876  all_side = -9999;
877  all_disk = -9999;
878  all_blade = -9999;
879  all_panel = -9999;
880  all_plaq = -9999;
881 
882  all_half = -9999;
883  all_flipped = -9999;
884 
885  all_cols = -9999;
886  all_rows = -9999;
887 
888  all_rechitx = -9999;
889  all_rechity = -9999;
890  all_rechitz = -9999;
891 
892  all_simhitx = -9999;
893  all_simhity = -9999;
894 
895  all_rechiterrx = -9999;
896  all_rechiterry = -9999;
897 
898  all_rechitresx = -9999;
899  all_rechitresy = -9999;
900 
901  all_rechitpullx = -9999;
902  all_rechitpully = -9999;
903 
904  all_npix = -9999;
905  all_nxpix = -9999;
906  all_nypix = -9999;
907 
908  all_edgex = -9999;
909  all_edgey = -9999;
910 
911  all_bigx = -9999;
912  all_bigy = -9999;
913 
914  all_alpha = -9999;
915  all_beta = -9999;
916 
917  all_simphi = -9999;
918  all_simtheta = -9999;
919 
920  all_simhitx = -9999;
921  all_simhity = -9999;
922 
923  all_nsimhit = -9999;
924  all_pidhit = -9999;
925  all_simproc = -9999;
926 
927  all_vtxr = -9999;
928  all_vtxz = -9999;
929 
930  all_simpx = -9999;
931  all_simpy = -9999;
932  all_simpz = -9999;
933 
934  all_eloss = -9999;
935 
936  all_trkid = -9999;
937 
938  all_x1 = -9999;
939  all_x2 = -9999;
940  all_y1 = -9999;
941  all_y2 = -9999;
942  all_z1 = -9999;
943  all_z2 = -9999;
944 
945  all_row1 = -9999;
946  all_row2 = -9999;
947  all_col1 = -9999;
948  all_col2 = -9999;
949 
950  all_gx1 = -9999;
951  all_gx2 = -9999;
952  all_gy1 = -9999;
953  all_gy2 = -9999;
954  all_gz1 = -9999;
955  all_gz2 = -9999;
956 
957  all_simtrketa = -9999;
958  all_simtrkphi = -9999;
959 
960  all_clust_row = -9999;
961  all_clust_col = -9999;
962 
963  all_clust_x = -9999;
964  all_clust_y = -9999;
965 
966  all_clust_q = -9999;
967 
968  all_clust_maxpixcol = -9999;
969  all_clust_maxpixrow = -9999;
970  all_clust_minpixcol = -9999;
971  all_clust_minpixrow = -9999;
972 
973  all_clust_geoid = -9999;
974 
975  all_clust_alpha = -9999;
976  all_clust_beta = -9999;
977 
978  /*
979  for (int i=0; i<all_npix; ++i)
980  {
981  all_pixrow[i] = -9999;
982  all_pixcol[i] = -9999;
983  all_pixadc[i] = -9999;
984  all_pixx[i] = -9999;
985  all_pixy[i] = -9999;
986  all_pixgx[i] = -9999;
987  all_pixgy[i] = -9999;
988  all_pixgz[i] = -9999;
989  }
990  */
991 
992  all_hit_probx = -9999;
993  all_hit_proby = -9999;
994  all_hit_cprob0 = -9999;
995  all_hit_cprob1 = -9999;
996  all_hit_cprob2 = -9999;
997 
998  all_pixel_split = -9999;
999  all_pixel_clst_err_x = -9999.9;
1000  all_pixel_clst_err_y = -9999.9;
1001 
1002  all_nsimhit = (int)matched.size();
1003 
1004  all_subdetid = (int)detId.subdetId();
1005  // only consider rechits in pixel barrel and pixel forward
1006  if (!(all_subdetid == 1 || all_subdetid == 2)) {
1007  cout << "SiPixelErrorEstimation::analyze: Not in a pixel detector !!!!!" << endl;
1008  continue;
1009  }
1010 
1011  const PixelGeomDetUnit* theGeomDet = dynamic_cast<const PixelGeomDetUnit*>(tracker->idToDet(detId));
1012 
1013  const PixelTopology* topol = &(theGeomDet->specificTopology());
1014 
1015  if (pixeliter->cluster()->getSplitClusterErrorX() > 0.0 && pixeliter->cluster()->getSplitClusterErrorY() > 0.0) {
1016  all_pixel_split = 1;
1017  } else {
1018  all_pixel_split = 0;
1019  }
1020 
1021  all_pixel_clst_err_x = pixeliter->cluster()->getSplitClusterErrorX();
1022  all_pixel_clst_err_y = pixeliter->cluster()->getSplitClusterErrorY();
1023 
1024  const int maxPixelCol = pixeliter->cluster()->maxPixelCol();
1025  const int maxPixelRow = pixeliter->cluster()->maxPixelRow();
1026  const int minPixelCol = pixeliter->cluster()->minPixelCol();
1027  const int minPixelRow = pixeliter->cluster()->minPixelRow();
1028 
1029  //all_hit_probx = (float)pixeliter->probabilityX();
1030  //all_hit_proby = (float)pixeliter->probabilityY();
1031  all_hit_cprob0 = (float)pixeliter->clusterProbability(0);
1032  all_hit_cprob1 = (float)pixeliter->clusterProbability(1);
1033  all_hit_cprob2 = (float)pixeliter->clusterProbability(2);
1034 
1035  // check whether the cluster is at the module edge
1036  if (topol->isItEdgePixelInX(minPixelRow) || topol->isItEdgePixelInX(maxPixelRow))
1037  all_edgex = 1;
1038  else
1039  all_edgex = 0;
1040 
1041  if (topol->isItEdgePixelInY(minPixelCol) || topol->isItEdgePixelInY(maxPixelCol))
1042  all_edgey = 1;
1043  else
1044  all_edgey = 0;
1045 
1046  // check whether this rechit contains big pixels
1047  if (topol->containsBigPixelInX(minPixelRow, maxPixelRow))
1048  all_bigx = 1;
1049  else
1050  all_bigx = 0;
1051 
1052  if (topol->containsBigPixelInY(minPixelCol, maxPixelCol))
1053  all_bigy = 1;
1054  else
1055  all_bigy = 0;
1056 
1057  if ((int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel) {
1058  all_layer = tTopo->pxbLayer(detId);
1059  all_ladder = tTopo->pxbLadder(detId);
1060  all_mod = tTopo->pxbModule(detId);
1061 
1062  int tmp_nrows = theGeomDet->specificTopology().nrows();
1063  if (tmp_nrows == 80)
1064  all_half = 1;
1065  else if (tmp_nrows == 160)
1066  all_half = 0;
1067  else
1068  cout << "-------------------------------------------------- Wrong module size !!!" << endl;
1069 
1070  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
1071  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
1072 
1073  if (tmp2 < tmp1)
1074  all_flipped = 1;
1075  else
1076  all_flipped = 0;
1077  } else if ((int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap) {
1078  all_side = tTopo->pxfSide(detId);
1079  all_disk = tTopo->pxfDisk(detId);
1080  all_blade = tTopo->pxfBlade(detId);
1081  all_panel = tTopo->pxfPanel(detId);
1082  all_plaq = tTopo->pxfModule(detId); // also known as plaquette
1083 
1084  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
1085  else
1086  std::cout << "We are not in the pixel detector" << (int)detId.subdetId() << endl;
1087 
1088  all_cols = theGeomDet->specificTopology().ncolumns();
1089  all_rows = theGeomDet->specificTopology().nrows();
1090 
1091  LocalPoint lp = pixeliter->localPosition();
1092  // gavril: change this name
1093  all_rechitx = lp.x();
1094  all_rechity = lp.y();
1095  all_rechitz = lp.z();
1096 
1097  LocalError le = pixeliter->localPositionError();
1098  all_rechiterrx = sqrt(le.xx());
1099  all_rechiterry = sqrt(le.yy());
1100 
1101  bool found_hit_from_generated_particle = false;
1102 
1103  //---Loop over sim hits, fill closest
1104  float closest_dist = 99999.9;
1105  std::vector<PSimHit>::const_iterator closest_simhit = matched.begin();
1106 
1107  for (std::vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); m++) {
1108  if (checkType_) {
1109  int pid = (*m).particleType();
1110  if (abs(pid) != genType_)
1111  continue;
1112  }
1113 
1114  float simhitx = 0.5 * ((*m).entryPoint().x() + (*m).exitPoint().x());
1115  float simhity = 0.5 * ((*m).entryPoint().y() + (*m).exitPoint().y());
1116 
1117  float x_res = simhitx - rechitx;
1118  float y_res = simhity - rechity;
1119 
1120  float dist = sqrt(x_res * x_res + y_res * y_res);
1121 
1122  if (dist < closest_dist) {
1123  closest_dist = dist;
1124  closest_simhit = m;
1125  found_hit_from_generated_particle = true;
1126  }
1127  } // end sim hit loop
1128 
1129  // If this recHit does not have any simHit with the same particleType as the particles generated
1130  // ignore it as most probably comes from delta rays.
1131  if (checkType_ && !found_hit_from_generated_particle)
1132  continue;
1133 
1134  all_x1 = (*closest_simhit).entryPoint().x(); // width (row index, in col direction)
1135  all_y1 = (*closest_simhit).entryPoint().y(); // length (col index, in row direction)
1136  all_z1 = (*closest_simhit).entryPoint().z();
1137  all_x2 = (*closest_simhit).exitPoint().x();
1138  all_y2 = (*closest_simhit).exitPoint().y();
1139  all_z2 = (*closest_simhit).exitPoint().z();
1140  GlobalPoint GP1 = theGeomDet->surface().toGlobal(Local3DPoint(
1141  (*closest_simhit).entryPoint().x(), (*closest_simhit).entryPoint().y(), (*closest_simhit).entryPoint().z()));
1142  GlobalPoint GP2 = theGeomDet->surface().toGlobal(Local3DPoint(
1143  (*closest_simhit).exitPoint().x(), (*closest_simhit).exitPoint().y(), (*closest_simhit).exitPoint().z()));
1144  all_gx1 = GP1.x();
1145  all_gx2 = GP2.x();
1146  all_gy1 = GP1.y();
1147  all_gy2 = GP2.y();
1148  all_gz1 = GP1.z();
1149  all_gz2 = GP2.z();
1150 
1151  MeasurementPoint mp1 = topol->measurementPosition(LocalPoint(
1152  (*closest_simhit).entryPoint().x(), (*closest_simhit).entryPoint().y(), (*closest_simhit).entryPoint().z()));
1153  MeasurementPoint mp2 = topol->measurementPosition(LocalPoint(
1154  (*closest_simhit).exitPoint().x(), (*closest_simhit).exitPoint().y(), (*closest_simhit).exitPoint().z()));
1155  all_row1 = mp1.x();
1156  all_col1 = mp1.y();
1157  all_row2 = mp2.x();
1158  all_col2 = mp2.y();
1159 
1160  all_simhitx = 0.5 * (all_x1 + all_x2);
1161  all_simhity = 0.5 * (all_y1 + all_y2);
1162 
1165 
1168 
1169  SiPixelRecHit::ClusterRef const& clust = pixeliter->cluster();
1170 
1171  all_npix = clust->size();
1172  all_nxpix = clust->sizeX();
1173  all_nypix = clust->sizeY();
1174 
1175  all_clust_row = clust->x();
1176  all_clust_col = clust->y();
1177 
1178  LocalPoint lp2 = topol->localPosition(MeasurementPoint(all_clust_row, all_clust_col));
1179  all_clust_x = lp2.x();
1180  all_clust_y = lp2.y();
1181 
1182  all_clust_q = clust->charge();
1183 
1184  all_clust_maxpixcol = clust->maxPixelCol();
1185  all_clust_maxpixrow = clust->maxPixelRow();
1186  all_clust_minpixcol = clust->minPixelCol();
1187  all_clust_minpixrow = clust->minPixelRow();
1188 
1189  all_clust_geoid = 0; // never set!
1190 
1191  all_simpx = (*closest_simhit).momentumAtEntry().x();
1192  all_simpy = (*closest_simhit).momentumAtEntry().y();
1193  all_simpz = (*closest_simhit).momentumAtEntry().z();
1194  all_eloss = (*closest_simhit).energyLoss();
1195  all_simphi = (*closest_simhit).phiAtEntry();
1196  all_simtheta = (*closest_simhit).thetaAtEntry();
1197  all_pidhit = (*closest_simhit).particleType();
1198  all_trkid = (*closest_simhit).trackId();
1199 
1200  //--- Fill alpha and beta -- more useful for exploring the residuals...
1201  all_beta = atan2(all_simpz, all_simpy);
1202  all_alpha = atan2(all_simpz, all_simpx);
1203 
1204  all_simproc = (int)closest_simhit->processType();
1205 
1206  const edm::SimTrackContainer& trks = *(simtracks.product());
1207  SimTrackContainer::const_iterator trksiter;
1208  for (trksiter = trks.begin(); trksiter != trks.end(); trksiter++)
1209  if ((int)trksiter->trackId() == all_trkid) {
1210  all_simtrketa = trksiter->momentum().eta();
1211  all_simtrkphi = trksiter->momentum().phi();
1212  }
1213 
1214  all_vtxz = theGeomDet->surface().position().z();
1215  all_vtxr = theGeomDet->surface().position().perp();
1216 
1217  //computeAnglesFromDetPosition(clust,
1218  // theGeomDet,
1219  // all_clust_alpha, all_clust_beta )
1220 
1221  const std::vector<SiPixelCluster::Pixel>& pixvector = clust->pixels();
1222  for (int i = 0; i < (int)pixvector.size(); ++i) {
1223  SiPixelCluster::Pixel holdpix = pixvector[i];
1224  all_pixrow[i] = holdpix.x;
1225  all_pixcol[i] = holdpix.y;
1226  all_pixadc[i] = holdpix.adc;
1227  LocalPoint lp = topol->localPosition(MeasurementPoint(holdpix.x, holdpix.y));
1228  all_pixx[i] = lp.x();
1229  all_pixy[i] = lp.y();
1230  GlobalPoint GP = theGeomDet->surface().toGlobal(Local3DPoint(lp.x(), lp.y(), lp.z()));
1231  all_pixgx[i] = GP.x();
1232  all_pixgy[i] = GP.y();
1233  all_pixgz[i] = GP.z();
1234  }
1235 
1236  ttree_all_hits_->Fill();
1237 
1238  } // for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
1239 
1240  } // for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++)
1241 
1242  // ------------------------------------------------ all hits ---------------------------------------------------------------
1243 
1244  //cout << "...3..." << endl;
1245 
1246  // ------------------------------------------------ track hits only --------------------------------------------------------
1247 
1248  if (include_trk_hits_) {
1249  // Get tracks
1251  e.getByToken(tTrackCollection, trackCollection);
1252  const reco::TrackCollection* tracks = trackCollection.product();
1253  reco::TrackCollection::const_iterator tciter;
1254 
1255  if (!tracks->empty()) {
1256  // Loop on tracks
1257  for (tciter = tracks->begin(); tciter != tracks->end(); ++tciter) {
1258  // First loop on hits: find matched hits
1259  for (auto const hit : tciter->recHits()) {
1260  // Is it a matched hit?
1261  const SiPixelRecHit* matchedhit = dynamic_cast<const SiPixelRecHit*>(hit);
1262 
1263  if (matchedhit) {
1264  rechitx = -9999.9;
1265  rechity = -9999.9;
1266  rechitz = -9999.9;
1267  rechiterrx = -9999.9;
1268  rechiterry = -9999.9;
1269  rechitresx = -9999.9;
1270  rechitresy = -9999.9;
1271  rechitpullx = -9999.9;
1272  rechitpully = -9999.9;
1273 
1274  npix = -9999;
1275  nxpix = -9999;
1276  nypix = -9999;
1277  charge = -9999.9;
1278 
1279  edgex = -9999;
1280  edgey = -9999;
1281 
1282  bigx = -9999;
1283  bigy = -9999;
1284 
1285  alpha = -9999.9;
1286  beta = -9999.9;
1287 
1288  phi = -9999.9;
1289  eta = -9999.9;
1290 
1291  subdetId = -9999;
1292 
1293  layer = -9999;
1294  ladder = -9999;
1295  mod = -9999;
1296  side = -9999;
1297  disk = -9999;
1298  blade = -9999;
1299  panel = -9999;
1300  plaq = -9999;
1301 
1302  half = -9999;
1303  flipped = -9999;
1304 
1305  nsimhit = -9999;
1306  pidhit = -9999;
1307  simproc = -9999;
1308 
1309  simhitx = -9999.9;
1310  simhity = -9999.9;
1311 
1312  hit_probx = -9999.9;
1313  hit_proby = -9999.9;
1314  hit_cprob0 = -9999.9;
1315  hit_cprob1 = -9999.9;
1316  hit_cprob2 = -9999.9;
1317 
1318  pixel_split = -9999;
1319 
1320  pixel_clst_err_x = -9999.9;
1321  pixel_clst_err_y = -9999.9;
1322 
1323  position = hit->localPosition();
1324  error = hit->localPositionError();
1325 
1326  rechitx = position.x();
1327  rechity = position.y();
1328  rechitz = position.z();
1329  rechiterrx = sqrt(error.xx());
1330  rechiterry = sqrt(error.yy());
1331 
1332  npix = matchedhit->cluster()->size();
1333  nxpix = matchedhit->cluster()->sizeX();
1334  nypix = matchedhit->cluster()->sizeY();
1335  charge = matchedhit->cluster()->charge();
1336 
1337  if (matchedhit->cluster()->getSplitClusterErrorX() > 0.0 &&
1338  matchedhit->cluster()->getSplitClusterErrorY() > 0.0)
1339  pixel_split = 1;
1340  else
1341  pixel_split = 0;
1342 
1343  pixel_clst_err_x = matchedhit->cluster()->getSplitClusterErrorX();
1344  pixel_clst_err_y = matchedhit->cluster()->getSplitClusterErrorY();
1345 
1346  //hit_probx = (float)matchedhit->probabilityX();
1347  //hit_proby = (float)matchedhit->probabilityY();
1348  hit_cprob0 = (float)matchedhit->clusterProbability(0);
1349  hit_cprob1 = (float)matchedhit->clusterProbability(1);
1350  hit_cprob2 = (float)matchedhit->clusterProbability(2);
1351 
1352  //Association of the rechit to the simhit
1353  matched.clear();
1354  matched = associate.associateHit(*matchedhit);
1355 
1356  nsimhit = (int)matched.size();
1357 
1358  if (!matched.empty()) {
1359  mindist = 999999.9;
1360  float distx, disty, dist;
1361  bool found_hit_from_generated_particle = false;
1362 
1363  int n_assoc_muon = 0;
1364 
1365  vector<PSimHit>::const_iterator closestit = matched.begin();
1366  for (vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); ++m) {
1367  if (checkType_) { // only consider associated simhits with the generated pid (muons)
1368  int pid = (*m).particleType();
1369  if (abs(pid) != genType_)
1370  continue;
1371  }
1372 
1373  float simhitx = 0.5 * ((*m).entryPoint().x() + (*m).exitPoint().x());
1374  float simhity = 0.5 * ((*m).entryPoint().y() + (*m).exitPoint().y());
1375 
1376  distx = fabs(rechitx - simhitx);
1377  disty = fabs(rechity - simhity);
1378  dist = sqrt(distx * distx + disty * disty);
1379 
1380  if (dist < mindist) {
1381  n_assoc_muon++;
1382 
1383  mindist = dist;
1384  closestit = m;
1385  found_hit_from_generated_particle = true;
1386  }
1387  } // for (vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); m++)
1388 
1389  // This recHit does not have any simHit with the same particleType as the particles generated
1390  // Ignore it as most probably come from delta rays.
1391  if (checkType_ && !found_hit_from_generated_particle)
1392  continue;
1393 
1394  //if ( n_assoc_muon > 1 )
1395  //{
1396  // // cout << " ----- This is not good: n_assoc_muon = " << n_assoc_muon << endl;
1397  // // cout << "evt = " << evt << endl;
1398  //}
1399 
1400  DetId detId = hit->geographicalId();
1401 
1402  const PixelGeomDetUnit* theGeomDet = dynamic_cast<const PixelGeomDetUnit*>((*tracker).idToDet(detId));
1403 
1404  const PixelTopology* theTopol = &(theGeomDet->specificTopology());
1405 
1406  pidhit = (*closestit).particleType();
1407  simproc = (int)(*closestit).processType();
1408 
1409  simhitx = 0.5 * ((*closestit).entryPoint().x() + (*closestit).exitPoint().x());
1410  simhity = 0.5 * ((*closestit).entryPoint().y() + (*closestit).exitPoint().y());
1411 
1414  rechitpullx = (rechitx - simhitx) / sqrt(error.xx());
1415  rechitpully = (rechity - simhity) / sqrt(error.yy());
1416 
1417  float simhitpx = (*closestit).momentumAtEntry().x();
1418  float simhitpy = (*closestit).momentumAtEntry().y();
1419  float simhitpz = (*closestit).momentumAtEntry().z();
1420 
1421  beta = atan2(simhitpz, simhitpy) * radtodeg;
1422  alpha = atan2(simhitpz, simhitpx) * radtodeg;
1423 
1424  //beta = fabs(atan2(simhitpz, simhitpy)) * radtodeg;
1425  //alpha = fabs(atan2(simhitpz, simhitpx)) * radtodeg;
1426 
1427  // calculate alpha and beta exactly as in PixelCPEBase.cc
1428  float locx = simhitpx;
1429  float locy = simhitpy;
1430  float locz = simhitpz;
1431 
1432  bool isFlipped = false;
1433  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
1434  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
1435  if (tmp2 < tmp1)
1436  isFlipped = true;
1437  else
1438  isFlipped = false;
1439 
1440  trk_alpha = acos(locx / sqrt(locx * locx + locz * locz)) * radtodeg;
1441  if (isFlipped) // &&& check for FPIX !!!
1442  trk_alpha = 180.0 - trk_alpha;
1443 
1444  trk_beta = acos(locy / sqrt(locy * locy + locz * locz)) * radtodeg;
1445 
1446  phi = tciter->momentum().phi() / math_pi * 180.0;
1447  eta = tciter->momentum().eta();
1448 
1449  const int maxPixelCol = (*matchedhit).cluster()->maxPixelCol();
1450  const int maxPixelRow = (*matchedhit).cluster()->maxPixelRow();
1451  const int minPixelCol = (*matchedhit).cluster()->minPixelCol();
1452  const int minPixelRow = (*matchedhit).cluster()->minPixelRow();
1453 
1454  // check whether the cluster is at the module edge
1455  if (theTopol->isItEdgePixelInX(minPixelRow) || theTopol->isItEdgePixelInX(maxPixelRow))
1456  edgex = 1;
1457  else
1458  edgex = 0;
1459 
1460  if (theTopol->isItEdgePixelInY(minPixelCol) || theTopol->isItEdgePixelInY(maxPixelCol))
1461  edgey = 1;
1462  else
1463  edgey = 0;
1464 
1465  // check whether this rechit contains big pixels
1466  if (theTopol->containsBigPixelInX(minPixelRow, maxPixelRow))
1467  bigx = 1;
1468  else
1469  bigx = 0;
1470 
1471  if (theTopol->containsBigPixelInY(minPixelCol, maxPixelCol))
1472  bigy = 1;
1473  else
1474  bigy = 0;
1475 
1476  subdetId = (int)detId.subdetId();
1477 
1478  if ((int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel) {
1479  int tmp_nrows = theGeomDet->specificTopology().nrows();
1480  if (tmp_nrows == 80)
1481  half = 1;
1482  else if (tmp_nrows == 160)
1483  half = 0;
1484  else
1485  cout << "-------------------------------------------------- Wrong module size !!!" << endl;
1486 
1487  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
1488  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
1489 
1490  if (tmp2 < tmp1)
1491  flipped = 1;
1492  else
1493  flipped = 0;
1494 
1495  layer = tTopo->pxbLayer(detId); // Layer: 1,2,3.
1496  ladder = tTopo->pxbLadder(detId); // Ladder: 1-20, 32, 44.
1497  mod = tTopo->pxbModule(detId); // Mod: 1-8.
1498  } else if ((int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap) {
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  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
1506  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
1507 
1508  if (tmp2 < tmp1)
1509  flipped = 1;
1510  else
1511  flipped = 0;
1512 
1513  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
1514  //else std::// cout << "We are not in the pixel detector. detId.subdetId() = " << (int)detId.subdetId() << endl;
1515 
1516  ttree_track_hits_->Fill();
1517 
1518  } // if ( !matched.empty() )
1519  else
1520  cout << "---------------- RecHit with no associated SimHit !!! -------------------------- " << endl;
1521 
1522  } // if ( matchedhit )
1523 
1524  } // end of loop on hits
1525 
1526  } //end of loop on track
1527 
1528  } // tracks > 0.
1529 
1530  } // if ( include_trk_hits_ )
1531 
1532  // ----------------------------------------------- track hits only -----------------------------------------------------------
1533 }
1534 
1536  const GeomDetUnit& det,
1537  float& alpha,
1538  float& beta) {
1539  //--- This is a new det unit, so cache it
1540  const PixelGeomDetUnit* theDet = dynamic_cast<const PixelGeomDetUnit*>(&det);
1541  if (!theDet) {
1542  cout << "---------------------------------------------- Not a pixel detector !!!!!!!!!!!!!!" << endl;
1543  assert(0);
1544  }
1545 
1546  const PixelTopology* theTopol = &(theDet->specificTopology());
1547 
1548  // get cluster center of gravity (of charge)
1549  float xcenter = cl.x();
1550  float ycenter = cl.y();
1551 
1552  // get the cluster position in local coordinates (cm)
1553  LocalPoint lp = theTopol->localPosition(MeasurementPoint(xcenter, ycenter));
1554  //float lp_mod = sqrt( lp.x()*lp.x() + lp.y()*lp.y() + lp.z()*lp.z() );
1555 
1556  // get the cluster position in global coordinates (cm)
1557  GlobalPoint gp = theDet->surface().toGlobal(lp);
1558  float gp_mod = sqrt(gp.x() * gp.x() + gp.y() * gp.y() + gp.z() * gp.z());
1559 
1560  // normalize
1561  float gpx = gp.x() / gp_mod;
1562  float gpy = gp.y() / gp_mod;
1563  float gpz = gp.z() / gp_mod;
1564 
1565  // make a global vector out of the global point; this vector will point from the
1566  // origin of the detector to the cluster
1567  GlobalVector gv(gpx, gpy, gpz);
1568 
1569  // make local unit vector along local X axis
1570  const Local3DVector lvx(1.0, 0.0, 0.0);
1571 
1572  // get the unit X vector in global coordinates/
1573  GlobalVector gvx = theDet->surface().toGlobal(lvx);
1574 
1575  // make local unit vector along local Y axis
1576  const Local3DVector lvy(0.0, 1.0, 0.0);
1577 
1578  // get the unit Y vector in global coordinates
1579  GlobalVector gvy = theDet->surface().toGlobal(lvy);
1580 
1581  // make local unit vector along local Z axis
1582  const Local3DVector lvz(0.0, 0.0, 1.0);
1583 
1584  // get the unit Z vector in global coordinates
1585  GlobalVector gvz = theDet->surface().toGlobal(lvz);
1586 
1587  // calculate the components of gv (the unit vector pointing to the cluster)
1588  // in the local coordinate system given by the basis {gvx, gvy, gvz}
1589  // note that both gv and the basis {gvx, gvy, gvz} are given in global coordinates
1590  float gv_dot_gvx = gv.x() * gvx.x() + gv.y() * gvx.y() + gv.z() * gvx.z();
1591  float gv_dot_gvy = gv.x() * gvy.x() + gv.y() * gvy.y() + gv.z() * gvy.z();
1592  float gv_dot_gvz = gv.x() * gvz.x() + gv.y() * gvz.y() + gv.z() * gvz.z();
1593 
1594  // calculate angles
1595  alpha = atan2(gv_dot_gvz, gv_dot_gvx);
1596  beta = atan2(gv_dot_gvz, gv_dot_gvy);
1597 
1598  // calculate cotalpha and cotbeta
1599  // cotalpha_ = 1.0/tan(alpha_);
1600  // cotbeta_ = 1.0/tan(beta_ );
1601  // or like this
1602  //cotalpha_ = gv_dot_gvx / gv_dot_gvz;
1603  //cotbeta_ = gv_dot_gvy / gv_dot_gvz;
1604 }
1605 
1606 //define this as a plug-in
Vector3DBase< float, LocalTag >
SiPixelErrorEstimation::all_hit_proby
float all_hit_proby
Definition: SiPixelErrorEstimation.h:354
muonTagProbeFilters_cff.matched
matched
Definition: muonTagProbeFilters_cff.py:62
SiPixelErrorEstimation::all_panel
int all_panel
Definition: SiPixelErrorEstimation.h:246
SiPixelErrorEstimation::all_clust_q
float all_clust_q
Definition: SiPixelErrorEstimation.h:330
TrackerTopology::tobIsDoubleSide
bool tobIsDoubleSide(const DetId &id) const
Definition: TrackerTopology.h:245
TrackerTopology::tibOrder
unsigned int tibOrder(const DetId &id) const
Definition: TrackerTopology.h:209
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
Point2DBase
Definition: Point2DBase.h:9
SiPixelErrorEstimation::all_gy1
float all_gy1
Definition: SiPixelErrorEstimation.h:316
SiPixelErrorEstimation::ttree_track_hits_strip_
TTree * ttree_track_hits_strip_
Definition: SiPixelErrorEstimation.h:369
SiPixelErrorEstimation::strip_pidhit5
int strip_pidhit5
Definition: SiPixelErrorEstimation.h:174
SiPixelErrorEstimation::strip_rechiterry
float strip_rechiterry
Definition: SiPixelErrorEstimation.h:101
SiPixelErrorEstimation::genType_
int genType_
Definition: SiPixelErrorEstimation.h:83
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
SiPixelErrorEstimation::hit_cprob1
float hit_cprob1
Definition: SiPixelErrorEstimation.h:227
SiPixelErrorEstimation::rechitz
float rechitz
Definition: SiPixelErrorEstimation.h:89
SiPixelErrorEstimation::all_clust_col
float all_clust_col
Definition: SiPixelErrorEstimation.h:325
SiPixelErrorEstimation::rechitpullx
float rechitpullx
Definition: SiPixelErrorEstimation.h:94
SiPixelErrorEstimation::outputFile_
std::string outputFile_
Definition: SiPixelErrorEstimation.h:80
SiPixelErrorEstimation::pixel_clst_err_y
float pixel_clst_err_y
Definition: SiPixelErrorEstimation.h:233
SiStripDetId::moduleGeometry
SiStripModuleGeometry moduleGeometry() const
Definition: SiStripDetId.h:109
mps_fire.i
i
Definition: mps_fire.py:355
SiPixelErrorEstimation::all_rechitpully
float all_rechitpully
Definition: SiPixelErrorEstimation.h:269
PixelSubdetector.h
TrackerTopology::tibIsInternalString
bool tibIsInternalString(const DetId &id) const
Definition: TrackerTopology.h:429
SiPixelErrorEstimation::strip_simproc1
int strip_simproc1
Definition: SiPixelErrorEstimation.h:163
TrackerTopology::tibIsExternalString
bool tibIsExternalString(const DetId &id) const
Definition: TrackerTopology.h:431
SiPixelErrorEstimation::all_nypix
int all_nypix
Definition: SiPixelErrorEstimation.h:273
SiPixelErrorEstimation::charge
float charge
Definition: SiPixelErrorEstimation.h:184
SiPixelErrorEstimation::all_col2
float all_col2
Definition: SiPixelErrorEstimation.h:312
StripGeomDetUnit.h
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
SiPixelErrorEstimation::all_row2
float all_row2
Definition: SiPixelErrorEstimation.h:310
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
GeomDet
Definition: GeomDet.h:27
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
edm::Handle::product
T const * product() const
Definition: Handle.h:70
SiPixelErrorEstimation::all_edgey
int all_edgey
Definition: SiPixelErrorEstimation.h:276
SiPixelErrorEstimation::eta
float eta
Definition: SiPixelErrorEstimation.h:199
SiPixelErrorEstimation::simhitx
float simhitx
Definition: SiPixelErrorEstimation.h:218
SiPixelErrorEstimation::src_
std::string src_
Definition: SiPixelErrorEstimation.h:81
SiPixelErrorEstimation::all_z2
float all_z2
Definition: SiPixelErrorEstimation.h:307
SiPixelErrorEstimation::strip_split
int strip_split
Definition: SiPixelErrorEstimation.h:177
TrackerTopology::tobIsStereo
bool tobIsStereo(const DetId &id) const
Definition: TrackerTopology.h:264
TrackerTopology::pxfSide
unsigned int pxfSide(const DetId &id) const
Definition: TrackerTopology.h:192
SiPixelErrorEstimation::endJob
void endJob() override
Definition: SiPixelErrorEstimation.cc:366
SiPixelErrorEstimation::all_pixrow
float all_pixrow[maxpix]
Definition: SiPixelErrorEstimation.h:343
SiPixelErrorEstimation::all_simpz
float all_simpz
Definition: SiPixelErrorEstimation.h:296
SiPixelErrorEstimation::all_y2
float all_y2
Definition: SiPixelErrorEstimation.h:305
SiPixelErrorEstimation::all_clust_x
float all_clust_x
Definition: SiPixelErrorEstimation.h:327
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
SiPixelErrorEstimation::all_clust_minpixcol
int all_clust_minpixcol
Definition: SiPixelErrorEstimation.h:334
HLT_2018_cff.magneticField
magneticField
Definition: HLT_2018_cff.py:348
SiPixelErrorEstimation::all_rechitz
float all_rechitz
Definition: SiPixelErrorEstimation.h:257
SiPixelErrorEstimation::hit_cprob2
float hit_cprob2
Definition: SiPixelErrorEstimation.h:228
SiPixelErrorEstimation::strip_tib_is_external_string
int strip_tib_is_external_string
Definition: SiPixelErrorEstimation.h:139
SiPixelErrorEstimation::rechiterry
float rechiterry
Definition: SiPixelErrorEstimation.h:91
SiPixelErrorEstimation::all_pixel_clst_err_y
float all_pixel_clst_err_y
Definition: SiPixelErrorEstimation.h:361
SiPixelErrorEstimation::all_simtrkphi
float all_simtrkphi
Definition: SiPixelErrorEstimation.h:322
SiPixelErrorEstimation::strip_clst_err_y
float strip_clst_err_y
Definition: SiPixelErrorEstimation.h:179
SiPixelErrorEstimation::rechiterrx
float rechiterrx
Definition: SiPixelErrorEstimation.h:90
SiPixelErrorEstimation::subdetId
int subdetId
Definition: SiPixelErrorEstimation.h:201
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
TrackingRecHit::hit
virtual TrackingRecHit const * hit() const
Definition: TrackingRecHit.h:75
TrackerTopology::pxbLadder
unsigned int pxbLadder(const DetId &id) const
Definition: TrackerTopology.h:155
SiPixelErrorEstimation::strip_locbx
float strip_locbx
Definition: SiPixelErrorEstimation.h:116
SiPixelErrorEstimation::all_gx1
float all_gx1
Definition: SiPixelErrorEstimation.h:314
SiPixelErrorEstimation::strip_tob_is_rphi
int strip_tob_is_rphi
Definition: SiPixelErrorEstimation.h:154
StripSubdetector::stereo
unsigned int stereo() const
stereo
Definition: StripSubdetector.h:46
gather_cfg.cout
cout
Definition: gather_cfg.py:144
SiPixelErrorEstimation::hit_cprob0
float hit_cprob0
Definition: SiPixelErrorEstimation.h:226
StripSubdetector
Definition: StripSubdetector.h:12
SiPixelErrorEstimation::all_layer
int all_layer
Definition: SiPixelErrorEstimation.h:239
SiPixelErrorEstimation::all_clust_maxpixcol
int all_clust_maxpixcol
Definition: SiPixelErrorEstimation.h:332
SiPixelErrorEstimation::strip_simproc2
int strip_simproc2
Definition: SiPixelErrorEstimation.h:166
SiPixelErrorEstimation::tTrajectory
edm::EDGetTokenT< std::vector< Trajectory > > tTrajectory
Definition: SiPixelErrorEstimation.h:76
TrackerHitAssociator::associateHit
std::vector< PSimHit > associateHit(const TrackingRecHit &thit) const
Definition: TrackerHitAssociator.cc:212
SiPixelErrorEstimation::nsimhit
int nsimhit
Definition: SiPixelErrorEstimation.h:214
SiPixelErrorEstimation::strip_simproc3
int strip_simproc3
Definition: SiPixelErrorEstimation.h:169
edmNew::DetSetVector::const_iterator
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
Definition: DetSetVectorNew.h:231
SiPixelErrorEstimation::edgex
int edgex
Definition: SiPixelErrorEstimation.h:186
SiPixelErrorEstimation::~SiPixelErrorEstimation
~SiPixelErrorEstimation() override
Definition: SiPixelErrorEstimation.cc:58
cms::cuda::assert
assert(be >=bs)
SiStripModuleGeometry::IB1
SiStripDetId.h
SiStripRecHit2D
Definition: SiStripRecHit2D.h:7
SiPixelErrorEstimation::all_gx2
float all_gx2
Definition: SiPixelErrorEstimation.h:315
SiPixelErrorEstimation::tPixRecHitCollection
edm::EDGetTokenT< SiPixelRecHitCollection > tPixRecHitCollection
Definition: SiPixelErrorEstimation.h:77
Topology::localPosition
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
SiPixelErrorEstimation::strip_pidhit1
int strip_pidhit1
Definition: SiPixelErrorEstimation.h:162
DDAxes::x
SiPixelCluster
Pixel cluster – collection of neighboring pixels above threshold.
Definition: SiPixelCluster.h:27
SiPixelErrorEstimation::all_npix
int all_npix
Definition: SiPixelErrorEstimation.h:271
align::LocalPoint
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
SiPixelErrorEstimation::all_ladder
int all_ladder
Definition: SiPixelErrorEstimation.h:240
SiPixelErrorEstimation::all_disk
int all_disk
Definition: SiPixelErrorEstimation.h:244
SiPixelErrorEstimation::layer
int layer
Definition: SiPixelErrorEstimation.h:202
SiPixelErrorEstimation::all_nsimhit
int all_nsimhit
Definition: SiPixelErrorEstimation.h:287
SiPixelErrorEstimation::SiPixelErrorEstimation
SiPixelErrorEstimation(const edm::ParameterSet &)
Definition: SiPixelErrorEstimation.cc:35
edm::Handle
Definition: AssociativeIterator.h:50
relativeConstraints.error
error
Definition: relativeConstraints.py:53
SiPixelRecHit::cluster
ClusterRef cluster() const
Definition: SiPixelRecHit.h:47
SiPixelErrorEstimation::simhity
float simhity
Definition: SiPixelErrorEstimation.h:219
SiPixelErrorEstimation::phi
float phi
Definition: SiPixelErrorEstimation.h:198
SiPixelErrorEstimation::strip_tib_module_number
int strip_tib_module_number
Definition: SiPixelErrorEstimation.h:137
SiPixelErrorEstimation::all_pixgy
float all_pixgy[maxpix]
Definition: SiPixelErrorEstimation.h:350
SiPixelErrorEstimation::all_pidhit
int all_pidhit
Definition: SiPixelErrorEstimation.h:288
SiPixelErrorEstimation::side
int side
Definition: SiPixelErrorEstimation.h:205
SiPixelErrorEstimation::all_bigy
int all_bigy
Definition: SiPixelErrorEstimation.h:279
SiPixelErrorEstimation::rechitx
float rechitx
Definition: SiPixelErrorEstimation.h:87
SiPixelCluster::Pixel
Definition: SiPixelCluster.h:29
SiPixelErrorEstimation::all_gy2
float all_gy2
Definition: SiPixelErrorEstimation.h:317
SiPixelErrorEstimation::all_bigx
int all_bigx
Definition: SiPixelErrorEstimation.h:278
SiPixelErrorEstimation::all_vtxz
float all_vtxz
Definition: SiPixelErrorEstimation.h:292
SiPixelRecHit
Our base class.
Definition: SiPixelRecHit.h:23
TrackerTopology::tobIsRPhi
bool tobIsRPhi(const DetId &id) const
Definition: TrackerTopology.h:269
TrackerTopology::tobRod
unsigned int tobRod(const DetId &id) const
Definition: TrackerTopology.h:195
edm::Ref
Definition: AssociativeIterator.h:58
SiPixelErrorEstimation::all_simpy
float all_simpy
Definition: SiPixelErrorEstimation.h:295
FileInPath.h
SiStripModuleGeometry::OB1
TrackerTopology::pxbLayer
unsigned int pxbLayer(const DetId &id) const
Definition: TrackerTopology.h:144
SiPixelErrorEstimation::strip_tib_string_number
int strip_tib_string_number
Definition: SiPixelErrorEstimation.h:136
TrackerTopology::tibSide
unsigned int tibSide(const DetId &id) const
Definition: TrackerTopology.h:186
SiPixelErrorEstimation::all_hit_cprob1
float all_hit_cprob1
Definition: SiPixelErrorEstimation.h:356
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
TrackerTopology::pxfPanel
unsigned int pxfPanel(const DetId &id) const
Definition: TrackerTopology.h:450
LocalTrajectoryParameters
Definition: LocalTrajectoryParameters.h:25
SiPixelErrorEstimation::all_plaq
int all_plaq
Definition: SiPixelErrorEstimation.h:247
SiPixelErrorEstimation::strip_clst_err_x
float strip_clst_err_x
Definition: SiPixelErrorEstimation.h:178
GetRecoTauVFromDQM_MC_cff.cl
cl
Definition: GetRecoTauVFromDQM_MC_cff.py:38
SiPixelErrorEstimation::all_pixcol
float all_pixcol[maxpix]
Definition: SiPixelErrorEstimation.h:344
SiPixelErrorEstimation::alpha
float alpha
Definition: SiPixelErrorEstimation.h:192
IdealMagneticFieldRecord
Definition: IdealMagneticFieldRecord.h:11
SiPixelErrorEstimation::all_pixy
float all_pixy[maxpix]
Definition: SiPixelErrorEstimation.h:348
DetId
Definition: DetId.h:17
edm::FileInPath
Definition: FileInPath.h:64
SiPixelErrorEstimation::strip_prob
float strip_prob
Definition: SiPixelErrorEstimation.h:157
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
SiPixelErrorEstimation::all_clust_row
float all_clust_row
Definition: SiPixelErrorEstimation.h:324
TrajectoryStateOnSurface
Definition: TrajectoryStateOnSurface.h:16
edmNew::DetSet::end
iterator end()
Definition: DetSetNew.h:56
TrackerTopology.h
edmNew::DetSetVector::find
const_iterator find(id_type i, bool update=false) const
Definition: DetSetVectorNew.h:560
SiPixelCluster::Pixel::adc
uint16_t adc
Definition: SiPixelCluster.h:35
SiPixelErrorEstimation::strip_locby
float strip_locby
Definition: SiPixelErrorEstimation.h:117
SiPixelErrorEstimation::strip_tib_is_rphi
int strip_tib_is_rphi
Definition: SiPixelErrorEstimation.h:140
SiPixelErrorEstimation::evt
int evt
Definition: SiPixelErrorEstimation.h:221
TrackerTopologyRcd.h
Track.h
PSimHit::processType
unsigned short processType() const
Definition: PSimHit.h:120
SiPixelErrorEstimation::hit_proby
float hit_proby
Definition: SiPixelErrorEstimation.h:225
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
TrackFwd.h
SiPixelErrorEstimation::all_mod
int all_mod
Definition: SiPixelErrorEstimation.h:241
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
SiPixelErrorEstimation::strip_tob_layer_number
int strip_tob_layer_number
Definition: SiPixelErrorEstimation.h:150
SiPixelErrorEstimation::strip_tib_module
int strip_tib_module
Definition: SiPixelErrorEstimation.h:129
SiPixelErrorEstimation::strip_qbin
int strip_qbin
Definition: SiPixelErrorEstimation.h:158
SiPixelErrorEstimation::all_hit_cprob2
float all_hit_cprob2
Definition: SiPixelErrorEstimation.h:357
LocalError::xx
float xx() const
Definition: LocalError.h:22
SiPixelErrorEstimation::detector_type
int detector_type
Definition: SiPixelErrorEstimation.h:111
SiPixelErrorEstimation::strip_tib_order
int strip_tib_order
Definition: SiPixelErrorEstimation.h:130
SiPixelErrorEstimation::all_beta
float all_beta
Definition: SiPixelErrorEstimation.h:282
SiPixelErrorEstimation::strip_tob_layer
int strip_tob_layer
Definition: SiPixelErrorEstimation.h:143
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
SiPixelErrorEstimation::all_simhity
float all_simhity
Definition: SiPixelErrorEstimation.h:260
PixelGeomDetUnit
Definition: PixelGeomDetUnit.h:15
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
SiPixelErrorEstimation::all_simpx
float all_simpx
Definition: SiPixelErrorEstimation.h:294
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
SiPixelErrorEstimation::strip_pidhit3
int strip_pidhit3
Definition: SiPixelErrorEstimation.h:168
SiPixelErrorEstimation::edgey
int edgey
Definition: SiPixelErrorEstimation.h:187
edm::ESHandle< TrackerTopology >
PSimHit::localPosition
Local3DPoint localPosition() const
Definition: PSimHit.h:52
SiPixelErrorEstimation::computeAnglesFromDetPosition
void computeAnglesFromDetPosition(const SiPixelCluster &cl, const GeomDetUnit &det, float &alpha, float &beta)
Definition: SiPixelErrorEstimation.cc:1535
edmNew::DetSet
Definition: DetSetNew.h:22
SiPixelErrorEstimation::all_simtrketa
float all_simtrketa
Definition: SiPixelErrorEstimation.h:321
SiPixelErrorEstimation::all_clust_alpha
float all_clust_alpha
Definition: SiPixelErrorEstimation.h:339
PixelTopology::ncolumns
virtual int ncolumns() const =0
TrackerTopology::tibIsStereo
bool tibIsStereo(const DetId &id) const
Definition: TrackerTopology.h:266
SiPixelErrorEstimation::half
int half
Definition: SiPixelErrorEstimation.h:211
SiPixelErrorEstimation::strip_rechitz
float strip_rechitz
Definition: SiPixelErrorEstimation.h:99
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiPixelErrorEstimation::tfile_
TFile * tfile_
Definition: SiPixelErrorEstimation.h:365
TrackerTopology::tobIsZPlusSide
bool tobIsZPlusSide(const DetId &id) const
Definition: TrackerTopology.h:252
SiPixelErrorEstimation::trk_beta
float trk_beta
Definition: SiPixelErrorEstimation.h:196
SiPixelErrorEstimation::strip_is_stereo
int strip_is_stereo
Definition: SiPixelErrorEstimation.h:109
SiStripDetInfoFileReader.h
SiPixelErrorEstimation::all_pixgx
float all_pixgx[maxpix]
Definition: SiPixelErrorEstimation.h:349
Point3DBase< float, LocalTag >
SiPixelErrorEstimation::all_clust_y
float all_clust_y
Definition: SiPixelErrorEstimation.h:328
SiPixelRecHit.h
PixelTopology
Definition: PixelTopology.h:10
SiPixelErrorEstimation::all_simtheta
float all_simtheta
Definition: SiPixelErrorEstimation.h:285
SiPixelErrorEstimation::all_rechity
float all_rechity
Definition: SiPixelErrorEstimation.h:256
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
SiPixelErrorEstimation::strip_nsimhit
int strip_nsimhit
Definition: SiPixelErrorEstimation.h:122
SiPixelErrorEstimation::rechitresy
float rechitresy
Definition: SiPixelErrorEstimation.h:93
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiPixelErrorEstimation::strip_rechity
float strip_rechity
Definition: SiPixelErrorEstimation.h:98
SiPixelErrorEstimation::strip_tob_rod_number
int strip_tob_rod_number
Definition: SiPixelErrorEstimation.h:151
SiPixelErrorEstimation::strip_tib_is_z_plus_side
int strip_tib_is_z_plus_side
Definition: SiPixelErrorEstimation.h:133
SiPixelErrorEstimation::strip_subdet_id
int strip_subdet_id
Definition: SiPixelErrorEstimation.h:126
PbPb_ZMuSkimMuonDPG_cff.tracker
tracker
Definition: PbPb_ZMuSkimMuonDPG_cff.py:60
SiStripModuleGeometry::IB2
runTauDisplay.gp
gp
Definition: runTauDisplay.py:431
MeasurementPoint
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
Definition: MeasurementPoint.h:12
TrackerTopology::tibString
unsigned int tibString(const DetId &id) const
Definition: TrackerTopology.h:419
SiPixelRecHitCollection.h
SiPixelErrorEstimation::strip_rechitresx
float strip_rechitresx
Definition: SiPixelErrorEstimation.h:102
SiPixelErrorEstimation::all_cols
int all_cols
Definition: SiPixelErrorEstimation.h:252
SiPixelErrorEstimation::all_pixel_clst_err_x
float all_pixel_clst_err_x
Definition: SiPixelErrorEstimation.h:360
SiPixelErrorEstimation::all_simphi
float all_simphi
Definition: SiPixelErrorEstimation.h:284
edm::ParameterSet
Definition: ParameterSet.h:36
SiPixelErrorEstimation::strip_rechitpully
float strip_rechitpully
Definition: SiPixelErrorEstimation.h:108
SiPixelErrorEstimation
Definition: SiPixelErrorEstimation.h:63
SiPixelErrorEstimation::rechity
float rechity
Definition: SiPixelErrorEstimation.h:88
SiPixelErrorEstimation::strip_tib_is_internal_string
int strip_tib_is_internal_string
Definition: SiPixelErrorEstimation.h:138
SiPixelErrorEstimation::npix
int npix
Definition: SiPixelErrorEstimation.h:181
duplicaterechits_cfi.trackCollection
trackCollection
Definition: duplicaterechits_cfi.py:4
SiPixelErrorEstimation::include_trk_hits_
bool include_trk_hits_
Definition: SiPixelErrorEstimation.h:84
TrackerTopology::tobIsZMinusSide
bool tobIsZMinusSide(const DetId &id) const
Definition: TrackerTopology.h:253
SiPixelErrorEstimation::all_rows
int all_rows
Definition: SiPixelErrorEstimation.h:253
SiPixelErrorEstimation::strip_edge
int strip_edge
Definition: SiPixelErrorEstimation.h:121
SiPixelErrorEstimation::strip_rechitx
float strip_rechitx
Definition: SiPixelErrorEstimation.h:97
LocalError
Definition: LocalError.h:12
SiPixelErrorEstimation::all_row1
float all_row1
Definition: SiPixelErrorEstimation.h:309
PV2DBase::y
T y() const
Definition: PV2DBase.h:44
SiPixelErrorEstimation::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: SiPixelErrorEstimation.cc:371
PixelGeomDetUnit::specificTopology
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
Definition: PixelGeomDetUnit.cc:17
PV2DBase::x
T x() const
Definition: PV2DBase.h:43
SiPixelErrorEstimation::strip_tib_layer_number
int strip_tib_layer_number
Definition: SiPixelErrorEstimation.h:135
SiPixelErrorEstimation::strip_simproc5
int strip_simproc5
Definition: SiPixelErrorEstimation.h:175
SiPixelErrorEstimation::all_x1
float all_x1
Definition: SiPixelErrorEstimation.h:302
SiPixelErrorEstimation::all_z1
float all_z1
Definition: SiPixelErrorEstimation.h:306
SiPixelErrorEstimation::strip_pidhit
int strip_pidhit
Definition: SiPixelErrorEstimation.h:123
SiPixelErrorEstimation::all_subdetid
int all_subdetid
Definition: SiPixelErrorEstimation.h:237
position
static int position[264][3]
Definition: ReadPGInfo.cc:289
SiPixelErrorEstimation::strip_charge
float strip_charge
Definition: SiPixelErrorEstimation.h:119
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
SiPixelErrorEstimation::all_rechiterrx
float all_rechiterrx
Definition: SiPixelErrorEstimation.h:262
TrackerTopology::tibModule
unsigned int tibModule(const DetId &id) const
Definition: TrackerTopology.h:172
SiPixelErrorEstimation::pixel_clst_err_x
float pixel_clst_err_x
Definition: SiPixelErrorEstimation.h:232
TrackingRecHit::ConstRecHitPointer
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
Definition: TrackingRecHit.h:25
SiPixelErrorEstimation::all_pixel_split
int all_pixel_split
Definition: SiPixelErrorEstimation.h:359
SiPixelErrorEstimation::strip_tob_side
int strip_tob_side
Definition: SiPixelErrorEstimation.h:146
createfilelist.int
int
Definition: createfilelist.py:10
SiPixelErrorEstimation::strip_rechitresx2
float strip_rechitresx2
Definition: SiPixelErrorEstimation.h:104
SiPixelErrorEstimation::strip_cotalpha
float strip_cotalpha
Definition: SiPixelErrorEstimation.h:114
SiPixelErrorEstimation::nxpix
int nxpix
Definition: SiPixelErrorEstimation.h:182
SiPixelErrorEstimation::all_pixadc
float all_pixadc[maxpix]
Definition: SiPixelErrorEstimation.h:345
SiPixelErrorEstimation::bigx
int bigx
Definition: SiPixelErrorEstimation.h:189
SiPixelErrorEstimation::disk
int disk
Definition: SiPixelErrorEstimation.h:206
TrackerTopology::pxfModule
unsigned int pxfModule(const DetId &id) const
Definition: TrackerTopology.h:163
TrackerTopology::pxfDisk
unsigned int pxfDisk(const DetId &id) const
Definition: TrackerTopology.h:446
SiPixelErrorEstimation::strip_trk_pt
float strip_trk_pt
Definition: SiPixelErrorEstimation.h:113
SiPixelErrorEstimation::all_side
int all_side
Definition: SiPixelErrorEstimation.h:243
SiPixelErrorEstimation::all_simhitx
float all_simhitx
Definition: SiPixelErrorEstimation.h:259
SiPixelErrorEstimation::strip_hit_type
int strip_hit_type
Definition: SiPixelErrorEstimation.h:110
SiPixelErrorEstimation::all_rechiterry
float all_rechiterry
Definition: SiPixelErrorEstimation.h:263
SiPixelErrorEstimation::strip_cotbeta
float strip_cotbeta
Definition: SiPixelErrorEstimation.h:115
edmNew::DetSet::begin
iterator begin()
Definition: DetSetNew.h:54
SiPixelCluster::Pixel::y
uint16_t y
Definition: SiPixelCluster.h:34
SiPixelErrorEstimation::strip_locbz
float strip_locbz
Definition: SiPixelErrorEstimation.h:118
SiPixelErrorEstimation::beta
float beta
Definition: SiPixelErrorEstimation.h:193
edm::EventSetup
Definition: EventSetup.h:57
SiPixelErrorEstimation::all_vtxr
float all_vtxr
Definition: SiPixelErrorEstimation.h:291
TrackerGeometry::dets
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
Definition: TrackerGeometry.h:62
SiPixelErrorEstimation::strip_tob_module
int strip_tob_module
Definition: SiPixelErrorEstimation.h:144
SiStripRecHit1D
Definition: SiStripRecHit1D.h:8
get
#define get
SiPixelErrorEstimation::ladder
int ladder
Definition: SiPixelErrorEstimation.h:203
SiPixelErrorEstimation::tSimTrackContainer
edm::EDGetTokenT< edm::SimTrackContainer > tSimTrackContainer
Definition: SiPixelErrorEstimation.h:78
SiPixelErrorEstimation::strip_tib_is_z_minus_side
int strip_tib_is_z_minus_side
Definition: SiPixelErrorEstimation.h:134
SiPixelErrorEstimation::strip_tob_is_stereo
int strip_tob_is_stereo
Definition: SiPixelErrorEstimation.h:155
SiPixelErrorEstimation::strip_tob_is_double_side
int strip_tob_is_double_side
Definition: SiPixelErrorEstimation.h:147
SiPixelErrorEstimation::all_simproc
int all_simproc
Definition: SiPixelErrorEstimation.h:289
TrackingRecHit
Definition: TrackingRecHit.h:21
SiPixelErrorEstimation::all_rechitresy
float all_rechitresy
Definition: SiPixelErrorEstimation.h:266
SiPixelErrorEstimation::all_x2
float all_x2
Definition: SiPixelErrorEstimation.h:303
PV3DBase::mag
T mag() const
Definition: PV3DBase.h:64
SiPixelErrorEstimation::all_rechitx
float all_rechitx
Definition: SiPixelErrorEstimation.h:255
SiPixelErrorEstimation::strip_rechitpullx
float strip_rechitpullx
Definition: SiPixelErrorEstimation.h:107
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
SiPixelErrorEstimation::tTrackCollection
edm::EDGetTokenT< reco::TrackCollection > tTrackCollection
Definition: SiPixelErrorEstimation.h:79
SiPixelErrorEstimation::ttree_all_hits_
TTree * ttree_all_hits_
Definition: SiPixelErrorEstimation.h:366
TrackerHitAssociator
Definition: TrackerHitAssociator.h:55
GloballyPositioned::position
const PositionType & position() const
Definition: GloballyPositioned.h:36
SiPixelErrorEstimation::strip_pidhit2
int strip_pidhit2
Definition: SiPixelErrorEstimation.h:165
SiPixelErrorEstimation::strip_tib_side
int strip_tib_side
Definition: SiPixelErrorEstimation.h:131
SiPixelErrorEstimation::strip_size
int strip_size
Definition: SiPixelErrorEstimation.h:120
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
SiPixelErrorEstimation::all_clust_maxpixrow
int all_clust_maxpixrow
Definition: SiPixelErrorEstimation.h:333
SiPixelErrorEstimation::plaq
int plaq
Definition: SiPixelErrorEstimation.h:209
std
Definition: JetResolutionObject.h:76
SiPixelErrorEstimation::all_half
int all_half
Definition: SiPixelErrorEstimation.h:249
SiPixelErrorEstimation::strip_tob_module_number
int strip_tob_module_number
Definition: SiPixelErrorEstimation.h:152
SiPixelErrorEstimation::rechitresx
float rechitresx
Definition: SiPixelErrorEstimation.h:92
SiPixelErrorEstimation::all_col1
float all_col1
Definition: SiPixelErrorEstimation.h:311
TrackerTopology::tobModule
unsigned int tobModule(const DetId &id) const
Definition: TrackerTopology.h:166
SiPixelErrorEstimation::ttree_track_hits_
TTree * ttree_track_hits_
Definition: SiPixelErrorEstimation.h:367
SiPixelErrorEstimation::flipped
int flipped
Definition: SiPixelErrorEstimation.h:212
TrackerTopology::pxbModule
unsigned int pxbModule(const DetId &id) const
Definition: TrackerTopology.h:160
TrackerTopology::tibIsDoubleSide
bool tibIsDoubleSide(const DetId &id) const
Definition: TrackerTopology.h:249
SiPixelErrorEstimation::all_hit_cprob0
float all_hit_cprob0
Definition: SiPixelErrorEstimation.h:355
edm::SimTrackContainer
std::vector< SimTrack > SimTrackContainer
Definition: SimTrackContainer.h:12
SiPixelErrorEstimation::strip_tib_is_double_side
int strip_tib_is_double_side
Definition: SiPixelErrorEstimation.h:132
SiStripMatchedRecHit2D
Definition: SiStripMatchedRecHit2D.h:8
SiPixelErrorEstimation::all_edgex
int all_edgex
Definition: SiPixelErrorEstimation.h:275
DetId.h
SiPixelErrorEstimation::trackerHitAssociatorConfig_
TrackerHitAssociator::Config trackerHitAssociatorConfig_
Definition: SiPixelErrorEstimation.h:371
SiPixelErrorEstimation::simproc
int simproc
Definition: SiPixelErrorEstimation.h:216
SiPixelErrorEstimation::all_hit_probx
float all_hit_probx
Definition: SiPixelErrorEstimation.h:353
LocalPoint.h
LocalTrajectoryParameters::momentum
LocalVector momentum() const
Momentum vector in the local frame.
Definition: LocalTrajectoryParameters.h:88
SiPixelErrorEstimation::trk_alpha
float trk_alpha
Definition: SiPixelErrorEstimation.h:195
edmNew::DetSetVector::end
const_iterator end(bool update=false) const
Definition: DetSetVectorNew.h:577
SiPixelErrorEstimation::strip_nprm
int strip_nprm
Definition: SiPixelErrorEstimation.h:160
SiPixelErrorEstimation::strip_simproc
int strip_simproc
Definition: SiPixelErrorEstimation.h:124
SiPixelErrorEstimation::nypix
int nypix
Definition: SiPixelErrorEstimation.h:183
SiPixelErrorEstimation::all_clust_beta
float all_clust_beta
Definition: SiPixelErrorEstimation.h:340
SiPixelErrorEstimation::strip_tob_is_z_minus_side
int strip_tob_is_z_minus_side
Definition: SiPixelErrorEstimation.h:149
SiPixelErrorEstimation::mod
int mod
Definition: SiPixelErrorEstimation.h:204
SiPixelErrorEstimation::all_flipped
int all_flipped
Definition: SiPixelErrorEstimation.h:250
SiPixelErrorEstimation::bigy
int bigy
Definition: SiPixelErrorEstimation.h:190
SiPixelErrorEstimation::all_trkid
int all_trkid
Definition: SiPixelErrorEstimation.h:300
toLocal
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
Definition: ConversionProducer.h:192
SiPixelErrorEstimation::all_rechitpullx
float all_rechitpullx
Definition: SiPixelErrorEstimation.h:268
SiPixelErrorEstimation::all_nxpix
int all_nxpix
Definition: SiPixelErrorEstimation.h:272
SiPixelErrorEstimation::all_clust_geoid
int all_clust_geoid
Definition: SiPixelErrorEstimation.h:337
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
SiPixelErrorEstimation::rechitpully
float rechitpully
Definition: SiPixelErrorEstimation.h:95
TrackerTopology::tibIsZPlusSide
bool tibIsZPlusSide(const DetId &id) const
Definition: TrackerTopology.h:255
SiPixelErrorEstimation::all_clust_minpixrow
int all_clust_minpixrow
Definition: SiPixelErrorEstimation.h:335
GlobalVector.h
PSimHit::particleType
int particleType() const
Definition: PSimHit.h:89
SiPixelErrorEstimation::strip_tib_layer
int strip_tib_layer
Definition: SiPixelErrorEstimation.h:128
SiPixelErrorEstimation::all_gz2
float all_gz2
Definition: SiPixelErrorEstimation.h:319
SiPixelErrorEstimation::all_pixgz
float all_pixgz[maxpix]
Definition: SiPixelErrorEstimation.h:351
SiStripModuleGeometry::OB2
SiPixelErrorEstimation::panel
int panel
Definition: SiPixelErrorEstimation.h:208
SiPixelErrorEstimation::all_pixx
float all_pixx[maxpix]
Definition: SiPixelErrorEstimation.h:347
TrackerTopology::pxfBlade
unsigned int pxfBlade(const DetId &id) const
Definition: TrackerTopology.h:447
math_pi
const float math_pi
Definition: SiPixelCPEGenericDBErrorParametrization.cc:6
SiPixelErrorEstimation::pixel_split
int pixel_split
Definition: SiPixelErrorEstimation.h:230
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
SiPixelErrorEstimation::strip_simproc4
int strip_simproc4
Definition: SiPixelErrorEstimation.h:172
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
SiPixelCluster::Pixel::x
uint16_t x
Definition: SiPixelCluster.h:33
SiStripDetId
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:18
PSimHit
Definition: PSimHit.h:15
SiPixelErrorEstimation::beginJob
void beginJob() override
Definition: SiPixelErrorEstimation.cc:60
SiPixelErrorEstimation::all_eloss
float all_eloss
Definition: SiPixelErrorEstimation.h:298
SiPixelErrorEstimation::checkType_
bool checkType_
Definition: SiPixelErrorEstimation.h:82
SiPixelErrorEstimation::all_gz1
float all_gz1
Definition: SiPixelErrorEstimation.h:318
SiPixelErrorEstimation.h
TrackerTopology::tibIsRPhi
bool tibIsRPhi(const DetId &id) const
Definition: TrackerTopology.h:271
edm::Event
Definition: Event.h:73
PixelTopology::nrows
virtual int nrows() const =0
LocalVector.h
TrackerTopology::tibIsZMinusSide
bool tibIsZMinusSide(const DetId &id) const
Definition: TrackerTopology.h:256
SiPixelErrorEstimation::strip_rechitresy
float strip_rechitresy
Definition: SiPixelErrorEstimation.h:106
SiPixelErrorEstimation::strip_rechiterrx
float strip_rechiterrx
Definition: SiPixelErrorEstimation.h:100
SiPixelErrorEstimation::strip_tib_is_stereo
int strip_tib_is_stereo
Definition: SiPixelErrorEstimation.h:141
SiPixelErrorEstimation::all_rechitresx
float all_rechitresx
Definition: SiPixelErrorEstimation.h:265
SiPixelErrorEstimation::all_blade
int all_blade
Definition: SiPixelErrorEstimation.h:245
SiPixelErrorEstimation::strip_tob_is_z_plus_side
int strip_tob_is_z_plus_side
Definition: SiPixelErrorEstimation.h:148
LocalError::yy
float yy() const
Definition: LocalError.h:24
SimTrackContainer.h
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
SiPixelRecHit::clusterProbability
float clusterProbability(unsigned int flags=0) const
Definition: SiPixelRecHit.cc:9
SiPixelErrorEstimation::run
int run
Definition: SiPixelErrorEstimation.h:222
edm::InputTag
Definition: InputTag.h:15
SiPixelErrorEstimation::blade
int blade
Definition: SiPixelErrorEstimation.h:207
reco::TrackCollection
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:14
SiPixelErrorEstimation::pidhit
int pidhit
Definition: SiPixelErrorEstimation.h:215
TrackerTopology::tobSide
unsigned int tobSide(const DetId &id) const
Definition: TrackerTopology.h:180
SiPixelErrorEstimation::strip_pidhit4
int strip_pidhit4
Definition: SiPixelErrorEstimation.h:171
hit
Definition: SiStripHitEffFromCalibTree.cc:88
Local3DPoint
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
StripGeomDetUnit
Definition: StripGeomDetUnit.h:15
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150
TrackerGeometry
Definition: TrackerGeometry.h:14
SiPixelErrorEstimation::all_alpha
float all_alpha
Definition: SiPixelErrorEstimation.h:281
SiPixelErrorEstimation::all_y1
float all_y1
Definition: SiPixelErrorEstimation.h:304
SiPixelErrorEstimation::hit_probx
float hit_probx
Definition: SiPixelErrorEstimation.h:224