23 auto hitsTags =
pset.getParameter<std::vector<edm::InputTag>>(
"hits");
24 for (
const auto &
tag : hitsTags) {
27 produces<ticl::AssociationMap<ticl::mapWithFraction>>(
"hitToTracksterMap");
28 produces<ticl::AssociationMap<ticl::mapWithFraction>>(
"tracksterToHitMap");
53 auto hitToTracksterMap = std::make_unique<ticl::AssociationMap<ticl::mapWithFraction>>(rechitManager.
size());
57 for (
unsigned int tracksterId = 0; tracksterId <
tracksters->size(); ++tracksterId) {
58 const auto &trackster = (*tracksters)[tracksterId];
60 for (
unsigned int i = 0;
i < trackster.vertices().size(); ++
i) {
62 const auto &lc = (*layer_clusters)[trackster.vertices()[
i]];
63 float invMultiplicity = 1.0f / trackster.vertex_multiplicity()[
i];
65 for (
const auto &hitAndFraction : lc.hitsAndFractions()) {
66 auto hitMapIter = hitMap->find(hitAndFraction.first);
67 if (hitMapIter != hitMap->end()) {
68 unsigned int rechitIndex = hitMapIter->second;
69 float fraction = hitAndFraction.second * invMultiplicity;
85 desc.add<std::vector<edm::InputTag>>(
"hits",
89 descriptions.
add(
"hitToTracksterAssociator",
desc);
edm::EDGetTokenT< std::unordered_map< DetId, const unsigned int > > hitMapToken_
~HitToTracksterAssociatorProducer() override
edm::EDGetTokenT< std::vector< reco::CaloCluster > > LCCollectionToken_
std::vector< edm::EDGetTokenT< HGCRecHitCollection > > hitsTokens_
HitToTracksterAssociatorProducer(const edm::ParameterSet &)
#define DEFINE_FWK_MODULE(type)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void addVector(std::span< const T > vec)
edm::EDGetTokenT< std::vector< ticl::Trackster > > tracksterCollectionToken_