Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-10-16 05:06:33

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   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