51 : recoEcalCandidateProducer_(consumes(config.getParameter<edm::
InputTag>(
"recoEcalCandidateProducer"))),
52 ecalRechitEBToken_(consumes(config.getParameter<edm::
InputTag>(
"ecalRechitEB"))),
53 ecalRechitEEToken_(consumes(config.getParameter<edm::
InputTag>(
"ecalRechitEE"))),
56 useIEta_(
config.getParameter<
bool>(
"isIeta")),
57 multThresEB_(
config.getParameter<
double>(
"multThresEB")),
58 multThresEE_(
config.getParameter<
double>(
"multThresEE")) {
60 produces<reco::RecoEcalCandidateIsolationMap>();
61 produces<reco::RecoEcalCandidateIsolationMap>(
"sigmaIEtaIEta5x5");
62 produces<reco::RecoEcalCandidateIsolationMap>(
"sigmaIEtaIEta5x5NoiseCleaned");
63 produces<reco::RecoEcalCandidateIsolationMap>(
"sigmaIPhiIPhi");
64 produces<reco::RecoEcalCandidateIsolationMap>(
"sigmaIPhiIPhi5x5");
65 produces<reco::RecoEcalCandidateIsolationMap>(
"sigmaIPhiIPhi5x5NoiseCleaned");
75 desc.
add<
bool>((
"isIeta"),
true);
78 descriptions.
add((
"hltEgammaHLTClusterShapeProducer"), desc);
104 for (
unsigned int iRecoEcalCand = 0; iRecoEcalCand < recoecalcandHandle->size(); iRecoEcalCand++) {
106 if (recoecalcandref->superCluster()->seed()->seed().det() !=
DetId::Ecal) {
107 clshMap.
insert(recoecalcandref, 0);
108 clsh5x5Map.
insert(recoecalcandref, 0);
109 clsh5x5NoiseCleanedMap.
insert(recoecalcandref, 0);
111 clshMap2.
insert(recoecalcandref, 0);
112 clsh5x5Map2.
insert(recoecalcandref, 0);
113 clsh5x5NoiseCleanedMap2.
insert(recoecalcandref, 0);
122 const auto& vCov = lazyTools.localCovariances(*(recoecalcandref->superCluster()->seed()));
123 sigmaee =
sqrt(vCov[0]);
124 sigmapp =
sqrt(vCov[2]);
128 const auto& vCov = lazyTools.covariances(*(recoecalcandref->superCluster()->seed()));
129 sigmaee =
sqrt(vCov[0]);
130 sigmapp =
sqrt(vCov[2]);
131 double EtaSC = recoecalcandref->eta();
133 sigmaee = sigmaee - 0.02 * (EtaSC - 2.3);
137 auto const ecalCandLocalCov = lazyTools5x5.
localCovariances(*(recoecalcandref->superCluster()->seed()));
138 auto const sigmaee5x5 =
sqrt(ecalCandLocalCov[0]);
139 auto const sigmapp5x5 =
sqrt(ecalCandLocalCov[2]);
141 auto const ecalCandLocalCovNoiseCleaned = lazyTools5x5.
localCovariances(*(recoecalcandref->superCluster()->seed()),
146 auto const sigmaee5x5NoiseCleaned =
sqrt(ecalCandLocalCovNoiseCleaned[0]);
147 auto const sigmapp5x5NoiseCleaned =
sqrt(ecalCandLocalCovNoiseCleaned[2]);
149 clshMap.
insert(recoecalcandref, sigmaee);
150 clsh5x5Map.
insert(recoecalcandref, sigmaee5x5);
151 clsh5x5NoiseCleanedMap.
insert(recoecalcandref, sigmaee5x5NoiseCleaned);
153 clshMap2.
insert(recoecalcandref, sigmapp);
154 clsh5x5Map2.
insert(recoecalcandref, sigmapp5x5);
155 clsh5x5NoiseCleanedMap2.
insert(recoecalcandref, sigmapp5x5NoiseCleaned);
158 iEvent.
put(std::make_unique<reco::RecoEcalCandidateIsolationMap>(clshMap));
159 iEvent.
put(std::make_unique<reco::RecoEcalCandidateIsolationMap>(clsh5x5Map),
"sigmaIEtaIEta5x5");
160 iEvent.
put(std::make_unique<reco::RecoEcalCandidateIsolationMap>(clsh5x5NoiseCleanedMap),
161 "sigmaIEtaIEta5x5NoiseCleaned");
163 iEvent.
put(std::make_unique<reco::RecoEcalCandidateIsolationMap>(clshMap2),
"sigmaIPhiIPhi");
164 iEvent.
put(std::make_unique<reco::RecoEcalCandidateIsolationMap>(clsh5x5Map2),
"sigmaIPhiIPhi5x5");
165 iEvent.
put(std::make_unique<reco::RecoEcalCandidateIsolationMap>(clsh5x5NoiseCleanedMap2),
166 "sigmaIPhiIPhi5x5NoiseCleaned");
static constexpr float kMultThresEE
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
static constexpr float kRelEnCut
bool getByToken(EDGetToken token, Handle< PROD > &result) const
#define DEFINE_FWK_MODULE(type)
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
const double multThresEE_
void produce(edm::StreamID sid, edm::Event &, const edm::EventSetup &) const override
EgammaHLTClusterShapeProducer(const edm::ParameterSet &)
const edm::ESGetToken< EcalPFRecHitThresholds, EcalPFRecHitThresholdsRcd > ecalPFRechitThresholdsToken_
bool getData(T &iHolder) const
const EcalClusterLazyTools::ESGetTokens ecalClusterLazyToolsESGetTokens_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static constexpr float kMultThresEB
const double multThresEB_
void insert(const key_type &k, const data_type &v)
insert an association
const edm::EDGetTokenT< EcalRecHitCollection > ecalRechitEEToken_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
tuple config
parse the configuration file
~EgammaHLTClusterShapeProducer() override
const edm::EDGetTokenT< EcalRecHitCollection > ecalRechitEBToken_
const edm::EDGetTokenT< reco::RecoEcalCandidateCollection > recoEcalCandidateProducer_