29 recHitsLabel_(iConfig.getParameter< edm::InputTag > (
"recHitsLabel")),
30 emObjectLabel_(iConfig.getParameter< edm::InputTag > (
"emObjectLabel")),
31 energyCut_(iConfig.getParameter<double>(
"energyCut")),
32 etCut_(iConfig.getParameter<double>(
"etCut")),
33 etCandCut_(iConfig.getParameter<double> (
"etCandCut")),
34 outerRadius_(iConfig.getParameter<double>(
"outerRadius")),
35 innerRadius_(iConfig.getParameter<double>(
"innerRadius")),
36 interestingDetIdCollection_(iConfig.getParameter<std::string>(
"interestingDetIdCollection")),
37 severityLevelCut_(iConfig.getParameter<int>(
"severityLevelCut")),
38 severityRecHitThreshold_(iConfig.getParameter<double>(
"severityRecHitThreshold")),
39 spIdString_(iConfig.getParameter<std::string>(
"spikeIdString")),
40 spIdThreshold_(iConfig.getParameter<double>(
"spikeIdThreshold")),
41 v_chstatus_(iConfig.getParameter<std::vector<int> >(
"recHitFlagsToBeExcluded")) {
73 std::auto_ptr<CaloRecHitMetaCollectionV> recHits_(0);
91 std::auto_ptr< DetIdCollection > detIdCollection (
new DetIdCollection() ) ;
93 reco::GsfElectronCollection::const_iterator emObj;
95 for (emObj = emObjectH->begin(); emObj != emObjectH->end(); emObj++) {
99 GlobalPoint pclu (emObj->caloPosition().x(),emObj->caloPosition().y(),emObj->caloPosition().z());
100 std::auto_ptr<CaloRecHitMetaCollectionV> chosen = doubleConeSel_->select(pclu,*recHits_);
103 for (recIt = chosen->begin(); recIt!= chosen->end () ; ++recIt) {
109 caloGeom->getPosition(recIt->
detid()).
perp() /
110 caloGeom->getPosition(recIt->
detid()).
mag();
112 if ( fabs(et) <
etCut_)
continue;
130 if(
std::find(detIdCollection->begin(),detIdCollection->end(),recIt->
detid()) == detIdCollection->end())
131 detIdCollection->push_back(recIt->
detid());
136 delete doubleConeSel_;
edm::InputTag recHitsLabel_
const DetId & detid() const
T perp() const
Magnitude of transverse component.
~EleIsoDetIdCollectionProducer()
EleIsoDetIdCollectionProducer(const edm::ParameterSet &)
ctor
virtual void produce(edm::Event &, const edm::EventSetup &)
producer
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
std::vector< int > v_chstatus_
edm::InputTag emObjectLabel_
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
float severityRecHitThreshold_
EcalSeverityLevelAlgo::SpikeId spId_
static int severityLevel(const DetId, const EcalRecHitCollection &, const EcalChannelStatus &, float recHitEtThreshold=5., SpikeId spId=kSwissCross, float spIdThreshold=0.95, float recHitEnergyThresholdForTiming=2., float recHitEnergyThresholdForEE=15, float spIdThresholdIEta85=0.999)
edm::EDCollection< DetId > DetIdCollection
std::string interestingDetIdCollection_