51 std::string debugString = ps.
getParameter<std::string>(
"debugLevel");
85 ps.
getParameter<std::vector<int> >(
"RecHitFlagToBeExcluded"),
91 ps.
getParameter<std::vector<int> >(
"RecHitSeverityToBeExcluded"),
126 std::cout <<
"could not get a handle on the EcalRecHitCollection!" << std::endl;
136 std::auto_ptr<const CaloSubdetectorTopology> topology;
154 }
else throw(std::runtime_error(
"\n\nHybrid Cluster Producer encountered invalied ecalhitcollection type.\n\n"));
169 std::vector<EcalEtaPhiRegion> regions;
172 for( l1extra::L1EmParticleCollection::const_iterator emItr = emIsolColl->begin(); emItr != emIsolColl->end() ;++emItr ){
183 int etaIndex = emItr->gctEmCand()->etaIndex() ;
184 int phiIndex = emItr->gctEmCand()->phiIndex() ;
186 double etaLow = l1CaloGeom->etaBinLowEdge( etaIndex ) ;
187 double etaHigh = l1CaloGeom->etaBinHighEdge( etaIndex ) ;
188 double phiLow = l1CaloGeom->emJetPhiBinLowEdge( phiIndex ) ;
189 double phiHigh = l1CaloGeom->emJetPhiBinHighEdge( phiIndex ) ;
194 if(((
float)(etaLow)>-1.479 && (
float)(etaLow)<1.479) ||
195 ((
float)(etaHigh)>-1.479 && (
float)(etaHigh)<1.479)) isbarl=1;
204 if (etaHigh>1.479) etaHigh=1.479;
205 if (etaLow<-1.479) etaLow=-1.479;
207 if(isbarl) regions.push_back(
EcalEtaPhiRegion(etaLow,etaHigh,phiLow,phiHigh));
214 for( l1extra::L1EmParticleCollection::const_iterator emItr = emNonIsolColl->begin(); emItr != emNonIsolColl->end() ;++emItr ){
227 int etaIndex = emItr->gctEmCand()->etaIndex() ;
228 int phiIndex = emItr->gctEmCand()->phiIndex() ;
230 double etaLow = l1CaloGeom->etaBinLowEdge( etaIndex ) ;
231 double etaHigh = l1CaloGeom->etaBinHighEdge( etaIndex ) ;
232 double phiLow = l1CaloGeom->emJetPhiBinLowEdge( phiIndex ) ;
233 double phiHigh = l1CaloGeom->emJetPhiBinHighEdge( phiIndex ) ;
238 if(((
float)(etaLow)>-1.479 && (
float)(etaLow)<1.479) ||
239 ((
float)(etaHigh)>-1.479 && (
float)(etaHigh)<1.479)) isbarl=1;
248 if (etaHigh>1.479) etaHigh=1.479;
249 if (etaLow<-1.479) etaLow=-1.479;
251 if(isbarl) regions.push_back(
EcalEtaPhiRegion(etaLow,etaHigh,phiLow,phiHigh));
259 hybrid_p->
makeClusters(hit_collection, geometry_p, basicClusters,
true, regions,theEcalChStatus);
265 basicclusters_p->assign(basicClusters.begin(), basicClusters.end());
286 for (
unsigned int i = 0;
i < clusterCollection.size();
i++){
295 superclusters_p->assign(superClusters.begin(), superClusters.end());
T getParameter(std::string const &) const
const CaloSubdetectorGeometry * getSubdetectorGeometry(const DetId &id) const
access the subdetector geometry for the given subdetector directly
std::string basicclusterCollection_
void push_back(Ptr< T > const &iPtr)
virtual void produce(edm::Event &, const edm::EventSetup &)
PositionCalc posCalculator_
std::string superclusterCollection_
~EgammaHLTHybridClusterProducer()
double l1LowerThrIgnoreIsolation_
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
reco::SuperClusterCollection makeSuperClusters(const reco::CaloClusterPtrVector &)
std::string hitcollection_
void setDynamicPhiRoad(const edm::ParameterSet &bremRecoveryPset)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void makeClusters(const EcalRecHitCollection *, const CaloSubdetectorGeometry *geometry, reco::BasicClusterCollection &basicClusters, bool regional=false, const std::vector< EcalEtaPhiRegion > ®ions=std::vector< EcalEtaPhiRegion >(), const EcalChannelStatus *chStatus=new EcalChannelStatus())
edm::InputTag l1TagNonIsolated_
edm::InputTag l1TagIsolated_
T const * product() const
std::vector< BasicCluster > BasicClusterCollection
collection of BasicCluster objects
T const * product() const
HybridClusterAlgo::DebugLevel debugL
ESHandle< TrackerGeometry > geometry
edm::InputTag hitproducer_
HybridClusterAlgo * hybrid_p
EgammaHLTHybridClusterProducer(const edm::ParameterSet &ps)