CMS 3D CMS Logo

EGFull5x5ShowerShapeModifier.cc
Go to the documentation of this file.
2 
6 
9 
10 namespace {
11  const edm::EDGetTokenT<edm::ValueMap<float>> empty_token;
12  const edm::InputTag empty_tag("");
13  template <typename T, typename U, typename V>
14  inline void make_consumes(const T& tag, edm::EDGetTokenT<U>& tok, V& sume) {
15  if (!(empty_tag == tag))
16  tok = sume.template consumes<U>(tag);
17  }
18 } // namespace
19 
20 #include <unordered_map>
21 
23 public:
24  struct electron_config {
37  };
38 
39  struct photon_config {
52  };
53 
55 
56  void setEvent(const edm::Event&) final;
57  void setEventContent(const edm::EventSetup&) final;
58 
59  void modifyObject(pat::Electron&) const final;
60  void modifyObject(pat::Photon&) const final;
61 
62 private:
65  std::vector<edm::Ptr<reco::GsfElectron>> eles_by_oop; // indexed by original object ptr
66  std::unordered_map<unsigned, edm::Handle<edm::ValueMap<float>>> ele_vmaps;
67  std::vector<edm::Ptr<reco::Photon>> phos_by_oop;
68  std::unordered_map<unsigned, edm::Handle<edm::ValueMap<float>>> pho_vmaps;
69  mutable unsigned ele_idx,
70  pho_idx; // hack here until we figure out why some slimmedPhotons don't have original object ptrs
71 };
72 
75  "EGFull5x5ShowerShapeModifierFromValueMaps");
76 
79  : ModifyObjectValueBase(conf) {
80  if (conf.exists("electron_config")) {
81  const edm::ParameterSet& electrons = conf.getParameter<edm::ParameterSet>("electron_config");
82  if (electrons.exists("electronSrc"))
83  make_consumes(electrons.getParameter<edm::InputTag>("electronSrc"), e_conf.tok_electron_src, cc);
84  if (electrons.exists("sigmaEtaEta"))
85  make_consumes(electrons.getParameter<edm::InputTag>("sigmaEtaEta"), e_conf.tok_sigmaEtaEta, cc);
86  if (electrons.exists("sigmaIetaIeta"))
87  make_consumes(electrons.getParameter<edm::InputTag>("sigmaIetaIeta"), e_conf.tok_sigmaIetaIeta, cc);
88  if (electrons.exists("sigmaIphiIphi"))
89  make_consumes(electrons.getParameter<edm::InputTag>("sigmaIphiIphi"), e_conf.tok_sigmaIphiIphi, cc);
90  if (electrons.exists("e1x5"))
91  make_consumes(electrons.getParameter<edm::InputTag>("e1x5"), e_conf.tok_e1x5, cc);
92  if (electrons.exists("e2x5Max"))
93  make_consumes(electrons.getParameter<edm::InputTag>("e2x5Max"), e_conf.tok_e2x5Max, cc);
94  if (electrons.exists("e5x5"))
95  make_consumes(electrons.getParameter<edm::InputTag>("e5x5"), e_conf.tok_e5x5, cc);
96  if (electrons.exists("r9"))
97  make_consumes(electrons.getParameter<edm::InputTag>("r9"), e_conf.tok_r9, cc);
98  if (electrons.exists("hcalDepth1OverEcal"))
99  make_consumes(electrons.getParameter<edm::InputTag>("hcalDepth1OverEcal"), e_conf.tok_hcalDepth1OverEcal, cc);
100  if (electrons.exists("hcalDepth2OverEcal"))
101  make_consumes(electrons.getParameter<edm::InputTag>("hcalDepth2OverEcal"), e_conf.tok_hcalDepth2OverEcal, cc);
102  if (electrons.exists("hcalDepth1OverEcalBc"))
103  make_consumes(electrons.getParameter<edm::InputTag>("hcalDepth1OverEcalBc"), e_conf.tok_hcalDepth1OverEcalBc, cc);
104  if (electrons.exists("hcalDepth2OverEcalBc"))
105  make_consumes(electrons.getParameter<edm::InputTag>("hcalDepth2OverEcalBc"), e_conf.tok_hcalDepth2OverEcalBc, cc);
106  }
107  if (conf.exists("photon_config")) {
108  const edm::ParameterSet& photons = conf.getParameter<edm::ParameterSet>("photon_config");
109  if (photons.exists("photonSrc"))
110  make_consumes(photons.getParameter<edm::InputTag>("photonSrc"), ph_conf.tok_photon_src, cc);
111  if (photons.exists("sigmaEtaEta"))
112  make_consumes(photons.getParameter<edm::InputTag>("sigmaEtaEta"), ph_conf.tok_sigmaEtaEta, cc);
113  if (photons.exists("sigmaIetaIeta"))
114  make_consumes(photons.getParameter<edm::InputTag>("sigmaIetaIeta"), ph_conf.tok_sigmaIetaIeta, cc);
115  if (photons.exists("e1x5"))
116  make_consumes(photons.getParameter<edm::InputTag>("e1x5"), ph_conf.tok_e1x5, cc);
117  if (photons.exists("e2x5"))
118  make_consumes(photons.getParameter<edm::InputTag>("e2x5"), ph_conf.tok_e2x5, cc);
119  if (photons.exists("e3x3"))
120  make_consumes(photons.getParameter<edm::InputTag>("e3x3"), ph_conf.tok_e3x3, cc);
121  if (photons.exists("e5x5"))
122  make_consumes(photons.getParameter<edm::InputTag>("e5x5"), ph_conf.tok_e5x5, cc);
123  if (photons.exists("maxEnergyXtal"))
124  make_consumes(photons.getParameter<edm::InputTag>("maxEnergyXtal"), ph_conf.tok_maxEnergyXtal, cc);
125  if (photons.exists("hcalDepth1OverEcal"))
126  make_consumes(photons.getParameter<edm::InputTag>("hcalDepth1OverEcal"), ph_conf.tok_hcalDepth1OverEcal, cc);
127  if (photons.exists("hcalDepth2OverEcal"))
128  make_consumes(photons.getParameter<edm::InputTag>("hcalDepth2OverEcal"), ph_conf.tok_hcalDepth2OverEcal, cc);
129  if (photons.exists("hcalDepth1OverEcalBc"))
130  make_consumes(photons.getParameter<edm::InputTag>("hcalDepth1OverEcalBc"), ph_conf.tok_hcalDepth1OverEcalBc, cc);
131  if (photons.exists("hcalDepth2OverEcalBc"))
132  make_consumes(photons.getParameter<edm::InputTag>("hcalDepth2OverEcalBc"), ph_conf.tok_hcalDepth2OverEcalBc, cc);
133  }
134 
135  ele_idx = pho_idx = 0;
136 }
137 
138 namespace {
139  inline void get_product(const edm::Event& evt,
141  std::unordered_map<unsigned, edm::Handle<edm::ValueMap<float>>>& map) {
142  if (!tok.isUninitialized())
143  evt.getByToken(tok, map[tok.index()]);
144  }
145 } // namespace
146 
148  eles_by_oop.clear();
149  phos_by_oop.clear();
150  ele_vmaps.clear();
151  pho_vmaps.clear();
152 
153  ele_idx = pho_idx = 0;
154 
158 
159  eles_by_oop.resize(eles->size());
160  std::copy(eles->ptrs().begin(), eles->ptrs().end(), eles_by_oop.begin());
161  }
162 
163  get_product(evt, e_conf.tok_sigmaEtaEta, ele_vmaps);
164  get_product(evt, e_conf.tok_sigmaIetaIeta, ele_vmaps);
165  get_product(evt, e_conf.tok_sigmaIphiIphi, ele_vmaps);
166  get_product(evt, e_conf.tok_e1x5, ele_vmaps);
167  get_product(evt, e_conf.tok_e2x5Max, ele_vmaps);
168  get_product(evt, e_conf.tok_e5x5, ele_vmaps);
169  get_product(evt, e_conf.tok_r9, ele_vmaps);
170  get_product(evt, e_conf.tok_hcalDepth1OverEcal, ele_vmaps);
171  get_product(evt, e_conf.tok_hcalDepth2OverEcal, ele_vmaps);
172  get_product(evt, e_conf.tok_hcalDepth1OverEcalBc, ele_vmaps);
173  get_product(evt, e_conf.tok_hcalDepth2OverEcalBc, ele_vmaps);
174 
177  evt.getByToken(ph_conf.tok_photon_src, phos);
178 
179  phos_by_oop.resize(phos->size());
180  std::copy(phos->ptrs().begin(), phos->ptrs().end(), phos_by_oop.begin());
181  }
182 
183  get_product(evt, ph_conf.tok_sigmaEtaEta, pho_vmaps);
184  get_product(evt, ph_conf.tok_sigmaIetaIeta, pho_vmaps);
185  get_product(evt, ph_conf.tok_e1x5, pho_vmaps);
186  get_product(evt, ph_conf.tok_e2x5, pho_vmaps);
187  get_product(evt, ph_conf.tok_e3x3, pho_vmaps);
188  get_product(evt, ph_conf.tok_e5x5, pho_vmaps);
189  get_product(evt, ph_conf.tok_maxEnergyXtal, pho_vmaps);
190  get_product(evt, ph_conf.tok_hcalDepth1OverEcal, pho_vmaps);
191  get_product(evt, ph_conf.tok_hcalDepth2OverEcal, pho_vmaps);
192  get_product(evt, ph_conf.tok_hcalDepth1OverEcalBc, pho_vmaps);
193  get_product(evt, ph_conf.tok_hcalDepth2OverEcalBc, pho_vmaps);
194 }
195 
197 
198 namespace {
199  template <typename T, typename U, typename V>
200  inline void assignValue(const T& ptr, const U& tok, const V& map, float& value) {
201  if (!tok.isUninitialized())
202  value = map.find(tok.index())->second->get(ptr.id(), ptr.key());
203  }
204 } // namespace
205 
207  // we encounter two cases here, either we are running AOD -> MINIAOD
208  // and the value maps are to the reducedEG object, can use original object ptr
209  // or we are running MINIAOD->MINIAOD and we need to fetch the pat objects to reference
211 
212  // The calls to this function should be matched to the order of the electrons
213  // in eles_by_oop. In case it is called too many times, it will throw thanks
214  // to the use of std::vector<T>::at().
216  ptr = eles_by_oop.at(ele_idx);
217 
218  //now we go through and modify the objects using the valuemaps we read in
219  auto full5x5 = ele.full5x5_showerShape();
220  assignValue(ptr, e_conf.tok_sigmaEtaEta, ele_vmaps, full5x5.sigmaEtaEta);
221  assignValue(ptr, e_conf.tok_sigmaIetaIeta, ele_vmaps, full5x5.sigmaIetaIeta);
222  assignValue(ptr, e_conf.tok_sigmaIphiIphi, ele_vmaps, full5x5.sigmaIphiIphi);
223  assignValue(ptr, e_conf.tok_e1x5, ele_vmaps, full5x5.e1x5);
224  assignValue(ptr, e_conf.tok_e2x5Max, ele_vmaps, full5x5.e2x5Max);
225  assignValue(ptr, e_conf.tok_e5x5, ele_vmaps, full5x5.e5x5);
226  assignValue(ptr, e_conf.tok_r9, ele_vmaps, full5x5.r9);
227  assignValue(ptr, e_conf.tok_hcalDepth1OverEcal, ele_vmaps, full5x5.hcalDepth1OverEcal);
228  assignValue(ptr, e_conf.tok_hcalDepth2OverEcal, ele_vmaps, full5x5.hcalDepth2OverEcal);
229  assignValue(ptr, e_conf.tok_hcalDepth1OverEcalBc, ele_vmaps, full5x5.hcalDepth1OverEcalBc);
230  assignValue(ptr, e_conf.tok_hcalDepth2OverEcalBc, ele_vmaps, full5x5.hcalDepth2OverEcalBc);
231 
232  ele.full5x5_setShowerShape(full5x5);
233  ++ele_idx;
234 }
235 
237  // we encounter two cases here, either we are running AOD -> MINIAOD
238  // and the value maps are to the reducedEG object, can use original object ptr
239  // or we are running MINIAOD->MINIAOD and we need to fetch the pat objects to reference
241 
242  // The calls to this function should be matched to the order of the electrons
243  // in eles_by_oop. In case it is called too many times, it will throw thanks
244  // to the use of std::vector<T>::at().
246  ptr = phos_by_oop.at(pho_idx);
247 
248  //now we go through and modify the objects using the valuemaps we read in
249  auto full5x5 = pho.full5x5_showerShapeVariables();
250  assignValue(ptr, ph_conf.tok_sigmaEtaEta, pho_vmaps, full5x5.sigmaEtaEta);
251  assignValue(ptr, ph_conf.tok_sigmaIetaIeta, pho_vmaps, full5x5.sigmaIetaIeta);
252  assignValue(ptr, ph_conf.tok_e1x5, pho_vmaps, full5x5.e1x5);
253  assignValue(ptr, ph_conf.tok_e2x5, pho_vmaps, full5x5.e2x5);
254  assignValue(ptr, ph_conf.tok_e3x3, pho_vmaps, full5x5.e3x3);
255  assignValue(ptr, ph_conf.tok_e5x5, pho_vmaps, full5x5.e5x5);
256  assignValue(ptr, ph_conf.tok_maxEnergyXtal, pho_vmaps, full5x5.maxEnergyXtal);
257  assignValue(ptr, ph_conf.tok_hcalDepth1OverEcal, pho_vmaps, full5x5.hcalDepth1OverEcal);
258  assignValue(ptr, ph_conf.tok_hcalDepth2OverEcal, pho_vmaps, full5x5.hcalDepth2OverEcal);
259  assignValue(ptr, ph_conf.tok_hcalDepth1OverEcalBc, pho_vmaps, full5x5.hcalDepth1OverEcalBc);
260  assignValue(ptr, ph_conf.tok_hcalDepth2OverEcalBc, pho_vmaps, full5x5.hcalDepth2OverEcalBc);
261 
262  pho.full5x5_setShowerShapeVariables(full5x5);
263  ++pho_idx;
264 }
cms::cuda::V
cudaStream_t T uint32_t const T *__restrict__ const uint32_t *__restrict__ uint32_t int cudaStream_t V
Definition: HistoContainer.h:99
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_maxEnergyXtal
edm::EDGetTokenT< edm::ValueMap< float > > tok_maxEnergyXtal
Definition: EGFull5x5ShowerShapeModifier.cc:47
edm::EDGetTokenT::index
unsigned int index() const
Definition: EDGetToken.h:69
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_e5x5
edm::EDGetTokenT< edm::ValueMap< float > > tok_e5x5
Definition: EGFull5x5ShowerShapeModifier.cc:31
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_e2x5
edm::EDGetTokenT< edm::ValueMap< float > > tok_e2x5
Definition: EGFull5x5ShowerShapeModifier.cc:44
EGFull5x5ShowerShapeModifierFromValueMaps::ele_vmaps
std::unordered_map< unsigned, edm::Handle< edm::ValueMap< float > > > ele_vmaps
Definition: EGFull5x5ShowerShapeModifier.cc:66
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
EGFull5x5ShowerShapeModifierFromValueMaps::e_conf
electron_config e_conf
Definition: EGFull5x5ShowerShapeModifier.cc:63
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_e1x5
edm::EDGetTokenT< edm::ValueMap< float > > tok_e1x5
Definition: EGFull5x5ShowerShapeModifier.cc:43
edm::EDGetTokenT
Definition: EDGetToken.h:33
EGFull5x5ShowerShapeModifierFromValueMaps::modifyObject
void modifyObject(pat::Electron &) const final
Definition: EGFull5x5ShowerShapeModifier.cc:206
pat::Photon
Analysis-level Photon class.
Definition: Photon.h:46
EGFull5x5ShowerShapeModifierFromValueMaps::EGFull5x5ShowerShapeModifierFromValueMaps
EGFull5x5ShowerShapeModifierFromValueMaps(const edm::ParameterSet &conf, edm::ConsumesCollector &cc)
Definition: EGFull5x5ShowerShapeModifier.cc:77
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
reco::GsfElectron::full5x5_setShowerShape
void full5x5_setShowerShape(const ShowerShape &s)
Definition: GsfElectron.h:468
EGFull5x5ShowerShapeModifierFromValueMaps::pho_idx
unsigned pho_idx
Definition: EGFull5x5ShowerShapeModifier.cc:69
edm::Handle
Definition: AssociativeIterator.h:50
reco::GsfElectron::full5x5_showerShape
const ShowerShape & full5x5_showerShape() const
Definition: GsfElectron.h:464
Photon.h
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_sigmaIetaIeta
edm::EDGetTokenT< edm::ValueMap< float > > tok_sigmaIetaIeta
Definition: EGFull5x5ShowerShapeModifier.cc:42
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
ModifyObjectValueBase.h
edm::EDGetTokenT::isUninitialized
bool isUninitialized() const
Definition: EDGetToken.h:70
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:528
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_sigmaEtaEta
edm::EDGetTokenT< edm::ValueMap< float > > tok_sigmaEtaEta
Definition: EGFull5x5ShowerShapeModifier.cc:41
GsfElectron.h
EGFull5x5ShowerShapeModifierFromValueMaps::phos_by_oop
std::vector< edm::Ptr< reco::Photon > > phos_by_oop
Definition: EGFull5x5ShowerShapeModifier.cc:67
DEFINE_EDM_PLUGIN
#define DEFINE_EDM_PLUGIN(factory, type, name)
Definition: PluginFactory.h:124
EDGetToken.h
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_sigmaEtaEta
edm::EDGetTokenT< edm::ValueMap< float > > tok_sigmaEtaEta
Definition: EGFull5x5ShowerShapeModifier.cc:26
mitigatedMETSequence_cff.U
U
Definition: mitigatedMETSequence_cff.py:36
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_hcalDepth2OverEcalBc
edm::EDGetTokenT< edm::ValueMap< float > > tok_hcalDepth2OverEcalBc
Definition: EGFull5x5ShowerShapeModifier.cc:51
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_sigmaIphiIphi
edm::EDGetTokenT< edm::ValueMap< float > > tok_sigmaIphiIphi
Definition: EGFull5x5ShowerShapeModifier.cc:28
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_hcalDepth1OverEcalBc
edm::EDGetTokenT< edm::ValueMap< float > > tok_hcalDepth1OverEcalBc
Definition: EGFull5x5ShowerShapeModifier.cc:35
pat::PATObject::originalObjectRef
const edm::Ptr< reco::Candidate > & originalObjectRef() const
reference to original object. Returns a null reference if not available
Definition: PATObject.h:542
edm::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:674
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_hcalDepth2OverEcal
edm::EDGetTokenT< edm::ValueMap< float > > tok_hcalDepth2OverEcal
Definition: EGFull5x5ShowerShapeModifier.cc:49
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_hcalDepth2OverEcal
edm::EDGetTokenT< edm::ValueMap< float > > tok_hcalDepth2OverEcal
Definition: EGFull5x5ShowerShapeModifier.cc:34
edm::ParameterSet
Definition: ParameterSet.h:36
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_hcalDepth1OverEcal
edm::EDGetTokenT< edm::ValueMap< float > > tok_hcalDepth1OverEcal
Definition: EGFull5x5ShowerShapeModifier.cc:48
reco::Photon::full5x5_setShowerShapeVariables
void full5x5_setShowerShapeVariables(const ShowerShape &a)
Definition: Photon.h:205
reco::Photon::full5x5_showerShapeVariables
const ShowerShape & full5x5_showerShapeVariables() const
Definition: Photon.h:202
ModifyObjectValueBase
Definition: ModifyObjectValueBase.h:18
edmplugin::PluginFactory
Definition: PluginFactory.h:34
EGFull5x5ShowerShapeModifierFromValueMaps::eles_by_oop
std::vector< edm::Ptr< reco::GsfElectron > > eles_by_oop
Definition: EGFull5x5ShowerShapeModifier.cc:65
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_hcalDepth2OverEcalBc
edm::EDGetTokenT< edm::ValueMap< float > > tok_hcalDepth2OverEcalBc
Definition: EGFull5x5ShowerShapeModifier.cc:36
EGFull5x5ShowerShapeModifierFromValueMaps::ele_idx
unsigned ele_idx
Definition: EGFull5x5ShowerShapeModifier.cc:69
value
Definition: value.py:1
EGFull5x5ShowerShapeModifierFromValueMaps::ph_conf
photon_config ph_conf
Definition: EGFull5x5ShowerShapeModifier.cc:64
BPHMonitor_cfi.photons
photons
Definition: BPHMonitor_cfi.py:91
EGFull5x5ShowerShapeModifierFromValueMaps::setEvent
void setEvent(const edm::Event &) final
Definition: EGFull5x5ShowerShapeModifier.cc:147
edm::EventSetup
Definition: EventSetup.h:57
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_e1x5
edm::EDGetTokenT< edm::ValueMap< float > > tok_e1x5
Definition: EGFull5x5ShowerShapeModifier.cc:29
cc
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config
Definition: EGFull5x5ShowerShapeModifier.cc:24
InputTag.h
edm::Ptr< reco::Candidate >
ValueMap.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_r9
edm::EDGetTokenT< edm::ValueMap< float > > tok_r9
Definition: EGFull5x5ShowerShapeModifier.cc:32
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_e5x5
edm::EDGetTokenT< edm::ValueMap< float > > tok_e5x5
Definition: EGFull5x5ShowerShapeModifier.cc:46
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_sigmaIetaIeta
edm::EDGetTokenT< edm::ValueMap< float > > tok_sigmaIetaIeta
Definition: EGFull5x5ShowerShapeModifier.cc:27
pwdgSkimBPark_cfi.electrons
electrons
Definition: pwdgSkimBPark_cfi.py:6
T
long double T
Definition: Basic3DVectorLD.h:48
edm::ValueMap< float >
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_e3x3
edm::EDGetTokenT< edm::ValueMap< float > > tok_e3x3
Definition: EGFull5x5ShowerShapeModifier.cc:45
EGFull5x5ShowerShapeModifierFromValueMaps
Definition: EGFull5x5ShowerShapeModifier.cc:22
EGFull5x5ShowerShapeModifierFromValueMaps::setEventContent
void setEventContent(const edm::EventSetup &) final
Definition: EGFull5x5ShowerShapeModifier.cc:196
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_e2x5Max
edm::EDGetTokenT< edm::ValueMap< float > > tok_e2x5Max
Definition: EGFull5x5ShowerShapeModifier.cc:30
pat::Electron
Analysis-level electron class.
Definition: Electron.h:51
genParticles_cff.map
map
Definition: genParticles_cff.py:11
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_hcalDepth1OverEcal
edm::EDGetTokenT< edm::ValueMap< float > > tok_hcalDepth1OverEcal
Definition: EGFull5x5ShowerShapeModifier.cc:33
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_photon_src
edm::EDGetTokenT< edm::View< pat::Photon > > tok_photon_src
Definition: EGFull5x5ShowerShapeModifier.cc:40
edm::Event
Definition: Event.h:73
EGFull5x5ShowerShapeModifierFromValueMaps::pho_vmaps
std::unordered_map< unsigned, edm::Handle< edm::ValueMap< float > > > pho_vmaps
Definition: EGFull5x5ShowerShapeModifier.cc:68
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:39
EGFull5x5ShowerShapeModifierFromValueMaps::electron_config::tok_electron_src
edm::EDGetTokenT< edm::View< pat::Electron > > tok_electron_src
Definition: EGFull5x5ShowerShapeModifier.cc:25
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config::tok_hcalDepth1OverEcalBc
edm::EDGetTokenT< edm::ValueMap< float > > tok_hcalDepth1OverEcalBc
Definition: EGFull5x5ShowerShapeModifier.cc:50
EGFull5x5ShowerShapeModifierFromValueMaps::photon_config
Definition: EGFull5x5ShowerShapeModifier.cc:39