34 template <
typename T1>
72 template <
typename T1>
82 drMax_(config.getParameter<double>(
"drMax")),
91 rhoMax_(config.getParameter<double>(
"rhoMax")),
92 rhoScale_(config.getParameter<double>(
"rhoScale")),
97 throw cms::Exception(
"IncompatibleVects") <<
"absEtaLowEdges and effectiveAreas should be of the same size. \n";
100 throw cms::Exception(
"IncompleteCoverage") <<
"absEtaLowEdges should start from 0. \n";
104 throw cms::Exception(
"ImproperBinning") <<
"absEtaLowEdges entries should be in increasing order. \n";
108 std::string recoCandidateProducerName =
"recoCandidateProducer";
111 recoCandidateProducerName =
"recoEcalCandidateProducer";
114 produces<T1IsolationMap>();
117 template <
typename T1>
120 template <
typename T1>
122 std::string recoCandidateProducerName =
"recoCandidateProducer";
125 recoCandidateProducerName =
"recoEcalCandidateProducer";
133 "pfClusterProducerHFEM",
edm::InputTag(
"hltParticleFlowClusterHFEM"),
true) and
135 "pfClusterProducerHFHAD",
edm::InputTag(
"hltParticleFlowClusterHFHAD"),
true))
or 139 desc.
add<
bool>(
"doRhoCorrection",
false);
140 desc.
add<
double>(
"rhoMax", 9.9999999E7);
141 desc.
add<
double>(
"rhoScale", 1.0);
142 desc.
add<
double>(
"drMax", 0.3);
143 desc.
add<
double>(
"drVetoBarrel", 0.0);
144 desc.
add<
double>(
"drVetoEndcap", 0.0);
145 desc.
add<
double>(
"etaStripBarrel", 0.0);
146 desc.
add<
double>(
"etaStripEndcap", 0.0);
147 desc.
add<
double>(
"energyBarrel", 0.0);
148 desc.
add<
double>(
"energyEndcap", 0.0);
149 desc.
add<
bool>(
"useEt",
true);
150 desc.
add<std::vector<double>>(
"effectiveAreas", {0.2, 0.25});
151 desc.
add<std::vector<double>>(
"absEtaLowEdges", {0.0, 1.479});
155 template <
typename T1>
173 std::vector<edm::Handle<reco::PFClusterCollection>> clusterHandles;
181 clusterHandles.push_back(clusterHcalHandle);
185 clusterHandles.push_back(clusterHfemHandle);
187 clusterHandles.push_back(clusterHfhadHandle);
194 for (
unsigned int iReco = 0; iReco < recoCandHandle->size(); iReco++) {
195 T1Ref candRef(recoCandHandle, iReco);
197 float sum = isoAlgo.
getSum(candRef, clusterHandles);
201 auto cEta =
std::abs(candRef->eta());
212 recoCandMap.
insert(candRef, sum);
215 iEvent.
put(std::make_unique<T1IsolationMap>(recoCandMap));
T getParameter(std::string const &) const
ParameterDescriptionNode * ifValue(ParameterDescription< T > const &switchParameter, std::unique_ptr< ParameterDescriptionCases< T >> cases)
const double drVetoEndcap_
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
bool getByToken(EDGetToken token, Handle< PROD > &result) const
const double drVetoBarrel_
edm::AssociationMap< edm::OneToValue< std::vector< T1 >, float > > T1IsolationMap
std::string defaultModuleLabel()
const edm::EDGetTokenT< double > rhoProducer_
const std::vector< double > effectiveAreas_
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
const edm::EDGetTokenT< reco::PFClusterCollection > pfClusterProducerHFHAD_
const bool doRhoCorrection_
#define DEFINE_FWK_MODULE(type)
const edm::EDGetTokenT< reco::PFClusterCollection > pfClusterProducerHCAL_
std::vector< T1 > T1Collection
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
Abs< T >::type abs(const T &t)
HLTHcalPFClusterIsolationProducer< reco::RecoEcalCandidate > EgammaHLTHcalPFClusterIsolationProducer
ParameterDescriptionBase * add(U const &iLabel, T const &value)
double getSum(const T1Ref candRef, const std::vector< edm::Handle< reco::PFClusterCollection >> &clusterHandles)
void produce(edm::StreamID sid, edm::Event &, const edm::EventSetup &) const override
edm::EDGetTokenT< T1Collection > recoCandidateProducer_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
T const * product() const
void insert(const key_type &k, const data_type &v)
insert an association
edm::Ref< T1Collection > T1Ref
void add(std::string const &label, ParameterSetDescription const &psetDescription)
const std::vector< double > absEtaLowEdges_
const double energyEndcap_
const double etaStripEndcap_
std::vector< PFCluster > PFClusterCollection
collection of PFCluster objects
const edm::EDGetTokenT< reco::PFClusterCollection > pfClusterProducerHFEM_
~HLTHcalPFClusterIsolationProducer() override
HLTHcalPFClusterIsolationProducer(const edm::ParameterSet &)
const double etaStripBarrel_
const double energyBarrel_
HLTHcalPFClusterIsolationProducer< reco::RecoChargedCandidate > MuonHLTHcalPFClusterIsolationProducer