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 
21 
31 class DetId;
32 
33 
35  public:
36  explicit PFRecHitProducerHCAL(const edm::ParameterSet&);
38 
39  private:
40 
41 
44  void createRecHits(std::vector<reco::PFRecHit>& rechits,
45  std::vector<reco::PFRecHit>& rechitsCleaned,
46  edm::Event&, const edm::EventSetup&);
47 
48 
49 
50 
52  double energy,
53  PFLayer::Layer layer,
55  unsigned newDetId=0);
56 
57 
58 
59 
62  void
64  const std::map<unsigned,unsigned >& sortedHits,
65  const CaloSubdetectorTopology& barrelTopo,
66  const CaloSubdetectorGeometry& barrelGeom,
67  const CaloSubdetectorTopology& endcapTopo,
68  const CaloSubdetectorGeometry& endcapGeom );
69 
73  void
75  const std::map<unsigned,unsigned >& sortedHits,
76  const CaloSubdetectorTopology& topology );
77 
78  DetId getNorth(const DetId& id, const CaloSubdetectorTopology& topology);
79  DetId getSouth(const DetId& id, const CaloSubdetectorTopology& topology);
80 
81 
82  // ----------member data ---------------------------
83 
84  // ----------access to event data
88 
90  double thresh_HF_;
91  // Navigation in HF: False = no real clustering in HF; True = do clustering
93  double weight_HFem_;
94  double weight_HFhad_;
95 
96  // Apply HCAL DPG rechit calibration
98  bool HF_Calib_;
100  float HF_Calib_29;
101 
102  // Don't allow large energy in short fibres if there is no energy in long fibres
103  double shortFibre_Cut;
105 
106  // Don't allow large energy in long fibres if there is no energy in short fibres
107  double longFibre_Cut;
109 
110  // Also apply HCAL DPG cleaning
112 
113  // Don't allow too large timing excursion if energy in long/short fibres is large enough
119 
126 
130 
131  // Compensate for dead ECAL channels
135  unsigned int ECAL_Dead_Code_;
136 
137  // Depth correction for EM and HAD rechits in the HF
138  double EM_Depth_;
139  double HAD_Depth_;
140 
144 };
145 
146 #endif
HcalTopologyMode::Mode m_mode
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 &)