File indexing completed on 2024-10-16 05:06:33
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 void run(const edm::Event& evt,
0028 const HGCUncalibratedRecHitCollection& uncalibRH,
0029 HGCRecHitCollection& result) override;
0030
0031 protected:
0032 enum detectortype { hgcee = 1, hgcfh = 2, hgcbh = 3, hgchfnose = 4 };
0033
0034 edm::ESGetToken<CaloGeometry, CaloGeometryRecord> caloGeomToken_;
0035 edm::ESGetToken<HGCalGeometry, IdealGeometryRecord> ee_geometry_token_;
0036 edm::ESGetToken<HGCalGeometry, IdealGeometryRecord> hef_geometry_token_;
0037 edm::ESGetToken<HGCalGeometry, IdealGeometryRecord> hfnose_geometry_token_;
0038
0039 double hgcEE_keV2DIGI_, hgceeUncalib2GeV_;
0040 std::vector<double> hgcEE_fCPerMIP_;
0041 std::vector<double> hgcEE_cce_;
0042 double hgcHEF_keV2DIGI_, hgchefUncalib2GeV_;
0043 std::vector<double> hgcHEF_fCPerMIP_;
0044 std::vector<double> hgcHEF_cce_;
0045 double hgcHEB_keV2DIGI_, hgchebUncalib2GeV_;
0046 double hgcHFNose_keV2DIGI_, hgchfnoseUncalib2GeV_;
0047 std::vector<double> hgcHFNose_fCPerMIP_;
0048 std::vector<double> hgcHFNose_cce_;
0049 bool hgcEE_isSiFE_, hgcHEF_isSiFE_, hgcHEB_isSiFE_, hgcHFNose_isSiFE_;
0050
0051 std::vector<double> hgcEE_noise_fC_;
0052 std::vector<double> hgcHEF_noise_fC_;
0053 std::vector<double> hgcHFNose_noise_fC_;
0054 double hgcHEB_noise_MIP_;
0055
0056 std::array<const HGCalDDDConstants*, 4> ddds_;
0057
0058 std::vector<int> v_chstatus_;
0059
0060 std::vector<int> v_DB_reco_flags_;
0061 bool killDeadChannels_;
0062
0063 uint32_t rangeMatch_;
0064 uint32_t rangeMask_;
0065
0066 std::vector<double> rcorr_, rcorrNose_;
0067 double rcorrscint_;
0068 int deltasi_index_regemfac_;
0069 std::vector<float> weights_, weightsNose_;
0070 std::unique_ptr<HGCalRecHitSimpleAlgo> rechitMaker_;
0071 std::unique_ptr<hgcal::RecHitTools> tools_;
0072
0073 hgcalsimclustertime::ComputeClusterTime timeEstimatorSi_;
0074 };
0075
0076 #endif