Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef RecoHI_HiEgammaAlgos_HiEgammaSCCorrectionMaker_h
0002 #define RecoHI_HiEgammaAlgos_HiEgammaSCCorrectionMaker_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:    HiEgammaSCCorrectionMaker
0007 // Class:      HiEgammaSCCorrectionMaker
0008 //
0009 /**\class HiEgammaSCCorrectionMaker HiEgammaSCCorrectionMaker.cc HiEgammaSCCorrectionMaker/HiEgammaSCCorrectionMaker/src/HiEgammaSCCorrectionMaker.cc
0010 
0011  Description: Producer of corrected SuperClusters
0012 
0013 */
0014 //
0015 // Original Author:  Dave Evans
0016 //         Created:  Thu Apr 13 15:50:17 CEST 2006
0017 //
0018 //
0019 
0020 #include <memory>
0021 #include <string>
0022 
0023 #include "FWCore/Framework/interface/stream/EDProducer.h"
0024 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0025 #include "FWCore/Framework/interface/Event.h"
0026 #include "FWCore/Framework/interface/EventSetup.h"
0027 #include "DataFormats/EgammaReco/interface/BasicCluster.h"
0028 #include "DataFormats/CaloRecHit/interface/CaloCluster.h"
0029 #include "DataFormats/EcalRecHit/interface/EcalRecHitCollections.h"
0030 #include "DataFormats/EgammaReco/interface/SuperClusterFwd.h"
0031 
0032 #include "RecoHI/HiEgammaAlgos/interface/HiEgammaSCEnergyCorrectionAlgo.h"
0033 #include "Geometry/CaloTopology/interface/CaloTopology.h"
0034 #include "Geometry/Records/interface/CaloTopologyRecord.h"
0035 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h"
0036 
0037 class HiEgammaSCCorrectionMaker : public edm::stream::EDProducer<> {
0038 public:
0039   explicit HiEgammaSCCorrectionMaker(const edm::ParameterSet&);
0040   ~HiEgammaSCCorrectionMaker() override;
0041   void produce(edm::Event&, const edm::EventSetup&) override;
0042 
0043 private:
0044   // the debug level
0045   HiEgammaSCEnergyCorrectionAlgo::VerbosityLevel verbosity_;
0046 
0047   // pointer to the correction algo object
0048   std::unique_ptr<HiEgammaSCEnergyCorrectionAlgo> energyCorrector_;
0049 
0050   // vars for the correction algo
0051   bool applyEnergyCorrection_;
0052   //     bool oldEnergyScaleCorrection_;
0053   double sigmaElectronicNoise_;
0054   double etThresh_;
0055 
0056   // vars to get products
0057   edm::InputTag rHInputProducerTag_;
0058   edm::InputTag sCInputProducerTag_;
0059   edm::EDGetTokenT<EcalRecHitCollection> rHInputProducer_;
0060   edm::EDGetTokenT<reco::SuperClusterCollection> sCInputProducer_;
0061   edm::ESGetToken<CaloGeometry, CaloGeometryRecord> geoToken_;
0062   edm::ESGetToken<CaloTopology, CaloTopologyRecord> topologyToken_;
0063 
0064   reco::CaloCluster::AlgoId sCAlgo_;
0065   std::string outputCollection_;
0066 };
0067 #endif