CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
PFRecHitProducerHCAL.h
Go to the documentation of this file.
1 #ifndef RecoParticleFlow_PFClusterProducer_PFRecHitProducerHCAL_h_
2 #define RecoParticleFlow_PFClusterProducer_PFRecHitProducerHCAL_h_
3 
4 // system include files
5 #include <memory>
6 #include <vector>
7 
8 // user include files
11 
14 
16 
20 
30 class DetId;
31 
32 
34  public:
35  explicit PFRecHitProducerHCAL(const edm::ParameterSet&);
37 
38  private:
39 
40 
43  void createRecHits(std::vector<reco::PFRecHit>& rechits,
44  std::vector<reco::PFRecHit>& rechitsCleaned,
45  edm::Event&, const edm::EventSetup&);
46 
47 
48 
49 
51  double energy,
52  PFLayer::Layer layer,
54  unsigned newDetId=0);
55 
56 
57 
58 
61  void
63  const std::map<unsigned,unsigned >& sortedHits,
64  const CaloSubdetectorTopology& barrelTopo,
65  const CaloSubdetectorGeometry& barrelGeom,
66  const CaloSubdetectorTopology& endcapTopo,
67  const CaloSubdetectorGeometry& endcapGeom );
68 
72  void
74  const std::map<unsigned,unsigned >& sortedHits,
75  const CaloSubdetectorTopology& topology );
76 
77  DetId getNorth(const DetId& id, const CaloSubdetectorTopology& topology);
78  DetId getSouth(const DetId& id, const CaloSubdetectorTopology& topology);
79 
80 
81  // ----------member data ---------------------------
82 
83  // ----------access to event data
87 
89  double thresh_HF_;
90  // Navigation in HF: False = no real clustering in HF; True = do clustering
92  double weight_HFem_;
93  double weight_HFhad_;
94 
95  // Apply HCAL DPG rechit calibration
97  bool HF_Calib_;
99  float HF_Calib_29;
100 
101  // Don't allow large energy in short fibres if there is no energy in long fibres
102  double shortFibre_Cut;
104 
105  // Don't allow large energy in long fibres if there is no energy in short fibres
106  double longFibre_Cut;
108 
109  // Also apply HCAL DPG cleaning
111 
112  // Don't allow too large timing excursion if energy in long/short fibres is large enough
118 
125 
129 
130  // Compensate for dead ECAL channels
134  unsigned int ECAL_Dead_Code_;
135 
136  // Depth correction for EM and HAD rechits in the HF
137  double EM_Depth_;
138  double HAD_Depth_;
139 
140 };
141 
142 #endif
reco::PFRecHit * createHcalRecHit(const DetId &detid, double energy, PFLayer::Layer layer, const CaloSubdetectorGeometry *geom, unsigned newDetId=0)
edm::InputTag inputTagCaloTowers_
Particle flow rechit (rechit + geometry and topology information). See clustering algorithm in PFClus...
Definition: PFRecHit.h:31
Base producer for particle flow rechits (PFRecHit)
edm::InputTag inputTagHcalRecHitsHF_
DetId getSouth(const DetId &id, const CaloSubdetectorTopology &topology)
Producer for particle flow rechits (PFRecHit) in HCAL.
edm::InputTag inputTagHcalRecHitsHBHE_
void findRecHitNeighbours(reco::PFRecHit &rh, const std::map< unsigned, unsigned > &sortedHits, const CaloSubdetectorTopology &barrelTopo, const CaloSubdetectorGeometry &barrelGeom, const CaloSubdetectorTopology &endcapTopo, const CaloSubdetectorGeometry &endcapGeom)
void findRecHitNeighboursCT(reco::PFRecHit &rh, const std::map< unsigned, unsigned > &sortedHits, const CaloSubdetectorTopology &topology)
Layer
layer definition
Definition: PFLayer.h:31
Definition: DetId.h:20
void createRecHits(std::vector< reco::PFRecHit > &rechits, std::vector< reco::PFRecHit > &rechitsCleaned, edm::Event &, const edm::EventSetup &)
double thresh_HF_
threshold for HF
DetId getNorth(const DetId &id, const CaloSubdetectorTopology &topology)
PFRecHitProducerHCAL(const edm::ParameterSet &)