CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFRecHitProducerECAL.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_PFClusterProducer_PFRecHitProducerECAL_h_
2 #define RecoParticleFlow_PFClusterProducer_PFRecHitProducerECAL_h_
3 
4 // system include files
5 #include <memory>
6 #include <vector>
7 
8 // user include files
11 
14 
16 
18 
21 
32 class EcalBarrelGeometry;
33 class EcalEndcapGeometry;
35 class DetId;
36 
37 
38 
39 
40 
42 
43  public:
44  explicit PFRecHitProducerECAL(const edm::ParameterSet&);
46 
47 
48 
49  private:
50 
53  void createRecHits(std::vector<reco::PFRecHit>& rechits,
54  std::vector<reco::PFRecHit>& rechitsCleaned,
55  edm::Event&, const edm::EventSetup&);
56 
57 
58 
59 
61  double energy,
62  PFLayer::Layer layer,
64 
65 
66 
68  bool findEcalRecHitGeometry ( const DetId& detid,
69  const CaloSubdetectorGeometry* geom,
71  math::XYZVector& axis );
72 
74  void
76  const std::map<unsigned,unsigned >& sortedHits );
77 
81  void ecalNeighbArray( const EcalBarrelGeometry& barrelGeom,
82  const CaloSubdetectorTopology& barrelTopo,
83  const EcalEndcapGeometry& endcapGeom,
84  const CaloSubdetectorTopology& endcapTopo );
85 
86  DetId move(DetId cell, const CaloDirection& dir ) const;
87 
88  bool stdsimplemove(DetId& cell,
89  const CaloDirection& dir,
90  const CaloSubdetectorTopology& barrelTopo,
91  const CaloSubdetectorTopology& endcapTopo,
92  const EcalBarrelGeometry& barrelGeom,
93  const EcalEndcapGeometry& endcapGeom ) const;
94 
95 
96  bool stdmove(DetId& cell,
97  const CaloDirection& dir,
98  const CaloSubdetectorTopology& barrelTopo,
99  const CaloSubdetectorTopology& endcapTopo,
100  const EcalBarrelGeometry& barrelGeom,
101  const EcalEndcapGeometry& endcapGeom ) const;
102 
103  // ----------member data ---------------------------
104 
105 
106 
108  std::vector<std::vector<DetId> > neighboursEB_;
109 
111  std::vector<std::vector<DetId> > neighboursEE_;
112 
115 
118 
119  // ----------access to event data
122 
123  // ---- Perform timing cleaning
127 
128  // ---- Perform topological cleaning
130 
131 };
132 
133 #endif
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]
Definition: ReadPGInfo.cc:509
bool crossBarrelEndcapBorder_
if true, navigation will cross the barrel-endcap border
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
Definition: PFRecHit.h:31
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
Layer
layer definition
Definition: PFLayer.h:31
Definition: DetId.h:18
reco::PFRecHit * createEcalRecHit(const DetId &detid, double energy, PFLayer::Layer layer, const CaloSubdetectorGeometry *geom)
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:30
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
dbl *** dir
Definition: mlp_gen.cc:35
CaloDirection
Codes the local directions in the cell lattice.
Definition: CaloDirection.h:9