12 produces<ticl::AssociationMap<ticl::oneToOneMapWithFraction, std::vector<SimCluster>, std::vector<CaloParticle>>>(
13 "simClusterToCaloParticleMap");
31 auto simClusterToCaloParticleMap = std::make_unique<
33 simClustersHandle, caloParticlesHandle,
iEvent);
36 for (
unsigned int cpId = 0; cpId <
caloParticles.size(); ++cpId) {
39 for (
const auto &simClusterRef : caloParticle.simClusters()) {
40 const auto &simCluster = *simClusterRef;
41 unsigned int scId = simClusterRef.key();
43 float fraction = simCluster.energy() / caloParticle.energy();
45 simClusterToCaloParticleMap->insert(scId, cpId,
fraction);
48 iEvent.put(
std::move(simClusterToCaloParticleMap),
"simClusterToCaloParticleMap");
55 descriptions.
add(
"SimClusterToCaloParticleAssociatorProducer",
desc);
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
~SimClusterToCaloParticleAssociatorProducer() override
Monte Carlo truth information used for tracking validation.
#define DEFINE_FWK_MODULE(type)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
edm::EDGetTokenT< std::vector< SimCluster > > simClusterToken_
SimClusterToCaloParticleAssociatorProducer(const edm::ParameterSet &)
edm::EDGetTokenT< std::vector< CaloParticle > > caloParticleToken_