16 bool assignTracksterMaps(
const edm::Handle<std::vector<ticl::Trackster>>& tracksterHandle,
17 const edm::Handle<std::vector<ticl::Trackster>>& simTracksterHandle,
18 const edm::Handle<std::vector<ticl::Trackster>>& simTracksterFromCPHandle,
24 const auto recoTrackstersProductId = tracksterHandle.id();
25 const auto simTrackstersProductId = simTracksterHandle.id();
26 const auto simTrackstersFromCPsProductId = simTracksterFromCPHandle.id();
28 for (
const auto&
handle : tracksterToTracksterMapsHandles) {
29 const auto& firstID =
handle->getCollectionIDs().first.id();
30 const auto& secondID =
handle->getCollectionIDs().second.id();
32 if (firstID == recoTrackstersProductId && secondID == simTrackstersProductId) {
33 trackstersToSimTrackstersMap =
handle;
34 }
else if (firstID == simTrackstersProductId && secondID == recoTrackstersProductId) {
35 simTrackstersToTrackstersMap =
handle;
36 }
else if (firstID == recoTrackstersProductId && secondID == simTrackstersFromCPsProductId) {
37 trackstersToSimTrackstersFromCPsMap =
handle;
38 }
else if (firstID == simTrackstersFromCPsProductId && secondID == recoTrackstersProductId) {
39 simTrackstersFromCPsToTrackstersMap =
handle;
42 if (not trackstersToSimTrackstersMap.
isValid()) {
43 edm::LogError(
"MissingProduct") <<
"trackstersToSimTrackstersMap is not valid";
46 if (not simTrackstersToTrackstersMap.
isValid()) {
47 edm::LogError(
"MissingProduct") <<
"simTrackstersToTrackstersMap is not valid";
50 if (not trackstersToSimTrackstersFromCPsMap.
isValid()) {
51 edm::LogError(
"MissingProduct") <<
"trackstersToSimTrackstersFromCPsMap is not valid";
54 if (not simTrackstersFromCPsToTrackstersMap.
isValid()) {
55 edm::LogError(
"MissingProduct") <<
"simTrackstersFromCPsToTrackstersMap is not valid";
67 allTracksterTracksterAssociatorsLabels_(
69 allTracksterTracksterByHitsAssociatorsLabels_(
72 label_simTSFromCP(
pset.getParameter<
edm::
InputTag>(
"label_simTSFromCP")),
74 associatorSim_(
pset.getUntrackedParameter<
edm::
InputTag>(
"associatorSim")),
75 SaveGeneralInfo_(
pset.getUntrackedParameter<
bool>(
"SaveGeneralInfo")),
76 doCaloParticlePlots_(
pset.getUntrackedParameter<
bool>(
"doCaloParticlePlots")),
77 doCaloParticleSelection_(
pset.getUntrackedParameter<
bool>(
"doCaloParticleSelection")),
78 doSimClustersPlots_(
pset.getUntrackedParameter<
bool>(
"doSimClustersPlots")),
79 label_SimClustersPlots_(
pset.getParameter<
edm::
InputTag>(
"label_SimClusters")),
80 label_SimClustersLevel_(
pset.getParameter<
edm::
InputTag>(
"label_SimClustersLevel")),
81 doLayerClustersPlots_(
pset.getUntrackedParameter<
bool>(
"doLayerClustersPlots")),
82 label_layerClustersPlots_(
pset.getParameter<
edm::
InputTag>(
"label_layerClusterPlots")),
83 label_LCToCPLinking_(
pset.getParameter<
edm::
InputTag>(
"label_LCToCPLinking")),
84 doTrackstersPlots_(
pset.getUntrackedParameter<
bool>(
"doTrackstersPlots")),
86 label_TSbyHitsCP_(
pset.getParameter<
std::
string>(
"label_TSbyHitsCP")),
87 label_TSbyHits_(
pset.getParameter<
std::
string>(
"label_TSbyHits")),
88 label_TSbyLCsCP_(
pset.getParameter<
std::
string>(
"label_TSbyLCsCP")),
89 label_TSbyLCs_(
pset.getParameter<
std::
string>(
"label_TSbyLCs")),
91 doCandidatesPlots_(
pset.getUntrackedParameter<
bool>(
"doCandidatesPlots")),
92 label_candidates_(
pset.getParameter<
std::
string>(
"ticlCandidates")),
94 isTICLv5_(
pset.getUntrackedParameter<
bool>(
"isticlv5")),
105 label_cp_effic = consumes<std::vector<CaloParticle>>(label_cp_effic_tag);
106 label_cp_fake = consumes<std::vector<CaloParticle>>(label_cp_fake_tag);
120 consumes<std::unordered_map<DetId, const unsigned int>>(
edm::InputTag(
"recHitMapProducer",
"hgcalRecHitMap"));
135 consumes<std::vector<TICLCandidate>>(
pset.getParameter<
edm::InputTag>(
"ticlTrackstersMerge"));
137 consumes<std::vector<TICLCandidate>>(
pset.getParameter<
edm::InputTag>(
"simTiclCandidates"));
139 consumes<std::vector<reco::Track>>(
pset.getParameter<
edm::InputTag>(
"recoTracks"));
141 consumes<std::vector<ticl::Trackster>>(
pset.getParameter<
edm::InputTag>(
"ticlTrackstersMerge"));
143 consumes<ticl::TracksterToTracksterMap>(
pset.getParameter<
edm::InputTag>(
"mergeRecoToSimAssociator"));
145 consumes<ticl::TracksterToTracksterMap>(
pset.getParameter<
edm::InputTag>(
"mergeSimToRecoAssociator"));
147 candidateVal_ = std::make_unique<TICLCandidateValidator>(TICLCandidatesToken,
148 simTICLCandidatesToken,
151 associatorMapRtSToken,
152 associatorMapStRToken,
167 pset.getParameter<
double>(
"ptMaxCP"),
168 pset.getParameter<
double>(
"minRapidityCP"),
169 pset.getParameter<
double>(
"maxRapidityCP"),
170 pset.getParameter<
double>(
"lipCP"),
171 pset.getParameter<
double>(
"tipCP"),
172 pset.getParameter<
int>(
"minHitCP"),
173 pset.getParameter<
int>(
"maxSimClustersCP"),
174 pset.getParameter<
bool>(
"signalOnlyCP"),
175 pset.getParameter<
bool>(
"intimeOnlyCP"),
176 pset.getParameter<
bool>(
"chargedOnlyCP"),
177 pset.getParameter<
bool>(
"stableOnlyCP"),
178 pset.getParameter<
bool>(
"notConvertedOnlyCP"),
179 pset.getParameter<std::vector<int>>(
"pdgIdCP"));
192 fmb >> thelay >> mbg;
199 histoProducerAlgo_ = std::make_unique<HGVHistoProducerAlgo>(psetForHistoProducerAlgo);
239 if (!
algo.process().empty())
242 if (!
algo.label().empty())
245 if (!
algo.instance().empty())
283 for (
unsigned int www = 0; www <
label_tst.size(); www++) {
287 if (!
algo.process().empty())
290 if (!
algo.label().empty())
293 if (!
algo.instance().empty())
311 ibook,
histograms.histoProducerAlgo, HGVHistoProducerAlgo::validationType::byHits_CP);
316 ibook,
histograms.histoProducerAlgo, HGVHistoProducerAlgo::validationType::byLCs_CP);
320 ibook,
histograms.histoProducerAlgo, HGVHistoProducerAlgo::validationType::byHits);
324 ibook,
histograms.histoProducerAlgo, HGVHistoProducerAlgo::validationType::byLCs);
337 std::vector<CaloParticle>
const& cPeff,
338 std::vector<SimVertex>
const& simVertices,
339 std::vector<size_t>& selected_cPeff,
341 std::unordered_map<DetId, const unsigned int>
const& hitMap,
342 std::vector<HGCRecHit>
const&
hits)
const {
343 selected_cPeff.reserve(cPeff.size());
346 for (
auto const& caloParticle : cPeff) {
347 int id = caloParticle.pdgId();
350 selected_cPeff.push_back(
j);
363 using namespace reco;
365 LogDebug(
"HGCalValidator") <<
"\n====================================================" 367 <<
"Analyzing new event" 369 <<
"====================================================\n" 374 std::vector<SimVertex>
const& simVertices = *simVerticesHandle;
378 std::vector<CaloParticle>
const&
caloParticles = *caloParticleHandle;
390 const std::map<uint, std::vector<uint>> cpToSc_SimTrackstersMap = *simTrackstersMapHandle;
398 auto simRecColl = *simtorecoCollectionH;
401 auto recSimColl = *recotosimCollectionH;
404 event.getByToken(
hitMap_, hitMapHandle);
405 const std::unordered_map<DetId, const unsigned int>* hitMap = &*hitMapHandle;
407 std::vector<HGCRecHit>
hits;
410 event.getByToken(
token, hitsHandle);
411 hits.insert(
hits.end(), (*hitsHandle).begin(), (*hitsHandle).end());
419 std::vector<size_t> cPIndices;
429 std::vector<size_t> selected_cPeff;
437 std::vector<SimCluster>
const&
simClusters = *simClustersHandle;
444 std::vector<edm::Handle<TracksterToTracksterMap>> tracksterToTracksterMapsHandles;
447 event.getByToken(
token, tracksterToTracksterMapHandle);
448 tracksterToTracksterMapsHandles.push_back(tracksterToTracksterMapHandle);
451 std::vector<edm::Handle<TracksterToTracksterMap>> tracksterToTracksterByHitsMapsHandles;
454 event.getByToken(
token, tracksterToTracksterByHitsMapHandle);
455 tracksterToTracksterByHitsMapsHandles.push_back(tracksterToTracksterByHitsMapHandle);
463 std::vector<size_t> sCIndices;
466 for (
unsigned int scId = 0; scId < nSimClusters; ++scId) {
468 simClusters[scId].g4Tracks()[0].eventId().bunchCrossing() != 0) {
469 LogDebug(
"HGCalValidator") <<
"Excluding SimClusters from event: " 470 <<
simClusters[scId].g4Tracks()[0].eventId().event()
471 <<
" with BX: " <<
simClusters[scId].g4Tracks()[0].eventId().bunchCrossing()
475 sCIndices.emplace_back(scId);
490 auto simRecColl = *simtorecoCollectionH;
493 auto recSimColl = *recotosimCollectionH;
510 LogTrace(
"HGCalValidator") <<
"\n# of SimClusters: " << nSimClusters
536 for (
unsigned int layerclusterIndex = 0; layerclusterIndex <
clusters.size(); layerclusterIndex++) {
553 if (tracksterHandle.
id() == simTracksterHandle.
id()
or tracksterHandle.
id() == simTracksterFromCPHandle.
id())
556 trackstersToSimTrackstersFromCPsMapH, simTrackstersFromCPsToTrackstersMapH,
557 trackstersToSimTrackstersByHitsMapH, simTrackstersToTrackstersByHitsMapH,
558 trackstersToSimTrackstersFromCPsByHitsMapH, simTrackstersFromCPsToTrackstersByHitsMapH;
560 bool mapsFound = assignTracksterMaps(tracksterHandle,
562 simTracksterFromCPHandle,
563 tracksterToTracksterMapsHandles,
564 trackstersToSimTrackstersMapH,
565 simTrackstersToTrackstersMapH,
566 trackstersToSimTrackstersFromCPsMapH,
567 simTrackstersFromCPsToTrackstersMapH);
569 mapsFound = mapsFound and assignTracksterMaps(tracksterHandle,
571 simTracksterFromCPHandle,
572 tracksterToTracksterByHitsMapsHandles,
573 trackstersToSimTrackstersByHitsMapH,
574 simTrackstersToTrackstersByHitsMapH,
575 trackstersToSimTrackstersFromCPsByHitsMapH,
576 simTrackstersFromCPsToTrackstersByHitsMapH);
583 simTrackstersFromCPs,
584 cpToSc_SimTrackstersMap,
586 caloParticleHandle.
id(),
594 trackstersToSimTrackstersMapH,
595 simTrackstersToTrackstersMapH,
596 trackstersToSimTrackstersFromCPsMapH,
597 simTrackstersFromCPsToTrackstersMapH,
598 trackstersToSimTrackstersByHitsMapH,
599 simTrackstersToTrackstersByHitsMapH,
600 trackstersToSimTrackstersFromCPsByHitsMapH,
601 simTrackstersFromCPsToTrackstersByHitsMapH,
615 desc.add<
double>(
"ptMinCP", 0.5);
616 desc.add<
double>(
"ptMaxCP", 300.0);
617 desc.add<
double>(
"minRapidityCP", -3.1);
618 desc.add<
double>(
"maxRapidityCP", 3.1);
619 desc.add<
double>(
"lipCP", 30.0);
620 desc.add<
double>(
"tipCP", 60);
621 desc.add<
bool>(
"chargedOnlyCP",
false);
622 desc.add<
bool>(
"stableOnlyCP",
false);
623 desc.add<
bool>(
"notConvertedOnlyCP",
true);
624 desc.add<std::vector<int>>(
"pdgIdCP",
640 desc.add<
bool>(
"signalOnlyCP",
true);
641 desc.add<
bool>(
"intimeOnlyCP",
true);
642 desc.add<
int>(
"minHitCP", 0);
643 desc.add<
int>(
"maxSimClustersCP", -1);
646 psd1.
add<
double>(
"minEta", -4.5);
647 psd1.
add<
double>(
"maxEta", 4.5);
648 psd1.
add<
int>(
"nintEta", 100);
649 psd1.
add<
bool>(
"useFabsEta",
false);
650 psd1.
add<
double>(
"minEne", 0.0);
651 psd1.
add<
double>(
"maxEne", 500.0);
652 psd1.
add<
int>(
"nintEne", 250);
653 psd1.
add<
double>(
"minPt", 0.0);
654 psd1.
add<
double>(
"maxPt", 100.0);
655 psd1.
add<
int>(
"nintPt", 100);
656 psd1.
add<
double>(
"minPhi", -3.2);
657 psd1.
add<
double>(
"maxPhi", 3.2);
658 psd1.
add<
int>(
"nintPhi", 80);
659 psd1.
add<
double>(
"minMixedHitsSimCluster", 0.0);
660 psd1.
add<
double>(
"maxMixedHitsSimCluster", 800.0);
661 psd1.
add<
int>(
"nintMixedHitsSimCluster", 100);
662 psd1.
add<
double>(
"minMixedHitsCluster", 0.0);
663 psd1.
add<
double>(
"maxMixedHitsCluster", 800.0);
664 psd1.
add<
int>(
"nintMixedHitsCluster", 100);
665 psd1.
add<
double>(
"minEneCl", 0.0);
666 psd1.
add<
double>(
"maxEneCl", 110.0);
667 psd1.
add<
int>(
"nintEneCl", 110);
668 psd1.
add<
double>(
"minLongDepBary", 0.0);
669 psd1.
add<
double>(
"maxLongDepBary", 110.0);
670 psd1.
add<
int>(
"nintLongDepBary", 110);
671 psd1.
add<
double>(
"minZpos", -550.0);
672 psd1.
add<
double>(
"maxZpos", 550.0);
673 psd1.
add<
int>(
"nintZpos", 1100);
674 psd1.
add<
double>(
"minTotNsimClsperlay", 0.0);
675 psd1.
add<
double>(
"maxTotNsimClsperlay", 50.0);
676 psd1.
add<
int>(
"nintTotNsimClsperlay", 50);
677 psd1.
add<
double>(
"minTotNClsperlay", 0.0);
678 psd1.
add<
double>(
"maxTotNClsperlay", 50.0);
679 psd1.
add<
int>(
"nintTotNClsperlay", 50);
680 psd1.
add<
double>(
"minEneClperlay", 0.0);
681 psd1.
add<
double>(
"maxEneClperlay", 110.0);
682 psd1.
add<
int>(
"nintEneClperlay", 110);
683 psd1.
add<
double>(
"minScore", 0.0);
684 psd1.
add<
double>(
"maxScore", 1.02);
685 psd1.
add<
int>(
"nintScore", 51);
686 psd1.
add<
double>(
"minSharedEneFrac", 0.0);
687 psd1.
add<
double>(
"maxSharedEneFrac", 1.02);
688 psd1.
add<
int>(
"nintSharedEneFrac", 51);
689 psd1.
add<
double>(
"minTSTSharedEneFracEfficiency", 0.5);
690 psd1.
add<
double>(
"minTSTSharedEneFrac", 0.0);
691 psd1.
add<
double>(
"maxTSTSharedEneFrac", 1.01);
692 psd1.
add<
int>(
"nintTSTSharedEneFrac", 101);
693 psd1.
add<
double>(
"minTotNsimClsperthick", 0.0);
694 psd1.
add<
double>(
"maxTotNsimClsperthick", 800.0);
695 psd1.
add<
int>(
"nintTotNsimClsperthick", 100);
696 psd1.
add<
double>(
"minTotNClsperthick", 0.0);
697 psd1.
add<
double>(
"maxTotNClsperthick", 800.0);
698 psd1.
add<
int>(
"nintTotNClsperthick", 100);
699 psd1.
add<
double>(
"minTotNcellsperthickperlayer", 0.0);
700 psd1.
add<
double>(
"maxTotNcellsperthickperlayer", 500.0);
701 psd1.
add<
int>(
"nintTotNcellsperthickperlayer", 100);
702 psd1.
add<
double>(
"minDisToSeedperthickperlayer", 0.0);
703 psd1.
add<
double>(
"maxDisToSeedperthickperlayer", 300.0);
704 psd1.
add<
int>(
"nintDisToSeedperthickperlayer", 100);
705 psd1.
add<
double>(
"minDisToSeedperthickperlayerenewei", 0.0);
706 psd1.
add<
double>(
"maxDisToSeedperthickperlayerenewei", 10.0);
707 psd1.
add<
int>(
"nintDisToSeedperthickperlayerenewei", 50);
708 psd1.
add<
double>(
"minDisToMaxperthickperlayer", 0.0);
709 psd1.
add<
double>(
"maxDisToMaxperthickperlayer", 300.0);
710 psd1.
add<
int>(
"nintDisToMaxperthickperlayer", 100);
711 psd1.
add<
double>(
"minDisToMaxperthickperlayerenewei", 0.0);
712 psd1.
add<
double>(
"maxDisToMaxperthickperlayerenewei", 50.0);
713 psd1.
add<
int>(
"nintDisToMaxperthickperlayerenewei", 50);
714 psd1.
add<
double>(
"minDisSeedToMaxperthickperlayer", 0.0);
715 psd1.
add<
double>(
"maxDisSeedToMaxperthickperlayer", 300.0);
716 psd1.
add<
int>(
"nintDisSeedToMaxperthickperlayer", 100);
717 psd1.
add<
double>(
"minClEneperthickperlayer", 0.0);
718 psd1.
add<
double>(
"maxClEneperthickperlayer", 10.0);
719 psd1.
add<
int>(
"nintClEneperthickperlayer", 100);
720 psd1.
add<
double>(
"minCellsEneDensperthick", 0.0);
721 psd1.
add<
double>(
"maxCellsEneDensperthick", 100.0);
722 psd1.
add<
int>(
"nintCellsEneDensperthick", 200);
723 psd1.
add<
double>(
"minTotNTSTs", 0.0);
724 psd1.
add<
double>(
"maxTotNTSTs", 50.0);
725 psd1.
add<
int>(
"nintTotNTSTs", 50);
726 psd1.
add<
double>(
"minTotNClsinTSTs", 0.0);
727 psd1.
add<
double>(
"maxTotNClsinTSTs", 400.0);
728 psd1.
add<
int>(
"nintTotNClsinTSTs", 100);
730 psd1.
add<
double>(
"minTotNClsinTSTsperlayer", 0.0);
731 psd1.
add<
double>(
"maxTotNClsinTSTsperlayer", 50.0);
732 psd1.
add<
int>(
"nintTotNClsinTSTsperlayer", 50);
733 psd1.
add<
double>(
"minMplofLCs", 0.0);
734 psd1.
add<
double>(
"maxMplofLCs", 20.0);
735 psd1.
add<
int>(
"nintMplofLCs", 20);
736 psd1.
add<
double>(
"minSizeCLsinTSTs", 0.0);
737 psd1.
add<
double>(
"maxSizeCLsinTSTs", 50.0);
738 psd1.
add<
int>(
"nintSizeCLsinTSTs", 50);
739 psd1.
add<
double>(
"minClEnepermultiplicity", 0.0);
740 psd1.
add<
double>(
"maxClEnepermultiplicity", 10.0);
741 psd1.
add<
int>(
"nintClEnepermultiplicity", 10);
742 psd1.
add<
double>(
"minX", -300.0);
743 psd1.
add<
double>(
"maxX", 300.0);
744 psd1.
add<
int>(
"nintX", 100);
745 psd1.
add<
double>(
"minY", -300.0);
746 psd1.
add<
double>(
"maxY", 300.0);
747 psd1.
add<
int>(
"nintY", 100);
748 psd1.
add<
double>(
"minZ", -550.0);
749 psd1.
add<
double>(
"maxZ", 550.0);
750 psd1.
add<
int>(
"nintZ", 1100);
753 desc.add<std::vector<edm::InputTag>>(
"hits",
760 desc.add<std::vector<edm::InputTag>>(
"label_tst",
771 desc.addUntracked<
bool>(
"SaveGeneralInfo",
true);
772 desc.addUntracked<
bool>(
"doCaloParticlePlots",
true);
773 desc.addUntracked<
bool>(
"doCaloParticleSelection",
true);
774 desc.addUntracked<
bool>(
"doSimClustersPlots",
true);
777 desc.addUntracked<
bool>(
"doLayerClustersPlots",
true);
780 desc.addUntracked<
bool>(
"doTrackstersPlots",
true);
787 edm::InputTag(
"SimClusterToCaloParticleAssociation",
"simClusterToCaloParticleMap"));
788 desc.add<std::vector<edm::InputTag>>(
789 "allTracksterTracksterAssociatorsLabels",
791 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlTrackstersCLUE3DHighToticlSimTracksters"),
792 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlSimTrackstersToticlTrackstersCLUE3DHigh"),
793 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
794 "ticlTrackstersCLUE3DHighToticlSimTrackstersfromCPs"),
795 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
796 "ticlSimTrackstersfromCPsToticlTrackstersCLUE3DHigh"),
797 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlTracksterLinksToticlSimTracksters"),
798 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlSimTrackstersToticlTracksterLinks"),
799 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
800 "ticlTracksterLinksToticlSimTrackstersfromCPs"),
801 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
802 "ticlSimTrackstersfromCPsToticlTracksterLinks"),
803 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlCandidateToticlSimTracksters"),
804 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlSimTrackstersToticlCandidate"),
805 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlCandidateToticlSimTrackstersfromCPs"),
806 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlSimTrackstersfromCPsToticlCandidate"),
808 desc.add<std::vector<edm::InputTag>>(
809 "allTracksterTracksterByHitsAssociatorsLabels",
811 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
812 "ticlTrackstersCLUE3DHighToticlSimTracksters"),
813 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
814 "ticlSimTrackstersToticlTrackstersCLUE3DHigh"),
815 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
816 "ticlTrackstersCLUE3DHighToticlSimTrackstersfromCPs"),
817 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
818 "ticlSimTrackstersfromCPsToticlTrackstersCLUE3DHigh"),
819 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
"ticlTracksterLinksToticlSimTracksters"),
820 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
"ticlSimTrackstersToticlTracksterLinks"),
821 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
822 "ticlTracksterLinksToticlSimTrackstersfromCPs"),
823 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
824 "ticlSimTrackstersfromCPsToticlTracksterLinks"),
825 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
"ticlCandidateToticlSimTracksters"),
826 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
"ticlSimTrackstersToticlCandidate"),
827 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
"ticlCandidateToticlSimTrackstersfromCPs"),
828 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByHits",
"ticlSimTrackstersfromCPsToticlCandidate"),
830 desc.addUntracked<
bool>(
"doCandidatesPlots",
true);
836 "mergeRecoToSimAssociator",
837 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlTrackstersMergeToticlSimTrackstersfromCPs"));
839 "mergeSimToRecoAssociator",
840 edm::InputTag(
"allTrackstersToSimTrackstersAssociationsByLCs",
"ticlSimTrackstersfromCPsToticlTrackstersMerge"));
846 desc.add<std::vector<edm::InputTag>>(
"LayerClustersInputMask",
852 desc.add<
int>(
"totallayers_to_monitor", 52);
853 desc.add<std::vector<int>>(
"thicknesses_to_monitor",
861 desc.addUntracked<
bool>(
"isticlv5",
false);
862 descriptions.
add(
"hgcalValidator",
desc);
std::string label_TSbyLCsCP_
virtual void setCurrentFolder(std::string const &fullpath)
void dqmAnalyze(const edm::Event &, const edm::EventSetup &, const Histograms &) const override
Method called once per event.
edm::InputTag associator_
edm::EDGetTokenT< std::unordered_map< DetId, const unsigned int > > hitMap_
std::vector< edm::InputTag > label_tst
std::vector< edm::InputTag > allTracksterTracksterAssociatorsLabels_
std::unique_ptr< HGVHistoProducerAlgo > histoProducerAlgo_
~HGCalValidator() override
Destructor.
CaloParticleSelector cpSelector
const bool doCaloParticlePlots_
const bool doCandidatesPlots_
Log< level::Error, false > LogError
unsigned totallayers_to_monitor_
std::vector< int > thicknesses_to_monitor_
void cpParametersAndSelection(const Histograms &histograms, std::vector< CaloParticle > const &cPeff, std::vector< SimVertex > const &simVertices, std::vector< size_t > &selected_cPeff, unsigned int layers, std::unordered_map< DetId, const unsigned int > const &, std::vector< HGCRecHit > const &hits) const
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, Histograms &) const override
Method called to book the DQM histograms.
static std::string to_string(const XMLCh *ch)
edm::InputTag label_simTS
const bool SaveGeneralInfo_
std::string label_TSbyLCs_
const bool doLayerClustersPlots_
edm::EDGetTokenT< ticl::RecoToSimCollectionWithSimClusters > associatorMapRtSim
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
cc *****************************************************cc the common blocks pinput and cwdidth are for input parameters cc these parameters needed to be interfaced to other program common pinput fmb
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
edm::EDGetTokenT< ticl::SimToRecoCollectionWithSimClusters > associatorMapSimtR
std::string label_TSbyHitsCP_
edm::EDGetTokenT< std::vector< SimVertex > > simVertices_
edm::EDGetTokenT< std::vector< CaloParticle > > label_cp_fake
edm::EDGetTokenT< std::vector< CaloParticle > > label_cp_effic
std::string label_TSbyHits_
const bool doCaloParticleSelection_
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
std::vector< edm::EDGetTokenT< ticl::TracksterCollection > > label_tstTokens
std::shared_ptr< hgcal::RecHitTools > tools_
std::vector< edm::EDGetTokenT< HGCRecHitCollection > > hits_token_
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
std::vector< edm::EDGetTokenT< TracksterToTracksterMap > > tracksterToTracksterByHitsAssociatorsTokens_
ParameterDescriptionBase * add(U const &iLabel, T const &value)
edm::EDGetTokenT< SimClusterToCaloParticleMap > scToCpMapToken_
std::map< double, double > cumulative_material_budget
edm::EDGetTokenT< ticl::SimToRecoCollection > associatorMapStR
edm::InputTag label_LCToCPLinking_
edm::InputTag label_simTSFromCP
edm::EDGetTokenT< reco::CaloClusterCollection > layerclusters_
HGCalValidator(const edm::ParameterSet &pset)
Constructor.
const bool doTrackstersPlots_
const edm::FileInPath cummatbudinxo_
edm::EDGetTokenT< ticl::TracksterCollection > simTracksters_
std::vector< edm::InputTag > label_clustersmask
std::vector< edm::EDGetTokenT< std::vector< float > > > clustersMaskTokens_
std::unique_ptr< TICLCandidateValidator > candidateVal_
edm::EDGetTokenT< std::vector< SimCluster > > simClusters_
std::string label_candidates_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::InputTag label_SimClustersPlots_
std::vector< edm::EDGetTokenT< TracksterToTracksterMap > > tracksterToTracksterAssociatorsTokens_
edm::InputTag label_SimClustersLevel_
std::vector< int > particles_to_monitor_
const bool doSimClustersPlots_
std::vector< Trackster > TracksterCollection
const std::string & fullPath() const
std::vector< edm::InputTag > allTracksterTracksterByHitsAssociatorsLabels_
edm::EDGetTokenT< ticl::RecoToSimCollection > associatorMapRtS
edm::EDGetTokenT< std::map< uint, std::vector< uint > > > simTrackstersMap_
edm::EDGetTokenT< ticl::TracksterCollection > simTracksters_fromCPs_
std::vector< edm::InputTag > hits_label_
edm::InputTag associatorSim_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
edm::InputTag label_layerClustersPlots_