File indexing completed on 2024-04-06 12:18:22
0001 #ifndef HLTScoutingEgammaProducer_h
0002 #define HLTScoutingEgammaProducer_h
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #include <memory>
0022
0023
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
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