CMS 3D CMS Logo

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