File indexing completed on 2024-04-06 12:25:55
0001 #ifndef RecoLocalCalo_HGCalRecProducers_HGCalRecHitWorkerSimple_hh
0002 #define RecoLocalCalo_HGCalRecProducers_HGCalRecHitWorkerSimple_hh
0003
0004
0005
0006
0007
0008
0009
0010 #include "RecoLocalCalo/HGCalRecProducers/interface/HGCalRecHitWorkerBaseClass.h"
0011 #include "RecoLocalCalo/HGCalRecAlgos/interface/HGCalRecHitSimpleAlgo.h"
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013
0014 #include "FWCore/Framework/interface/ESHandle.h"
0015 #include "FWCore/Framework/interface/ConsumesCollector.h"
0016
0017 #include "Geometry/HGCalGeometry/interface/HGCalGeometry.h"
0018 #include "RecoLocalCalo/HGCalRecAlgos/interface/RecHitTools.h"
0019 #include "RecoLocalCalo/HGCalRecProducers/interface/ComputeClusterTime.h"
0020
0021 class HGCalRecHitWorkerSimple : public HGCalRecHitWorkerBaseClass {
0022 public:
0023 HGCalRecHitWorkerSimple(const edm::ParameterSet&, edm::ConsumesCollector iC);
0024 ~HGCalRecHitWorkerSimple() override;
0025
0026 void set(const edm::EventSetup& es) override;
0027 bool run(const edm::Event& evt, const HGCUncalibratedRecHit& uncalibRH, HGCRecHitCollection& result) override;
0028
0029 protected:
0030 enum detectortype { hgcee = 1, hgcfh = 2, hgcbh = 3, hgchfnose = 4 };
0031
0032 edm::ESGetToken<CaloGeometry, CaloGeometryRecord> caloGeomToken_;
0033 edm::ESGetToken<HGCalGeometry, IdealGeometryRecord> ee_geometry_token_;
0034 edm::ESGetToken<HGCalGeometry, IdealGeometryRecord> hef_geometry_token_;
0035 edm::ESGetToken<HGCalGeometry, IdealGeometryRecord> hfnose_geometry_token_;
0036
0037 double hgcEE_keV2DIGI_, hgceeUncalib2GeV_;
0038 std::vector<double> hgcEE_fCPerMIP_;
0039 std::vector<double> hgcEE_cce_;
0040 double hgcHEF_keV2DIGI_, hgchefUncalib2GeV_;
0041 std::vector<double> hgcHEF_fCPerMIP_;
0042 std::vector<double> hgcHEF_cce_;
0043 double hgcHEB_keV2DIGI_, hgchebUncalib2GeV_;
0044 double hgcHFNose_keV2DIGI_, hgchfnoseUncalib2GeV_;
0045 std::vector<double> hgcHFNose_fCPerMIP_;
0046 std::vector<double> hgcHFNose_cce_;
0047 bool hgcEE_isSiFE_, hgcHEF_isSiFE_, hgcHEB_isSiFE_, hgcHFNose_isSiFE_;
0048
0049 std::vector<double> hgcEE_noise_fC_;
0050 std::vector<double> hgcHEF_noise_fC_;
0051 std::vector<double> hgcHFNose_noise_fC_;
0052 double hgcHEB_noise_MIP_;
0053
0054 std::array<const HGCalDDDConstants*, 4> ddds_;
0055
0056 std::vector<int> v_chstatus_;
0057
0058 std::vector<int> v_DB_reco_flags_;
0059 bool killDeadChannels_;
0060
0061 uint32_t rangeMatch_;
0062 uint32_t rangeMask_;
0063
0064 std::vector<double> rcorr_, rcorrNose_;
0065 double rcorrscint_;
0066 int deltasi_index_regemfac_;
0067 std::vector<float> weights_, weightsNose_;
0068 std::unique_ptr<HGCalRecHitSimpleAlgo> rechitMaker_;
0069 std::unique_ptr<hgcal::RecHitTools> tools_;
0070
0071 hgcalsimclustertime::ComputeClusterTime timeEstimatorSi_;
0072 };
0073
0074 #endif