File indexing completed on 2024-11-07 06:12:43
0001 #include "MultiplicityAlgorithms.h"
0002
0003 using namespace sistriptools::algorithm;
0004
0005 ClusterSummarySingleMultiplicity::ClusterSummarySingleMultiplicity(const edm::ParameterSet& iConfig,
0006 edm::ConsumesCollector&& iC)
0007 : m_subdetenum((ClusterSummary::CMSTracker)iConfig.getParameter<int>("subDetEnum")),
0008 m_varenum((ClusterSummary::VariablePlacement)iConfig.getParameter<int>("varEnum")),
0009 m_collection(iC.consumes<ClusterSummary>(iConfig.getParameter<edm::InputTag>("clusterSummaryCollection"))),
0010 m_warn(iConfig.getUntrackedParameter<bool>("warnIfModuleMissing", true)) {}
0011
0012 ClusterSummarySingleMultiplicity::ClusterSummarySingleMultiplicity(const edm::ParameterSet& iConfig,
0013 edm::ConsumesCollector& iC)
0014 : m_subdetenum((ClusterSummary::CMSTracker)iConfig.getParameter<int>("subDetEnum")),
0015 m_varenum((ClusterSummary::VariablePlacement)iConfig.getParameter<int>("varEnum")),
0016 m_collection(iC.consumes<ClusterSummary>(iConfig.getParameter<edm::InputTag>("clusterSummaryCollection"))),
0017 m_warn(iConfig.getUntrackedParameter<bool>("warnIfModuleMissing", true)) {}
0018
0019 ClusterSummarySingleMultiplicity::value_t ClusterSummarySingleMultiplicity::getEvent(
0020 const edm::Event& iEvent, const edm::EventSetup& iSetup) const {
0021 int mult = 0;
0022
0023 edm::Handle<ClusterSummary> clustsumm;
0024 iEvent.getByToken(m_collection, clustsumm);
0025
0026 switch (m_varenum) {
0027 case ClusterSummary::NCLUSTERS:
0028 mult = int(clustsumm->getNClus(m_subdetenum, m_warn));
0029 break;
0030 case ClusterSummary::CLUSTERSIZE:
0031 mult = int(clustsumm->getClusSize(m_subdetenum, m_warn));
0032 break;
0033 case ClusterSummary::CLUSTERCHARGE:
0034 mult = int(clustsumm->getClusCharge(m_subdetenum, m_warn));
0035 break;
0036 default:
0037 mult = -1;
0038 }
0039 return value_t(mult);
0040 }