CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes | Static Public Attributes
objects.PhotonAnalyzer.PhotonAnalyzer Class Reference
Inheritance diagram for objects.PhotonAnalyzer.PhotonAnalyzer:

Public Member Functions

def __init__
 
def attachFootprintRemovedIsolation
 
def beginLoop
 
def checkMatch
 
def computeRandomCone
 
def declareHandles
 
def makePhotons
 
def matchPhotons
 
def printInfo
 
def process
 
def randomCone
 

Public Attributes

 etaCentral
 
 footprintRemovedIsolationPUCorr
 
 IsolationComputer
 

Static Public Attributes

 conversionSafe_eleVeto = False,
 
 do_mc_match = True,
 
 do_randomCone = False,
 
 doFootprintRemovedIsolation = False,
 
float etaMax = 2.5
 
string footprintRemovedIsolationPUCorr = 'rhoArea'
 
string gamma_isoCorr = 'rhoArea'
 
string gammaID = "PhotonCutBasedIDLoose_CSA14"
 
string packedCandidates = 'packedPFCandidates'
 
string photons = 'slimmedPhotons'
 
int ptMin = 20
 
string rhoPhoton = 'fixedGridRhoFastjetAll'
 

Detailed Description

Definition at line 21 of file PhotonAnalyzer.py.

Constructor & Destructor Documentation

def objects.PhotonAnalyzer.PhotonAnalyzer.__init__ (   self,
  cfg_ana,
  cfg_comp,
  looperName 
)

Definition at line 24 of file PhotonAnalyzer.py.

24 
25  def __init__(self, cfg_ana, cfg_comp, looperName ):
26  super(PhotonAnalyzer,self).__init__(cfg_ana,cfg_comp,looperName)
27  self.etaCentral = self.cfg_ana.etaCentral if hasattr(self.cfg_ana, 'etaCentral') else 9999
28  # footprint removed isolation
29  self.doFootprintRemovedIsolation = getattr(cfg_ana, 'doFootprintRemovedIsolation', False)
31  self.footprintRemovedIsolationPUCorr = self.cfg_ana.footprintRemovedIsolationPUCorr

Member Function Documentation

def objects.PhotonAnalyzer.PhotonAnalyzer.attachFootprintRemovedIsolation (   self,
  gamma 
)

Definition at line 286 of file PhotonAnalyzer.py.

References bookConverter.max.

Referenced by objects.PhotonAnalyzer.PhotonAnalyzer.makePhotons().

287  def attachFootprintRemovedIsolation(self, gamma):
288  # cone deltar=0.3
289  gamma.ftprAbsIsoCharged03 = self.IsolationComputer.chargedAbsIso(gamma.physObj, 0.3, 0, 0.0);
290  gamma.ftprAbsIsoPho03 = self.IsolationComputer.photonAbsIsoRaw( gamma.physObj, 0.3, 0, 0.0);
291  gamma.ftprAbsIsoNHad03 = self.IsolationComputer.neutralHadAbsIsoRaw( gamma.physObj, 0.3, 0, 0.0);
292  gamma.ftprAbsIso03 = gamma.ftprAbsIsoCharged03 + gamma.ftprAbsIsoPho03 + gamma.ftprAbsIsoNHad03
293  if self.cfg_ana.gamma_isoCorr == "rhoArea":
294  gamma.ftprAbsIso03 = (max(gamma.ftprAbsIsoCharged03-gamma.rho*gamma.EffectiveArea03[0],0) + max(gamma.ftprAbsIsoPho03-gamma.rho*gamma.EffectiveArea03[1],0) + max(gamma.ftprAbsIsoNHad03 - gamma.rho*gamma.EffectiveArea03[2],0))
295  elif self.cfg_ana.gamma_isoCorr != 'raw':
296  raise RuntimeError, "Unsupported gamma_isoCorr name '" + str(self.cfg_ana.gamma_isoCorr) + "'! For now only 'rhoArea', 'raw' are supported."
297  gamma.ftprRelIso03 = gamma.ftprAbsIso03/gamma.pt()
def objects.PhotonAnalyzer.PhotonAnalyzer.beginLoop (   self,
  setup 
)

Definition at line 49 of file PhotonAnalyzer.py.

49 
50  def beginLoop(self, setup):
51  super(PhotonAnalyzer,self).beginLoop(setup)
52  self.counters.addCounter('events')
53  count = self.counters.counter('events')
54  count.register('all events')
55  count.register('has >=1 gamma at preselection')
56  count.register('has >=1 selected gamma')
def objects.PhotonAnalyzer.PhotonAnalyzer.checkMatch (   self,
  eta,
  phi,
  particles,
  deltar 
)

Definition at line 217 of file PhotonAnalyzer.py.

References deltaR().

Referenced by objects.PhotonAnalyzer.PhotonAnalyzer.computeRandomCone().

218  def checkMatch( self, eta, phi, particles, deltar ):
219 
220  for part in particles:
221  if deltaR(eta, phi, part.eta(), part.phi()) < deltar:
222  return True
223 
224  return False
225 
226 
227 
228 
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
def objects.PhotonAnalyzer.PhotonAnalyzer.computeRandomCone (   self,
  event,
  eta,
  phi,
  deltarmax,
  charged,
  jets,
  photons 
)

Definition at line 229 of file PhotonAnalyzer.py.

References objects.PhotonAnalyzer.PhotonAnalyzer.checkMatch(), and deltaR().

Referenced by objects.PhotonAnalyzer.PhotonAnalyzer.randomCone().

230  def computeRandomCone( self, event, eta, phi, deltarmax, charged, jets, photons ):
231 
232  if self.checkMatch( eta, phi, jets, 2.*deltarmax ):
233  return -1.
234 
235  if self.checkMatch( eta, phi, photons, 2.*deltarmax ):
236  return -1.
237 
238  if self.checkMatch( eta, phi, event.selectedLeptons, deltarmax ):
239  return -1.
240 
241  iso = 0.
242 
243  for part in charged:
244  if deltaR(eta, phi, part.eta(), part.phi()) > deltarmax : continue
245  #if deltaR(eta, phi, part.eta(), part.phi()) < 0.02: continue
246  iso += part.pt()
247 
248  return iso
249 
250 
251 
252 
253 
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
def objects.PhotonAnalyzer.PhotonAnalyzer.declareHandles (   self)

Definition at line 33 of file PhotonAnalyzer.py.

References core.AutoHandle.AutoHandle.handles, core.Analyzer.Analyzer.handles, HTTP.RequestManager.handles, and core.Analyzer.Analyzer.mchandles.

33 
34  def declareHandles(self):
35  super(PhotonAnalyzer, self).declareHandles()
36  self.handles['rhoPhoton'] = AutoHandle( self.cfg_ana.rhoPhoton, 'double')
def objects.PhotonAnalyzer.PhotonAnalyzer.makePhotons (   self,
  event 
)

Definition at line 57 of file PhotonAnalyzer.py.

References funct.abs(), objects.PhotonAnalyzer.PhotonAnalyzer.attachFootprintRemovedIsolation(), objects.PhotonAnalyzer.PhotonAnalyzer.doFootprintRemovedIsolation, objects.PhotonAnalyzer.PhotonAnalyzer.etaCentral, core.AutoHandle.AutoHandle.handles, core.Analyzer.Analyzer.handles, HTTP.RequestManager.handles, python.multivaluedict.map(), and bookConverter.max.

Referenced by objects.PhotonAnalyzer.PhotonAnalyzer.process().

57 
58  def makePhotons(self, event):
59  event.allphotons = map( Photon, self.handles['photons'].product() )
60  event.allphotons.sort(key = lambda l : l.pt(), reverse = True)
61 
62  event.selectedPhotons = []
63  event.selectedPhotonsCentral = []
64 
66  # values are taken from EGamma implementation: https://github.com/cms-sw/cmssw/blob/CMSSW_7_6_X/RecoEgamma/PhotonIdentification/plugins/PhotonIDValueMapProducer.cc#L198-L199
67  self.IsolationComputer.setPackedCandidates(self.handles['packedCandidates'].product(), -1, 0.1, 0.2)
68 
69  foundPhoton = False
70  for gamma in event.allphotons:
71  if gamma.pt() < self.cfg_ana.ptMin: continue
72  if abs(gamma.eta()) > self.cfg_ana.etaMax: continue
73  foundPhoton = True
74 
75  gamma.rho = float(self.handles['rhoPhoton'].product()[0])
76  # https://twiki.cern.ch/twiki/bin/view/CMS/CutBasedPhotonIdentificationRun2#Selection_implementation_details
77  if abs(gamma.eta()) < 1.0: gamma.EffectiveArea03 = [ 0.0234, 0.0053, 0.078 ]
78  elif abs(gamma.eta()) < 1.479: gamma.EffectiveArea03 = [ 0.0189, 0.0103, 0.0629 ]
79  elif abs(gamma.eta()) < 2.0: gamma.EffectiveArea03 = [ 0.0171, 0.0057, 0.0264 ]
80  elif abs(gamma.eta()) < 2.2: gamma.EffectiveArea03 = [ 0.0129, 0.0070, 0.0462 ]
81  elif abs(gamma.eta()) < 2.3: gamma.EffectiveArea03 = [ 0.0110, 0.0152, 0.0740 ]
82  elif abs(gamma.eta()) < 2.4: gamma.EffectiveArea03 = [ 0.0074, 0.0232, 0.0924 ]
83  else: gamma.EffectiveArea03 = [ 0.0035, 0.1709, 0.1484 ]
84 
87 
88  gamma.relIso = (max(gamma.chargedHadronIso()-gamma.rho*gamma.EffectiveArea03[0],0) + max(gamma.neutralHadronIso()-gamma.rho*gamma.EffectiveArea03[1],0) + max(gamma.photonIso() - gamma.rho*gamma.EffectiveArea03[2],0))/gamma.pt()
89 
90  def idWP(gamma,X):
91  """Create an integer equal to 1-2-3 for (loose,medium,tight)"""
92 
93  id=0
94  if gamma.photonID(X%"Loose"):
95  id=1
96  #if gamma.photonID(X%"Medium"):
97  # id=2
98  if gamma.photonID(X%"Tight"):
99  id=3
100  return id
101 
102  gamma.idCutBased = idWP(gamma, "PhotonCutBasedID%s")
103 
104 
105  keepThisPhoton = True
106 
107  if self.cfg_ana.gammaID=="PhotonCutBasedIDLoose_CSA14" or self.cfg_ana.gammaID=="PhotonCutBasedIDLoose_PHYS14" :
108  gamma.idCutBased = gamma.photonIDCSA14(self.cfg_ana.gammaID)
109  # we're keeing sigmaietaieta sidebands:
110  keepThisPhoton = gamma.photonIDCSA14(self.cfg_ana.gammaID, True)
111 
112  if gamma.hasPixelSeed():
113  keepThisPhoton = False
114  gamma.idCutBased = 0
115  elif "NoIso" in self.cfg_ana.gammaID:
116  idName = re.split('_NoIso',self.cfg_ana.gammaID)
117  keepThisPhoton = gamma.passPhotonID(idName[0],self.cfg_ana.conversionSafe_eleVeto)
118  basenameID = re.split('_looseSieie',idName[0])
119  gamma.idCutBased = gamma.passPhotonID(basenameID[0],self.cfg_ana.conversionSafe_eleVeto)
120  else:
121  # Reading from miniAOD directly
122  #keepThisPhoton = gamma.photonID(self.cfg_ana.gammaID)
123 
124  # implement cut based ID with CMGTools
125  keepThisPhoton = gamma.passPhotonID(self.cfg_ana.gammaID,self.cfg_ana.conversionSafe_eleVeto) and gamma.passPhotonIso(self.cfg_ana.gammaID,self.cfg_ana.gamma_isoCorr)
126 
127  if keepThisPhoton:
128  event.selectedPhotons.append(gamma)
129 
130  if keepThisPhoton and abs(gamma.eta()) < self.etaCentral:
131  event.selectedPhotonsCentral.append(gamma)
132 
133  event.selectedPhotons.sort(key = lambda l : l.pt(), reverse = True)
134  event.selectedPhotonsCentral.sort(key = lambda l : l.pt(), reverse = True)
135 
136  self.counters.counter('events').inc('all events')
137  if foundPhoton: self.counters.counter('events').inc('has >=1 gamma at preselection')
138  if len(event.selectedPhotons): self.counters.counter('events').inc('has >=1 selected gamma')
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def objects.PhotonAnalyzer.PhotonAnalyzer.matchPhotons (   self,
  event 
)

Definition at line 139 of file PhotonAnalyzer.py.

References funct.abs(), deltaR(), deltar.matchObjectCollection3(), core.Analyzer.Analyzer.mchandles, and benchmark_cfg.pdgId.

Referenced by objects.PhotonAnalyzer.PhotonAnalyzer.process().

140  def matchPhotons(self, event):
141  event.genPhotons = [ x for x in event.genParticles if x.status() == 1 and abs(x.pdgId()) == 22 ]
142  event.genPhotonsWithMom = [ x for x in event.genPhotons if x.numberOfMothers()>0 ]
143  event.genPhotonsWithoutMom = [ x for x in event.genPhotons if x.numberOfMothers()==0 ]
144  event.genPhotonsMatched = [ x for x in event.genPhotonsWithMom if abs(x.mother(0).pdgId())<23 or x.mother(0).pdgId()==2212 ]
145  match = matchObjectCollection3(event.allphotons, event.genPhotonsMatched, deltaRMax = 0.1)
146  matchNoMom = matchObjectCollection3(event.allphotons, event.genPhotonsWithoutMom, deltaRMax = 0.1)
147  packedGenParts = [ p for p in self.mchandles['packedGen'].product() if abs(p.eta()) < 3.1 ]
148  partons = [ p for p in self.mchandles['prunedGen'].product() if (p.status()==23 or p.status()==22) and abs(p.pdgId())<22 ]
149  for gamma in event.allphotons:
150  gen = match[gamma]
151  gamma.mcGamma = gen
152  if gen and gen.pt()>=0.5*gamma.pt() and gen.pt()<=2.*gamma.pt():
153  gamma.mcMatchId = 22
154  sumPt03 = 0.;
155  sumPt04 = 0.;
156  for part in packedGenParts:
157  if abs(part.pdgId())==12: continue # exclude neutrinos
158  if abs(part.pdgId())==14: continue
159  if abs(part.pdgId())==16: continue
160  if abs(part.pdgId())==18: continue
161  deltar = deltaR(gen.eta(), gen.phi(), part.eta(), part.phi())
162  if deltar <= 0.3:
163  sumPt03 += part.pt()
164  if deltar <= 0.4:
165  sumPt04 += part.pt()
166  sumPt03 -= gen.pt()
167  sumPt04 -= gen.pt()
168  if sumPt03<0. : sumPt03=0.
169  if sumPt04<0. : sumPt04=0.
170  gamma.genIso03 = sumPt03
171  gamma.genIso04 = sumPt04
172  # match to parton
173  deltaRmin = 999.
174  for p in partons:
175  deltar = deltaR(gen.eta(), gen.phi(), p.eta(), p.phi())
176  if deltar < deltaRmin:
177  deltaRmin = deltar
178  gamma.drMinParton = deltaRmin
179  else:
180  genNoMom = matchNoMom[gamma]
181  if genNoMom:
182  gamma.mcMatchId = 7
183  sumPt03 = 0.;
184  sumPt04 = 0.;
185  for part in packedGenParts:
186  if abs(part.pdgId())==12: continue # exclude neutrinos
187  if abs(part.pdgId())==14: continue
188  if abs(part.pdgId())==16: continue
189  if abs(part.pdgId())==18: continue
190  deltar = deltaR(genNoMom.eta(), genNoMom.phi(), part.eta(), part.phi())
191  if deltar <= 0.3:
192  sumPt03 += part.pt()
193  if deltar <= 0.4:
194  sumPt04 += part.pt()
195  sumPt03 -= genNoMom.pt()
196  sumPt04 -= genNoMom.pt()
197  if sumPt03<0. : sumPt03=0.
198  if sumPt04<0. : sumPt04=0.
199  gamma.genIso03 = sumPt03
200  gamma.genIso04 = sumPt04
201  # match to parton
202  deltaRmin = 999.
203  for p in partons:
204  deltar = deltaR(genNoMom.eta(), genNoMom.phi(), p.eta(), p.phi())
205  if deltar < deltaRmin:
206  deltaRmin = deltar
207  gamma.drMinParton = deltaRmin
208  else:
209  gamma.mcMatchId = 0
210  gamma.genIso03 = -1.
211  gamma.genIso04 = -1.
212  gamma.drMinParton = -1.
213 
214 
215 
216 
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
def matchObjectCollection3
Definition: deltar.py:41
def objects.PhotonAnalyzer.PhotonAnalyzer.printInfo (   self,
  event 
)

Definition at line 298 of file PhotonAnalyzer.py.

References eta, and EnergyCorrector.pt.

299  def printInfo(self, event):
300  print '----------------'
301  if len(event.selectedPhotons)>0:
302  print 'lenght: ',len(event.selectedPhotons)
303  print 'gamma candidate pt: ',event.selectedPhotons[0].pt()
304  print 'gamma candidate eta: ',event.selectedPhotons[0].eta()
305  print 'gamma candidate phi: ',event.selectedPhotons[0].phi()
306  print 'gamma candidate mass: ',event.selectedPhotons[0].mass()
307  print 'gamma candidate HoE: ',event.selectedPhotons[0].hOVERe()
308  print 'gamma candidate r9: ',event.selectedPhotons[0].full5x5_r9()
309  print 'gamma candidate sigmaIetaIeta: ',event.selectedPhotons[0].full5x5_sigmaIetaIeta()
310  print 'gamma candidate had iso: ',event.selectedPhotons[0].chargedHadronIso()
311  print 'gamma candidate neu iso: ',event.selectedPhotons[0].neutralHadronIso()
312  print 'gamma candidate gamma iso: ',event.selectedPhotons[0].photonIso()
313  print 'gamma idCutBased',event.selectedPhotons[0].idCutBased
314 
def objects.PhotonAnalyzer.PhotonAnalyzer.process (   self,
  event 
)

Definition at line 315 of file PhotonAnalyzer.py.

References objects.PhotonAnalyzer.PhotonAnalyzer.makePhotons(), objects.PhotonAnalyzer.PhotonAnalyzer.matchPhotons(), objects.PhotonAnalyzer.PhotonAnalyzer.randomCone(), and core.Analyzer.Analyzer.readCollections().

Referenced by ConfigBuilder.ConfigBuilder.addExtraStream(), ConfigBuilder.ConfigBuilder.completeInputCommand(), ConfigBuilder.ConfigBuilder.doNotInlineEventContent(), ConfigBuilder.ConfigBuilder.PrintAllModules.leave(), ConfigBuilder.ConfigBuilder.prepare_HLT(), ConfigBuilder.ConfigBuilder.prepare_LHE(), ConfigBuilder.ConfigBuilder.prepare_PATFILTER(), ConfigBuilder.ConfigBuilder.prepare_VALIDATION(), ConfigBuilder.ConfigBuilder.renameHLTprocessInSequence(), ConfigBuilder.ConfigBuilder.renameInputTagsInSequence(), and ConfigBuilder.ConfigBuilder.scheduleSequence().

316  def process(self, event):
317  self.readCollections( event.input )
318  self.makePhotons(event)
319 # self.printInfo(event)
320 
321  if self.cfg_ana.do_randomCone:
322  self.randomCone(event)
323 
324  if not self.cfg_comp.isMC:
325  return True
326 
327  if self.cfg_ana.do_mc_match and hasattr(event, 'genParticles'):
328  self.matchPhotons(event)
329 
330 
331  return True
332 
333 
setattr(PhotonAnalyzer,"defaultConfig",cfg.Analyzer(
def objects.PhotonAnalyzer.PhotonAnalyzer.randomCone (   self,
  event 
)

Definition at line 254 of file PhotonAnalyzer.py.

References funct.abs(), objects.PhotonAnalyzer.PhotonAnalyzer.computeRandomCone(), core.AutoHandle.AutoHandle.handles, core.Analyzer.Analyzer.handles, and HTTP.RequestManager.handles.

Referenced by objects.PhotonAnalyzer.PhotonAnalyzer.process().

255  def randomCone( self, event ):
256 
257  patcands = self.handles['packedCandidates'].product()
258  jets = self.handles['jets'].product()
259 
260  charged = [ p for p in patcands if ( p.charge() != 0 and abs(p.pdgId())>20 and abs(p.dz())<=0.1 and p.fromPV()>1 and p.trackHighPurity() ) ]
261  photons10 = [ p for p in patcands if ( p.pdgId() == 22 and p.pt()>10. ) ]
262  jets20 = [ j for j in jets if j.pt() > 20 and abs(j.eta())<2.5 ]
263 
264  for gamma in event.allphotons:
265 
266  etaPhot = gamma.eta()
267  phiPhot = gamma.eta()
268  pi = 3.14159
269  phiRC = phiPhot + 0.5*pi
270  while phiRC>pi:
271  phiRC -= 2.*pi
272 
273 
274  gamma.chHadIsoRC03 = self.computeRandomCone( event, etaPhot, phiRC, 0.3, charged, jets20, photons10 )
275  gamma.chHadIsoRC04 = self.computeRandomCone( event, etaPhot, phiRC, 0.4, charged, jets20, photons10 )
276 
277 
278  #try other side
279  phiRC = phiPhot - 0.5*pi
280  while phiRC<-pi:
281  phiRC += 2.*pi
282 
283  if gamma.chHadIsoRC03<0. : gamma.chHadIsoRC03 = self.computeRandomCone( event, etaPhot, phiRC, 0.3, charged, jets20, photons10 )
284  if gamma.chHadIsoRC04<0. : gamma.chHadIsoRC04 = self.computeRandomCone( event, etaPhot, phiRC, 0.4, charged, jets20, photons10 )
285 
Abs< T >::type abs(const T &t)
Definition: Abs.h:22

Member Data Documentation

objects.PhotonAnalyzer.PhotonAnalyzer.conversionSafe_eleVeto = False,
static

Definition at line 345 of file PhotonAnalyzer.py.

objects.PhotonAnalyzer.PhotonAnalyzer.do_mc_match = True,
static

Definition at line 346 of file PhotonAnalyzer.py.

objects.PhotonAnalyzer.PhotonAnalyzer.do_randomCone = False,
static

Definition at line 347 of file PhotonAnalyzer.py.

objects.PhotonAnalyzer.PhotonAnalyzer.doFootprintRemovedIsolation = False,
static

Definition at line 342 of file PhotonAnalyzer.py.

Referenced by objects.PhotonAnalyzer.PhotonAnalyzer.makePhotons().

objects.PhotonAnalyzer.PhotonAnalyzer.etaCentral

Definition at line 26 of file PhotonAnalyzer.py.

Referenced by objects.PhotonAnalyzer.PhotonAnalyzer.makePhotons().

float objects.PhotonAnalyzer.PhotonAnalyzer.etaMax = 2.5
static

Definition at line 337 of file PhotonAnalyzer.py.

objects.PhotonAnalyzer.PhotonAnalyzer.footprintRemovedIsolationPUCorr

Definition at line 30 of file PhotonAnalyzer.py.

string objects.PhotonAnalyzer.PhotonAnalyzer.footprintRemovedIsolationPUCorr = 'rhoArea'
static

Definition at line 344 of file PhotonAnalyzer.py.

string objects.PhotonAnalyzer.PhotonAnalyzer.gamma_isoCorr = 'rhoArea'
static

Definition at line 340 of file PhotonAnalyzer.py.

string objects.PhotonAnalyzer.PhotonAnalyzer.gammaID = "PhotonCutBasedIDLoose_CSA14"
static

Definition at line 338 of file PhotonAnalyzer.py.

objects.PhotonAnalyzer.PhotonAnalyzer.IsolationComputer

Definition at line 31 of file PhotonAnalyzer.py.

string objects.PhotonAnalyzer.PhotonAnalyzer.packedCandidates = 'packedPFCandidates'
static

Definition at line 343 of file PhotonAnalyzer.py.

string objects.PhotonAnalyzer.PhotonAnalyzer.photons = 'slimmedPhotons'
static

Definition at line 335 of file PhotonAnalyzer.py.

int objects.PhotonAnalyzer.PhotonAnalyzer.ptMin = 20
static

Definition at line 336 of file PhotonAnalyzer.py.

string objects.PhotonAnalyzer.PhotonAnalyzer.rhoPhoton = 'fixedGridRhoFastjetAll'
static

Definition at line 339 of file PhotonAnalyzer.py.