CMS 3D CMS Logo

Photon.h
Go to the documentation of this file.
1 //
2 //
3 
4 #ifndef DataFormats_PatCandidates_Photon_h
5 #define DataFormats_PatCandidates_Photon_h
6 
28 
29 
30 // Define typedefs for convenience
31 namespace pat {
32  class Photon;
33  typedef std::vector<Photon> PhotonCollection;
36 }
37 
38 namespace reco {
40  std::ostream& operator<<(std::ostream& out, const pat::Photon& obj);
41 }
42 
43 // Class definition
44 namespace pat {
45  class PATPhotonSlimmer;
46 
47  class Photon : public PATObject<reco::Photon> {
48 
49  public:
50 
51  typedef std::pair<std::string,Bool_t> IdPair;
52 
54  Photon();
56  Photon(const reco::Photon & aPhoton);
58  Photon(const edm::RefToBase<reco::Photon> & aPhotonRef);
60  Photon(const edm::Ptr<reco::Photon> & aPhotonRef);
62  ~Photon() override;
63 
65  Photon * clone() const override { return new Photon(*this); }
66 
67  // ---- methods for content embedding ----
69  reco::SuperClusterRef superCluster() const override;
71  reco::CaloClusterPtr seed() const;
72 
73  //method to access the basic clusters
74  const std::vector<reco::CaloCluster>& basicClusters() const { return basicClusters_ ; }
75  //method to access the preshower clusters
76  const std::vector<reco::CaloCluster>& preshowerClusters() const { return preshowerClusters_ ; }
77 
78  //method to access embedded ecal RecHits
79  const EcalRecHitCollection * recHits() const { return &recHits_;}
80 
82  void embedSuperCluster();
84  void embedSeedCluster();
86  void embedBasicClusters();
91 
92 
93  // ---- methods for access the generated photon ----
95  const reco::Candidate * genPhoton() const { return genParticle(); }
97  void setGenPhoton(const reco::GenParticleRef & gp, bool embed=false) { setGenParticleRef(gp, embed); }
98 
99  // ---- methods for photon ID ----
102  Bool_t photonID(const std::string & name) const;
104  bool isPhotonIDAvailable(const std::string & name) const;
107  const std::vector<IdPair> & photonIDs() const { return photonIDs_; }
110  void setPhotonIDs(const std::vector<IdPair> & ids) { photonIDs_ = ids; }
111 
112 
113  // ---- methods for photon isolation ----
116  float trackIso() const { return trkSumPtSolidConeDR04(); }
119  float ecalIso() const { return ecalRecHitSumEtConeDR04(); }
122  float hcalIso() const { return hcalTowerSumEtConeDR04(); }
125  float caloIso() const { return ecalIso()+hcalIso(); }
126 
138  float photonIso() const { return reco::Photon::photonIso(); }
142 
144  float userIso(uint8_t index=0) const { return userIsolation(IsolationKeys(UserBaseIso + index)); }
148  if (key >= 0) {
149  //if (key >= isolations_.size()) throw cms::Excepton("Missing Data")
150  //<< "Isolation corresponding to key " << key
151  //<< " was not stored for this particle.";
152  if (size_t(key) >= isolations_.size()) return -1.0;
153  return isolations_[key];
154  } else switch (key) {
155  case pat::CaloIso:
156  //if (isolations_.size() <= pat::HcalIso) throw cms::Excepton("Missing Data")
157  //<< "CalIsoo Isolation was not stored for this particle.";
158  if (isolations_.size() <= pat::HcalIso) return -1.0;
159  return isolations_[pat::EcalIso] + isolations_[pat::HcalIso];
160  default:
161  return -1.0;
162  //throw cms::Excepton("Missing Data") << "Isolation corresponding to key "
163  //<< key << " was not stored for this particle.";
164  }
165  }
166 
167  float puppiChargedHadronIso() const {return puppiChargedHadronIso_; }
168  float puppiNeutralHadronIso() const {return puppiNeutralHadronIso_; }
169  float puppiPhotonIso() const {return puppiPhotonIso_; }
170 
174  if (key >= 0) {
175  if (size_t(key) >= isolations_.size()) isolations_.resize(key+1, -1.0);
176  isolations_[key] = value;
177  } else {
178  throw cms::Exception("Illegal Argument") <<
179  "The key for which you're setting isolation does not correspond " <<
180  "to an individual isolation but to the sum of more independent isolations " <<
181  "(e.g. Calo = Ecal + Hcal), so you can't SET the value, just GET it.\n" <<
182  "Please set up each component independly.\n";
183  }
184  }
186  void setTrackIso(float trackIso) { setIsolation(TrackIso, trackIso); }
188  void setEcalIso(float caloIso) { setIsolation(EcalIso, caloIso); }
190  void setHcalIso(float caloIso) { setIsolation(HcalIso, caloIso); }
192  void setUserIso(float value, uint8_t index=0) { setIsolation(IsolationKeys(UserBaseIso + index), value); }
194  void setIsolationPUPPI(float chargedhadrons_, float neutralhadrons_, float photons_)
195  {
196  puppiChargedHadronIso_ = chargedhadrons_;
197  puppiNeutralHadronIso_ = neutralhadrons_;
198  puppiPhotonIso_ = photons_;
199 
200  }
201 
202  // ---- methods for photon isolation deposits ----
205  for (IsoDepositPairs::const_iterator it = isoDeposits_.begin(), ed = isoDeposits_.end();
206  it != ed; ++it)
207  {
208  if (it->first == key) return & it->second;
209  }
210  return nullptr;
211  }
213  const IsoDeposit * trackIsoDeposit() const { return isoDeposit(pat::TrackIso); }
215  const IsoDeposit * ecalIsoDeposit() const { return isoDeposit(pat::EcalIso ); }
217  const IsoDeposit * hcalIsoDeposit() const { return isoDeposit(pat::HcalIso ); }
219  const IsoDeposit * userIsoDeposit(uint8_t index=0) const { return isoDeposit(IsolationKeys(UserBaseIso + index)); }
222  IsoDepositPairs::iterator it = isoDeposits_.begin(), ed = isoDeposits_.end();
223  for (; it != ed; ++it) {
224  if (it->first == key) { it->second = dep; return; }
225  }
226  isoDeposits_.push_back(std::make_pair(key,dep));
227  }
229  void trackIsoDeposit(const IsoDeposit &dep) { setIsoDeposit(pat::TrackIso, dep); }
231  void ecalIsoDeposit(const IsoDeposit &dep) { setIsoDeposit(pat::EcalIso, dep); }
233  void hcalIsoDeposit(const IsoDeposit &dep) { setIsoDeposit(pat::HcalIso, dep); }
235  void userIsoDeposit(const IsoDeposit &dep, uint8_t index=0) { setIsoDeposit(IsolationKeys(UserBaseIso + index), dep); }
237  bool passElectronVeto() const { return passElectronVeto_; }
238  void setPassElectronVeto( bool flag ) { passElectronVeto_ = flag; }
239  //pixel seed to veto electron (not recommended by EGM POG but it seems very efficient)
240  bool hasPixelSeed() const { return hasPixelSeed_; }
241  void setHasPixelSeed( bool flag ) { hasPixelSeed_ = flag; }
242 
244  float seedEnergy() const { return seedEnergy_;}
245  void setSeedEnergy( float e ){ seedEnergy_ = e; }
246 
247  float eMax() const { return eMax_;}
248  void setEMax( float e ){ eMax_ = e;}
249  float e2nd() const { return e2nd_;}
250  void setE2nd( float e ){ e2nd_ = e;}
251  float e3x3() const { return e3x3_;}
252  void setE3x3( float e ){ e3x3_ = e;}
253  float eTop() const { return eTop_;}
254  void setETop( float e ){ eTop_ = e;}
255  float eBottom() const { return eBottom_;}
256  void setEBottom( float e ){ eBottom_ = e;}
257  float eLeft() const { return eLeft_;}
258  void setELeft( float e ){ eLeft_ = e;}
259  float eRight() const { return eRight_;}
260  void setERight( float e ){ eRight_ = e;}
261 
262  float see() const { return see_;}
263  void setSee( float s ){ see_ = s;}
264  float spp() const { return spp_;}
265  void setSpp( float s ){ spp_ = s;}
266  float sep() const { return sep_;}
267  void setSep( float s ){ sep_ = s;}
268 
269  float maxDR() const { return maxDR_;}
270  void setMaxDR( float m ){ maxDR_ = m;}
271  float maxDRDPhi() const { return maxDRDPhi_;}
272  void setMaxDRDPhi( float m ){ maxDRDPhi_ = m;}
273  float maxDRDEta() const { return maxDRDEta_;}
274  void setMaxDRDEta( float m ){ maxDRDEta_ = m;}
275  float maxDRRawEnergy() const { return maxDRRawEnergy_;}
276  void setMaxDRRawEnergy( float m ){ maxDRRawEnergy_ = m;}
277 
278  float subClusRawE1() const { return subClusRawE1_;}
279  void setSubClusRawE1( float s ){ subClusRawE1_ = s;}
280  float subClusRawE2() const { return subClusRawE2_;}
281  void setSubClusRawE2( float s ){ subClusRawE2_ = s;}
282  float subClusRawE3() const { return subClusRawE3_;}
283  void setSubClusRawE3( float s ){ subClusRawE3_ = s;}
284 
285  float subClusDPhi1() const { return subClusDPhi1_;}
286  void setSubClusDPhi1( float s ){ subClusDPhi1_ = s;}
287  float subClusDPhi2() const { return subClusDPhi2_;}
288  void setSubClusDPhi2( float s ){ subClusDPhi2_ = s;}
289  float subClusDPhi3() const { return subClusDPhi3_;}
290  void setSubClusDPhi3( float s ){ subClusDPhi3_ = s;}
291 
292  float subClusDEta1() const { return subClusDEta1_;}
293  void setSubClusDEta1( float s ){ subClusDEta1_ = s;}
294  float subClusDEta2() const { return subClusDEta2_;}
295  void setSubClusDEta2( float s ){ subClusDEta2_ = s;}
296  float subClusDEta3() const { return subClusDEta3_;}
297  void setSubClusDEta3( float s ){ subClusDEta3_ = s;}
298 
299  float cryPhi() const { return cryPhi_;}
300  void setCryPhi( float c ){ cryPhi_ = c;}
301  float cryEta() const { return cryEta_;}
302  void setCryEta( float c ){ cryEta_ = c;}
303 
304  float iPhi() const { return iPhi_;}
305  void setIPhi( float i ){ iPhi_ = i;}
306  float iEta() const { return iEta_;}
307  void setIEta( float i ){ iEta_ = i;}
308 
310  friend std::ostream& reco::operator<<(std::ostream& out, const pat::Photon& obj);
311 
313  edm::RefVector<pat::PackedCandidateCollection> associatedPackedPFCandidates() const ;
315  template<typename T>
317  T beginIndexItr,
318  T endIndexItr) {
319  packedPFCandidates_ = refprod;
320  associatedPackedFCandidateIndices_.clear();
321  associatedPackedFCandidateIndices_.insert(associatedPackedFCandidateIndices_.begin(),
322  beginIndexItr,
323  endIndexItr);
324  }
325 
327  size_t numberOfSourceCandidatePtrs() const override { return associatedPackedFCandidateIndices_.size(); }
329  reco::CandidatePtr sourceCandidatePtr( size_type i ) const override;
330 
331  friend class PATPhotonSlimmer;
332 
333  protected:
334 
335  // ---- for content embedding ----
337  std::vector<reco::SuperCluster> superCluster_;
341  std::vector<reco::CaloCluster> basicClusters_;
343  std::vector<reco::CaloCluster> preshowerClusters_;
347  std::vector<reco::CaloCluster> seedCluster_;
352  // ---- photon ID's holder ----
353  std::vector<IdPair> photonIDs_;
354  // ---- Isolation and IsoDeposit related datamebers ----
355  typedef std::vector<std::pair<IsolationKeys, pat::IsoDeposit> > IsoDepositPairs;
356  IsoDepositPairs isoDeposits_;
357  std::vector<float> isolations_;
358 
362 
364  float seedEnergy_;
365  float eMax_;
366  float e2nd_;
367  float e3x3_;
368  float eTop_;
369  float eBottom_;
370  float eLeft_;
371  float eRight_;
372 
373  float see_;
374  float spp_;
375  float sep_;
376 
377  float maxDR_;
378  float maxDRDPhi_;
379  float maxDRDEta_;
381 
385 
389 
393 
394  float cryEta_;
395  float cryPhi_;
396  float iEta_;
397  float iPhi_;
398 
399  //PUPPI isolations
403 
404  // ---- link to PackedPFCandidates
406  std::vector<uint16_t> associatedPackedFCandidateIndices_;
407  };
408 
409 
410 }
411 
412 #endif
float subClusDPhi2() const
Definition: Photon.h:287
float subClusDEta3_
Definition: Photon.h:392
float subClusDPhi1_
Definition: Photon.h:386
void setSpp(float s)
Definition: Photon.h:265
Analysis-level Photon class.
Definition: Photon.h:47
edm::RefVector< PhotonCollection > PhotonRefVector
Definition: Photon.h:35
void setIEta(float i)
Definition: Photon.h:307
float cryEta_
Definition: Photon.h:394
float trackIso() const
Definition: Photon.h:116
float eLeft_
Definition: Photon.h:370
Definition: Photon.py:1
void setEcalIso(float caloIso)
Sets ecal isolation variable.
Definition: Photon.h:188
float neutralHadronIso() const
Definition: Photon.h:135
void setSubClusDPhi3(float s)
Definition: Photon.h:290
void setTrackIso(float trackIso)
Sets tracker isolation variable.
Definition: Photon.h:186
float chargedHadronIso() const
Accessors for Particle Flow Isolation variables.
Definition: Photon.h:493
size_t size_type
Definition: Candidate.h:30
float neutralHadronIso() const
Definition: Photon.h:497
void setE2nd(float e)
Definition: Photon.h:250
float puppiNeutralHadronIso() const
Definition: Photon.h:168
void setSee(float s)
Definition: Photon.h:263
bool passElectronVeto_
-— conversion veto -—
Definition: Photon.h:360
void trackIsoDeposit(const IsoDeposit &dep)
Sets tracker IsoDeposit.
Definition: Photon.h:229
embedPreshowerClusters
embed in AOD externally stored the electron&#39;s basic clusters
edm::Ref< PhotonCollection > PhotonRef
Definition: Photon.h:34
void setMaxDRRawEnergy(float m)
Definition: Photon.h:276
float subClusDEta3() const
Definition: Photon.h:296
float subClusDEta2() const
Definition: Photon.h:294
float puChargedHadronIso() const
Definition: Photon.h:141
float sep_
Definition: Photon.h:375
void setAssociatedPackedPFCandidates(const edm::RefProd< pat::PackedCandidateCollection > &refprod, T beginIndexItr, T endIndexItr)
References to PFCandidates linked to this object (e.g. for isolation vetos or masking before jet recl...
Definition: Photon.h:316
void ecalIsoDeposit(const IsoDeposit &dep)
Sets ecal IsoDeposit.
Definition: Photon.h:231
void setSubClusDPhi2(float s)
Definition: Photon.h:288
float eMax() const
Definition: Photon.h:247
embedRecHits
embed in AOD externally stored track (note: gsf electrons don&#39;t have a track)
float spp_
Definition: Photon.h:374
float eRight_
Definition: Photon.h:371
float eBottom() const
Definition: Photon.h:255
float maxDRDPhi() const
Definition: Photon.h:271
bool hasPixelSeed_
Definition: Photon.h:361
void setIsolationPUPPI(float chargedhadrons_, float neutralhadrons_, float photons_)
Sets PUPPI isolation.
Definition: Photon.h:194
float subClusDPhi1() const
Definition: Photon.h:285
float see_
Definition: Photon.h:373
float subClusDPhi3_
Definition: Photon.h:388
const std::vector< reco::CaloCluster > & basicClusters() const
Definition: Photon.h:74
std::vector< reco::SuperCluster > superCluster_
Definition: Photon.h:337
IsolationKeys
Enum defining isolation keys.
Definition: Isolation.h:9
float hcalIso() const
Definition: Photon.h:122
float iEta() const
Definition: Photon.h:306
std::vector< reco::CaloCluster > preshowerClusters_
Place to store electron&#39;s preshower clusters internally.
Definition: Photon.h:343
void setUserIso(float value, uint8_t index=0)
Sets user isolation variable index.
Definition: Photon.h:192
void setIPhi(float i)
Definition: Photon.h:305
float eLeft() const
Definition: Photon.h:257
float subClusRawE2_
Definition: Photon.h:383
float photonIso() const
Definition: Photon.h:498
Photon * clone() const override
required reimplementation of the Candidate&#39;s clone method
Definition: Photon.h:65
std::vector< reco::CaloCluster > seedCluster_
Place to store electron&#39;s seed cluster internally.
Definition: Photon.h:347
float e2nd() const
Definition: Photon.h:249
#define embed
Definition: AMPTWrapper.h:178
void setHcalIso(float caloIso)
Sets hcal isolation variable.
Definition: Photon.h:190
Definition: HeavyIon.h:7
embedBasicClusters
embed in AOD externally stored the electron&#39;s seedcluster
void setIsolation(IsolationKeys key, float value)
Definition: Photon.h:173
static const char sep_[]
float chargedHadronIso() const
Definition: Photon.h:132
float subClusRawE1_
Definition: Photon.h:382
void setELeft(float e)
Definition: Photon.h:258
float subClusRawE3_
Definition: Photon.h:384
void setIsoDeposit(IsolationKeys key, const IsoDeposit &dep)
Sets the IsoDeposit associated with some key; if it is already existent, it is overwritten.
Definition: Photon.h:221
void userIsoDeposit(const IsoDeposit &dep, uint8_t index=0)
Sets user-level IsoDeposit.
Definition: Photon.h:235
void setEMax(float e)
Definition: Photon.h:248
slimmer of PAT Taus
std::ostream & operator<<(std::ostream &, BeamSpot beam)
Definition: BeamSpot.cc:71
const EcalRecHitCollection * recHits() const
Definition: Photon.h:79
float puppiChargedHadronIso_
Definition: Photon.h:400
float puppiChargedHadronIso() const
Definition: Photon.h:167
float seedEnergy() const
input variables for regression energy corrections
Definition: Photon.h:244
const reco::Candidate * genPhoton() const
return the match to the generated photon
Definition: Photon.h:95
void setERight(float e)
Definition: Photon.h:260
void setMaxDRDEta(float m)
Definition: Photon.h:274
float eMax_
Definition: Photon.h:365
float subClusRawE1() const
Definition: Photon.h:278
float puppiNeutralHadronIso_
Definition: Photon.h:401
void setPhotonIDs(const std::vector< IdPair > &ids)
Definition: Photon.h:110
float eTop() const
Definition: Photon.h:253
std::ostream & operator<<(std::ostream &out, const strbitset::index_type &r)
Definition: strbitset.cc:27
float e3x3() const
Definition: Photon.h:251
edm::RefProd< pat::PackedCandidateCollection > packedPFCandidates_
Definition: Photon.h:405
const IsoDeposit * hcalIsoDeposit() const
Return the hcal IsoDeposit.
Definition: Photon.h:217
float subClusRawE3() const
Definition: Photon.h:282
void setPassElectronVeto(bool flag)
Definition: Photon.h:238
float patParticleIso() const
Definition: Photon.h:129
void setETop(float e)
Definition: Photon.h:254
float subClusDPhi3() const
Definition: Photon.h:289
float userIso(uint8_t index=0) const
Returns a user defined isolation value.
Definition: Photon.h:144
Definition: value.py:1
void setSeedEnergy(float e)
Definition: Photon.h:245
void setSubClusDPhi1(float s)
Definition: Photon.h:286
void hcalIsoDeposit(const IsoDeposit &dep)
Sets hcal IsoDeposit.
Definition: Photon.h:233
float maxDR() const
Definition: Photon.h:269
void setSubClusDEta1(float s)
Definition: Photon.h:293
float see() const
Definition: Photon.h:262
std::vector< IdPair > photonIDs_
Definition: Photon.h:353
float puppiPhotonIso_
Definition: Photon.h:402
bool embeddedSuperCluster_
Definition: Photon.h:336
void setCryEta(float c)
Definition: Photon.h:302
const IsoDeposit * ecalIsoDeposit() const
Return the ecal IsoDeposit.
Definition: Photon.h:215
size_t numberOfSourceCandidatePtrs() const override
get the number of non-null PFCandidates
Definition: Photon.h:327
embedSeedCluster
embed in AOD externally stored supercluster
edm::AtomicPtrCache< std::vector< reco::SuperCluster > > superClusterRelinked_
Place to temporarily store the electron&#39;s supercluster after relinking the seed to it...
Definition: Photon.h:339
float e2nd_
Definition: Photon.h:366
float iEta_
Definition: Photon.h:396
EcalRecHitCollection recHits_
Place to store electron&#39;s RecHits internally (5x5 around seed+ all RecHits)
Definition: Photon.h:351
bool embeddedRecHits_
True if RecHits stored internally.
Definition: Photon.h:349
unsigned int index
index type
Definition: Candidate.h:51
bool hasPixelSeed() const
Definition: Photon.h:240
void setCryPhi(float c)
Definition: Photon.h:300
float e3x3_
Definition: Photon.h:367
std::pair< std::string, Bool_t > IdPair
Definition: Photon.h:51
void setHasPixelSeed(bool flag)
Definition: Photon.h:241
float ecalIso() const
Definition: Photon.h:119
const std::vector< IdPair > & photonIDs() const
Definition: Photon.h:107
float cryPhi_
Definition: Photon.h:395
float puppiPhotonIso() const
Definition: Photon.h:169
float subClusDEta2_
Definition: Photon.h:391
void setSubClusDEta2(float s)
Definition: Photon.h:295
void setMaxDR(float m)
Definition: Photon.h:270
float subClusDEta1_
Definition: Photon.h:390
IsoDepositPairs isoDeposits_
Definition: Photon.h:356
float eBottom_
Definition: Photon.h:369
void setSubClusRawE2(float s)
Definition: Photon.h:281
float iPhi() const
Definition: Photon.h:304
bool passElectronVeto() const
vertex fit method
Definition: Photon.h:237
void setEBottom(float e)
Definition: Photon.h:256
float maxDRRawEnergy() const
Definition: Photon.h:275
float caloIso() const
Definition: Photon.h:125
float photonIso() const
Definition: Photon.h:138
const IsoDeposit * trackIsoDeposit() const
Return the tracker IsoDeposit.
Definition: Photon.h:213
float seedEnergy_
-— input variables for regression energy corrections -—
Definition: Photon.h:364
void setMaxDRDPhi(float m)
Definition: Photon.h:272
float maxDRDEta() const
Definition: Photon.h:273
fixed size matrix
float spp() const
Definition: Photon.h:264
embedSuperCluster
embed in AOD externally stored gsf track
void setSubClusDEta3(float s)
Definition: Photon.h:297
float cryEta() const
Definition: Photon.h:301
float subClusDPhi2_
Definition: Photon.h:387
bool embeddedSeedCluster_
True if seed cluster is stored internally.
Definition: Photon.h:345
void setSubClusRawE1(float s)
Definition: Photon.h:279
Templated PAT object container.
Definition: PATObject.h:49
float userIsolation(IsolationKeys key) const
Definition: Photon.h:147
float iPhi_
Definition: Photon.h:397
float sep() const
Definition: Photon.h:266
const IsoDeposit * userIsoDeposit(uint8_t index=0) const
Return a specified user-level IsoDeposit.
Definition: Photon.h:219
void setSubClusRawE3(float s)
Definition: Photon.h:283
std::vector< uint16_t > associatedPackedFCandidateIndices_
Definition: Photon.h:406
float maxDRDEta_
Definition: Photon.h:379
float subClusDEta1() const
Definition: Photon.h:292
long double T
float maxDRRawEnergy_
Definition: Photon.h:380
const IsoDeposit * isoDeposit(IsolationKeys key) const
Returns the IsoDeposit associated with some key, or a null pointer if it is not available.
Definition: Photon.h:204
float eTop_
Definition: Photon.h:368
float eRight() const
Definition: Photon.h:259
float maxDRDPhi_
Definition: Photon.h:378
float subClusRawE2() const
Definition: Photon.h:280
float maxDR_
Definition: Photon.h:377
std::vector< std::pair< IsolationKeys, pat::IsoDeposit > > IsoDepositPairs
Definition: Photon.h:355
void setGenPhoton(const reco::GenParticleRef &gp, bool embed=false)
method to set the generated photon
Definition: Photon.h:97
std::vector< Photon > PhotonCollection
Definition: Photon.h:32
float cryPhi() const
Definition: Photon.h:299
void setE3x3(float e)
Definition: Photon.h:252
std::vector< reco::CaloCluster > basicClusters_
Place to store electron&#39;s basic clusters internally.
Definition: Photon.h:341
std::vector< float > isolations_
Definition: Photon.h:357
void setSep(float s)
Definition: Photon.h:267
const std::vector< reco::CaloCluster > & preshowerClusters() const
Definition: Photon.h:76