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 
39 
42 
44 
45 
46 // ReducedEGProducer inherits from EDProducer, so it can be a module:
48 
49  public:
50 
52  ~ReducedEGProducer() override;
53 
54  void produce(edm::Event& evt, const edm::EventSetup& es) final;
55 
56  private:
57 
58  template <typename T, typename U>
59  void linkCore(const T& core, U& cores, std::map<T, unsigned int>& coreMap);
60 
61  void linkSuperCluster(const reco::SuperClusterRef& superCluster,
62  std::map<reco::SuperClusterRef, unsigned int>& superClusterMap,
63  reco::SuperClusterCollection& superClusters,
64  const bool relink,
65  std::unordered_set<unsigned int>& superClusterFullRelinkMap);
66 
67  void linkConversions(const reco::ConversionRefVector& convrefs,
69  std::map<reco::ConversionRef, unsigned int>& conversionMap);
70 
72  const reco::GsfElectron& gsfElectron,
73  reco::ConversionCollection& conversions,
74  std::map<reco::ConversionRef, unsigned int>& conversionMap);
75 
77  const reco::SuperCluster& superCluster,
78  reco::ConversionCollection& conversions,
79  std::map<reco::ConversionRef, unsigned int>& conversionMap);
80 
81  void linkConversion(const reco::ConversionRef& convref,
82  reco::ConversionCollection& conversions,
83  std::map<reco::ConversionRef, unsigned int>& conversionMap);
84 
85  void linkCaloCluster(const reco::CaloClusterPtr& caloCluster,
86  reco::CaloClusterCollection& caloClusters,
87  std::map<reco::CaloClusterPtr, unsigned int>& caloClusterMap);
88 
89  void linkCaloClusters(const reco::SuperCluster& superCluster,
90  reco::CaloClusterCollection& ebeeClusters,
91  std::map<reco::CaloClusterPtr, unsigned int>& ebeeClusterMap,
92  std::unordered_set<DetId>& rechitMap,
93  const edm::Handle<EcalRecHitCollection>& barrelHitHandle,
94  const edm::Handle<EcalRecHitCollection>& endcapHitHandle,
95  const CaloTopology *caloTopology,
96  reco::CaloClusterCollection& esClusters,
97  std::map<reco::CaloClusterPtr, unsigned int>& esClusterMap);
98 
99  void relinkCaloClusters(reco::SuperCluster& superCluster,
100  const std::map<reco::CaloClusterPtr, unsigned int>& ebeeClusterMap,
101  const std::map<reco::CaloClusterPtr, unsigned int>& esClusterMap,
102  const edm::OrphanHandle<reco::CaloClusterCollection>& outEBEEClusterHandle,
103  const edm::OrphanHandle<reco::CaloClusterCollection>& outESClusterHandle);
104 
105  template <typename T>
106  void relinkSuperCluster(T& core,
107  const std::map<reco::SuperClusterRef, unsigned int>& superClusterMap,
108  const edm::OrphanHandle<reco::SuperClusterCollection>& outSuperClusterHandle);
109 
110  void relinkGsfTrack(reco::GsfElectronCore& electroncore,
111  const std::map<reco::GsfTrackRef, unsigned int>& gsfTrackMap,
112  const edm::OrphanHandle<reco::GsfTrackCollection>& outGsfTrackHandle);
113 
115  const reco::ConversionRefVector& convrefs,
116  const std::map<reco::ConversionRef, unsigned int>& conversionMap,
117  const edm::OrphanHandle<reco::ConversionCollection> &outConversionHandle);
118 
120  const std::map<reco::PhotonCoreRef, unsigned int>& photonCoreMap,
121  const edm::OrphanHandle<reco::PhotonCoreCollection>& outPhotonCoreHandle);
122 
123  void relinkGsfElectronCore(reco::GsfElectron& gsfElectron,
124  const std::map<reco::GsfElectronCoreRef, unsigned int>& gsfElectronCoreMap,
125  const edm::OrphanHandle<reco::GsfElectronCoreCollection>& outGsfElectronCoreHandle);
126 
127  static void calibratePhoton(reco::Photon& photon,
128  const reco::PhotonRef& oldPhoRef,
129  const edm::ValueMap<float>& energyMap,
130  const edm::ValueMap<float>& energyErrMap);
131 
132  static void calibrateElectron(reco::GsfElectron& gsfElectron,
133  const reco::GsfElectronRef& oldEleRef,
134  const edm::ValueMap<float>& energyMap,
135  const edm::ValueMap<float>& energyErrMap,
136  const edm::ValueMap<float>& ecalEnergyMap,
137  const edm::ValueMap<float>& ecalEnergyErrMap);
138 
139 
140  template <typename T>
142  token = consumes<T>(config.getParameter<edm::InputTag>(name));
143  }
144 
145 
146  //tokens for input collections
153 
158 
161 
162  std::vector<edm::EDGetTokenT<edm::ValueMap<bool> > > photonIdTs_;
163  std::vector<edm::EDGetTokenT<edm::ValueMap<float> > > gsfElectronIdTs_;
164 
165  std::vector<edm::EDGetTokenT<edm::ValueMap<float> > > photonFloatValueMapTs_;
166  std::vector<edm::EDGetTokenT<edm::ValueMap<float> > > ootPhotonFloatValueMapTs_;
167  std::vector<edm::EDGetTokenT<edm::ValueMap<float> > > gsfElectronFloatValueMapTs_;
168 
179 
180  //names for output collections
201  const std::vector<std::string> outPhotonIds_;
202  const std::vector<std::string> outGsfElectronIds_;
203  const std::vector<std::string> outPhotonFloatValueMaps_;
204  const std::vector<std::string> outOOTPhotonFloatValueMaps_;
205  const std::vector<std::string> outGsfElectronFloatValueMaps_;
206 
216 };
217 #endif
218 
219 
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_
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_
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 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)
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 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< reco::PhotonCollection > ootPhotonT_
const edm::EDGetTokenT< EcalRecHitCollection > barrelEcalHits_
const bool applyGsfElectronCalibOnMC_
ReducedEGProducer(const edm::ParameterSet &ps)
const edm::EDGetTokenT< reco::ConversionCollection > conversionT_