Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:18:22

0001 #ifndef HLTScoutingEgammaProducer_h
0002 #define HLTScoutingEgammaProducer_h
0003 
0004 // -*- C++ -*-
0005 //
0006 // Package:    HLTrigger/Egamma
0007 // Class:      HLTScoutingEgammaProducer
0008 //
0009 /**\class HLTScoutingEgammaProducer HLTScoutingEgammaProducer.h HLTScoutingEgammaProducer.h
0010 
0011 Description: Producer for ScoutingElectron and ScoutingPhoton
0012 
0013 */
0014 //
0015 // Original Author:  David G. Sheffield (Rutgers)
0016 //         Created:  Mon, 20 Jul 2015
0017 //
0018 //
0019 
0020 // system include files
0021 #include <memory>
0022 
0023 // user include files
0024 #include "FWCore/Framework/interface/Frameworkfwd.h"
0025 #include "FWCore/Framework/interface/global/EDProducer.h"
0026 #include "FWCore/Framework/interface/Event.h"
0027 #include "FWCore/Framework/interface/MakerMacros.h"
0028 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0029 
0030 #include "DataFormats/Common/interface/AssociationMap.h"
0031 #include "DataFormats/Common/interface/getRef.h"
0032 #include "DataFormats/EgammaReco/interface/ElectronSeed.h"
0033 #include "DataFormats/EgammaReco/interface/ElectronSeedFwd.h"
0034 #include "DataFormats/EgammaReco/interface/SuperCluster.h"
0035 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
0036 #include "DataFormats/GsfTrackReco/interface/GsfTrackFwd.h"
0037 #include "DataFormats/RecoCandidate/interface/RecoEcalCandidateFwd.h"
0038 #include "DataFormats/RecoCandidate/interface/RecoEcalCandidate.h"
0039 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
0040 
0041 #include "DataFormats/Scouting/interface/Run3ScoutingElectron.h"
0042 #include "DataFormats/Scouting/interface/Run3ScoutingPhoton.h"
0043 
0044 #include "RecoLocalCalo/EcalRecAlgos/interface/EcalSeverityLevelAlgo.h"
0045 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterLazyTools.h"
0046 #include "RecoEcal/EgammaCoreTools/interface/EcalClusterTools.h"
0047 #include "DataFormats/DetId/interface/DetId.h"
0048 #include "Geometry/CaloTopology/interface/CaloTopology.h"
0049 #include "Geometry/Records/interface/CaloTopologyRecord.h"
0050 #include "RecoEcal/EgammaCoreTools/interface/EcalTools.h"
0051 #include "DataFormats/EcalDetId/interface/EBDetId.h"
0052 #include "DataFormats/Math/interface/libminifloat.h"
0053 
0054 class HLTScoutingEgammaProducer : public edm::global::EDProducer<> {
0055   typedef edm::AssociationMap<edm::OneToValue<std::vector<reco::RecoEcalCandidate>, float, unsigned int> >
0056       RecoEcalCandMap;
0057 
0058 public:
0059   explicit HLTScoutingEgammaProducer(const edm::ParameterSet&);
0060   ~HLTScoutingEgammaProducer() override;
0061 
0062   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0063 
0064 private:
0065   void produce(edm::StreamID sid, edm::Event& iEvent, edm::EventSetup const& setup) const final;
0066 
0067   const edm::EDGetTokenT<reco::RecoEcalCandidateCollection> EgammaCandidateCollection_;
0068   const edm::EDGetTokenT<reco::GsfTrackCollection> EgammaGsfTrackCollection_;
0069   const edm::EDGetTokenT<RecoEcalCandMap> SigmaIEtaIEtaMap_;
0070   const edm::EDGetTokenT<RecoEcalCandMap> R9Map_;
0071   const edm::EDGetTokenT<RecoEcalCandMap> HoverEMap_;
0072   const edm::EDGetTokenT<RecoEcalCandMap> DetaMap_;
0073   const edm::EDGetTokenT<RecoEcalCandMap> DphiMap_;
0074   const edm::EDGetTokenT<RecoEcalCandMap> MissingHitsMap_;
0075   const edm::EDGetTokenT<RecoEcalCandMap> OneOEMinusOneOPMap_;
0076   const edm::EDGetTokenT<RecoEcalCandMap> fBremMap_;
0077   const edm::EDGetTokenT<RecoEcalCandMap> EcalPFClusterIsoMap_;
0078   const edm::EDGetTokenT<RecoEcalCandMap> EleGsfTrackIsoMap_;
0079   const edm::EDGetTokenT<RecoEcalCandMap> HcalPFClusterIsoMap_;
0080 
0081   //const EcalClusterLazyTools::ESGetTokens ecalClusterToolsESGetTokens_;
0082 
0083   const double egammaPtCut;
0084   const double egammaEtaCut;
0085   const double egammaHoverECut;
0086   const std::vector<double> egammaSigmaIEtaIEtaCut;
0087   const std::vector<double> absEtaBinUpperEdges;
0088   const int mantissaPrecision;
0089   const bool saveRecHitTiming;
0090   const int rechitMatrixSize;
0091   const bool rechitZeroSuppression;
0092 
0093   const edm::EDGetTokenT<EcalRecHitCollection> ecalRechitEB_;
0094   const edm::EDGetTokenT<EcalRecHitCollection> ecalRechitEE_;
0095   edm::ESGetToken<CaloTopology, CaloTopologyRecord> topologyToken_;
0096 };
0097 
0098 #endif