23 rhoProducer_ ( consumes<double>(config.getParameter<
edm::InputTag>(
"rhoProducer"))),
26 useHF_ ( config.getParameter<
bool>(
"useHF")),
27 drMax_ ( config.getParameter<double>(
"drMax")),
28 drVetoBarrel_ ( config.getParameter<double>(
"drVetoBarrel")),
29 drVetoEndcap_ ( config.getParameter<double>(
"drVetoEndcap")),
30 etaStripBarrel_ ( config.getParameter<double>(
"etaStripBarrel")),
31 etaStripEndcap_ ( config.getParameter<double>(
"etaStripEndcap")),
32 energyBarrel_ ( config.getParameter<double>(
"energyBarrel")),
33 energyEndcap_ ( config.getParameter<double>(
"energyEndcap")),
34 useEt_ ( config.getParameter<
bool>(
"useEt")),
35 doRhoCorrection_ ( config.getParameter<
bool>(
"doRhoCorrection")),
36 rhoMax_ ( config.getParameter<double>(
"rhoMax")),
37 rhoScale_ ( config.getParameter<double>(
"rhoScale")),
38 effectiveAreas_ ( config.getParameter<
std::vector<double> >(
"effectiveAreas")) ,
39 absEtaLowEdges_ ( config.getParameter<
std::vector<double> >(
"absEtaLowEdges")) {
43 throw cms::Exception(
"IncompatibleVects") <<
"absEtaLowEdges and effectiveAreas should be of the same size. \n";
46 throw cms::Exception(
"IncompleteCoverage") <<
"absEtaLowEdges should start from 0. \n";
50 throw cms::Exception(
"ImproperBinning") <<
"absEtaLowEdges entries should be in increasing order. \n";
54 std::string recoCandidateProducerName =
"recoCandidateProducer";
58 produces <T1IsolationMap >();
68 std::string recoCandidateProducerName =
"recoCandidateProducer";
80 desc.
add<
bool>(
"doRhoCorrection",
false);
81 desc.
add<
double>(
"rhoMax", 9.9999999E7);
82 desc.
add<
double>(
"rhoScale", 1.0);
83 desc.
add<
double>(
"drMax", 0.3);
84 desc.
add<
double>(
"drVetoBarrel", 0.0);
85 desc.
add<
double>(
"drVetoEndcap", 0.0);
86 desc.
add<
double>(
"etaStripBarrel", 0.0);
87 desc.
add<
double>(
"etaStripEndcap", 0.0);
88 desc.
add<
double>(
"energyBarrel", 0.0);
89 desc.
add<
double>(
"energyEndcap", 0.0);
90 desc.
add<
bool>(
"useEt",
true);
91 desc.
add<std::vector<double> >(
"effectiveAreas", {0.2, 0.25});
92 desc.
add<std::vector<double> >(
"absEtaLowEdges", {0.0, 1.479});
113 std::vector<edm::Handle<reco::PFClusterCollection>> clusterHandles;
121 clusterHandles.push_back(clusterHcalHandle);
125 clusterHandles.push_back(clusterHfemHandle);
127 clusterHandles.push_back(clusterHfhadHandle);
133 for (
unsigned int iReco = 0; iReco < recoCandHandle->size(); iReco++) {
134 T1Ref candRef(recoCandHandle, iReco);
136 float sum = isoAlgo.
getSum(candRef, clusterHandles);
140 auto cEta =
std::abs(candRef->eta());
151 recoCandMap.
insert(candRef, sum);
154 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_
std::string defaultModuleLabel()
const edm::EDGetTokenT< double > rhoProducer_
const std::vector< double > effectiveAreas_
const edm::EDGetTokenT< reco::PFClusterCollection > pfClusterProducerHFHAD_
const bool doRhoCorrection_
#define DEFINE_FWK_MODULE(type)
const edm::EDGetTokenT< reco::PFClusterCollection > pfClusterProducerHCAL_
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
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