Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:55

0001 #ifndef RecoLocalCalo_HGCalRecProducers_HGCalRecHitWorkerSimple_hh
0002 #define RecoLocalCalo_HGCalRecProducers_HGCalRecHitWorkerSimple_hh
0003 
0004 /** \class HGCalRecHitSimpleAlgo
0005   *  Simple algoritm to make HGCAL rechits from HGCAL uncalibrated rechits
0006   *
0007   *  \author Valeri Andreev
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