30 #include "CLHEP/Units/GlobalSystemOfUnits.h"
31 #include <CLHEP/Vector/LorentzVector.h>
40 verbose_(ps.getUntrackedParameter<bool>(
"Verbosity",
false)),
41 edmPSimHitContainer_pxlBrlLow_Token_(
43 edmPSimHitContainer_pxlBrlHigh_Token_(
45 edmPSimHitContainer_pxlFwdLow_Token_(
47 edmPSimHitContainer_pxlFwdHigh_Token_(
49 edmPSimHitContainer_siTIBLow_Token_(
51 edmPSimHitContainer_siTIBHigh_Token_(
53 edmPSimHitContainer_siTOBLow_Token_(
55 edmPSimHitContainer_siTOBHigh_Token_(
57 edmPSimHitContainer_siTIDLow_Token_(
59 edmPSimHitContainer_siTIDHigh_Token_(
61 edmPSimHitContainer_siTECLow_Token_(
63 edmPSimHitContainer_siTECHigh_Token_(
68 runStandalone(ps.getParameter<bool>(
"runStandalone")),
69 fOutputFile(ps.getUntrackedParameter<std::
string>(
"outputFile",
"TrackerHitHisto.root")),
70 pixelOutput(ps.getParameter<bool>(
"pixelOutput")) {}
76 Char_t hname1[50], htitle1[80];
77 Char_t hname2[50], htitle2[80];
78 Char_t hname3[50], htitle3[80];
79 Char_t hname4[50], htitle4[80];
80 Char_t hname5[50], htitle5[80];
81 Char_t hname6[50], htitle6[80];
83 if (
fDBE !=
nullptr) {
91 htofeta = ibooker.
book2D(
"tof_eta",
"Time of flight vs eta", nbin, -3.0, 3.0, 200, -100, 100);
92 htofphi = ibooker.
book2D(
"tof_phi",
"Time of flight vs phi", nbin, -180, 180, 200, -100, 100);
93 htofr = ibooker.
book2D(
"tof_r",
"Time of flight vs r", nbin, 0, 300, 200, -100, 100);
94 htofz = ibooker.
book2D(
"tof_z",
"Time of flight vs z", nbin, -280, 280, 200, -100, 100);
96 const float E2NEL = 1.;
98 const char *Region[] = {
"005",
"051",
"115",
"152",
"225",
"253",
"-050",
"-105",
"-151",
"-215",
"-252",
"-325"};
102 for (
int i = 0;
i < 12;
i++) {
103 sprintf(htitle1,
"Energy loss in TIB %s", Region[
i]);
104 sprintf(htitle2,
"Energy loss in TOB %s", Region[i]);
105 sprintf(htitle3,
"Energy loss in TID %s", Region[i]);
106 sprintf(htitle4,
"Energy loss in TEC %s", Region[i]);
108 sprintf(htitle5,
"Energy loss in BPIX %s", Region[i]);
110 sprintf(htitle6,
"Energy loss in FPIX %s", Region[i]);
112 sprintf(hname1,
"Eloss_TIB_%i", i + 1);
113 sprintf(hname2,
"Eloss_TOB_%i", i + 1);
114 sprintf(hname3,
"Eloss_TID_%i", i + 1);
115 sprintf(hname4,
"Eloss_TEC_%i", i + 1);
117 sprintf(hname5,
"Eloss_BPIX_%i", i + 1);
119 sprintf(hname6,
"Eloss_FPIX_%i", i + 1);
122 h1e[
i] = ibooker.
book1D(hname1, htitle1, nbin, 0.0, 0.001 * E2NEL);
124 h2e[
i] = ibooker.
book1D(hname2, htitle2, nbin, 0.0, 0.001 * E2NEL);
126 h3e[
i] = ibooker.
book1D(hname3, htitle3, nbin, 0.0, 0.001 * E2NEL);
128 h4e[
i] = ibooker.
book1D(hname4, htitle4, nbin, 0.0, 0.001 * E2NEL);
131 h5e[
i] = ibooker.
book1D(hname5, htitle5, nbin, 0.0, 0.001 * E2NEL);
133 h6e[
i] = ibooker.
book1D(hname6, htitle6, nbin, 0.0, 0.001 * E2NEL);
138 const float high[] = {0.03, 0.03, 0.02, 0.03, 0.03, 0.03};
139 const float low[] = {-0.03, -0.03, -0.02, -0.03, -0.03, -0.03};
141 for (
int i = 0;
i < 12;
i++) {
142 sprintf(htitle1,
"Entryx-Exitx in TIB %s", Region[
i]);
143 sprintf(htitle2,
"Entryx-Exitx in TOB %s", Region[i]);
144 sprintf(htitle3,
"Entryx-Exitx in TID %s", Region[i]);
145 sprintf(htitle4,
"Entryx-Exitx in TEC %s", Region[i]);
147 sprintf(htitle5,
"Entryx-Exitx in BPIX %s", Region[i]);
149 sprintf(htitle6,
"Entryx-Exitx in FPIX %s", Region[i]);
151 sprintf(hname1,
"Entryx-Exitx_TIB_%i", i + 1);
152 sprintf(hname2,
"Entryx-Exitx_TOB_%i", i + 1);
153 sprintf(hname3,
"Entryx-Exitx_TID_%i", i + 1);
154 sprintf(hname4,
"Entryx-Exitx_TEC_%i", i + 1);
156 sprintf(hname5,
"Entryx-Exitx_BPIX_%i", i + 1);
158 sprintf(hname6,
"Entryx-Exitx_FPIX_%i", i + 1);
161 h1ex[
i] = ibooker.
book1D(hname1, htitle1, nbin, low[0], high[0]);
163 h2ex[
i] = ibooker.
book1D(hname2, htitle2, nbin, low[1], high[1]);
165 h3ex[
i] = ibooker.
book1D(hname3, htitle3, nbin, low[2], high[2]);
167 h4ex[
i] = ibooker.
book1D(hname4, htitle4, nbin, low[3], high[3]);
170 h5ex[
i] = ibooker.
book1D(hname5, htitle5, nbin, low[4], high[4]);
172 h6ex[
i] = ibooker.
book1D(hname6, htitle6, nbin, low[5], high[5]);
176 const float high0[] = {0.05, 0.06, 0.03, 0.03, 0.03, 0.03};
177 const float low0[] = {-0.05, -0.06, -0.03, -0.03, -0.03, -0.03};
179 for (
int i = 0;
i < 12;
i++) {
180 sprintf(htitle1,
"Entryy-Exity in TIB %s", Region[
i]);
181 sprintf(htitle2,
"Entryy-Exity in TOB %s", Region[i]);
182 sprintf(htitle3,
"Entryy-Exity in TID %s", Region[i]);
183 sprintf(htitle4,
"Entryy-Exity in TEC %s", Region[i]);
185 sprintf(htitle5,
"Entryy-Exity in BPIX %s", Region[i]);
187 sprintf(htitle6,
"Entryy-Exity in FPIX %s", Region[i]);
189 sprintf(hname1,
"Entryy-Exity_TIB_%i", i + 1);
190 sprintf(hname2,
"Entryy-Exity_TOB_%i", i + 1);
191 sprintf(hname3,
"Entryy-Exity_TID_%i", i + 1);
192 sprintf(hname4,
"Entryy-Exity_TEC_%i", i + 1);
194 sprintf(hname5,
"Entryy-Exity_BPIX_%i", i + 1);
196 sprintf(hname6,
"Entryy-Exity_FPIX_%i", i + 1);
199 h1ey[
i] = ibooker.
book1D(hname1, htitle1, nbin, low0[0], high0[0]);
201 h2ey[
i] = ibooker.
book1D(hname2, htitle2, nbin, low0[1], high0[1]);
203 h3ey[
i] = ibooker.
book1D(hname3, htitle3, nbin, low0[2], high0[2]);
205 h4ey[
i] = ibooker.
book1D(hname4, htitle4, nbin, low0[3], high0[3]);
208 h5ey[
i] = ibooker.
book1D(hname5, htitle5, nbin, low0[4], high0[4]);
210 h6ey[
i] = ibooker.
book1D(hname6, htitle6, nbin, low0[5], high0[5]);
214 const float high1[] = {0.05, 0.06, 0.05, 0.06, 0.05, 0.05};
215 const float low1[] = {0., 0., 0., 0., 0., 0.};
217 for (
int i = 0;
i < 12;
i++) {
218 sprintf(htitle1,
"abs(Entryz-Exitz) in TIB %s", Region[
i]);
219 sprintf(htitle2,
"abs(Entryz-Exitz) in TOB %s", Region[i]);
220 sprintf(htitle3,
"abs(Entryz-Exitz) in TID %s", Region[i]);
221 sprintf(htitle4,
"abs(Entryz-Exitz) in TEC %s", Region[i]);
223 sprintf(htitle5,
"abs(Entryz-Exitz) in BPIX %s", Region[i]);
225 sprintf(htitle6,
"abs(Entryz-Exitz) in FPIX %s", Region[i]);
227 sprintf(hname1,
"Entryz-Exitz_TIB_%i", i + 1);
228 sprintf(hname2,
"Entryz-Exitz_TOB_%i", i + 1);
229 sprintf(hname3,
"Entryz-Exitz_TID_%i", i + 1);
230 sprintf(hname4,
"Entryz-Exitz_TEC_%i", i + 1);
232 sprintf(hname5,
"Entryz-Exitz_BPIX_%i", i + 1);
234 sprintf(hname6,
"Entryz-Exitz_FPIX_%i", i + 1);
237 h1ez[
i] = ibooker.
book1D(hname1, htitle1, nbin, low1[0], high1[0]);
239 h2ez[
i] = ibooker.
book1D(hname2, htitle2, nbin, low1[1], high1[1]);
241 h3ez[
i] = ibooker.
book1D(hname3, htitle3, nbin, low1[2], high1[2]);
243 h4ez[
i] = ibooker.
book1D(hname4, htitle4, nbin, low1[3], high1[3]);
246 h5ez[
i] = ibooker.
book1D(hname5, htitle5, nbin, low1[4], high1[4]);
248 h6ez[
i] = ibooker.
book1D(hname6, htitle6, nbin, low1[5], high1[5]);
252 const float high2[] = {3.2, 5.0, 5.5, 6.2, 0.85, 0.5};
253 const float low2[] = {-3.2, -5.0, -5.5, -6.2, -0.85, -0.5};
255 for (
int i = 0;
i < 12;
i++) {
256 sprintf(htitle1,
"Localx in TIB %s", Region[
i]);
257 sprintf(htitle2,
"Localx in TOB %s", Region[i]);
258 sprintf(htitle3,
"Localx in TID %s", Region[i]);
259 sprintf(htitle4,
"Localx in TEC %s", Region[i]);
261 sprintf(htitle5,
"Localx in BPIX %s", Region[i]);
263 sprintf(htitle6,
"Localx in FPIX %s", Region[i]);
265 sprintf(hname1,
"Localx_TIB_%i", i + 1);
266 sprintf(hname2,
"Localx_TOB_%i", i + 1);
267 sprintf(hname3,
"Localx_TID_%i", i + 1);
268 sprintf(hname4,
"Localx_TEC_%i", i + 1);
270 sprintf(hname5,
"Localx_BPIX_%i", i + 1);
272 sprintf(hname6,
"Localx_FPIX_%i", i + 1);
275 h1lx[
i] = ibooker.
book1D(hname1, htitle1, nbin, low2[0], high2[0]);
277 h2lx[
i] = ibooker.
book1D(hname2, htitle2, nbin, low2[1], high2[1]);
279 h3lx[
i] = ibooker.
book1D(hname3, htitle3, nbin, low2[2], high2[2]);
281 h4lx[
i] = ibooker.
book1D(hname4, htitle4, nbin, low2[3], high2[3]);
284 h5lx[
i] = ibooker.
book1D(hname5, htitle5, nbin, low2[4], high2[4]);
286 h6lx[
i] = ibooker.
book1D(hname6, htitle6, nbin, low2[5], high2[5]);
290 const float high3[] = {6.0, 10., 5.6, 10.5, 3.4, 0.52};
291 const float low3[] = {-6.0, -10., -5.6, -10.5, -3.4, -0.52};
293 for (
int i = 0;
i < 12;
i++) {
294 sprintf(htitle1,
"Localy in TIB %s", Region[
i]);
295 sprintf(htitle2,
"Localy in TOB %s", Region[i]);
296 sprintf(htitle3,
"Localy in TID %s", Region[i]);
297 sprintf(htitle4,
"Localy in TEC %s", Region[i]);
299 sprintf(htitle5,
"Localy in BPIX %s", Region[i]);
301 sprintf(htitle6,
"Localy in FPIX %s", Region[i]);
303 sprintf(hname1,
"Localy_TIB_%i", i + 1);
304 sprintf(hname2,
"Localy_TOB_%i", i + 1);
305 sprintf(hname3,
"Localy_TID_%i", i + 1);
306 sprintf(hname4,
"Localy_TEC_%i", i + 1);
308 sprintf(hname5,
"Localy_BPIX_%i", i + 1);
310 sprintf(hname6,
"Localy_FPIX_%i", i + 1);
313 h1ly[
i] = ibooker.
book1D(hname1, htitle1, nbin, low3[0], high3[0]);
315 h2ly[
i] = ibooker.
book1D(hname2, htitle2, nbin, low3[1], high3[1]);
317 h3ly[
i] = ibooker.
book1D(hname3, htitle3, nbin, low3[2], high3[2]);
319 h4ly[
i] = ibooker.
book1D(hname4, htitle4, nbin, low3[3], high3[3]);
322 h5ly[
i] = ibooker.
book1D(hname5, htitle5, nbin, low3[4], high3[4]);
324 h6ly[
i] = ibooker.
book1D(hname6, htitle6, nbin, low3[5], high3[5]);
338 edm::PSimHitContainer::const_iterator itHit;
345 if (!PxlBrlLowContainer.
isValid()) {
346 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find TrackerHitsPixelBarrelLowTof in event!";
352 if (!PxlBrlHighContainer.
isValid()) {
353 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find TrackerHitsPixelBarrelHighTof in event!";
362 if (!PxlFwdLowContainer.
isValid()) {
363 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find TrackerHitsPixelEndcapLowTof in event!";
369 if (!PxlFwdHighContainer.
isValid()) {
370 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find TrackerHitsPixelEndcapHighTof in event!";
379 if (!SiTIBLowContainer.
isValid()) {
380 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTIBLowTof in event!";
387 if (!SiTIBHighContainer.
isValid()) {
388 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTIBHighTof in event!";
397 if (!SiTOBLowContainer.
isValid()) {
398 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTOBLowTof in event!";
405 if (!SiTOBHighContainer.
isValid()) {
406 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTOBHighTof in event!";
416 if (!SiTIDLowContainer.
isValid()) {
417 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTIDLowTof in event!";
424 if (!SiTIDHighContainer.
isValid()) {
425 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTIDHighTof in event!";
434 if (!SiTECLowContainer.
isValid()) {
435 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTECLowTof in event!";
442 if (!SiTECHighContainer.
isValid()) {
443 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTECHighTof in event!";
453 if (!G4TrkContainer.
isValid()) {
454 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find SimTrack in event!";
462 edm::SimTrackContainer::const_iterator itTrk;
463 for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
465 double eta = 0,
p = 0;
466 const CLHEP::HepLorentzVector &G4Trk = CLHEP::HepLorentzVector(
467 itTrk->momentum().x(), itTrk->momentum().y(), itTrk->momentum().z(), itTrk->momentum().e());
468 p =
sqrt(G4Trk[0] * G4Trk[0] + G4Trk[1] * G4Trk[1] + G4Trk[2] * G4Trk[2]);
470 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"TrackerTest::INFO: Primary has p = 0 ";
472 double costheta = G4Trk[2] /
p;
474 eta = -
log(
tan(theta / 2));
476 if (eta > 0.0 && eta <= 0.5)
478 if (eta > 0.5 && eta <= 1.0)
480 if (eta > 1.0 && eta <= 1.5)
482 if (eta > 1.5 && eta <= 2.0)
484 if (eta > 2.0 && eta <= 2.5)
489 if (eta > -0.5 && eta <= 0.0)
491 if (eta > -1.0 && eta <= -0.5)
493 if (eta > -1.5 && eta <= -1.0)
495 if (eta > -2.0 && eta <= -1.5)
497 if (eta > -2.5 && eta <= -2.0)
514 for (itHit = PxlBrlLowContainer->begin(); itHit != PxlBrlLowContainer->end(); ++itHit) {
517 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
523 h5e[ir]->
Fill(itHit->energyLoss());
524 h5ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
525 h5ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
526 h5ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
527 h5lx[ir]->
Fill(itHit->localPosition().x());
528 h5ly[ir]->
Fill(itHit->localPosition().y());
530 for (itHit = PxlBrlHighContainer->begin(); itHit != PxlBrlHighContainer->end(); ++itHit) {
533 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
539 h5e[ir]->
Fill(itHit->energyLoss());
540 h5ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
541 h5ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
542 h5ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
543 h5lx[ir]->
Fill(itHit->localPosition().x());
544 h5ly[ir]->
Fill(itHit->localPosition().y());
546 for (itHit = PxlFwdLowContainer->begin(); itHit != PxlFwdLowContainer->end(); ++itHit) {
549 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
555 h6e[ir]->
Fill(itHit->energyLoss());
556 h6ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
557 h6ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
558 h6ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
559 h6lx[ir]->
Fill(itHit->localPosition().x());
560 h6ly[ir]->
Fill(itHit->localPosition().y());
562 for (itHit = PxlFwdHighContainer->begin(); itHit != PxlFwdHighContainer->end(); ++itHit) {
565 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
571 h6e[ir]->
Fill(itHit->energyLoss());
572 h6ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
573 h6ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
574 h6ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
575 h6lx[ir]->
Fill(itHit->localPosition().x());
576 h6ly[ir]->
Fill(itHit->localPosition().y());
582 for (itHit = SiTIBLowContainer->begin(); itHit != SiTIBLowContainer->end(); ++itHit) {
585 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
591 h1e[ir]->
Fill(itHit->energyLoss());
592 h1ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
593 h1ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
594 h1ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
595 h1lx[ir]->
Fill(itHit->localPosition().x());
596 h1ly[ir]->
Fill(itHit->localPosition().y());
598 for (itHit = SiTIBHighContainer->begin(); itHit != SiTIBHighContainer->end(); ++itHit) {
601 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
607 h1e[ir]->
Fill(itHit->energyLoss());
608 h1ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
609 h1ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
610 h1ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
611 h1lx[ir]->
Fill(itHit->localPosition().x());
612 h1ly[ir]->
Fill(itHit->localPosition().y());
617 for (itHit = SiTOBLowContainer->begin(); itHit != SiTOBLowContainer->end(); ++itHit) {
620 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
626 h2e[ir]->
Fill(itHit->energyLoss());
627 h2ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
628 h2ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
629 h2ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
630 h2lx[ir]->
Fill(itHit->localPosition().x());
631 h2ly[ir]->
Fill(itHit->localPosition().y());
633 for (itHit = SiTOBHighContainer->begin(); itHit != SiTOBHighContainer->end(); ++itHit) {
636 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
642 h2e[ir]->
Fill(itHit->energyLoss());
643 h2ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
644 h2ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
645 h2ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
646 h2lx[ir]->
Fill(itHit->localPosition().x());
647 h2ly[ir]->
Fill(itHit->localPosition().y());
652 for (itHit = SiTIDLowContainer->begin(); itHit != SiTIDLowContainer->end(); ++itHit) {
655 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
661 h3e[ir]->
Fill(itHit->energyLoss());
662 h3ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
663 h3ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
664 h3ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
665 h3lx[ir]->
Fill(itHit->localPosition().x());
666 h3ly[ir]->
Fill(itHit->localPosition().y());
668 for (itHit = SiTIDHighContainer->begin(); itHit != SiTIDHighContainer->end(); ++itHit) {
671 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
677 h3e[ir]->
Fill(itHit->energyLoss());
678 h3ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
679 h3ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
680 h3ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
681 h3lx[ir]->
Fill(itHit->localPosition().x());
682 h3ly[ir]->
Fill(itHit->localPosition().y());
687 for (itHit = SiTECLowContainer->begin(); itHit != SiTECLowContainer->end(); ++itHit) {
690 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
696 h4e[ir]->
Fill(itHit->energyLoss());
697 h4ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
698 h4ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
699 h4ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
700 h4lx[ir]->
Fill(itHit->localPosition().x());
701 h4ly[ir]->
Fill(itHit->localPosition().y());
703 for (itHit = SiTECHighContainer->begin(); itHit != SiTECHighContainer->end(); ++itHit) {
706 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
712 h4e[ir]->
Fill(itHit->energyLoss());
713 h4ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
714 h4ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
715 h4ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
716 h4lx[ir]->
Fill(itHit->localPosition().x());
717 h4ly[ir]->
Fill(itHit->localPosition().y());
EventNumber_t event() const
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
MonitorElement * h2lx[12]
static std::vector< std::string > checklist log
const edm::EventSetup & c
MonitorElement * h1lx[12]
MonitorElement * h6ex[12]
MonitorElement * h1ey[12]
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECLow_Token_
MonitorElement * h3ly[12]
MonitorElement * h5ez[12]
MonitorElement * h4ex[12]
virtual void setCurrentFolder(std::string const &fullpath)
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
MonitorElement * h1ez[12]
~TrackerHitAnalyzer() override
Destructor.
MonitorElement * h3ez[12]
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlLow_Token_
Geom::Phi< T > phi() const
Geom::Theta< T > theta() const
MonitorElement * h5ey[12]
MonitorElement * h3lx[12]
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdLow_Token_
Log< level::Error, false > LogError
MonitorElement * h6ly[12]
MonitorElement * h5ex[12]
MonitorElement * h5ly[12]
bool getData(T &iHolder) const
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBLow_Token_
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Analyze.
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBHigh_Token_
MonitorElement * h1ex[12]
MonitorElement * h6ey[12]
Tan< T >::type tan(const T &t)
MonitorElement * h4lx[12]
MonitorElement * h2ex[12]
MonitorElement * h6ez[12]
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDLow_Token_
MonitorElement * h2ez[12]
Log< level::Info, false > LogInfo
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlHigh_Token_
MonitorElement * h5lx[12]
MonitorElement * h4ey[12]
MonitorElement * h1ly[12]
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomEsToken_
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
MonitorElement * h4ly[12]
MonitorElement * h3ex[12]
MonitorElement * h3ey[12]
MonitorElement * h2ey[12]
MonitorElement * h2ly[12]
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBHigh_Token_
std::vector< PSimHit > PSimHitContainer
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdHigh_Token_
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
TrackerHitAnalyzer(const edm::ParameterSet &ps)
Constructor.
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECHigh_Token_
std::vector< SimTrack > SimTrackContainer
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDHigh_Token_
MonitorElement * h6lx[12]
MonitorElement * h4ez[12]