27 #include "CLHEP/Units/GlobalSystemOfUnits.h" 28 #include <CLHEP/Vector/LorentzVector.h> 37 : getAllProvenances(iPSet.getParameter<
edm::
ParameterSet>(
"ProvenanceLookup")
38 .getUntrackedParameter<
bool>(
"GetAllProvenances",
false)),
39 printProvenanceInfo(iPSet.getParameter<
edm::
ParameterSet>(
"ProvenanceLookup")
40 .getUntrackedParameter<
bool>(
"PrintProvenanceInfo",
false)),
41 verbosity(iPSet.getUntrackedParameter<
int>(
"Verbosity", 0)),
46 edm::InputTag(iPSet.getUntrackedParameter<
std::
string>(
"HepMCProductLabel",
"source"),
47 iPSet.getUntrackedParameter<
std::
string>(
"HepMCInputInstance",
"")))),
50 edmPSimHitContainer_pxlBrlLow_Token_(
52 edmPSimHitContainer_pxlBrlHigh_Token_(
54 edmPSimHitContainer_pxlFwdLow_Token_(
56 edmPSimHitContainer_pxlFwdHigh_Token_(
58 edmPSimHitContainer_siTIBLow_Token_(
60 edmPSimHitContainer_siTIBHigh_Token_(
62 edmPSimHitContainer_siTOBLow_Token_(
64 edmPSimHitContainer_siTOBHigh_Token_(
66 edmPSimHitContainer_siTIDLow_Token_(
68 edmPSimHitContainer_siTIDHigh_Token_(
70 edmPSimHitContainer_siTECLow_Token_(
72 edmPSimHitContainer_siTECHigh_Token_(
74 fName(iPSet.getUntrackedParameter<
std::
string>(
"Name",
"")),
81 produces<PTrackerSimHit>(
label);
86 <<
"\n===============================\n" 87 <<
"Initialized as EDProducer with parameter values:\n" 88 <<
" Name =" <<
fName <<
"\n" 90 <<
" Label =" <<
label <<
"\n" 117 <<
"===============================\n";
125 edm::LogInfo(
"TrackerHitProducer::beginJob") <<
"Starting the job...";
132 edm::LogInfo(
"TrackerHitProducer::endJob") <<
"Terminating having processed" <<
count <<
"events.";
149 edm::LogInfo(
"TrackerHitProducer::produce") <<
"Processing run" << nrun <<
"," 158 std::vector<const edm::StableProvenance *> AllProv;
162 edm::LogInfo(
"TrackerHitProducer::produce") <<
"Number of Provenances =" << AllProv.size();
165 TString eventout(
"\nProvenance info:\n");
167 for (
unsigned int i = 0;
i < AllProv.size(); ++
i) {
168 eventout +=
"\n ******************************";
169 eventout +=
"\n Module : ";
170 eventout += AllProv[
i]->moduleLabel();
171 eventout +=
"\n ProductID process index: ";
172 eventout += AllProv[
i]->productID().processIndex();
173 eventout +=
"\n ProductID product index: ";
174 eventout += AllProv[
i]->productID().productIndex();
175 eventout +=
"\n ClassName : ";
176 eventout += AllProv[
i]->className();
177 eventout +=
"\n InstanceName : ";
178 eventout += AllProv[
i]->productInstanceName();
179 eventout +=
"\n BranchName : ";
180 eventout += AllProv[
i]->branchName();
182 eventout +=
" ******************************\n";
183 edm::LogInfo(
"TrackerHitProducer::produce") << eventout;
194 edm::LogInfo(
"TrackerHitProducer::produce") <<
"Done gathering data from event.";
200 edm::LogInfo(
"TrackerHitProducer::produce") <<
"Saving event contents:";
218 eventout =
"\nGathering info:";
226 edm::LogError(
"TrackerHitProducer::fillG4MC") <<
"Unable to find HepMCProduct in event!";
233 eventout +=
"\n Number of Raw Particles collected: ";
242 if (!G4VtxContainer.
isValid()) {
243 edm::LogError(
"TrackerHitProducer::fillG4MC") <<
"Unable to find SimVertex in event!";
247 edm::SimVertexContainer::const_iterator itVtx;
248 for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end(); ++itVtx) {
251 const CLHEP::HepLorentzVector &G4Vtx = CLHEP::HepLorentzVector(
252 itVtx->position().x(), itVtx->position().y(), itVtx->position().z(), itVtx->position().e());
253 G4VtxX.push_back(G4Vtx[0] / micrometer);
255 G4VtxY.push_back(G4Vtx[1] / micrometer);
257 G4VtxZ.push_back(G4Vtx[2] / millimeter);
261 eventout +=
"\n Number of G4Vertices collected: ";
270 if (!G4TrkContainer.
isValid()) {
271 edm::LogError(
"TrackerHitProducer::fillG4MC") <<
"Unable to find SimTrack in event!";
275 edm::SimTrackContainer::const_iterator itTrk;
276 for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
279 double etaInit = 0, phiInit = 0, pInit = 0;
280 const CLHEP::HepLorentzVector &G4Trk = CLHEP::HepLorentzVector(
281 itTrk->momentum().x(), itTrk->momentum().y(), itTrk->momentum().z(), itTrk->momentum().e());
282 pInit =
sqrt(G4Trk[0] * G4Trk[0] + G4Trk[1] * G4Trk[1] + G4Trk[2] * G4Trk[2]);
284 edm::LogError(
"TrackerHitProducer::fillG4MC") <<
"TrackerTest::INFO: Primary has p = 0 ";
286 double costheta = G4Trk[2] / pInit;
288 etaInit = -
log(
tan(theta / 2));
290 if (G4Trk[0] != 0 || G4Trk[1] != 0)
291 phiInit = atan2(G4Trk[1], G4Trk[0]);
293 G4TrkPt.push_back(
sqrt(G4Trk[0] * G4Trk[0] + G4Trk[1] * G4Trk[1]));
294 G4TrkE.push_back(G4Trk[3]);
300 eventout +=
"\n Number of G4Tracks collected: ";
305 edm::LogInfo(
"TrackerHitProducer::fillG4MC") << eventout;
312 TString eventout(
"\nnRawGenPart = ");
314 eventout +=
"\n nG4Vtx = ";
315 eventout +=
G4VtxX.size();
316 for (
unsigned int i = 0;
i <
G4VtxX.size(); ++
i) {
317 eventout +=
"\n (x,y,z) = (";
325 eventout +=
"\n nG4Trk = ";
327 for (
unsigned int i = 0;
i <
G4TrkPt.size(); ++
i) {
328 eventout +=
"\n (pt,e,eta,phi) = (";
338 edm::LogInfo(
"TrackerHitProducer::storeG4MC") << eventout;
352 eventout =
"\nGathering info:";
355 edm::PSimHitContainer::const_iterator itHit;
365 if (!PxlBrlLowContainer.
isValid()) {
366 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsPixelBarrelLowTof in event!";
376 for (itHit = PxlBrlLowContainer->begin(); itHit != PxlBrlLowContainer->end(); ++itHit) {
382 HitsDuID.push_back(itHit->detUnitId());
383 HitsTkID.push_back(itHit->trackId());
384 HitsProT.push_back(itHit->processType());
385 HitsParT.push_back(itHit->particleType());
386 HitsP.push_back(itHit->pabs());
388 HitsLpX.push_back(itHit->localPosition().x());
389 HitsLpY.push_back(itHit->localPosition().y());
390 HitsLpZ.push_back(itHit->localPosition().z());
392 HitsLdX.push_back(itHit->localDirection().x());
393 HitsLdY.push_back(itHit->localDirection().y());
394 HitsLdZ.push_back(itHit->localDirection().z());
395 HitsLdTheta.push_back(itHit->localDirection().theta());
396 HitsLdPhi.push_back(itHit->localDirection().phi());
398 HitsExPx.push_back(itHit->exitPoint().x());
399 HitsExPy.push_back(itHit->exitPoint().y());
400 HitsExPz.push_back(itHit->exitPoint().z());
402 HitsEnPx.push_back(itHit->entryPoint().x());
403 HitsEnPy.push_back(itHit->entryPoint().y());
404 HitsEnPz.push_back(itHit->entryPoint().z());
406 HitsEloss.push_back(itHit->energyLoss());
407 HitsToF.push_back(itHit->tof());
412 eventout +=
"\n Number of Pixel Barrel Low TOF Hits collected: ";
421 if (!PxlBrlHighContainer.
isValid()) {
422 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsPixelBarrelHighTof in event!";
428 for (itHit = PxlBrlHighContainer->begin(); itHit != PxlBrlHighContainer->end(); ++itHit) {
432 HitsDuID.push_back(itHit->detUnitId());
433 HitsTkID.push_back(itHit->trackId());
434 HitsProT.push_back(itHit->processType());
435 HitsParT.push_back(itHit->particleType());
436 HitsP.push_back(itHit->pabs());
438 HitsLpX.push_back(itHit->localPosition().x());
439 HitsLpY.push_back(itHit->localPosition().y());
440 HitsLpZ.push_back(itHit->localPosition().z());
442 HitsLdX.push_back(itHit->localDirection().x());
443 HitsLdY.push_back(itHit->localDirection().y());
444 HitsLdZ.push_back(itHit->localDirection().z());
445 HitsLdTheta.push_back(itHit->localDirection().theta());
446 HitsLdPhi.push_back(itHit->localDirection().phi());
448 HitsExPx.push_back(itHit->exitPoint().x());
449 HitsExPy.push_back(itHit->exitPoint().y());
450 HitsExPz.push_back(itHit->exitPoint().z());
452 HitsEnPx.push_back(itHit->entryPoint().x());
453 HitsEnPy.push_back(itHit->entryPoint().y());
454 HitsEnPz.push_back(itHit->entryPoint().z());
456 HitsEloss.push_back(itHit->energyLoss());
457 HitsToF.push_back(itHit->tof());
462 eventout +=
"\n Number of Pixel Barrel High TOF Hits collected: ";
472 if (!PxlFwdLowContainer.
isValid()) {
473 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsPixelEndcapLowTof in event!";
479 for (itHit = PxlFwdLowContainer->begin(); itHit != PxlFwdLowContainer->end(); ++itHit) {
483 HitsDuID.push_back(itHit->detUnitId());
484 HitsTkID.push_back(itHit->trackId());
485 HitsProT.push_back(itHit->processType());
486 HitsParT.push_back(itHit->particleType());
487 HitsP.push_back(itHit->pabs());
489 HitsLpX.push_back(itHit->localPosition().x());
490 HitsLpY.push_back(itHit->localPosition().y());
491 HitsLpZ.push_back(itHit->localPosition().z());
493 HitsLdX.push_back(itHit->localDirection().x());
494 HitsLdY.push_back(itHit->localDirection().y());
495 HitsLdZ.push_back(itHit->localDirection().z());
496 HitsLdTheta.push_back(itHit->localDirection().theta());
497 HitsLdPhi.push_back(itHit->localDirection().phi());
499 HitsExPx.push_back(itHit->exitPoint().x());
500 HitsExPy.push_back(itHit->exitPoint().y());
501 HitsExPz.push_back(itHit->exitPoint().z());
503 HitsEnPx.push_back(itHit->entryPoint().x());
504 HitsEnPy.push_back(itHit->entryPoint().y());
505 HitsEnPz.push_back(itHit->entryPoint().z());
507 HitsEloss.push_back(itHit->energyLoss());
508 HitsToF.push_back(itHit->tof());
513 eventout +=
"\n Number of Pixel Forward Low TOF Hits collected: ";
520 if (!PxlFwdHighContainer.
isValid()) {
521 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsPixelEndcapHighTof in event!";
527 for (itHit = PxlFwdHighContainer->begin(); itHit != PxlFwdHighContainer->end(); ++itHit) {
531 HitsDuID.push_back(itHit->detUnitId());
532 HitsTkID.push_back(itHit->trackId());
533 HitsProT.push_back(itHit->processType());
534 HitsParT.push_back(itHit->particleType());
535 HitsP.push_back(itHit->pabs());
537 HitsLpX.push_back(itHit->localPosition().x());
538 HitsLpY.push_back(itHit->localPosition().y());
539 HitsLpZ.push_back(itHit->localPosition().z());
541 HitsLdX.push_back(itHit->localDirection().x());
542 HitsLdY.push_back(itHit->localDirection().y());
543 HitsLdZ.push_back(itHit->localDirection().z());
544 HitsLdTheta.push_back(itHit->localDirection().theta());
545 HitsLdPhi.push_back(itHit->localDirection().phi());
547 HitsExPx.push_back(itHit->exitPoint().x());
548 HitsExPy.push_back(itHit->exitPoint().y());
549 HitsExPz.push_back(itHit->exitPoint().z());
551 HitsEnPx.push_back(itHit->entryPoint().x());
552 HitsEnPy.push_back(itHit->entryPoint().y());
553 HitsEnPz.push_back(itHit->entryPoint().z());
555 HitsEloss.push_back(itHit->energyLoss());
556 HitsToF.push_back(itHit->tof());
561 eventout +=
"\n Number of Pixel Forward High TOF Hits collected: ";
571 if (!SiTIBLowContainer.
isValid()) {
572 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsTIBLowTof in event!";
578 for (itHit = SiTIBLowContainer->begin(); itHit != SiTIBLowContainer->end(); ++itHit) {
582 HitsDuID.push_back(itHit->detUnitId());
583 HitsTkID.push_back(itHit->trackId());
584 HitsProT.push_back(itHit->processType());
585 HitsParT.push_back(itHit->particleType());
586 HitsP.push_back(itHit->pabs());
588 HitsLpX.push_back(itHit->localPosition().x());
589 HitsLpY.push_back(itHit->localPosition().y());
590 HitsLpZ.push_back(itHit->localPosition().z());
592 HitsLdX.push_back(itHit->localDirection().x());
593 HitsLdY.push_back(itHit->localDirection().y());
594 HitsLdZ.push_back(itHit->localDirection().z());
595 HitsLdTheta.push_back(itHit->localDirection().theta());
596 HitsLdPhi.push_back(itHit->localDirection().phi());
598 HitsExPx.push_back(itHit->exitPoint().x());
599 HitsExPy.push_back(itHit->exitPoint().y());
600 HitsExPz.push_back(itHit->exitPoint().z());
602 HitsEnPx.push_back(itHit->entryPoint().x());
603 HitsEnPy.push_back(itHit->entryPoint().y());
604 HitsEnPz.push_back(itHit->entryPoint().z());
606 HitsEloss.push_back(itHit->energyLoss());
607 HitsToF.push_back(itHit->tof());
612 eventout +=
"\n Number of TIB low TOF Hits collected: ";
619 if (!SiTIBHighContainer.
isValid()) {
620 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsTIBHighTof in event!";
626 for (itHit = SiTIBHighContainer->begin(); itHit != SiTIBHighContainer->end(); ++itHit) {
630 HitsDuID.push_back(itHit->detUnitId());
631 HitsTkID.push_back(itHit->trackId());
632 HitsProT.push_back(itHit->processType());
633 HitsParT.push_back(itHit->particleType());
634 HitsP.push_back(itHit->pabs());
636 HitsLpX.push_back(itHit->localPosition().x());
637 HitsLpY.push_back(itHit->localPosition().y());
638 HitsLpZ.push_back(itHit->localPosition().z());
640 HitsLdX.push_back(itHit->localDirection().x());
641 HitsLdY.push_back(itHit->localDirection().y());
642 HitsLdZ.push_back(itHit->localDirection().z());
643 HitsLdTheta.push_back(itHit->localDirection().theta());
644 HitsLdPhi.push_back(itHit->localDirection().phi());
646 HitsExPx.push_back(itHit->exitPoint().x());
647 HitsExPy.push_back(itHit->exitPoint().y());
648 HitsExPz.push_back(itHit->exitPoint().z());
650 HitsEnPx.push_back(itHit->entryPoint().x());
651 HitsEnPy.push_back(itHit->entryPoint().y());
652 HitsEnPz.push_back(itHit->entryPoint().z());
654 HitsEloss.push_back(itHit->energyLoss());
655 HitsToF.push_back(itHit->tof());
660 eventout +=
"\n Number of TIB high TOF Hits collected: ";
670 if (!SiTOBLowContainer.
isValid()) {
671 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsTOBLowTof in event!";
677 for (itHit = SiTOBLowContainer->begin(); itHit != SiTOBLowContainer->end(); ++itHit) {
681 HitsDuID.push_back(itHit->detUnitId());
682 HitsTkID.push_back(itHit->trackId());
683 HitsProT.push_back(itHit->processType());
684 HitsParT.push_back(itHit->particleType());
685 HitsP.push_back(itHit->pabs());
687 HitsLpX.push_back(itHit->localPosition().x());
688 HitsLpY.push_back(itHit->localPosition().y());
689 HitsLpZ.push_back(itHit->localPosition().z());
691 HitsLdX.push_back(itHit->localDirection().x());
692 HitsLdY.push_back(itHit->localDirection().y());
693 HitsLdZ.push_back(itHit->localDirection().z());
694 HitsLdTheta.push_back(itHit->localDirection().theta());
695 HitsLdPhi.push_back(itHit->localDirection().phi());
697 HitsExPx.push_back(itHit->exitPoint().x());
698 HitsExPy.push_back(itHit->exitPoint().y());
699 HitsExPz.push_back(itHit->exitPoint().z());
701 HitsEnPx.push_back(itHit->entryPoint().x());
702 HitsEnPy.push_back(itHit->entryPoint().y());
703 HitsEnPz.push_back(itHit->entryPoint().z());
705 HitsEloss.push_back(itHit->energyLoss());
706 HitsToF.push_back(itHit->tof());
711 eventout +=
"\n Number of TOB low TOF Hits collected: ";
718 if (!SiTOBHighContainer.
isValid()) {
719 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsTOBHighTof in event!";
725 for (itHit = SiTOBHighContainer->begin(); itHit != SiTOBHighContainer->end(); ++itHit) {
729 HitsDuID.push_back(itHit->detUnitId());
730 HitsTkID.push_back(itHit->trackId());
731 HitsProT.push_back(itHit->processType());
732 HitsParT.push_back(itHit->particleType());
733 HitsP.push_back(itHit->pabs());
735 HitsLpX.push_back(itHit->localPosition().x());
736 HitsLpY.push_back(itHit->localPosition().y());
737 HitsLpZ.push_back(itHit->localPosition().z());
739 HitsLdX.push_back(itHit->localDirection().x());
740 HitsLdY.push_back(itHit->localDirection().y());
741 HitsLdZ.push_back(itHit->localDirection().z());
742 HitsLdTheta.push_back(itHit->localDirection().theta());
743 HitsLdPhi.push_back(itHit->localDirection().phi());
745 HitsExPx.push_back(itHit->exitPoint().x());
746 HitsExPy.push_back(itHit->exitPoint().y());
747 HitsExPz.push_back(itHit->exitPoint().z());
749 HitsEnPx.push_back(itHit->entryPoint().x());
750 HitsEnPy.push_back(itHit->entryPoint().y());
751 HitsEnPz.push_back(itHit->entryPoint().z());
753 HitsEloss.push_back(itHit->energyLoss());
754 HitsToF.push_back(itHit->tof());
759 eventout +=
"\n Number of TOB high TOF Hits collected: ";
769 if (!SiTIDLowContainer.
isValid()) {
770 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsTIDLowTof in event!";
776 for (itHit = SiTIDLowContainer->begin(); itHit != SiTIDLowContainer->end(); ++itHit) {
780 HitsDuID.push_back(itHit->detUnitId());
781 HitsTkID.push_back(itHit->trackId());
782 HitsProT.push_back(itHit->processType());
783 HitsParT.push_back(itHit->particleType());
784 HitsP.push_back(itHit->pabs());
786 HitsLpX.push_back(itHit->localPosition().x());
787 HitsLpY.push_back(itHit->localPosition().y());
788 HitsLpZ.push_back(itHit->localPosition().z());
790 HitsLdX.push_back(itHit->localDirection().x());
791 HitsLdY.push_back(itHit->localDirection().y());
792 HitsLdZ.push_back(itHit->localDirection().z());
793 HitsLdTheta.push_back(itHit->localDirection().theta());
794 HitsLdPhi.push_back(itHit->localDirection().phi());
796 HitsExPx.push_back(itHit->exitPoint().x());
797 HitsExPy.push_back(itHit->exitPoint().y());
798 HitsExPz.push_back(itHit->exitPoint().z());
800 HitsEnPx.push_back(itHit->entryPoint().x());
801 HitsEnPy.push_back(itHit->entryPoint().y());
802 HitsEnPz.push_back(itHit->entryPoint().z());
804 HitsEloss.push_back(itHit->energyLoss());
805 HitsToF.push_back(itHit->tof());
810 eventout +=
"\n Number of TID low TOF Hits collected: ";
817 if (!SiTIDHighContainer.
isValid()) {
818 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsTIDHighTof in event!";
824 for (itHit = SiTIDHighContainer->begin(); itHit != SiTIDHighContainer->end(); ++itHit) {
828 HitsDuID.push_back(itHit->detUnitId());
829 HitsTkID.push_back(itHit->trackId());
830 HitsProT.push_back(itHit->processType());
831 HitsParT.push_back(itHit->particleType());
832 HitsP.push_back(itHit->pabs());
834 HitsLpX.push_back(itHit->localPosition().x());
835 HitsLpY.push_back(itHit->localPosition().y());
836 HitsLpZ.push_back(itHit->localPosition().z());
838 HitsLdX.push_back(itHit->localDirection().x());
839 HitsLdY.push_back(itHit->localDirection().y());
840 HitsLdZ.push_back(itHit->localDirection().z());
841 HitsLdTheta.push_back(itHit->localDirection().theta());
842 HitsLdPhi.push_back(itHit->localDirection().phi());
844 HitsExPx.push_back(itHit->exitPoint().x());
845 HitsExPy.push_back(itHit->exitPoint().y());
846 HitsExPz.push_back(itHit->exitPoint().z());
848 HitsEnPx.push_back(itHit->entryPoint().x());
849 HitsEnPy.push_back(itHit->entryPoint().y());
850 HitsEnPz.push_back(itHit->entryPoint().z());
852 HitsEloss.push_back(itHit->energyLoss());
853 HitsToF.push_back(itHit->tof());
858 eventout +=
"\n Number of TID high TOF Hits collected: ";
868 if (!SiTECLowContainer.
isValid()) {
869 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsTECLowTof in event!";
875 for (itHit = SiTECLowContainer->begin(); itHit != SiTECLowContainer->end(); ++itHit) {
879 HitsDuID.push_back(itHit->detUnitId());
880 HitsTkID.push_back(itHit->trackId());
881 HitsProT.push_back(itHit->processType());
882 HitsParT.push_back(itHit->particleType());
883 HitsP.push_back(itHit->pabs());
885 HitsLpX.push_back(itHit->localPosition().x());
886 HitsLpY.push_back(itHit->localPosition().y());
887 HitsLpZ.push_back(itHit->localPosition().z());
889 HitsLdX.push_back(itHit->localDirection().x());
890 HitsLdY.push_back(itHit->localDirection().y());
891 HitsLdZ.push_back(itHit->localDirection().z());
892 HitsLdTheta.push_back(itHit->localDirection().theta());
893 HitsLdPhi.push_back(itHit->localDirection().phi());
895 HitsExPx.push_back(itHit->exitPoint().x());
896 HitsExPy.push_back(itHit->exitPoint().y());
897 HitsExPz.push_back(itHit->exitPoint().z());
899 HitsEnPx.push_back(itHit->entryPoint().x());
900 HitsEnPy.push_back(itHit->entryPoint().y());
901 HitsEnPz.push_back(itHit->entryPoint().z());
903 HitsEloss.push_back(itHit->energyLoss());
904 HitsToF.push_back(itHit->tof());
909 eventout +=
"\n Number of TEC low TOF Hits collected: ";
916 if (!SiTECHighContainer.
isValid()) {
917 edm::LogError(
"TrackerHitProducer::fillTrk") <<
"Unable to find TrackerHitsTECHighTof in event!";
922 for (itHit = SiTECHighContainer->begin(); itHit != SiTECHighContainer->end(); ++itHit) {
926 HitsDuID.push_back(itHit->detUnitId());
927 HitsTkID.push_back(itHit->trackId());
928 HitsProT.push_back(itHit->processType());
929 HitsParT.push_back(itHit->particleType());
930 HitsP.push_back(itHit->pabs());
932 HitsLpX.push_back(itHit->localPosition().x());
933 HitsLpY.push_back(itHit->localPosition().y());
934 HitsLpZ.push_back(itHit->localPosition().z());
936 HitsLdX.push_back(itHit->localDirection().x());
937 HitsLdY.push_back(itHit->localDirection().y());
938 HitsLdZ.push_back(itHit->localDirection().z());
939 HitsLdTheta.push_back(itHit->localDirection().theta());
940 HitsLdPhi.push_back(itHit->localDirection().phi());
942 HitsExPx.push_back(itHit->exitPoint().x());
943 HitsExPy.push_back(itHit->exitPoint().y());
944 HitsExPz.push_back(itHit->exitPoint().z());
946 HitsEnPx.push_back(itHit->entryPoint().x());
947 HitsEnPy.push_back(itHit->entryPoint().y());
948 HitsEnPz.push_back(itHit->entryPoint().z());
950 HitsEloss.push_back(itHit->energyLoss());
951 HitsToF.push_back(itHit->tof());
956 eventout +=
"\n Number of TEC high TOF Hits collected: ";
961 edm::LogInfo(
"TrackerHitProducer::fillTrk") << eventout;
1052 edm::LogInfo(
"GlobalValProducer::clear") <<
"Clearing event holders";
void fillG4MC(edm::Event &)
void storeTrk(PTrackerSimHit &)
T getParameter(std::string const &) const
EventNumber_t event() const
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void storeG4MC(PTrackerSimHit &)
static PFTauRenderPlugin instance
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void putRawGenPart(int n)
Geom::Theta< T > theta() const
unsigned long long EventNumber_t
void putHits(const std::vector< int > &_sysID, const std::vector< float > &_detUnitId, const std::vector< float > &_trackId, const std::vector< float > &_processType, const std::vector< float > &_particleType, const std::vector< float > &_pabs, const std::vector< float > &_lpx, const std::vector< float > &_lpy, const std::vector< float > &_lpz, const std::vector< float > &_ldx, const std::vector< float > &_ldy, const std::vector< float > &_ldz, const std::vector< float > &_ldtheta, const std::vector< float > &_ldphi, const std::vector< float > &_exx, const std::vector< float > &_exy, const std::vector< float > &_exz, const std::vector< float > &_enx, const std::vector< float > &_eny, const std::vector< float > &_enz, const std::vector< float > &_eloss, const std::vector< float > &_tof)
TrackerHitProducer(const edm::ParameterSet &)
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBLow_Token_
#define DEFINE_FWK_MODULE(type)
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBLow_Token_
~TrackerHitProducer() override
edm::EDGetTokenT< edm::HepMCProduct > edmHepMCProductToken_
Tan< T >::type tan(const T &t)
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdLow_Token_
void putG4Vtx(const std::vector< float > &x, const std::vector< float > &y, const std::vector< float > &z)
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDHigh_Token_
const HepMC::GenEvent * GetEvent() const
std::vector< SimVertex > SimVertexContainer
edm::EDGetTokenT< edm::SimVertexContainer > edmSimVertexContainerToken_
std::vector< PSimHit > PSimHitContainer
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECLow_Token_
std::vector< SimTrack > SimTrackContainer
void putG4Trk(const std::vector< float > &pt, const std::vector< float > &e, const std::vector< float > &eta, const std::vector< float > &phi)
void fillTrk(edm::Event &, const edm::EventSetup &)
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
void produce(edm::Event &, const edm::EventSetup &) override
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlLow_Token_
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const