27 doRhoCorrection_( config.getParameter<bool>(
"doRhoCorrection") ),
28 rhoScale_( config.getParameter<double>(
"rhoScale") ),
29 rhoMax_( config.getParameter<double>(
"rhoMax") ),
30 doEtSum_( config.getParameter<bool>(
"doEtSum") ),
31 etMin_( config.getParameter<double>(
"etMin") ),
32 innerCone_( config.getParameter<double>(
"innerCone") ),
33 outerCone_( config.getParameter<double>(
"outerCone") ),
34 depth_( config.getParameter<int>(
"depth") ),
35 effectiveAreaBarrel_( config.getParameter<double>(
"effectiveAreaBarrel") ),
36 effectiveAreaEndcap_( config.getParameter<double>(
"effectiveAreaEndcap") ),
37 useSingleTower_( config.getParameter<bool>(
"useSingleTower") ),
39 caloTowerProducer_( consumes<
CaloTowerCollection>(config.getParameter<edm::InputTag>(
"caloTowerProducer")) ),
40 rhoProducer_( doRhoCorrection_ ? consumes<double>(config.getParameter<edm::InputTag>(
"rhoProducer")) : edm::EDGetTokenT<double>() )
49 produces<reco::RecoEcalCandidateIsolationMap>();
63 desc.
add<
bool>((
"doRhoCorrection"),
false);
64 desc.
add<
double>((
"rhoMax"), 999999.);
65 desc.
add<
double>((
"rhoScale"), 1.0);
66 desc.
add<
double>((
"etMin"), -1.0);
67 desc.
add<
double>((
"innerCone"), 0);
68 desc.
add<
double>((
"outerCone"), 0.15);
69 desc.
add<
int>((
"depth"), -1);
70 desc.
add<
bool>((
"doEtSum"),
false);
71 desc.
add<
double>((
"effectiveAreaBarrel"), 0.021);
72 desc.
add<
double>((
"effectiveAreaEndcap"), 0.040);
73 desc.
add<
bool>((
"useSingleTower"),
false);
74 descriptions.
add((
"hltEgammaHLTBcHcalIsolationProducersRegional"), desc);
104 for(
unsigned int iRecoEcalCand=0; iRecoEcalCand <recoEcalCandHandle->size(); iRecoEcalCand++) {
110 std::vector<CaloTowerDetId> towersBehindCluster;
118 isol = isolAlgo.
getTowerEtSum(&(*recoEcalCandRef), &(towersBehindCluster));
120 isol = isolAlgo.getTowerEtSum(&(*recoEcalCandRef));
123 if (fabs(recoEcalCandRef->superCluster()->eta()) < 1.442)
135 isoMap.
insert(recoEcalCandRef, isol);
const bool doRhoCorrection_
double hcalESum(const reco::SuperCluster &, const std::vector< CaloTowerDetId > *excludeTowers=0)
void readEvent(const edm::Event &)
const edm::EDGetTokenT< CaloTowerCollection > caloTowerProducer_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
double hcalESumDepth2BehindClusters(const std::vector< CaloTowerDetId > &towers)
virtual void produce(edm::Event &, const edm::EventSetup &) overridefinal
std::vector< CaloTowerDetId > hcalTowersBehindClusters(const reco::SuperCluster &sc)
void checkSetup(const edm::EventSetup &)
double hcalESumDepth1BehindClusters(const std::vector< CaloTowerDetId > &towers)
~EgammaHLTBcHcalIsolationProducersRegional()
ElectronHcalHelper * hcalHelper_
EgammaHLTBcHcalIsolationProducersRegional(const edm::ParameterSet &)
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
const float effectiveAreaBarrel_
const edm::EDGetTokenT< double > rhoProducer_
T const * product() const
void insert(const key_type &k, const data_type &v)
insert an association
const bool useSingleTower_
void add(std::string const &label, ParameterSetDescription const &psetDescription)
std::vector< RecoEcalCandidate > RecoEcalCandidateCollection
collectin of RecoEcalCandidate objects
double getTowerEtSum(const reco::Candidate *cand, const std::vector< CaloTowerDetId > *detIdToExclude=0) const
const float effectiveAreaEndcap_
edm::EDGetTokenT< CaloTowerCollection > hcalTowers
const edm::EDGetTokenT< reco::RecoEcalCandidateCollection > recoEcalCandidateProducer_