CMS 3D CMS Logo

ReducedEGProducer.h
Go to the documentation of this file.
1 #ifndef RecoEgamma_EgammaPhotonProducers_ReducedEGProducer_h
2 #define RecoEgamma_EgammaPhotonProducers_ReducedEGProducer_h
3 
40 
42 
43 // ReducedEGProducer inherits from EDProducer, so it can be a module:
45 public:
47  ~ReducedEGProducer() override;
48 
49  void beginRun(edm::Run const&, const edm::EventSetup&) final;
50  void produce(edm::Event& evt, const edm::EventSetup& es) final;
51 
52 private:
53  template <typename T, typename U>
54  void linkCore(const T& core, U& cores, std::map<T, unsigned int>& coreMap);
55 
56  void linkSuperCluster(const reco::SuperClusterRef& superCluster,
57  std::map<reco::SuperClusterRef, unsigned int>& superClusterMap,
59  const bool relink,
60  std::unordered_set<unsigned int>& superClusterFullRelinkMap);
61 
62  void linkConversions(const reco::ConversionRefVector& convrefs,
64  std::map<reco::ConversionRef, unsigned int>& conversionMap);
65 
67  const reco::GsfElectron& gsfElectron,
68  reco::ConversionCollection& conversions,
69  std::map<reco::ConversionRef, unsigned int>& conversionMap);
70 
72  const reco::SuperCluster& superCluster,
73  reco::ConversionCollection& conversions,
74  std::map<reco::ConversionRef, unsigned int>& conversionMap);
75 
76  void linkConversion(const reco::ConversionRef& convref,
77  reco::ConversionCollection& conversions,
78  std::map<reco::ConversionRef, unsigned int>& conversionMap);
79 
80  void linkCaloCluster(const reco::CaloClusterPtr& caloCluster,
81  reco::CaloClusterCollection& caloClusters,
82  std::map<reco::CaloClusterPtr, unsigned int>& caloClusterMap);
83 
84  void linkCaloClusters(const reco::SuperCluster& superCluster,
85  reco::CaloClusterCollection& ebeeClusters,
86  std::map<reco::CaloClusterPtr, unsigned int>& ebeeClusterMap,
87  std::unordered_set<DetId>& rechitMap,
88  const edm::Handle<EcalRecHitCollection>& barrelHitHandle,
89  const edm::Handle<EcalRecHitCollection>& endcapHitHandle,
90  const CaloTopology* caloTopology,
91  reco::CaloClusterCollection& esClusters,
92  std::map<reco::CaloClusterPtr, unsigned int>& esClusterMap);
93 
94  void linkHcalHits(const reco::SuperCluster& superClus,
96  std::unordered_set<DetId>& hcalDetIds);
97 
98  void relinkCaloClusters(reco::SuperCluster& superCluster,
99  const std::map<reco::CaloClusterPtr, unsigned int>& ebeeClusterMap,
100  const std::map<reco::CaloClusterPtr, unsigned int>& esClusterMap,
101  const edm::OrphanHandle<reco::CaloClusterCollection>& outEBEEClusterHandle,
102  const edm::OrphanHandle<reco::CaloClusterCollection>& outESClusterHandle);
103 
104  template <typename T>
105  void relinkSuperCluster(T& core,
106  const std::map<reco::SuperClusterRef, unsigned int>& superClusterMap,
107  const edm::OrphanHandle<reco::SuperClusterCollection>& outSuperClusterHandle);
108 
109  void relinkGsfTrack(reco::GsfElectronCore& electroncore,
110  const std::map<reco::GsfTrackRef, unsigned int>& gsfTrackMap,
111  const edm::OrphanHandle<reco::GsfTrackCollection>& outGsfTrackHandle);
112 
114  const reco::ConversionRefVector& convrefs,
115  const std::map<reco::ConversionRef, unsigned int>& conversionMap,
116  const edm::OrphanHandle<reco::ConversionCollection>& outConversionHandle);
117 
119  const std::map<reco::PhotonCoreRef, unsigned int>& photonCoreMap,
120  const edm::OrphanHandle<reco::PhotonCoreCollection>& outPhotonCoreHandle);
121 
122  void relinkGsfElectronCore(reco::GsfElectron& gsfElectron,
123  const std::map<reco::GsfElectronCoreRef, unsigned int>& gsfElectronCoreMap,
124  const edm::OrphanHandle<reco::GsfElectronCoreCollection>& outGsfElectronCoreHandle);
125 
126  static void calibratePhoton(reco::Photon& photon,
127  const reco::PhotonRef& oldPhoRef,
128  const edm::ValueMap<float>& energyMap,
129  const edm::ValueMap<float>& energyErrMap);
130 
131  static void calibrateElectron(reco::GsfElectron& gsfElectron,
132  const reco::GsfElectronRef& oldEleRef,
133  const edm::ValueMap<float>& energyMap,
134  const edm::ValueMap<float>& energyErrMap,
135  const edm::ValueMap<float>& ecalEnergyMap,
136  const edm::ValueMap<float>& ecalEnergyErrMap);
137 
138  template <typename T>
140  token = consumes<T>(config.getParameter<edm::InputTag>(name));
141  }
142 
143  //tokens for input collections
150 
156 
159 
160  std::vector<edm::EDGetTokenT<edm::ValueMap<bool> > > photonIdTs_;
161  std::vector<edm::EDGetTokenT<edm::ValueMap<float> > > gsfElectronIdTs_;
162 
163  std::vector<edm::EDGetTokenT<edm::ValueMap<float> > > photonFloatValueMapTs_;
164  std::vector<edm::EDGetTokenT<edm::ValueMap<float> > > ootPhotonFloatValueMapTs_;
165  std::vector<edm::EDGetTokenT<edm::ValueMap<float> > > gsfElectronFloatValueMapTs_;
166 
177 
178  //names for output collections
200  const std::vector<std::string> outPhotonIds_;
201  const std::vector<std::string> outGsfElectronIds_;
202  const std::vector<std::string> outPhotonFloatValueMaps_;
203  const std::vector<std::string> outOOTPhotonFloatValueMaps_;
204  const std::vector<std::string> outGsfElectronFloatValueMaps_;
205 
215 
217 };
218 #endif
const bool doPreshowerEcalHits_
void linkCaloClusters(const reco::SuperCluster &superCluster, reco::CaloClusterCollection &ebeeClusters, std::map< reco::CaloClusterPtr, unsigned int > &ebeeClusterMap, std::unordered_set< DetId > &rechitMap, const edm::Handle< EcalRecHitCollection > &barrelHitHandle, const edm::Handle< EcalRecHitCollection > &endcapHitHandle, const CaloTopology *caloTopology, reco::CaloClusterCollection &esClusters, std::map< reco::CaloClusterPtr, unsigned int > &esClusterMap)
void relinkGsfTrack(reco::GsfElectronCore &electroncore, const std::map< reco::GsfTrackRef, unsigned int > &gsfTrackMap, const edm::OrphanHandle< reco::GsfTrackCollection > &outGsfTrackHandle)
T getParameter(std::string const &) const
const StringCutObjectSelector< reco::Photon > relinkOOTPhotonSel_
const edm::EDGetTokenT< reco::GsfElectronCollection > gsfElectronT_
const bool applyPhotonCalibOnData_
const edm::EDGetTokenT< reco::GsfTrackCollection > gsfTrackT_
edm::EDGetTokenT< edm::ValueMap< float > > gsfElectronCalibEnergyT_
const StringCutObjectSelector< reco::Photon > slimRelinkPhotonSel_
const edm::EDGetTokenT< reco::ConversionCollection > singleConversionT_
const std::vector< std::string > outPhotonIds_
~ReducedEGProducer() override
const std::vector< std::string > outOOTPhotonFloatValueMaps_
EGHcalRecHitSelector hcalHitSel_
static void calibratePhoton(reco::Photon &photon, const reco::PhotonRef &oldPhoRef, const edm::ValueMap< float > &energyMap, const edm::ValueMap< float > &energyErrMap)
edm::EDGetTokenT< edm::ValueMap< float > > photonCalibEnergyT_
const std::vector< std::string > outPhotonFloatValueMaps_
Definition: __init__.py:1
const std::string outGsfTracks_
void setToken(edm::EDGetTokenT< T > &token, const edm::ParameterSet &config, const std::string &name)
const StringCutObjectSelector< reco::GsfElectron > keepGsfElectronSel_
const std::string outOOTPhotons_
void linkHcalHits(const reco::SuperCluster &superClus, const HBHERecHitCollection &recHits, std::unordered_set< DetId > &hcalDetIds)
void beginRun(edm::Run const &, const edm::EventSetup &) final
Definition: config.py:1
const std::string outEBEEClusters_
const StringCutObjectSelector< reco::Photon > keepPhotonSel_
const edm::EDGetTokenT< edm::ValueMap< std::vector< reco::PFCandidateRef > > > photonPfCandMapT_
const bool applyGsfElectronCalibOnData_
edm::EDGetTokenT< edm::ValueMap< float > > photonCalibEnergyErrT_
const std::string outHBHERecHits_
const StringCutObjectSelector< reco::GsfElectron > relinkGsfElectronSel_
void linkConversion(const reco::ConversionRef &convref, reco::ConversionCollection &conversions, std::map< reco::ConversionRef, unsigned int > &conversionMap)
std::vector< Conversion > ConversionCollection
collectin of Conversion objects
Definition: ConversionFwd.h:9
const edm::EDGetTokenT< edm::ValueMap< std::vector< reco::PFCandidateRef > > > gsfElectronPfCandMapT_
const std::string outEBRecHits_
const std::string outESRecHits_
void relinkConversions(reco::PhotonCore &photonCore, const reco::ConversionRefVector &convrefs, const std::map< reco::ConversionRef, unsigned int > &conversionMap, const edm::OrphanHandle< reco::ConversionCollection > &outConversionHandle)
const edm::EDGetTokenT< EcalRecHitCollection > preshowerEcalHits_
void linkConversions(const reco::ConversionRefVector &convrefs, reco::ConversionCollection &conversions, std::map< reco::ConversionRef, unsigned int > &conversionMap)
const std::vector< std::string > outGsfElectronIds_
const std::string outSingleConversions_
const std::string outESClusters_
const std::string outOOTSuperClusters_
std::vector< SuperCluster > SuperClusterCollection
collection of SuperCluser objectr
const StringCutObjectSelector< reco::Photon > keepOOTPhotonSel_
const std::string outOOTESClusters_
static void calibrateElectron(reco::GsfElectron &gsfElectron, const reco::GsfElectronRef &oldEleRef, const edm::ValueMap< float > &energyMap, const edm::ValueMap< float > &energyErrMap, const edm::ValueMap< float > &ecalEnergyMap, const edm::ValueMap< float > &ecalEnergyErrMap)
void relinkGsfElectronCore(reco::GsfElectron &gsfElectron, const std::map< reco::GsfElectronCoreRef, unsigned int > &gsfElectronCoreMap, const edm::OrphanHandle< reco::GsfElectronCoreCollection > &outGsfElectronCoreHandle)
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > gsfElectronFloatValueMapTs_
void linkConversionsByTrackRef(const edm::Handle< reco::ConversionCollection > &conversionHandle, const reco::GsfElectron &gsfElectron, reco::ConversionCollection &conversions, std::map< reco::ConversionRef, unsigned int > &conversionMap)
edm::EDGetTokenT< reco::PhotonCollection > ootPhotonT_
const std::string outOOTEBEEClusters_
std::vector< CaloCluster > CaloClusterCollection
collection of CaloCluster objects
void linkSuperCluster(const reco::SuperClusterRef &superCluster, std::map< reco::SuperClusterRef, unsigned int > &superClusterMap, reco::SuperClusterCollection &superClusters, const bool relink, std::unordered_set< unsigned int > &superClusterFullRelinkMap)
void linkCore(const T &core, U &cores, std::map< T, unsigned int > &coreMap)
const StringCutObjectSelector< reco::Photon > relinkPhotonSel_
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > gsfElectronIdTs_
edm::EDGetTokenT< edm::ValueMap< float > > gsfElectronCalibEnergyErrT_
const edm::EDGetTokenT< HBHERecHitCollection > hbheHits_
const bool applyPhotonCalibOnMC_
void relinkCaloClusters(reco::SuperCluster &superCluster, const std::map< reco::CaloClusterPtr, unsigned int > &ebeeClusterMap, const std::map< reco::CaloClusterPtr, unsigned int > &esClusterMap, const edm::OrphanHandle< reco::CaloClusterCollection > &outEBEEClusterHandle, const edm::OrphanHandle< reco::CaloClusterCollection > &outESClusterHandle)
const std::string outPhotons_
const std::string outGsfElectronPfCandMap_
void relinkSuperCluster(T &core, const std::map< reco::SuperClusterRef, unsigned int > &superClusterMap, const edm::OrphanHandle< reco::SuperClusterCollection > &outSuperClusterHandle)
const std::string outGsfElectronCores_
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > photonFloatValueMapTs_
const edm::EDGetTokenT< reco::PhotonCollection > photonT_
void relinkPhotonCore(reco::Photon &photon, const std::map< reco::PhotonCoreRef, unsigned int > &photonCoreMap, const edm::OrphanHandle< reco::PhotonCoreCollection > &outPhotonCoreHandle)
const std::string outSuperClusters_
const std::string outConversions_
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > ootPhotonFloatValueMapTs_
const std::string outGsfElectrons_
const StringCutObjectSelector< reco::GsfElectron > slimRelinkGsfElectronSel_
const std::string outPhotonCores_
edm::EDGetTokenT< edm::ValueMap< float > > gsfElectronCalibEcalEnergyErrT_
void linkCaloCluster(const reco::CaloClusterPtr &caloCluster, reco::CaloClusterCollection &caloClusters, std::map< reco::CaloClusterPtr, unsigned int > &caloClusterMap)
const std::string outEERecHits_
const StringCutObjectSelector< reco::Photon > slimRelinkOOTPhotonSel_
void produce(edm::Event &evt, const edm::EventSetup &es) final
const std::vector< std::string > outGsfElectronFloatValueMaps_
const std::string outPhotonPfCandMap_
const edm::EDGetTokenT< EcalRecHitCollection > endcapEcalHits_
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > photonIdTs_
const std::string outOOTPhotonCores_
long double T
edm::EDGetTokenT< edm::ValueMap< float > > gsfElectronCalibEcalEnergyT_
const edm::EDGetTokenT< EcalRecHitCollection > barrelEcalHits_
const bool applyGsfElectronCalibOnMC_
Definition: Run.h:45
ReducedEGProducer(const edm::ParameterSet &ps)
const edm::EDGetTokenT< reco::ConversionCollection > conversionT_