CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFRecHitProducerHO.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_PFClusterProducer_PFRecHitProducerHO_h_
2 #define RecoParticleFlow_PFClusterProducer_PFRecHitProducerHO_h_
3 
4 // system include files
5 #include <memory>
6 #include <vector>
7 
8 // user include files
11 
14 
16 
18 
21 
32 //class HcalBarrelGeometry;
33 class DetId;
34 
36 
37  public:
38  explicit PFRecHitProducerHO(const edm::ParameterSet&);
40 
41  private:
42 
43  // gets HO rechits,
44  // translate them to PFRecHits, which are stored in the rechits vector
45  void createRecHits(std::vector<reco::PFRecHit>& rechits,
46  std::vector<reco::PFRecHit>& rechitsCleaned,
47  edm::Event&, const edm::EventSetup&);
48 
50  double energy,
51  PFLayer::Layer layer,
53  // unsigned newDetId=0);
54 
55 
56 
58  bool findHORecHitGeometry ( const DetId& detid,
59  const CaloSubdetectorGeometry* geom,
61  math::XYZVector& axis );
62 
64  void
66  const std::map<unsigned,unsigned >& sortedHits );
67 void
69  const std::map<unsigned,unsigned >& sortedHits,
70  const CaloSubdetectorTopology& barrelTopo,
71  const CaloSubdetectorGeometry& barrelGeom);
72 
76  void hoNeighbArray( const CaloSubdetectorGeometry& barrelGeom,
77  const CaloSubdetectorTopology& barrelTopo);
78 
79  DetId move(DetId cell, const CaloDirection& dir ) const;
80 
81  bool stdsimplemove(DetId& cell,
82  const CaloDirection& dir,
83  const CaloSubdetectorTopology& barrelTopo,
84  const CaloSubdetectorGeometry& barrelGeom) const;
85 
86  bool stdmove(DetId& cell,
87  const CaloDirection& dir,
88  const CaloSubdetectorTopology& barrelTopo,
89  const CaloSubdetectorGeometry& barrelGeom) const;
90 
91  // ----------member data ---------------------------
92 
93 
94 
96  std::vector<std::vector<DetId> > neighboursHO_;
97 
100 
101 // // if true, navigation will cross the barrel-endcap border
102 // bool crossBarrelEndcapBorder_;
103 
104  // ----------access to event data
106 
107  // ---- Thresholds on Ring0 hit energies
108  double thresholdR0_;
109 
110  // --- Thresholds on Rings +/-1, +/-2 hit energies
111  double thresholdR1_;
112 
113  // Maximum allowed severity of HO rechits. Hits above the given severity level will be rejected. Default max value is 9 (the same as used for accepting hits in the default Hcal caloTowers)
115 };
116 
117 #endif
reco::PFRecHit * createHORecHit(const DetId &detid, double energy, PFLayer::Layer layer, const CaloSubdetectorGeometry *geom)
std::vector< std::vector< DetId > > neighboursHO_
for each HO barrel rechit, keep track of the neighbours
void hoNeighbArray(const CaloSubdetectorGeometry &barrelGeom, const CaloSubdetectorTopology &barrelTopo)
bool stdsimplemove(DetId &cell, const CaloDirection &dir, const CaloSubdetectorTopology &barrelTopo, const CaloSubdetectorGeometry &barrelGeom) const
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
void createRecHits(std::vector< reco::PFRecHit > &rechits, std::vector< reco::PFRecHit > &rechitsCleaned, edm::Event &, const edm::EventSetup &)
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
Definition: PFRecHit.h:31
Base producer for particle flow rechits (PFRecHit)
void findRecHitNeighbours(reco::PFRecHit &rh, const std::map< unsigned, unsigned > &sortedHits, const CaloSubdetectorTopology &barrelTopo, const CaloSubdetectorGeometry &barrelGeom)
Producer for particle flow rechits (PFRecHit) in HO.
Layer
layer definition
Definition: PFLayer.h:31
Definition: DetId.h:20
edm::InputTag inputTagHORecHits_
DetId move(DetId cell, const CaloDirection &dir) const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
void findRecHitNeighboursHO(reco::PFRecHit &rh, const std::map< unsigned, unsigned > &sortedHits)
find rechit neighbours, using the hashed index
bool findHORecHitGeometry(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
dbl *** dir
Definition: mlp_gen.cc:35
CaloDirection
Codes the local directions in the cell lattice.
Definition: CaloDirection.h:9
bool stdmove(DetId &cell, const CaloDirection &dir, const CaloSubdetectorTopology &barrelTopo, const CaloSubdetectorGeometry &barrelGeom) const
PFRecHitProducerHO(const edm::ParameterSet &)
bool neighbourmapcalculated_
set to true in hoNeighbArray