32 #include "CLHEP/Units/GlobalSystemOfUnits.h" 33 #include <CLHEP/Vector/LorentzVector.h> 41 : verbose_(ps.getUntrackedParameter<
bool>(
"Verbosity",
false)),
42 edmPSimHitContainer_pxlBrlLow_Token_(
44 edmPSimHitContainer_pxlBrlHigh_Token_(
46 edmPSimHitContainer_pxlFwdLow_Token_(
48 edmPSimHitContainer_pxlFwdHigh_Token_(
50 edmPSimHitContainer_siTIBLow_Token_(
52 edmPSimHitContainer_siTIBHigh_Token_(
54 edmPSimHitContainer_siTOBLow_Token_(
56 edmPSimHitContainer_siTOBHigh_Token_(
58 edmPSimHitContainer_siTIDLow_Token_(
60 edmPSimHitContainer_siTIDHigh_Token_(
62 edmPSimHitContainer_siTECLow_Token_(
64 edmPSimHitContainer_siTECHigh_Token_(
70 fOutputFile(ps.getUntrackedParameter<
std::
string>(
"outputFile",
"TrackerHitHisto.root")),
77 Char_t hname1[50], htitle1[80];
78 Char_t hname2[50], htitle2[80];
79 Char_t hname3[50], htitle3[80];
80 Char_t hname4[50], htitle4[80];
81 Char_t hname5[50], htitle5[80];
82 Char_t hname6[50], htitle6[80];
89 if (
fDBE !=
nullptr) {
97 htofeta = ibooker.
book2D(
"tof_eta",
"Time of flight vs eta", nbin, -3.0, 3.0, 200, -100, 100);
98 htofphi = ibooker.
book2D(
"tof_phi",
"Time of flight vs phi", nbin, -180, 180, 200, -100, 100);
99 htofr = ibooker.
book2D(
"tof_r",
"Time of flight vs r", nbin, 0, 300, 200, -100, 100);
100 htofz = ibooker.
book2D(
"tof_z",
"Time of flight vs z", nbin, -280, 280, 200, -100, 100);
102 const float E2NEL = 1.;
104 const char *
Region[] = {
"005",
"051",
"115",
"152",
"225",
"253",
"-050",
"-105",
"-151",
"-215",
"-252",
"-325"};
108 for (
int i = 0;
i < 12;
i++) {
109 sprintf(htitle1,
"Energy loss in TIB %s", Region[
i]);
110 sprintf(htitle2,
"Energy loss in TOB %s", Region[i]);
111 sprintf(htitle3,
"Energy loss in TID %s", Region[i]);
112 sprintf(htitle4,
"Energy loss in TEC %s", Region[i]);
114 sprintf(htitle5,
"Energy loss in BPIX %s", Region[i]);
116 sprintf(htitle6,
"Energy loss in FPIX %s", Region[i]);
118 sprintf(hname1,
"Eloss_TIB_%i", i + 1);
119 sprintf(hname2,
"Eloss_TOB_%i", i + 1);
120 sprintf(hname3,
"Eloss_TID_%i", i + 1);
121 sprintf(hname4,
"Eloss_TEC_%i", i + 1);
123 sprintf(hname5,
"Eloss_BPIX_%i", i + 1);
125 sprintf(hname6,
"Eloss_FPIX_%i", i + 1);
128 h1e[
i] = ibooker.
book1D(hname1, htitle1, nbin, 0.0, 0.001 * E2NEL);
130 h2e[
i] = ibooker.
book1D(hname2, htitle2, nbin, 0.0, 0.001 * E2NEL);
132 h3e[
i] = ibooker.
book1D(hname3, htitle3, nbin, 0.0, 0.001 * E2NEL);
134 h4e[
i] = ibooker.
book1D(hname4, htitle4, nbin, 0.0, 0.001 * E2NEL);
137 h5e[
i] = ibooker.
book1D(hname5, htitle5, nbin, 0.0, 0.001 * E2NEL);
139 h6e[
i] = ibooker.
book1D(hname6, htitle6, nbin, 0.0, 0.001 * E2NEL);
144 const float high[] = {0.03, 0.03, 0.02, 0.03, 0.03, 0.03};
145 const float low[] = {-0.03, -0.03, -0.02, -0.03, -0.03, -0.03};
147 for (
int i = 0;
i < 12;
i++) {
148 sprintf(htitle1,
"Entryx-Exitx in TIB %s", Region[
i]);
149 sprintf(htitle2,
"Entryx-Exitx in TOB %s", Region[i]);
150 sprintf(htitle3,
"Entryx-Exitx in TID %s", Region[i]);
151 sprintf(htitle4,
"Entryx-Exitx in TEC %s", Region[i]);
153 sprintf(htitle5,
"Entryx-Exitx in BPIX %s", Region[i]);
155 sprintf(htitle6,
"Entryx-Exitx in FPIX %s", Region[i]);
157 sprintf(hname1,
"Entryx-Exitx_TIB_%i", i + 1);
158 sprintf(hname2,
"Entryx-Exitx_TOB_%i", i + 1);
159 sprintf(hname3,
"Entryx-Exitx_TID_%i", i + 1);
160 sprintf(hname4,
"Entryx-Exitx_TEC_%i", i + 1);
162 sprintf(hname5,
"Entryx-Exitx_BPIX_%i", i + 1);
164 sprintf(hname6,
"Entryx-Exitx_FPIX_%i", i + 1);
167 h1ex[
i] = ibooker.
book1D(hname1, htitle1, nbin, low[0], high[0]);
169 h2ex[
i] = ibooker.
book1D(hname2, htitle2, nbin, low[1], high[1]);
171 h3ex[
i] = ibooker.
book1D(hname3, htitle3, nbin, low[2], high[2]);
173 h4ex[
i] = ibooker.
book1D(hname4, htitle4, nbin, low[3], high[3]);
176 h5ex[
i] = ibooker.
book1D(hname5, htitle5, nbin, low[4], high[4]);
178 h6ex[
i] = ibooker.
book1D(hname6, htitle6, nbin, low[5], high[5]);
182 const float high0[] = {0.05, 0.06, 0.03, 0.03, 0.03, 0.03};
183 const float low0[] = {-0.05, -0.06, -0.03, -0.03, -0.03, -0.03};
185 for (
int i = 0;
i < 12;
i++) {
186 sprintf(htitle1,
"Entryy-Exity in TIB %s", Region[
i]);
187 sprintf(htitle2,
"Entryy-Exity in TOB %s", Region[i]);
188 sprintf(htitle3,
"Entryy-Exity in TID %s", Region[i]);
189 sprintf(htitle4,
"Entryy-Exity in TEC %s", Region[i]);
191 sprintf(htitle5,
"Entryy-Exity in BPIX %s", Region[i]);
193 sprintf(htitle6,
"Entryy-Exity in FPIX %s", Region[i]);
195 sprintf(hname1,
"Entryy-Exity_TIB_%i", i + 1);
196 sprintf(hname2,
"Entryy-Exity_TOB_%i", i + 1);
197 sprintf(hname3,
"Entryy-Exity_TID_%i", i + 1);
198 sprintf(hname4,
"Entryy-Exity_TEC_%i", i + 1);
200 sprintf(hname5,
"Entryy-Exity_BPIX_%i", i + 1);
202 sprintf(hname6,
"Entryy-Exity_FPIX_%i", i + 1);
205 h1ey[
i] = ibooker.
book1D(hname1, htitle1, nbin, low0[0], high0[0]);
207 h2ey[
i] = ibooker.
book1D(hname2, htitle2, nbin, low0[1], high0[1]);
209 h3ey[
i] = ibooker.
book1D(hname3, htitle3, nbin, low0[2], high0[2]);
211 h4ey[
i] = ibooker.
book1D(hname4, htitle4, nbin, low0[3], high0[3]);
214 h5ey[
i] = ibooker.
book1D(hname5, htitle5, nbin, low0[4], high0[4]);
216 h6ey[
i] = ibooker.
book1D(hname6, htitle6, nbin, low0[5], high0[5]);
220 const float high1[] = {0.05, 0.06, 0.05, 0.06, 0.05, 0.05};
221 const float low1[] = {0., 0., 0., 0., 0., 0.};
223 for (
int i = 0;
i < 12;
i++) {
224 sprintf(htitle1,
"abs(Entryz-Exitz) in TIB %s", Region[
i]);
225 sprintf(htitle2,
"abs(Entryz-Exitz) in TOB %s", Region[i]);
226 sprintf(htitle3,
"abs(Entryz-Exitz) in TID %s", Region[i]);
227 sprintf(htitle4,
"abs(Entryz-Exitz) in TEC %s", Region[i]);
229 sprintf(htitle5,
"abs(Entryz-Exitz) in BPIX %s", Region[i]);
231 sprintf(htitle6,
"abs(Entryz-Exitz) in FPIX %s", Region[i]);
233 sprintf(hname1,
"Entryz-Exitz_TIB_%i", i + 1);
234 sprintf(hname2,
"Entryz-Exitz_TOB_%i", i + 1);
235 sprintf(hname3,
"Entryz-Exitz_TID_%i", i + 1);
236 sprintf(hname4,
"Entryz-Exitz_TEC_%i", i + 1);
238 sprintf(hname5,
"Entryz-Exitz_BPIX_%i", i + 1);
240 sprintf(hname6,
"Entryz-Exitz_FPIX_%i", i + 1);
243 h1ez[
i] = ibooker.
book1D(hname1, htitle1, nbin, low1[0], high1[0]);
245 h2ez[
i] = ibooker.
book1D(hname2, htitle2, nbin, low1[1], high1[1]);
247 h3ez[
i] = ibooker.
book1D(hname3, htitle3, nbin, low1[2], high1[2]);
249 h4ez[
i] = ibooker.
book1D(hname4, htitle4, nbin, low1[3], high1[3]);
252 h5ez[
i] = ibooker.
book1D(hname5, htitle5, nbin, low1[4], high1[4]);
254 h6ez[
i] = ibooker.
book1D(hname6, htitle6, nbin, low1[5], high1[5]);
258 const float high2[] = {3.2, 5.0, 5.5, 6.2, 0.85, 0.5};
259 const float low2[] = {-3.2, -5.0, -5.5, -6.2, -0.85, -0.5};
261 for (
int i = 0;
i < 12;
i++) {
262 sprintf(htitle1,
"Localx in TIB %s", Region[
i]);
263 sprintf(htitle2,
"Localx in TOB %s", Region[i]);
264 sprintf(htitle3,
"Localx in TID %s", Region[i]);
265 sprintf(htitle4,
"Localx in TEC %s", Region[i]);
267 sprintf(htitle5,
"Localx in BPIX %s", Region[i]);
269 sprintf(htitle6,
"Localx in FPIX %s", Region[i]);
271 sprintf(hname1,
"Localx_TIB_%i", i + 1);
272 sprintf(hname2,
"Localx_TOB_%i", i + 1);
273 sprintf(hname3,
"Localx_TID_%i", i + 1);
274 sprintf(hname4,
"Localx_TEC_%i", i + 1);
276 sprintf(hname5,
"Localx_BPIX_%i", i + 1);
278 sprintf(hname6,
"Localx_FPIX_%i", i + 1);
281 h1lx[
i] = ibooker.
book1D(hname1, htitle1, nbin, low2[0], high2[0]);
283 h2lx[
i] = ibooker.
book1D(hname2, htitle2, nbin, low2[1], high2[1]);
285 h3lx[
i] = ibooker.
book1D(hname3, htitle3, nbin, low2[2], high2[2]);
287 h4lx[
i] = ibooker.
book1D(hname4, htitle4, nbin, low2[3], high2[3]);
290 h5lx[
i] = ibooker.
book1D(hname5, htitle5, nbin, low2[4], high2[4]);
292 h6lx[
i] = ibooker.
book1D(hname6, htitle6, nbin, low2[5], high2[5]);
296 const float high3[] = {6.0, 10., 5.6, 10.5, 3.4, 0.52};
297 const float low3[] = {-6.0, -10., -5.6, -10.5, -3.4, -0.52};
299 for (
int i = 0;
i < 12;
i++) {
300 sprintf(htitle1,
"Localy in TIB %s", Region[
i]);
301 sprintf(htitle2,
"Localy in TOB %s", Region[i]);
302 sprintf(htitle3,
"Localy in TID %s", Region[i]);
303 sprintf(htitle4,
"Localy in TEC %s", Region[i]);
305 sprintf(htitle5,
"Localy in BPIX %s", Region[i]);
307 sprintf(htitle6,
"Localy in FPIX %s", Region[i]);
309 sprintf(hname1,
"Localy_TIB_%i", i + 1);
310 sprintf(hname2,
"Localy_TOB_%i", i + 1);
311 sprintf(hname3,
"Localy_TID_%i", i + 1);
312 sprintf(hname4,
"Localy_TEC_%i", i + 1);
314 sprintf(hname5,
"Localy_BPIX_%i", i + 1);
316 sprintf(hname6,
"Localy_FPIX_%i", i + 1);
319 h1ly[
i] = ibooker.
book1D(hname1, htitle1, nbin, low3[0], high3[0]);
321 h2ly[
i] = ibooker.
book1D(hname2, htitle2, nbin, low3[1], high3[1]);
323 h3ly[
i] = ibooker.
book1D(hname3, htitle3, nbin, low3[2], high3[2]);
325 h4ly[
i] = ibooker.
book1D(hname4, htitle4, nbin, low3[3], high3[3]);
328 h5ly[
i] = ibooker.
book1D(hname5, htitle5, nbin, low3[4], high3[4]);
330 h6ly[
i] = ibooker.
book1D(hname6, htitle6, nbin, low3[5], high3[5]);
357 edm::PSimHitContainer::const_iterator itHit;
364 if (!PxlBrlLowContainer.
isValid()) {
365 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find TrackerHitsPixelBarrelLowTof in event!";
371 if (!PxlBrlHighContainer.
isValid()) {
372 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find TrackerHitsPixelBarrelHighTof in event!";
381 if (!PxlFwdLowContainer.
isValid()) {
382 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find TrackerHitsPixelEndcapLowTof in event!";
388 if (!PxlFwdHighContainer.
isValid()) {
389 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find TrackerHitsPixelEndcapHighTof in event!";
398 if (!SiTIBLowContainer.
isValid()) {
399 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTIBLowTof in event!";
406 if (!SiTIBHighContainer.
isValid()) {
407 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTIBHighTof in event!";
416 if (!SiTOBLowContainer.
isValid()) {
417 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTOBLowTof in event!";
424 if (!SiTOBHighContainer.
isValid()) {
425 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTOBHighTof in event!";
435 if (!SiTIDLowContainer.
isValid()) {
436 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTIDLowTof in event!";
443 if (!SiTIDHighContainer.
isValid()) {
444 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTIDHighTof in event!";
453 if (!SiTECLowContainer.
isValid()) {
454 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTECLowTof in event!";
461 if (!SiTECHighContainer.
isValid()) {
462 edm::LogError(
"TrackerHitProducer::analyze") <<
"Unable to find TrackerHitsTECHighTof in event!";
472 if (!G4TrkContainer.
isValid()) {
473 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"Unable to find SimTrack in event!";
483 edm::SimTrackContainer::const_iterator itTrk;
484 for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
486 double eta = 0,
p = 0;
487 const CLHEP::HepLorentzVector &G4Trk = CLHEP::HepLorentzVector(
488 itTrk->momentum().x(), itTrk->momentum().y(), itTrk->momentum().z(), itTrk->momentum().e());
489 p =
sqrt(G4Trk[0] * G4Trk[0] + G4Trk[1] * G4Trk[1] + G4Trk[2] * G4Trk[2]);
491 edm::LogError(
"TrackerHitAnalyzer::analyze") <<
"TrackerTest::INFO: Primary has p = 0 ";
493 double costheta = G4Trk[2] /
p;
495 eta = -
log(
tan(theta / 2));
497 if (eta > 0.0 && eta <= 0.5)
499 if (eta > 0.5 && eta <= 1.0)
501 if (eta > 1.0 && eta <= 1.5)
503 if (eta > 1.5 && eta <= 2.0)
505 if (eta > 2.0 && eta <= 2.5)
510 if (eta > -0.5 && eta <= 0.0)
512 if (eta > -1.0 && eta <= -0.5)
514 if (eta > -1.5 && eta <= -1.0)
516 if (eta > -2.0 && eta <= -1.5)
518 if (eta > -2.5 && eta <= -2.0)
535 for (itHit = PxlBrlLowContainer->begin(); itHit != PxlBrlLowContainer->end(); ++itHit) {
538 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
544 h5e[ir]->
Fill(itHit->energyLoss());
545 h5ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
546 h5ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
547 h5ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
548 h5lx[ir]->
Fill(itHit->localPosition().x());
549 h5ly[ir]->
Fill(itHit->localPosition().y());
551 for (itHit = PxlBrlHighContainer->begin(); itHit != PxlBrlHighContainer->end(); ++itHit) {
554 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
560 h5e[ir]->
Fill(itHit->energyLoss());
561 h5ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
562 h5ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
563 h5ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
564 h5lx[ir]->
Fill(itHit->localPosition().x());
565 h5ly[ir]->
Fill(itHit->localPosition().y());
567 for (itHit = PxlFwdLowContainer->begin(); itHit != PxlFwdLowContainer->end(); ++itHit) {
570 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
576 h6e[ir]->
Fill(itHit->energyLoss());
577 h6ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
578 h6ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
579 h6ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
580 h6lx[ir]->
Fill(itHit->localPosition().x());
581 h6ly[ir]->
Fill(itHit->localPosition().y());
583 for (itHit = PxlFwdHighContainer->begin(); itHit != PxlFwdHighContainer->end(); ++itHit) {
586 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
592 h6e[ir]->
Fill(itHit->energyLoss());
593 h6ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
594 h6ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
595 h6ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
596 h6lx[ir]->
Fill(itHit->localPosition().x());
597 h6ly[ir]->
Fill(itHit->localPosition().y());
603 for (itHit = SiTIBLowContainer->begin(); itHit != SiTIBLowContainer->end(); ++itHit) {
606 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
612 h1e[ir]->
Fill(itHit->energyLoss());
613 h1ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
614 h1ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
615 h1ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
616 h1lx[ir]->
Fill(itHit->localPosition().x());
617 h1ly[ir]->
Fill(itHit->localPosition().y());
619 for (itHit = SiTIBHighContainer->begin(); itHit != SiTIBHighContainer->end(); ++itHit) {
622 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
628 h1e[ir]->
Fill(itHit->energyLoss());
629 h1ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
630 h1ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
631 h1ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
632 h1lx[ir]->
Fill(itHit->localPosition().x());
633 h1ly[ir]->
Fill(itHit->localPosition().y());
638 for (itHit = SiTOBLowContainer->begin(); itHit != SiTOBLowContainer->end(); ++itHit) {
641 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
647 h2e[ir]->
Fill(itHit->energyLoss());
648 h2ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
649 h2ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
650 h2ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
651 h2lx[ir]->
Fill(itHit->localPosition().x());
652 h2ly[ir]->
Fill(itHit->localPosition().y());
654 for (itHit = SiTOBHighContainer->begin(); itHit != SiTOBHighContainer->end(); ++itHit) {
657 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
663 h2e[ir]->
Fill(itHit->energyLoss());
664 h2ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
665 h2ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
666 h2ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
667 h2lx[ir]->
Fill(itHit->localPosition().x());
668 h2ly[ir]->
Fill(itHit->localPosition().y());
673 for (itHit = SiTIDLowContainer->begin(); itHit != SiTIDLowContainer->end(); ++itHit) {
676 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
682 h3e[ir]->
Fill(itHit->energyLoss());
683 h3ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
684 h3ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
685 h3ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
686 h3lx[ir]->
Fill(itHit->localPosition().x());
687 h3ly[ir]->
Fill(itHit->localPosition().y());
689 for (itHit = SiTIDHighContainer->begin(); itHit != SiTIDHighContainer->end(); ++itHit) {
692 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
698 h3e[ir]->
Fill(itHit->energyLoss());
699 h3ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
700 h3ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
701 h3ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
702 h3lx[ir]->
Fill(itHit->localPosition().x());
703 h3ly[ir]->
Fill(itHit->localPosition().y());
708 for (itHit = SiTECLowContainer->begin(); itHit != SiTECLowContainer->end(); ++itHit) {
711 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
717 h4e[ir]->
Fill(itHit->energyLoss());
718 h4ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
719 h4ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
720 h4ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
721 h4lx[ir]->
Fill(itHit->localPosition().x());
722 h4ly[ir]->
Fill(itHit->localPosition().y());
724 for (itHit = SiTECHighContainer->begin(); itHit != SiTECHighContainer->end(); ++itHit) {
727 GlobalPoint gpos = det->toGlobal(itHit->localPosition());
733 h4e[ir]->
Fill(itHit->energyLoss());
734 h4ex[ir]->
Fill(itHit->entryPoint().x() - itHit->exitPoint().x());
735 h4ey[ir]->
Fill(itHit->entryPoint().y() - itHit->exitPoint().y());
736 h4ez[ir]->
Fill(std::fabs(itHit->entryPoint().z() - itHit->exitPoint().z()));
737 h4lx[ir]->
Fill(itHit->localPosition().x());
738 h4ly[ir]->
Fill(itHit->localPosition().y());
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX)
EventNumber_t event() const
void bookHistograms(DQMStore::IBooker &ibooker, const edm::Run &run, const edm::EventSetup &es) override
MonitorElement * h2lx[12]
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]
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void setCurrentFolder(std::string const &fullpath)
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_
MonitorElement * h6ly[12]
MonitorElement * h5ex[12]
MonitorElement * h5ly[12]
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBLow_Token_
void analyze(const edm::Event &e, const edm::EventSetup &c) override
Analyze.
#define DEFINE_FWK_MODULE(type)
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]
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlHigh_Token_
MonitorElement * h5lx[12]
MonitorElement * h4ey[12]
MonitorElement * h1ly[12]
MonitorElement * h4ly[12]
MonitorElement * h3ex[12]
MonitorElement * h3ey[12]
MonitorElement * h2ey[12]
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
MonitorElement * h2ly[12]
void showDirStructure() const
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBHigh_Token_
std::vector< PSimHit > PSimHitContainer
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdHigh_Token_
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]
void save(std::string const &filename, std::string const &path="", std::string const &pattern="", std::string const &rewrite="", uint32_t run=0, uint32_t lumi=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, std::string const &fileupdate="RECREATE")
MonitorElement * h4ez[12]