1 #ifndef RecoParticleFlow_PFClusterProducer_PFRecHitProducerECAL_h_
2 #define RecoParticleFlow_PFClusterProducer_PFRecHitProducerECAL_h_
32 class EcalBarrelGeometry;
33 class EcalEndcapGeometry;
54 std::vector<reco::PFRecHit>& rechitsCleaned,
76 const std::map<unsigned,unsigned >& sortedHits );
83 const EcalEndcapGeometry& endcapGeom,
92 const EcalBarrelGeometry& barrelGeom,
93 const EcalEndcapGeometry& endcapGeom )
const;
100 const EcalBarrelGeometry& barrelGeom,
101 const EcalEndcapGeometry& endcapGeom )
const;
void ecalNeighbArray(const EcalBarrelGeometry &barrelGeom, const CaloSubdetectorTopology &barrelTopo, const EcalEndcapGeometry &endcapGeom, const CaloSubdetectorTopology &endcapTopo)
edm::InputTag inputTagEcalRecHitsEE_
edm::InputTag inputTagEcalRecHitsEB_
static int position[TOTALCHAMBERS][3]
bool crossBarrelEndcapBorder_
if true, navigation will cross the barrel-endcap border
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
Base producer for particle flow rechits (PFRecHit)
PFRecHitProducerECAL(const edm::ParameterSet &)
Producer for particle flow rechits (PFRecHit) in ECAL.
bool stdmove(DetId &cell, const CaloDirection &dir, const CaloSubdetectorTopology &barrelTopo, const CaloSubdetectorTopology &endcapTopo, const EcalBarrelGeometry &barrelGeom, const EcalEndcapGeometry &endcapGeom) const
bool stdsimplemove(DetId &cell, const CaloDirection &dir, const CaloSubdetectorTopology &barrelTopo, const CaloSubdetectorTopology &endcapTopo, const EcalBarrelGeometry &barrelGeom, const EcalEndcapGeometry &endcapGeom) const
bool findEcalRecHitGeometry(const DetId &detid, const CaloSubdetectorGeometry *geom, math::XYZVector &position, math::XYZVector &axis)
find the position and the axis of the cell for a given rechit
std::vector< std::vector< DetId > > neighboursEB_
for each ecal barrel rechit, keep track of the neighbours
reco::PFRecHit * createEcalRecHit(const DetId &detid, double energy, PFLayer::Layer layer, const CaloSubdetectorGeometry *geom)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
void findRecHitNeighboursECAL(reco::PFRecHit &rh, const std::map< unsigned, unsigned > &sortedHits)
find rechit neighbours, using the hashed index
std::vector< std::vector< DetId > > neighboursEE_
for each ecal endcap rechit, keep track of the neighbours
void createRecHits(std::vector< reco::PFRecHit > &rechits, std::vector< reco::PFRecHit > &rechitsCleaned, edm::Event &, const edm::EventSetup &)
DetId move(DetId cell, const CaloDirection &dir) const
bool neighbourmapcalculated_
set to true in ecalNeighbArray
CaloDirection
Codes the local directions in the cell lattice.
bool topologicalCleaning_