ATLAS Offline Software
Loading...
Searching...
No Matches
Dumpers.py
Go to the documentation of this file.
1# Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
2
3
13
14
15__doc__ = """python library to dump various EDM classes"""
16__version__ = "$Revision: 1.32 $"
17__author__ = "Scott Snyder, Sebastien Binet"
18
19
20from contextlib import contextmanager
21import sys
22from io import StringIO
23from math import \
24 log as math_log,\
25 sqrt as math_sqrt,\
26 hypot as math_hypot, \
27 isnan as math_isnan
28
29from AthenaPython import PyAthena
30from PyUtils.fprint import fprint, fprintln, fwrite
31from PyDumper import PDG
32import ROOT
33import cppyy
34
35def cmp(x, y):
36 return (x > y) - (x < y)
37
38# not available due to a reflex bug.
39etcone10 = 0
40nucone10 = 8
41
42# Suppress warnings we get from the gcc12 headers.
43ROOT.gROOT.ProcessLine ('#pragma clang diagnostic ignored "-Wdeprecated-declarations"')
44
45# Without these, cling gets confused by forward declarations.
46getattr (ROOT.xAOD, 'TrackParticleContainer_v1', None)
47getattr (ROOT.xAOD, 'Jet_v1', None)
48
49#Typed nullptr:
50JetAssociationBase = getattr (cppyy.gbl, 'JetAssociationBase', None)
51Analysis = getattr (cppyy.gbl, 'Analysis', None)
52Muon = getattr (Analysis, 'Muon', None) if Analysis else None
53jetAssocNull = cppyy.bind_object(cppyy.nullptr, JetAssociationBase) if JetAssociationBase else None
54muonNull = cppyy.bind_object(cppyy.nullptr, Muon) if Muon else None
55
56InDet = getattr (cppyy.gbl, 'InDet', None)
57InDetLowBetaCandidate = getattr (InDet, 'InDetLowBetaCandidate', None)
58InDetLowBetaCandidateNull = cppyy.bind_object(cppyy.nullptr, InDetLowBetaCandidate) if InDetLowBetaCandidate else None
59
60Trk = getattr (cppyy.gbl, 'Trk', None)
61FitQuality = getattr (Trk, 'FitQuality', None)
62fitQualityNull = cppyy.bind_object(cppyy.nullptr, FitQuality) if FitQuality else None
63
64
65# Work around a cling bug.
66if hasattr(ROOT,'TrackParticleTruthCollection'):
67 ROOT.TrackParticleTruthCollection()[ROOT.Rec.TrackParticleTruthKey()]
68 if hasattr(ROOT,'Jet'):
69 ROOT.Jet().jetTagInfoVector()
70 getattr(ROOT, 'ElementLinkVector<CaloClusterContainer>')
71 getattr(ROOT, 'vector<xAOD::CaloClusterBadChannelData_v1>')().__assign__(getattr(ROOT, 'vector<xAOD::CaloClusterBadChannelData_v1>')())
72hasattr (ROOT, 'xAOD::TruthParticle_v1')
73ROOT.TClass.GetClass('ElementLink<DataVector<xAOD::TruthParticle_v1> >')
74if hasattr (ROOT, 'xAOD::Muon_v1'):
75 ROOT.gROOT.ProcessLine ('#include "xAODMuon/MuonContainer.h"')
76 ROOT.TClass.GetClass('ElementLink<DataVector<xAOD::Muon_v1> >')
77
78
79
80def asinh (x):
81 arg = math_sqrt (x*x+1) - x
82 if arg == 0:
83 return 1e30 # protect against loss of precision.
84 return - math_log (arg)
85
86def toiter (beg, end):
87 while beg != end:
88 yield beg.__deref__()
89 beg.__preinc__()
90 return
91
92def toiter1 (c):
93 return toiter (c.begin(), c.end())
94
95def nolist (f):
96 f.nolist = 1
97 f.nmax = False
98 return f
99
101 f.nolist = 1
102 f.nmax = True
103 return f
104
105def tonone (x):
106 if not x: return None
107 return x
108
109def asint(x):
110 if x>(1<<63):
111 return x - (1<<64)
112 return x
113
114def asint32(x):
115 if x>(1<<63):
116 return x - (1<<64)
117 elif x>(1<<31):
118 return x - (1<<32)
119 return x
120
122 sa = ROOT.PyDumper.SafeFloatAccess(v)
123 return [sa[i]for i in range(len(v))]
124
125@contextmanager
126def signalstate (o, state):
127 if hasattr(o, 'setSignalState'):
128 old = o.signalState()
129 o.setSignalState (state)
130 yield
131 o.setSignalState (old)
132 else:
133 sh = PyAthena.SignalStateHelper (o)
134 sh.setSignalState (state)
135 yield
136 sh.releaseObject
137 return
138
139
140def daz(f):
141 if math_isnan(f):
142 return 'nan'
143 if abs(f) < 1e-38:
144 return 0.0
145 return f
146
147
149 def __init__ (self, x):
150 self.x = x
152 """Helper for doing formatting compatibly with py2.
153
154Convert X to a string, but add a `L' to the ends of integers.
155Can be used for formatting expressions that using longs in py2.
156"""
157 if isinstance (x, list):
158 sl = [formatItemUsingLong (xx) for xx in x]
159 return '[' + ', '.join (sl) + ']'
160 if isinstance (x, tuple):
161 sl = [formatItemUsingLong (xx) for xx in x]
162 return '(' + ', '.join (sl) + ')'
163 if isinstance (x, int):
164 return str(x) + 'L'
165 if isinstance (x, forceInt):
166 return str(x.x)
167 if isinstance(x, ROOT.std.string):
168 # remove leading 'b' added to repr(std.string) by cppyy 3.1.2 in ROOT 6.32
169 return repr(str(x))
170 return repr(x)
171
172
173def boolvec (v):
174 out = ''
175 for x in v:
176 if x:
177 out = '1' + out
178 else:
179 out = '0' + out
180 return out
181
182
183# For root 6.08, need to use __cppname__ rather than __name__
184# for the name of a type if it's there.
185def typename(t):
186 return getattr (t, '__cpp_name__', t.__name__)
187
188
189
190#change -0 -> 0
191def fix_neg0 (x, thresh = 0):
192 return 0 if x == 0 or abs(x) < thresh else x
193
194
195def dump_H3V (v, f):
196 fprint (f, "(%f %f %f)" %
197 (v.perp(),v.eta(),v.phi()))
198 return
199
200def dump_HLV (v, f):
201 m2 = v.e()**2 - v.px()**2 - v.py()**2 - v.pz()**2
202 # Be insensitive to some rounding errors.
203 m2 = fix_neg0 (m2, 1e-3)
204 if m2 < 0:
205 m = - math_sqrt (-m2)
206 else:
207 m = math_sqrt (m2)
208
209 #if abs(m-int(m)-0.5) < 1e-4: m += 0.01
210
211 pt = math_hypot (v.px(), v.py())
212 if pt < 1e-3:
213 if v.pz() > 0:
214 eta = 100
215 else:
216 eta = -100
217 else:
218 eta = asinh (v.pz() / pt)
219
220 fprint (f, "(%f %f %f %f)" %
221 (v.perp(),eta,v.phi(), m))
222 return
223
224
225def dump_Fourvec (v, f, parens=1):
226 ParticleImpl_EEtaPhiM = getattr(PyAthena,'ParticleImpl<NavigableTerminalNode,P4ImplEEtaPhiM,ParticleEvent::Base>')
227
228 #vmom = v.momentumBase() if hasattr(v, 'momentumBase') else None
229 vmom = None
230 if isinstance(v, (PyAthena.P4EEtaPhiMBase, ParticleImpl_EEtaPhiM, PyAthena.xAOD.IParticle)) or \
231 isinstance(vmom, PyAthena.P4BaseEEtaPhiM):
232 m = v.m()
233 eta = v.eta()
234 if m > v.e():
235 pt = 0
236 else:
237 pt = v.pt()
238 elif isinstance (v, PyAthena.P4PtEtaPhiMBase) or \
239 isinstance (vmom, PyAthena.P4BasePtEtaPhiM):
240 m = v.m()
241 eta = v.eta()
242 pt = v.pt()
243 elif isinstance (v, PyAthena.P4IPtCotThPhiMBase) or \
244 isinstance (vmom, PyAthena.P4BaseIPtCotThPhiM):
245 m = v.m()
246 ipt = v.iPt()
247 cotth = v.cotTh()
248
249 # Special case: avoid div-by-zero for null vector.
250 if ipt == 0 and m == 0 and cotth == 0 and v.phi() == 0:
251 pt = 0
252 eta = 0
253 else:
254 aux = math_hypot(1, cotth)
255 eta = math_log ((aux-cotth) / (aux+cotth))
256 pt = 1 / ipt
257 else: # PxPyPzE-based
258 pt = v.pt()
259
260 # Calculating m from px,py,pz,e is prone to FP significance
261 # problems, as m may be small compared to momenta.
262 # We can get different results from m() in debug/opt builds.
263 # Do the calculation in python instead for consistency.
264 m2 = v.e()**2 - v.px()**2 - v.py()**2 - v.pz()**2
265 if m2 < 0:
266 m = - math_sqrt (-m2)
267 else:
268 m = math_sqrt (m2)
269
270 # Same thing shows up for eta.
271 pt = math_hypot (v.px(), v.py())
272 if pt == 0:
273 if v.pz() > 0:
274 eta = 100
275 else:
276 eta = -100
277 else:
278 eta = asinh (v.pz() / pt)
279
280 #if abs(m-int(m)-0.5) < 1e-4: m += 0.01
281 if parens: fprint (f, '(')
282 fprint (f, "%f %f %f %f" % (pt, eta, v.phi(), m))
283 if parens: fprint (f, ')')
284 return
285
286def dump_Threevec (v, f):
287 fprint (f, "(%f %f %f)" % (fix_neg0(v.x(), thresh=1e-8),
288 fix_neg0(v.y(), thresh=1e-8),
289 fix_neg0(v.z(), thresh=1e-8)))
290 return
291
292def dump_Twovec (v, f):
293 fprint (f, "(%f %f)" % (v.x(), v.y()))
294 return
295
296def dump_AmgMatrix (m, f, thresh=1e-38):
297 fprint (f, '[')
298 for r in range(m.rows()):
299 fprint (f, '[')
300 for c in range(m.cols()):
301 v = m(r,c)
302 if abs(v) < thresh: v = 0
303 fprint (f, '%#6.3g' % v)
304 fprint (f, ']')
305 fprint (f, ']')
306 return
307
308def dump_AmgVector (m, f, thresh=1e-38, prec=3):
309 if not m:
310 fprint (f, '(null vector)')
311 return
312 fprint (f, '[')
313 for r in range(m.rows()):
314 v = m(r)
315 if abs(v) < thresh: v = 0
316 fprint (f, '%#6.*g' % (prec, v))
317 fprint (f, ']')
318 return
319
320
321def dump_EL (l, f):
322 nm = typename(l.__class__)
323 pos1 = nm.find('<')
324 pos2 = nm.rfind ('>')
325 nm = nm[pos1+1:pos2].strip()
326 if l.isDefault():
327 nm = nm + '/(null)'
328 else:
329 nm = nm + '/%s[%d]' % (l.dataID(), l.index())
330 fprint (f, nm)
331 return
332
333
335 dump_Fourvec (e, f, 0)
336 orig = e.originLink()
337 if e.hasCharge():
338 charge = "%f" % e.charge()
339 else:
340 charge = "N/A"
341 fprint (f, " %1d %1d %4d %s" %
342 (e.dataType(), e.hasPdgId(), asint32(e.pdgId()), charge))
343 if orig.isValid():
344 fprint (f, "%1d"%orig.index())
345 dump_Threevec (e.origin().position(), f)
346 else:
347 fprint (f, "(no orig)")
348 return
349
350
352 dump_Fourvec (p, f, 0)
353 if p.hasCharge():
354 c = fix_neg0(p.charge())
355 c = '%f' % c
356 else:
357 c = 'N/A'
358 fprint (f, ' %d %s %5d ' %
359 (p.dataType(), c, asint32(p.pdgId())))
360 if p.origin():
361 dump_Threevec (p.origin().position(), f)
362 else:
363 fprint (f, "(no orig)")
364 return
365
366
367def dump_EMConvert (d, f):
368 fprint (f, d.convTrackMatch(), d.convAngleMatch())
369 return
370
371def dump_EMBremFit (d, f):
372 ip = d.bremInvpT()
373 iperr = d.bremInvpTerr()
374 if ip==-999: ip = 0
375 if iperr==-999: iperr = 0
376 br = d.bremRadius()
377 bx = d.bremX()
378 if br == -999: br = 0
379 if bx == -999: bx = 0
380 nt = d.bremNTRT()
381 nr = d.bremNR()
382 if nt == -999: nt = 0
383 if nr == -999: nr = 0
384 d0 = d.bremD0()
385 phi0 = d.bremPhi0()
386 if d0 == -999: d0 = 0
387 if phi0 == -999: phi0 = 0
388 fprint (f, "%f %f %f %f %f %2d %2d %2d %2d %f %f" %
389 (ip*1e6, br, bx, iperr*1e6,
390 d.bremClusterRadius(), d.bremFitStatus(), d.bremErrorFlag(),
391 nt, nr, d0, phi0))
392 fprint (f, d.bremZ0(), d.bremDzDr(), d.bremNZ(), d.bremFitChi2())
393 return
394
396 fprint (f, "%f %f %4d %4d" %
397 (d.deltaEta(2), d.deltaPhi(2),
398 d.trackNumber(), d.tracksInBroadWindow()))
399 fprint (f, d.trackRefit(), d.isPrimary())
400 return
401
402def dump_EMShower (d, f):
403 weta1 = d.weta1()
404 if weta1 < -10: weta1 = 0
405 pos7 = d.pos7()
406 if pos7 < -10: pos7 = 0
407 # FIXME: backward compat
408 if not hasattr(d, 'etconoisedR04Sig2'):
409 d.etconoisedR04Sig2 = d.etconoise20
410 d.etconoisedR04Sig3 = d.etconoise30
411 fprint (f, d.e011(), d.e033(), d.ethad1(),
412 d.ethad(), d.ehad1(), d.f1(), d.f3(), d.f1core(), d.f3core(),
413 d.e233(), d.e235(), d.e255(), d.e237(), d.e277(), d.e333(),
414 d.e335(), d.e337(), d.e377(), weta1, d.weta2(), d.e2ts1(),
415 d.e2tsts1(), d.fracs1(), d.widths1(), d.widths2(),
416 d.poscs1(), d.poscs2(), d.asy1(), d.pos(), pos7, d.barys1(),
417 d.wtots1(), d.emins1(), d.emaxs1(), d.etcone(), d.etcone20(),
418 d.etcone30(), d.etcone40(),
419 d.etconoisedR04Sig2(), d.etconoisedR04Sig3(),
420 d.ecore())
421 if hasattr (d, 'e131'):
422 fprint (f, d.e131(), d.e1153(), d.iso())
423 else:
424 fprint (f, d.e132(), d.e1152(), d.r33over37allcalo())
425 return
426
427# Sometimes, we can get denormal floats in the files we read.
428# However, when reading, the denormals-as-zero flag can be set
429# if we've loaded any library compiled with -ffast-math.
430def uf(x):
431 if abs(x) < 1e-38: return 0
432 return x
433
435 fprint (f, d.linkIndex())
436 fprint (f, '\n ',
437 uf(d.EMconvertedphoton_perigee_d0()),
438 uf(d.EMconvertedphoton_perigee_z0()),
439 uf(d.EMconvertedphoton_perigee_phi0()),
440 uf(d.EMconvertedphoton_perigee_theta()),
441 uf(d.EMconvertedphoton_perigee_eta()),
442 uf(d.EMconvertedphoton_perigee_momentum()),
443 uf(d.EMconvertedphoton_perigee_Covd0d0 ()),
444 uf(d.EMconvertedphoton_perigee_Covd0z0 ()),
445 uf(d.EMconvertedphoton_perigee_Covd0phi ()),
446 uf(d.EMconvertedphoton_perigee_Covd0theta ()),
447 uf(d.EMconvertedphoton_perigee_Covz0z0 ()),
448 uf(d.EMconvertedphoton_perigee_Covz0phi ()),
449 uf(d.EMconvertedphoton_perigee_Covz0theta ()),
450 uf(d.EMconvertedphoton_perigee_Covphiphi ()),
451 uf(d.EMconvertedphoton_perigee_Covphitheta ()),
452 uf(d.EMconvertedphoton_perigee_Covthetatheta ()))
453 fprint (f, '\n ',
454 uf(d.EMtrack_perigee_d0 ()),
455 uf(d.EMtrack_perigee_phi0 ()),
456 uf(d.EMtrack_perigee_z0 ()),
457 uf(d.EMtrack_perigee_theta ()),
458 uf(d.EMtrack_perigee_eta ()),
459 uf(d.EMtrack_perigee_momentum ()),
460 uf(d.EMtrack_perigee_Covd0d0 ()),
461 uf(d.EMtrack_perigee_Covd0z0 ()),
462 uf(d.EMtrack_perigee_Covd0phi ()),
463 uf(d.EMtrack_perigee_Covd0theta ()),
464 uf(d.EMtrack_perigee_Covz0z0 ()),
465 uf(d.EMtrack_perigee_Covz0phi ()),
466 uf(d.EMtrack_perigee_Covz0theta ()),
467 uf(d.EMtrack_perigee_Covphiphi ()),
468 uf(d.EMtrack_perigee_Covphitheta ()),
469 uf(d.EMtrack_perigee_Covthetatheta ()))
470 fprint (f, '\n ',
471 uf(d.EMphoton_eta ()),
472 uf(d.EMphoton_phi0 ()),
473 uf(d.EMphoton_Eclus ()),
474 uf(d.EMphoton_Covetaeta ()),
475 uf(d.EMphoton_Covetaphi ()),
476 uf(d.EMphoton_CovetaEclus ()),
477 uf(d.EMphoton_Covphiphi ()),
478 uf(d.EMphoton_CovphiEclus ()),
479 uf(d.EMphoton_CovEclusEclus ()))
480 fprint (f, '\n ',
481 uf(d.EMtrack_comb_Covd0d0 ()),
482 uf(d.EMtrack_comb_Covd0z0 ()),
483 uf(d.EMtrack_comb_Covd0phi ()),
484 uf(d.EMtrack_comb_Covd0eta ()),
485 uf(d.EMtrack_comb_Covd0P ()),
486 uf(d.EMtrack_comb_Covz0z0 ()),
487 uf(d.EMtrack_comb_Covz0phi ()),
488 uf(d.EMtrack_comb_Covz0eta ()),
489 uf(d.EMtrack_comb_Covz0P ()),
490 uf(d.EMtrack_comb_Covphiphi ()),
491 uf(d.EMtrack_comb_Covphieta ()),
492 uf(d.EMtrack_comb_CovphiP ()),
493 uf(d.EMtrack_comb_Covetaeta ()),
494 uf(d.EMtrack_comb_CovetaP ()),
495 uf(d.EMtrack_comb_CovPP ()))
496 return
497
498
500 fprint (f, '\n ',
501 d.track_perigee_d0 (),
502 d.track_perigee_phi0 (),
503 d.track_perigee_qOverP(),
504 d.track_perigee_z0 (),
505 d.track_perigee_theta (),
506 d.track_perigee_Covd0d0 (),
507 d.track_perigee_Covd0z0 (),
508 d.track_perigee_Covd0phi (),
509 d.track_perigee_Covd0theta (),
510 d.track_perigee_Covd0qOverP (),
511 d.track_perigee_Covz0z0 (),
512 d.track_perigee_Covz0phi (),
513 d.track_perigee_Covz0theta (),
514 d.track_perigee_Covz0qOverP (),
515 d.track_perigee_Covphiphi (),
516 d.track_perigee_Covphitheta (),
517 d.track_perigee_CovphiqOverP (),
518 d.track_perigee_Covthetatheta (),
519 d.track_perigee_CovthetaqOverP (),
520 d.track_perigee_CovqOverPqOverP ())
521 fprint (f, '\n ',
522 d.track_LastM_loc1 (),
523 d.track_LastM_loc2 (),
524 d.track_LastM_phi (),
525 d.track_LastM_theta (),
526 d.track_LastM_qOverP (),
527 d.bremTrackAuthor (),
528 d.hasBrem (),
529 d.bremRadius (),
530 d.bremRadiusErr (),
531 d.bremDeltaZ (),
532 d.bremDeltaZerr (),
533 d.bremMaterialTraversed (),
534 d.bremFitChi2(),
535 d.bremFitStatus (),
536 d.linkIndex ())
537 return
538
539def dump_egamma (e, f):
540 #cppyy.loadDictionary ('libElectronPhotonSelectorToolsDict')
541 dump_ParticleImpl (e, f)
542 fprint (f, "\n %d %d %d" % (e.author(), e.isem(), e.isemse()))
543 if e.clusterElementLink().isValid():
544 fprint (f, '\n cl: %2d:' % e.clusterElementLink().index())
545 dump_Fourvec (e.cluster(), f)
546 for i in range(e.nTrackParticles()):
547 tp = e.trackParticleElementLink(i)
548 if tp.isValid():
549 fprint (f, '\n tp: %2d:' %tp.index())
550 dump_Fourvec (e.trackParticle(i), f)
551 for i in range(e.nConversions()):
552 cv = e.conversionElementLink(i)
553 if cv.isValid():
554 fprint (f, '\n cv: %2d:' % cv.index())
555 dump_Threevec (e.conversion(i).recVertex().position(), f)
556 for i in range (e.nDetails()):
557 if e.detailElementLink(i).isValid():
558 d = e.detail(i)
559 fprint (f, '\n %s: ' % d.className())
560 if isinstance (d, PyAthena.EMConvert):
561 dump_EMConvert (d, f)
562 elif isinstance (d, PyAthena.EMBremFit):
563 dump_EMBremFit (d, f)
564 elif isinstance (d, PyAthena.EMTrackMatch):
565 dump_EMTrackMatch (d, f)
566 elif isinstance (d, PyAthena.EMShower):
567 dump_EMShower (d, f)
568 elif isinstance (d, PyAthena.EMErrorDetail):
569 dump_EMErrorDetail (d, f)
570 elif isinstance (d, PyAthena.EMTrackFit):
571 dump_EMTrackFit (d, f)
572 else:
573 fprint (f, d)
574 else:
575 fprint (f, '\n Detail link %d not valid; skipped.' % i)
576 try:
577 pid = PyAthena.egammaPIDObs
578 except TypeError:
579 pid = PyAthena.egammaPID
580 fprint (f, '\n pid: %g %g %f %g %f %f' %
581 (e.egammaID(pid.ElectronWeight), e.egammaID(pid.BgWeight),
582 e.egammaID(pid.NeuralNet), e.egammaID(pid.Hmatrix),
583 e.egammaID(pid.IsolationLikelihood_jets),
584 e.egammaID(pid.IsolationLikelihood_HQDelectrons)))
585 return
586
587def dump_Electron (e, f):
588 dump_egamma (e, f)
589 return
590
591def dump_Photon (e, f):
592 dump_egamma (e, f)
593 return
594
595
597 if not p:
598 fprint (f, None)
599 return
600 fprint (f, p.deltaE(), p.sigmaDeltaE(), p.sigmaMinusDeltaE(), p.sigmaPlusDeltaE())
601 fprint (f, p.meanIoni(), p.sigmaIoni(), p.meanRad(), p.sigmaRad(), p.length())
602 return
603
604
606 dump_EnergyLoss (p, f)
607 fprint (f, '%d %f %f %f %f' %
608 (p.energyLossType(),
609 p.caloMuonIdTag(),
610 p.caloLRLikelihood(),
611 p.fsrCandidateEnergy(),
612 p.etCore()))
613 fprint (f, p.deltaEParam(), p.sigmaMinusDeltaEParam(), p.sigmaPlusDeltaEParam(), p.deltaEMeas(), p.sigmaDeltaEMeas())
614 fprint (f, '\n deposits:')
615 for d in p.depositInCalo():
616 fprint (f, " (%d %f %f)" %
617 (d.subCaloId(), d.energyDeposited(), d.muonEnergyLoss()))
618 return
619
620
621def dump_TauShot (t, f):
622 dump_EL (t.clusterLink(), f)
623 fprint (f, ' ')
624 dump_EL (t.seedLink(), f)
625 fprint (f, ' %d %d %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f' %
626 (t.nCellsInEta(),
627 t.nPhotons(),
628 t.pt1(),
629 t.pt3(),
630 t.pt5(),
631 t.ws5(),
632 t.sdevEta5_WRTmean(),
633 t.sdevEta5_WRTmode(),
634 t.sdevPt5(),
635 t.deltaPt12_min(),
636 t.Fside_3not1(),
637 t.Fside_5not1(),
638 t.Fside_5not3(),
639 t.fracSide_3not1(),
640 t.fracSide_5not1(),
641 t.fracSide_5not3(),
642 t.pt1OverPt3(),
643 t.pt3OverPt5(),
644 t.mergedScore(),
645 t.signalScore()))
646 return
647
648
649def dump_TauDetail (t, f):
650 nm = t.className()
651 if nm.startswith('Analysis::'):
652 nm = nm[10:]
653 fprint (f, '%s:' % nm)
654 return
655
657 dump_TauDetail (t, f)
658 fprint (f, ' %f %1d %f %f %1d %1d %f %f %f %f' %
659 (t.emRadius(),
660 t.numStripCells(),
661 t.etChrgHAD(),
662 t.etIsolHAD(),
663 t.nAssocTracksCore(),
664 t.nAssocTracksIsol(),
665 t.etEMAtEMScale(),
666 t.etChrgEM(),
667 t.etNeuEM(),
668 t.etChrgEM01Trk(0)))
669 fprint (f, '\n ')
670 fprint (f, ' %f %f %f %f %f %f %f %f %f %f %f %f %f %f %f' %
671 (t.isolationFraction(),
672 t.stripWidth2(),
673 t.etIsolEM(),
674 t.massTrk3P(),
675 t.rWidth2Trk3P(),
676 t.signD0Trk3P(),
677 t.z0SinThetaSig(),
678 t.etChrgHADoverPttot(),
679 t.etIsolFrac(),
680 t.etEflow(),
681 t.etHadAtEMScale(),
682 t.etEMCL(),
683 t.etResNeuEM(),
684 t.trFlightPathSig(),
685 t.etResChrgEMTrk(0)))
686 fprint (f, '\n ')
687 dump_HLV (t.sumEM(), f)
688 if t.secVertex():
689 dump_Threevec (t.secVertex().position(), f)
690 if t.cellEM012Cluster():
691 dump_Fourvec (t.cellEM012Cluster(), f)
692 for i in range(t.numPi0()):
693 fprint (f, '\n pi: ')
694 dump_Fourvec (t.pi0 (i), f)
695 return
696
697
699 dump_TauDetail (t, f)
700 # numTrack, trackCaloEta, trackCaloPhi
701 fprint (f, '%f %f %f %f %2d %f %f %f' %
702 (t.emRadius(),
703 t.isolationFraction(),
704 t.centralityFraction(),
705 t.stripWidth2(),
706 t.numStripCells(),
707 t.etEMCalib(),
708 t.etHadCalib(),
709 t.leadingTrackPT()))
710 fprint (f, '\n ')
711 for i in range(t.numTrack()):
712 fprint (f, '(%f %f) ' % (t.trackCaloEta(i), t.trackCaloPhi(i)))
713 fprint (f, '\n ')
714 dump_HLV (t.sumEM(), f)
715 if t.secVertex():
716 dump_Threevec (t.secVertex().position(), f)
717 return
718
719
721 dump_TauDetail (t, f)
722 fprint (f, t.sumPTTracks())
723 # Can't unpack cells in ARA; don't dump:
724 # closestEtaTrkVertCell
725 # closestPhiTrkVertCell
726 # closestEtaTrkCell
727 for tr in range(t.ntrack()):
728 for s in range(t.nsamp()):
729 fprint (f, '\n ', tr, s,
730 t.etaTrackCaloSamp(tr,s), t.phiTrackCaloSamp(tr,s))
731 return
732
733
735 dump_TauDetail (t, f)
736 fprint (f, t.numEMCells(), t.stripET(), t.emCentralityFraction(),
737 t.etHadAtEMScale(), t.etEMAtEMScale(), t.energy(), t.emEnergy(),
738 t.sumPTTracks(), t.seedType(), tonone(t.analysisHelper()))
739 return
740
741
743 dump_HLV (t.hlv(), f)
744 fprint (f, ' [')
745 for c in t.pi0ClusterVec():
746 fprint (f, c.clusterLink().index(), ', ')
747 fprint (f, ']')
748 return
749
750
752 fprint (f, t.clusterLink().index(),
753 t.deltaPhi(),
754 t.deltaTheta(),
755 t.engFracEM(),
756 t.engFracMAX(),
757 t.engFracCore(),
758 t.secondEngDens(),
759 t.LATERAL(),
760 t.LONGITUDINAL(),
761 t.EM1CoreFrac(),
762 t.asymmetryInEM1WRTTrk(),
763 t.NHitsInEM1(),
764 t.NPosECells_PS(),
765 t.NPosECells_EM1(),
766 t.NPosECells_EM2(),
767 t.firstEtaWRTClusterPosition_EM1(),
768 t.firstEtaWRTClusterPosition_EM2(),
769 t.secondEtaWRTClusterPosition_EM1(),
770 t.secondEtaWRTClusterPosition_EM2(),
771 t.BDTScore())
772 for s in t.tauShotVec():
773 fprint (f, '\n shot ')
774 dump_TauShot (s, f)
775 return
776
777
778
780 dump_TauDetail (t, f)
781 dump_HLV (t.visTauhlv(), f)
782 fprint (f, ' candidates')
783 for c in t.pi0CandidateVector():
784 fprint (f, '\n ')
785 dump_TauPi0Candidate (c, f)
786 fprint (f, ' clusters')
787 for c in t.pi0ClusterVector():
788 fprint (f, '\n ')
789 dump_TauPi0Cluster (c, f)
790 for s in t.shotVector():
791 fprint (f, '\n shot ')
792 dump_TauShot (s, f)
793 return
794
795
797 dump_TauDetail (t, f)
798 fprint (f, t.ipZ0SinThetaSigLeadTrk(), t.etOverPtLeadTrk(),
799 t.leadTrkPt(), t.ipSigLeadTrk(), t.ipSigLeadLooseTrk(),
800 t.etOverPtLeadLooseTrk(), t.leadLooseTrkPt(), t.chrgLooseTrk(),
801 t.massTrkSys(), t.trkWidth2())
802 fprint (f, '\n ')
803 fprint (f, t.trFlightPathSig(), t.etEflow(), t.seedCalo_EMRadius(),
804 t.seedCalo_hadRadius(), t.seedCalo_etEMAtEMScale(),
805 t.seedCalo_etHadAtEMScale(), t.seedCalo_isolFrac(),
806 t.seedCalo_centFrac(), t.seedCalo_stripWidth2(), t.seedCalo_nStrip())
807 fprint (f, '\n ')
808 fprint (f, t.seedCalo_etEMCalib(), t.seedCalo_etHadCalib(),
809 t.seedCalo_eta(), t.seedCalo_phi(), t.seedCalo_nIsolLooseTrk(),
810 t.seedTrk_EMRadius(), t.seedTrk_isolFrac(),
811 t.seedTrk_etChrgHadOverSumTrkPt(), t.seedTrk_isolFracWide(),
812 t.seedTrk_etHadAtEMScale())
813 fprint (f, '\n ')
814 fprint (f, t.seedTrk_etEMAtEMScale(), t.seedTrk_etEMCL(),
815 t.seedTrk_etChrgEM(), t.seedTrk_etNeuEM(),
816 t.seedTrk_etResNeuEM(), t.seedTrk_hadLeakEt(),
817 t.seedTrk_sumEMCellEtOverLeadTrkPt(), t.seedTrk_secMaxStripEt(),
818 t.seedTrk_stripWidth2(), t.seedTrk_nStrip())
819 fprint (f, '\n ')
820 fprint (f, t.seedTrk_etChrgHad(), t.seedTrk_nOtherCoreTrk(),
821 t.seedTrk_nIsolTrk(), t.seedTrk_etIsolEM(), t.seedTrk_etIsolHad())
822 fprint (f, '\n %d loose tracks' % t.nLooseTrk())
823 looseTrks = t.looseTrk()
824 for i in range(looseTrks.size()):
825 el = looseTrks[i]
826 fprint (f, '\n ', el.index(), el.dataID(),
827 t.seedTrk_etChrgEM01Trk(i), t.seedTrk_etResChrgEMTrk(i))
828 fprint (f, '\n %d pi0s' % t.nPi0())
829 vec = t.pi0LinkVec()
830 for i in range(vec.size()):
831 el = vec[i]
832 # nb. indices may vary from run to run. list isn't sorted?
833 fprint (f, '\n ', el.dataID(), el.e())
834 fprint (f, '\n pi0 sum:')
835 dump_HLV (t.sumPi0Vec(), f)
836 cl = t.cellEM012ClusterLink()
837 fprint (f, '\n cluster:')
838 if cl.isValid():
839 fprint (f, cl.index(), cl.dataID())
840 else:
841 fprintln (f, '(invalid)')
842 fprint (f, '\n secvertex:')
843 if t.secVtx():
844 dump_RecVertex (t.secVtx(), f)
845 else:
846 fprint (f, None)
847 return
848
849
850def dump_vvelccell (c, f):
851 fprint (f, '[')
852 for v in c:
853 fprint (f, '[')
854 for el in v:
855 if el.isValid():
856 fprint (f, '(', el.dataID(), el.index(), ') ')
857 else:
858 fprint (f, '(invEL) ')
859 fprint (f, ']')
860 fprint (f, ']')
861 return
862
863
864def dump_vvdouble (c, f):
865 fprint (f, '[')
866 for v in c:
867 fprint (f, '[')
868 for d in v:
869 fprint (f, d, ',')
870 fprint (f, ']')
871 fprint (f, ']')
872 return
873
874
876 dump_TauDetail (t, f)
877 fprint (f, t.sumPtLooseTrk(), t.sumPtTrk(), t.seedCalo_nEMCell(),
878 t.seedCalo_stripEt(), t.seedCalo_EMCentFrac(),
879 t.seedCalo_sumCellEnergy(), t.seedCalo_sumEMCellEnergy())
880 fprint (f, '\n ')
881 dump_vvelccell (t.closestEtaTrkVertCell(), f)
882 fprint (f, '\n ')
883 dump_vvelccell (t.closestPhiTrkVertCell(), f)
884 fprint (f, '\n ')
885 dump_vvelccell (t.closestEtaTrkCell(), f)
886 fprint (f, '\n ')
887 dump_vvelccell (t.closestPhiTrkCell(), f)
888 fprint (f, '\n ')
889 dump_vvdouble (t.etaTrkCaloSamp(), f)
890 fprint (f, '\n ')
891 dump_vvdouble (t.phiTrkCaloSamp(), f)
892 fprint (f, '\n ')
893 dump_vvdouble (t.etaLooseTrkCaloSamp(), f)
894 fprint (f, '\n ')
895 dump_vvdouble (t.phiLooseTrkCaloSamp(), f)
896 return
897
898
899def dump_TauJet (t, f):
900 dump_ParticleImpl (t, f)
901 fprint (f, ' %1d' % (t.author(),))
902 # xxx numberOfTracks doesn't seem to be initialized in reco --- don't dump.
903 if t.clusterLink().isValid():
904 fprint (f, '\n cl: %2d:' % t.clusterLink().index())
905 dump_Fourvec (t.cluster(), f)
906 if t.cellClusterLink().isValid():
907 # Note: cluster container is unsorted. Means that indices
908 # are unstable. So don't print them.
909 fprint (f, '\n ce: ')
910 dump_Fourvec (t.cellCluster(), f)
911 if t.jetLink().isValid():
912 fprint (f, '\n je: %2d:' % t.jetLink().index())
913 j = t.jet()
914 if j.e() == 0 and j.phi() == 0 and j.eta() == 0:
915 with signalstate (j, PyAthena.P4SignalState.JETEMSCALE):
916 dump_Fourvec (j, f)
917 else:
918 dump_Fourvec (j, f)
919 for i in range (t.numTrack()):
920 el = t.trackLinkVector()[i]
921 if el.isValid():
922 fprint (f, '\n t%d: %2d:' % (i,el.index()))
923 dump_Fourvec (t.track(i), f)
924 pid = t.tauID()
925 TJP = PyAthena.TauJetParameters
926 if pid:
927 fprint (f, '\n pid: %f %f %f %d %d %d' %
928 (pid.discriminant(0),
929 pid.discriminant(1),
930 pid.discriminant(2),
931 pid.flag (TJP.ElectronFlag),
932 pid.flag (TJP.EgammaFlag),
933 pid.flag (TJP.MuonFlag)))
934 if hasattr (TJP, 'TauCutLoose'):
935 flags = [TJP.TauCutLoose,
936 TJP.TauCutMedium,
937 TJP.TauCutTight,
938 TJP.ElectronVeto,
939 TJP.MuonVeto,
940 TJP.TauLlhTight,
941 TJP.TauLlhMedium,
942 TJP.TauLlhLoose,
943 ]
944 if hasattr (TJP, 'TauRecOld'):
945 flags.append (TJP.TauRecOld)
946 if hasattr (TJP, 'Tau1P3POld'):
947 flags.append (TJP.Tau1P3POld)
948 fprint (f, '\n ', [pid.isTau(ff) for ff in flags])
949 else:
950 fprint (f, '\n ', pid.isTau())
951 for i in range (t.nDetails()):
952 fprint (f, '\n ')
953 if t.detailElementLink(i).isValid():
954 d = t.detail(i)
955 if (hasattr (PyAthena.Analysis, 'Tau1P3PDetails') and
956 isinstance (d, PyAthena.Analysis.Tau1P3PDetails)):
957 dump_Tau1P3PDetails (d, f)
958 elif (hasattr (PyAthena.Analysis, 'TauRecDetails') and
959 isinstance (d, PyAthena.Analysis.TauRecDetails)):
960 dump_TauRecDetails (d, f)
961 elif (hasattr (PyAthena.Analysis, 'Tau1P3PExtraDetails') and
962 isinstance (d, PyAthena.Analysis.Tau1P3PExtraDetails)):
963 dump_Tau1P3PExtraDetails (d, f)
964 elif (hasattr (PyAthena.Analysis, 'TauRecExtraDetails') and
965 isinstance (d, PyAthena.Analysis.TauRecExtraDetails)):
966 dump_TauRecExtraDetails (d, f)
967 elif (hasattr (PyAthena.Analysis, 'TauPi0Details') and
968 isinstance (d, PyAthena.Analysis.TauPi0Details)):
969 dump_TauPi0Details (d, f)
970 elif isinstance (d, PyAthena.Analysis.TauCommonDetails):
971 dump_TauCommonDetails (d, f)
972 elif isinstance (d, PyAthena.Analysis.TauCommonExtraDetails):
973 dump_TauCommonExtraDetails (d, f)
974 else:
975 fprint (f, t.detailName(i), d, '(not dumped)')
976 fprint (f, '\n p: %f %f %f' %
977 (t.parameter (0),
978 t.parameter (3),
979 t.parameter (6)))
980 return
981
982
984 dump_ParticleImpl (p, f)
985 poltheta = fix_neg0 (p.polarization().theta())
986 fprint (f, ' %3d %3d %f %f %d %d' %
987 (p.barcode(),
988 p.status(),
989 poltheta,
990 p.polarization().phi(),
991 p.nParents(),
992 p.nDecay()))
993 fprint (f, '\n ', p.hasEtIsol())
994 dump_HLV (p.genParticle().momentum(), f)
995 if p.nParents()>0:
996 fprint (f, '\n p0:')
997 # Note: ordering of entries in the parent/child lists is unpredictable.
998 # Here, we'll pick the one with the smallest barcode.
999 mother = None
1000 for i in range(p.nParents()):
1001 if not mother or _gen_barcode(p.genMother(i)) < _gen_barcode(mother):
1002 mother = p.genMother(i)
1003 mni = i
1004 dump_HLV (mother.momentum(), f)
1005 dump_Fourvec (p.mother(mni), f)
1006 if p.nDecay()>0:
1007 fprint (f, '\n c0:')
1008 child = None
1009 for i in range(p.nDecay()):
1010 if not child or _gen_barcode(p.genChild(i)) < _gen_barcode(child):
1011 child = p.genChild(i)
1012 mni = i
1013 dump_HLV (child.momentum(), f)
1014 dump_Fourvec (p.child(mni), f)
1015 return
1016
1017
1019 fprint (f, '%4d %f' % (p.particleLink().barcode(), p.probability()))
1020 gp = p.particleLink().cptr()
1021 if gp:
1022 dump_HLV (gp.momentum(), f)
1023 else:
1024 fprint (f, ' (no part)')
1025 return
1026
1027
1028@nolist
1030 fprintln (f, ' ', c.trackParticleContainerLink().isValid())
1031 elclass = PyAthena.ElementLink (PyAthena.Rec.TrackParticleContainer)
1032 for i in range (c.size()):
1033 fprint (f, ' ')
1034 el = elclass()
1035 cont = PyAthena.Rec.TrackParticleContainer()
1036 el.toIndexedElement (cont, i)
1037 dump_TrackParticleTruth (c[PyAthena.Rec.TrackParticleTruthKey(el)], f)
1038 fwrite (f, '\n')
1039 return
1040
1041
1043 fprint (f, [s[i].value() for i in range(s.NUM_SUBDETECTORS)])
1044 return
1045
1046
1048 fprint (f, [l.barcode() for l in t])
1049 return
1050
1051
1052@nolist
1054 fprint (f, ' ', c.trackCollectionLink().key(), c.size())
1055 for p in toiter1(c):
1056 fprint (f, '\n %3d' % p.first.index(), ' common ')
1057 dump_SubDetHitStatistics (p.second.statsCommon(), f)
1058 fprint (f, '\n ', ' track ')
1059 dump_SubDetHitStatistics (p.second.statsTrack(), f)
1060 fprint (f, '\n ', ' truth ')
1061 dump_SubDetHitStatistics (p.second.statsTruth(), f)
1062 fprint (f, '\n ', ' trajectory ')
1063 dump_TruthTrajectory (p.second.trajectory(), f)
1064 return
1065
1066
1067def dump_FitQuality (info, f):
1068 if not info:
1069 fprint (f, '(null)')
1070 return
1071 fprint (f, '%f %f' % (info.chiSquared(), info.doubleNumberDoF()))
1072 return
1073
1074
1075def dump_TrackSummary (info, f):
1076 if not info:
1077 fprint (f, '(null)')
1078 return
1079 fprint (f, [info.get(i) for i in range(32)],
1080 [info.isHit(i) for i in range(21)])
1081 return
1082
1083
1084def dump_Surface (info, f):
1085 fprint (f, typename(info.__class__) + ':')
1086 dump_Threevec (info.center(), f)
1087 dump_Threevec (PyAthena.Trk.Surface.normal (info), f)
1088 if (isinstance (info, PyAthena.Trk.DiscSurface) and
1089 typename(info.bounds().__class__).find ('NoBounds') >= 0):
1090 bd_class = info.bounds().__class__
1091 fprint (f, '(no bounds)')
1092 elif (isinstance (info, PyAthena.Trk.CylinderSurface) and
1093 (not info.hasBounds() or not info.bounds())):
1094 fprint (f, '(no bounds)')
1095 bd_class = PyAthena.Trk.CylinderBounds
1096 else:
1097 dump_Threevec (info.globalReferencePoint(), f)
1098 bd_class = info.bounds().__class__
1099 if isinstance (info, PyAthena.Trk.CylinderSurface):
1100 dump_AmgVector (info.rotSymmetryAxis(), f)
1101 fprint (f, '\n tf')
1102 dump_AmgMatrix (info.transform().matrix(), f, thresh=1e-8)
1103# fprint (f, '\n de', info.associatedDetectorElement())
1104 layer = tonone (info.associatedLayer())
1105 if layer:
1106 layer = typename (info.associatedLayer().__class__)
1107 fprint (f, '\n ly', layer)
1108 fprint (f, '\n bd', typename(bd_class))
1109 fprint (f, '\n id',
1110 info.associatedDetectorElementIdentifier().getString())
1111 return
1112
1114 dump_Surface (info, f)
1115 return
1116
1117
1118def dump_PlaneSurface (info, f):
1119 dump_Surface (info, f)
1120 return
1121
1122
1124 dump_Surface (info, f)
1125 return
1126
1127
1129 dump_Surface (info, f)
1130 return
1131
1132
1133def dump_DiscSurface (info, f):
1134 dump_Surface (info, f)
1135 return
1136
1137
1139 os = ROOT.ostringstream()
1140 info.dump (os)
1141 s = os.str().replace ('\n', ';')
1142 fprint (f, s)
1143 return
1144
1145
1147 dump_StraightLineSurface (info, f)
1148 fprint (f, '\n ds')
1149 dump_LineSaggingDescriptor (info.distortionDescriptor())
1150 return
1151
1152
1153def dump_surface (p, f):
1154 if not p:
1155 fprint (f, None)
1156 elif isinstance (p, PyAthena.Trk.PerigeeSurface):
1157 dump_PerigeeSurface (p, f)
1158 elif isinstance (p, PyAthena.Trk.PlaneSurface):
1159 dump_PlaneSurface (p, f)
1160 elif isinstance (p, PyAthena.Trk.StraightLineSurface):
1161 dump_StraightLineSurface (p, f)
1162 elif isinstance (p, PyAthena.Trk.CylinderSurface):
1163 dump_CylinderSurface (p, f)
1164 elif isinstance (p, PyAthena.Trk.DiscSurface):
1165 dump_DiscSurface (p, f)
1166 elif isinstance (p, PyAthena.Trk.SaggedLineSurface):
1167 dump_SaggedLineSurface (p, f)
1168 else:
1169 fprint (f, p)
1170 return
1171
1172
1174 if hasattr(p, 'hasSurface') and not p.hasSurface():
1175 fprint (f, None)
1176 else:
1177 dump_surface (p.associatedSurface(), f)
1178 return
1179
1180
1182 dump_AmgVector (info.parameters(), f)
1183 dump_Threevec (info.momentum(), f)
1184 dump_Threevec (info.position(), f)
1185 dump_Twovec (info.localPosition(), f)
1186 fprint (f, "%f" % (info.charge(),))
1187 if info.covariance():
1188 fprint (f, '\n cov')
1189 dump_AmgMatrix (info.covariance(), f)
1190 fprint (f, '\n sf')
1191 dump_associatedSurface (info, f)
1192 return
1193
1194
1196 dump_ParametersBase (info, f)
1197 fprint (f, '\n curvilinear')
1198 fprint (f, info.cIdentifier())
1199 mat = info.measurementFrame()
1200 dump_AmgVector (mat.col(0), f)
1201 dump_AmgVector (mat.col(1), f)
1202 dump_AmgVector (mat.col(2), f)
1203 return
1204
1205
1207 if not p:
1208 fprint (f, '(nil)')
1209 return
1210 if typename(p.__class__).startswith ('DataModel_detail::ElementProxy<'):
1211 p = p.__follow__()
1212 if not p:
1213 fprint (f, '(nil)')
1214 elif (typename(p.__class__).startswith ('Trk::ParametersT<') or
1215 typename(p.__class__).startswith ('Trk::ParametersBase<')):
1216 dump_ParametersBase (p, f)
1217 elif typename(p.__class__).startswith ('Trk::CurvilinearParametersT<'):
1218 dump_CurvilinearParameters (p, f)
1219 else:
1220 fprint (f, p)
1221 return
1222
1223
1225 dump_Fourvec (p, f)
1226 dp = None
1227 if p.trackParameters().size() > 0 and p.trackParameters()[-1]:
1228 dp = p.definingParameters()
1229 if dp:
1230 fprint (f, "%f" % p.charge())
1231 else:
1232 fprint (f, "(nil)")
1233 fprint (f, "%1d" % p.particleOriginType())
1234 # This crashes --- needs dd.
1235 #if p.originalTrack():
1236 # fprint (f, '\n tr', p.originalTrack())
1237 fprint (f, '\n vx')
1238 vx = p.reconstructedVertex()
1239 if vx:
1240 dump_Threevec (vx.recVertex().position(), f)
1241 else:
1242 fprint (f, tonone (vx))
1243 if p.fitQuality() != fitQualityNull:
1244 fprint (f, '\n fq')
1245 dump_FitQuality (p.fitQuality(), f)
1246 if p.trackSummary():
1247 fprint (f, '\n ts')
1248 dump_TrackSummary (p.trackSummary(), f)
1249 fprint (f, '\n df')
1250 dump_parameters (dp, f)
1251 fprint (f, '\n pm')
1252 for x in p.trackParameters():
1253 fprintln (f, '\n')
1254 dump_parameters (x, f)
1255 return
1256
1257
1259 dump_AmgVector (p, f)
1260 fprint (f, p.parameterKey())
1261 return
1262
1263
1265 dump_LocalParameters (p.localParameters(), f)
1266 dump_AmgMatrix (p.localCovariance(), f)
1267 return
1268
1269
1271 dump_MeasurementBase (p, f)
1272 fprint (f, p.identify().getString())
1273 return
1274
1275
1277 dump_RIO_OnTrack (p, f)
1278 fprint (f, p.idDE().value(), p.isBroadCluster())
1279 dump_AmgVector (p.globalPosition(), f)
1280 return
1281
1282
1284 dump_SiClusterOnTrack (p, f)
1285 dump_EL (p.prepRawDataLink(), f)
1286 fprint (f, p.hasClusterAmbiguity(), p.isFake(), p.energyLoss())
1287 fprint (f, p.detectorElement().identifyHash().value())
1288 return
1289
1290
1292 dump_SiClusterOnTrack (p, f)
1293 dump_EL (p.prepRawDataLink(), f)
1294 fprint (f, p.positionAlongStrip())
1295 fprint (f, p.detectorElement().identifyHash().value())
1296 return
1297
1298
1300 dump_RIO_OnTrack (p, f)
1301 dump_AmgVector (p.globalPosition(), f)
1302 fprint (f, p.idDE().value())
1303 dump_EL (p.prepRawDataLink(), f)
1304 fprint (f, p.status(), p.localAngle(), p.positionAlongWire())
1305 fprint (f, p.highLevel(), p.timeOverThreshold())
1306 fprint (f, p.detectorElement().identifyHash().value())
1307 return
1308
1309
1311 dump_RIO_OnTrack (p, f)
1312 dump_AmgVector (p.globalPosition(), f, thresh=1e-8)
1313 dump_EL (p.prepRawDataLink(), f)
1314 fprint (f, p.status(), p.localAngle(), p.positionAlongWire())
1315 fprint (f, p.driftTime(), p.errorStrategy().getBits().to_string())
1316 fprint (f, p.detectorElement().identifyHash().value())
1317 dump_StraightLineSurface (p.associatedSurface(), f)
1318 return
1319
1320
1322 dump_MeasurementBase (p, f)
1323 fprint (f, p.indexOfMaxAssignProb())
1324 sz = p.numberOfContainedROTs()
1325 fprint (f, [p.assignmentProbability(i) for i in range(sz)])
1326 return
1327
1328
1330 dump_RIO_OnTrack (p, f)
1331 dump_AmgVector (p.globalPosition(), f, 1e-12, 4)
1332 fprint (f, p.positionAlongStrip())
1333 return
1334
1335
1336
1338 dump_CompetingRIOsOnTrack (p, f)
1339 dump_AmgVector (p.globalPosition(), f)
1340 dump_associatedSurface (p, f)
1341 for r in p.containedROTs():
1342 fprint (f, '\n mc ')
1343 dump_MuonClusterOnTrack (r, f)
1344 return
1345
1346
1348 dump_MuonClusterOnTrack (p, f)
1349 dump_EL (p.prepRawDataLink(), f)
1350 fprint (f, p.time())
1351 fprint (f, p.detectorElement().identifyHash().value())
1352 return
1353
1354
1356 if isinstance (p, str):
1357 fprint (f, p)
1358 else:
1359 ss = ROOT.std.ostringstream()
1360 p.toOutputStream (ss)
1361 fprint (f, ss.str())
1362 return
1363@nolist
1365 #print ('yyy', p, type(p))
1366 #for x in p:
1367 # print ('yyy1', type(x))
1368 ss = ROOT.std.ostringstream()
1369 p.print(ss)
1370 #print ('yyy2', ss.str())
1371 #for i in range (p.size()):
1372 # print ('yyy3', i, p[i], type(p[i]))
1373 s = ss.str()
1374 if s[0] == '{': s = s[1:]
1375 if s[-1] == '}': s = s[:-1]
1376 for a in s.split(','):
1377 fprint (f, ' ', a, '\n')
1378 return
1379
1380
1382 fprint (f, p.first, p.second)
1383 return
1384
1385
1386@nolist
1388 for x in p.getAll():
1389 fprint (f, '\n ', x.first, x.second)
1390 return
1391
1392
1393@nolist
1395 fprint (f, ' Missing errors:', list (p.getMissingErrorSet()))
1396 fprint (f, '\n Error errors:', list (p.getErrorErrorSet()))
1397 fprint (f, '\n Sid errors:', list (p.getSidErrorSet()))
1398 fprint (f, '\n L1 errors:', [(x.first, x.second) for x in p.getL1ErrorSet()])
1399 fprint (f, '\n BCID errors:', [(x.first, x.second) for x in p.getBCIDErrorSet()])
1400 fprint (f, '\n ROB errors:', [(x.first, x.second) for x in p.getRobErrorSet()])
1401 return
1402
1403
1405 fprint (f, 'feb', p.FEBId().getString(), p.FebELVL1Id(), p.FebBCId(),
1406 'febh', p.FormatVersion(), p.SourceId(),
1407 p.RunNumber(), p.ELVL1Id(), p.BCId(), p.LVL1TigType(),
1408 p.DetEventType(),
1409 'dsp', p.DspCodeVersion(), p.DspEventCounter(),
1410 'res', p.RodResults1Size(), p.RodResults2Size(), p.RodRawDataSize(),
1411 p.NbSamples(), p.NbSweetCells1(), p.NbSweetCells2(),
1412 p.OnlineChecksum(), p.OfflineChecksum(), p.RodStatus(),
1413 list(p.SCA()),
1414 list(p.FebCtrl1()), list(p.FebCtrl2()), list(p.FebCtrl3()))
1415 return
1416
1417
1419 fprint (f, p.identify().getString(), p.energy(), p.time(),
1420 p.quality(), p.provenance(), p.gain())
1421 return
1422
1423
1424@nolist
1426 fprint (f, p.id())
1427 return
1428
1429
1431 fprint (f, p.lvl1Id(), p.link(), p.frontendFlag(), p.bcId(), p.robId())
1432 return
1433
1435 fprint (f, p.hitDiscConfig(), p.link())
1436 return
1437
1439 dump_AFP_RawDataCommonHead (p, f)
1440 fprint (f, p.column(), p.row(), p.timeOverThreshold())
1441 return
1442
1444 dump_AFP_RawCollectionHead (p, f)
1445 for r in p.dataRecords():
1446 fprint (f, '\n ')
1447 dump_AFP_SiRawData (r, f)
1448 return
1449
1451 dump_AFP_RawDataCommonHead (p, f)
1452 fprint (f, p.header(), p.edge(), p.channel())
1453 if p.isTrigger():
1454 fprint (f, p.delayedTrigger(), p.triggerPattern())
1455 else:
1456 fprint (f, p.time(), p.pulseLength())
1457 return
1458
1460 dump_AFP_RawCollectionHead (p, f)
1461 for r in p.dataRecords():
1462 fprint (f, '\n ')
1463 dump_AFP_ToFRawData (r, f)
1464 return
1465
1466@nolist
1468 fprint (f, p.lvl1Id(), p.bcId(), p.lumiBlock(),
1469 p.timeStamp(), p.timeStampNS())
1470 fprint (f, '\n si collections')
1471 for c in p.collectionsSi():
1472 fprint (f, '\n ')
1473 dump_AFP_SiRawCollection (c, f)
1474 fprint (f, '\n tof collections')
1475 for c in p.collectionsToF():
1476 fprint (f, '\n ')
1477 dump_AFP_ToFRawCollection (c, f)
1478 return
1479
1480
1482 fprint (f, p.GetWordId_PMF(), p.GetPMFId_PMF(), p.GetMBId_PMF(),
1483 p.GetEventCount_PMF(), p.Get_bit16(), p.Get_bit18(),
1484 p.Get_bit26_27(), p.Get_bit24_27(), p.Get_error_bit17(),
1485 list(p.HitChan()), list (p.dataWords()))
1486 return
1487
1488
1490 fprint (f, 'collection')
1491 fprint (f, 'mb', p.GetMBId_POT(), 'mrod', p.GetMrodId_POT(),
1492 'ec', p.GetEventCount_POT(),
1493 'scid', p.Get_scaler_POT(),
1494 'adc', p.Get_ADC1_POT(), p.Get_ADC2_POT(),
1495 'err', p.GetTrigSyncErr(),
1496 'pat', boolvec (p.Get_pattern_POT()))
1497 fprint (f, '\n data')
1498 for r in p.Get_POT_DATA():
1499 fprint (f, '\n ')
1500 dump_ALFA_RawData (r, f)
1501 fprint (f, '\n contents')
1502 for r in p:
1503 fprint (f, '\n ')
1504 dump_ALFA_RawData (r, f)
1505 return
1506
1507
1508@nolist
1510 if p.is_FullEVmarker(): fprint (f, 'fullev')
1511 if p.is_ROBmarker(): fprint (f, 'rob')
1512 if p.is_RODmarker(): fprint (f, 'rod')
1513 fprint (f, 'sd/mrod/l1/ecr/bc', p.subdetId(), p.mrodId(), p.lvl1Id(),
1514 p.ecrId(), p.bcId())
1515 fprint (f, '\n run/typ/tt/evtyp', p.runNum(), p.runType(),
1516 p.trigtypeId(), p.DetEventType(),
1517 'ts', p.GetTimeStamp(), p.GetTimeStampns(),
1518 p.GetLumiBlock(), p.GetBCId())
1519 fprint (f, '\n lvl1', boolvec(p.GetLvl1Pattern_POT()))
1520 fprint (f, '\n lvl2', boolvec(p.GetLvl2Pattern_POT()))
1521 fprint (f, '\n ef', boolvec(p.GetEFPattern_POT()))
1522 for c in p:
1523 fprint (f, '\n ')
1524 dump_ALFA_RawDataCollection (c, f)
1525 return
1526
1527
1529 fprint (f, list(p.triggerEnergies()), list(p.triggerTimes()))
1530 return
1531
1532
1533@nolist
1535 fprint (f, '(Dumped as a part of Analysis::TauJetContainer)')
1536 return
1537
1538
1539@nolist
1541 fprint (f, '(Dumped as a part of egamma)')
1542 return
1543
1544
1545@nolist
1547 fprint (f, '(Dumped as a part of jets)')
1548 return
1549
1550
1551@nolist
1553 fprint (f, '(Dumped as a part of jets)')
1554 return
1555
1556
1557@nolist
1559 for x in p.get_all_febs():
1560 fprint (f, '\n ', x.first, x.second)
1561 return
1562
1563
1564@nolist
1566 for x in p.splitProbMap():
1567 fprint (f, '\n ', x.first, x.second.first, x.second.second, x.second.isSplit())
1568 return
1569
1570
1572 if not p:
1573 fprint (f, '(null)')
1574 return
1575 fprint (f, p.word())
1576 for d in p.getdeposits():
1577 fprint (f, '[')
1578 dump_HepMcParticleLink (d.first, f)
1579 fprint (f, d.second)
1580 fprint (f, ']')
1581 return
1582
1583@nolist
1585 getData = ROOT.InDetSimDataHelpers.getData
1586 for id in ROOT.InDetSimDataHelpers.identifiers(p):
1587 fprint (f, '\n ', id.getString())
1588 dump_InDetSimData (getData (p, id), f)
1589 return
1590
1591
1592@nolist
1594 for x in ROOT.TrkTruthDataHelpers.getData (p):
1595 fprint (f, '\n ', x.first.getString())
1596 dump_HepMcParticleLink (x.second, f)
1597 return
1598
1599
1600@nolist
1602 for x in p:
1603 fprint (f, '\n ', x.first.index())
1604 dump_HepMcParticleLink (x.second.particleLink(), f)
1605 fprint (f, x.second.probability())
1606 return
1607
1608
1609def dump_LArTTL1 (p, f):
1610 fprint (f, p.ttOnlineID().getString(), p.ttOfflineID().getString(),
1611 list (p.samples()))
1612 return
1613
1614
1615@nolist
1616def dump_ComTime (p, f):
1617 fprint (f, p.getTTCTime(), p.getTime())
1618 dump_H3V (p.GetCounterPosition(), f)
1619 dump_H3V (p.GetcosThetaDirection(), f)
1620 return
1621
1622
1623
1624@nolist
1625def dump_vector (p, f):
1626 fprint (f, list(p))
1627 return
1628
1629
1631 dump_MuonClusterOnTrack (p, f)
1632 dump_EL (p.prepRawDataLink(), f)
1633 fprint (f, p.detectorElement().identifyHash().value())
1634 return
1635
1636
1638 dump_MuonClusterOnTrack (p, f)
1639 dump_EL (p.prepRawDataLink(), f)
1640 fprint (f, p.detectorElement().identifyHash().value())
1641 return
1642
1643
1645 dump_MuonClusterOnTrack (p, f)
1646 dump_EL (p.prepRawDataLink(), f)
1647 fprint (f, p.detectorElement().identifyHash().value())
1648 fprint (f, '\n stripDriftDists: ', list(p.stripDriftDists()))
1649 fprint (f, '\n stripDriftDistErrors:')
1650 for m in p.stripDriftDistErrors():
1651 fprint ('\n ')
1652 dump_AmgMatrix (m, f)
1653 return
1654
1655
1657 dump_MuonClusterOnTrack (p, f)
1658 dump_EL (p.prepRawDataLink(), f)
1659 fprint (f, p.status(), p.timeStatus(), p.time())
1660 if p.detectorElement():
1661 fprint (f, p.detectorElement().identifyHash().value())
1662 else:
1663 fprint (f, '(null detEl)')
1664 return
1665
1666
1668 dump_MeasurementBase (p, f)
1669 dump_AmgVector (p.globalPosition(), f)
1670 dump_associatedSurface (p, f)
1671 return
1672
1673
1675 if not p:
1676 fprint (f, '(null)')
1677 return
1678 nm = typename(p.__class__)
1679 fprint (f, nm + ': ')
1680 if nm == 'InDet::PixelClusterOnTrack':
1681 dump_PixelClusterOnTrack (p, f)
1682 elif nm == 'InDet::SCT_ClusterOnTrack':
1683 dump_SCT_ClusterOnTrack (p, f)
1684 elif nm == 'InDet::TRT_DriftCircleOnTrack':
1685 dump_TRT_DriftCircleOnTrack (p, f)
1686 elif nm == 'Muon::MdtDriftCircleOnTrack':
1687 dump_MdtDriftCircleOnTrack (p, f)
1688 elif nm == 'Muon::MdtDriftCircleOnTrack':
1689 dump_MdtDriftCircleOnTrack (p, f)
1690 elif nm == 'Muon::CompetingMuonClustersOnTrack':
1691 dump_CompetingMuonClustersOnTrack (p, f)
1692 elif nm == 'Muon::RpcClusterOnTrack':
1693 dump_RpcClusterOnTrack (p, f)
1694 elif nm == 'Muon::TgcClusterOnTrack':
1695 dump_TgcClusterOnTrack (p, f)
1696 elif nm == 'Muon::sTgcClusterOnTrack':
1697 dump_sTgcClusterOnTrack (p, f)
1698 elif nm == 'Muon::MMClusterOnTrack':
1699 dump_MMClusterOnTrack (p, f)
1700 elif nm == 'Muon::CscClusterOnTrack':
1701 dump_CscClusterOnTrack (p, f)
1702 elif nm == 'Trk::PseudoMeasurementOnTrack':
1703 dump_PseudoMeasurementOnTrack (p, f)
1704 else:
1705 fprint (f, p)
1706 return
1707
1708
1710 fprint (f, p.dumpType(), p.thicknessInX0())
1711 dump_associatedSurface (p, f)
1712 return
1713
1714
1716 if not p:
1717 fprint (f, None)
1718 return
1719 fprint (f, daz(p.deltaPhi()), daz(p.deltaTheta()))
1720 fprint (f, p.sigmaDeltaPhi(), p.sigmaDeltaTheta())
1721 return
1722
1723
1725 dump_MaterialEffectsBase (p, f)
1726 dump_ScatteringAngles (p.scatteringAngles(), f)
1727 dump_EnergyLoss (p.energyLoss(), f)
1728 return
1729
1730
1732 if not p:
1733 fprint (f, '(null)')
1734 return
1735 nm = typename(p.__class__)
1736 fprint (f, nm + ': ')
1737 if nm == 'Trk::MaterialEffectsOnTrack':
1738 dump_MaterialEffectsOnTrack (p, f)
1739 return
1740
1741
1743 if not p:
1744 fprint (f, '(null)')
1745 return
1746 fprint (f, p.deltaTranslation(), p.sigmaDeltaTrranslation(), p.deltaAngle(), p.sigmaDeltaAngle())
1747 for t in p.vectorOfAffectedTSOS():
1748 fprint (f, '\n ts ')
1749 dump_parameters (t.trackparameters(), f)
1750 fprint (f, '\n sf ')
1751 dump_Surface (p.associatedSurface(), f)
1752 return
1753
1754
1756 dump_FitQuality (p.fitQualityOnSurface(), f)
1757 fprint (f, '\n pm ')
1758 dump_parameters (p.trackParameters(), f)
1759 fprint (f, '\n ms ')
1760 dump_measurement (p.measurementOnTrack(), f)
1761 fprint (f, '\n me ')
1762 dump_materialeffects (p.materialEffectsOnTrack(), f)
1763 fprint (f, '\n ae ')
1764 dump_AlignmentEffectsOnTrack (p.alignmentEffectsOnTrack(), f)
1765 return
1766
1767
1769 fprint (f, p.trackFitter(), p.particleHypothesis())
1770 fprint (f, p.properties().to_string())
1771 fprint (f, p.patternRecognition().to_string())
1772 return
1773
1774
1775def dump_Track (p, f):
1776 fprint (f, '\n pm')
1777 pm = p.trackParameters()
1778 for i in range(len(pm)):
1779 fprint (f, '\n ')
1780 dump_parameters (pm[i], f)
1781 fprint (f, '\n ms')
1782 for x in p.measurementsOnTrack():
1783 fprint (f, '\n ')
1784 dump_measurement (x, f)
1785 fprint (f, '\n ol')
1786 for x in p.outliersOnTrack():
1787 fprint (f, '\n')
1788 dump_measurement (x, f)
1789 fprint (f, '\n ts')
1790 for x in p.trackStateOnSurfaces():
1791 fprint (f, '\n ')
1792 dump_TrackStateOnSurface (x, f)
1793 fprint (f, '\n pp ')
1794 dump_parameters (p.perigeeParameters(), f)
1795 fprint (f, '\n fq ')
1796 dump_FitQuality (p.fitQuality(), f)
1797 fprint (f, '\n tm ')
1798 dump_TrackSummary (p.trackSummary(), f)
1799 fprint (f, '\n ti ')
1800 dump_TrackInfo (p.info(), f)
1801 return
1802
1803
1804def dump_Segment (p, f):
1805 dump_MeasurementBase (p, f)
1806 fprint (f, p.author())
1807 dump_FitQuality (p.fitQuality(), f)
1808 for x in p.containedMeasurements():
1809 dump_measurement (x, f)
1810 return
1811
1812
1814 # ??? cells, getNumberOfCells
1815 dump_Fourvec (c, f)
1816 fprint (f, "%3d %f %f %f %f %f %d %d %d" %
1817 (c.getClusterSize(),
1818 c.getBasicEnergy(),
1819 c.getTime(),
1820 c.eta0(),
1821 c.phi0(),
1822 c.energy(),
1823 c.inBarrel(),
1824 c.inEndcap(),
1825 c.allLocked()))
1826 fprint (f, c.getRecoStatus().getStatusWord())
1827 beg = c.beginMoment()
1828 end = c.endMoment()
1829 while beg != end:
1830 fprint (f, '\n mom %d %f' % (c.getMomentType(beg),
1831 c.getMomentValue(beg)))
1832 beg.__preinc__()
1833
1834 for i in range (c.nSamples()):
1835 fprint (f, '\n %2d %d %d %d %f %f %f %f %f %f %f %f %f %f %f' %
1836 (i,
1837 c.is_valid_sampling(i),
1838 c.isEMSampling(i),
1839 c.hasSampling(i),
1840 c.eSample(i),
1841 c.etaSample(i),
1842 c.phiSample(i),
1843 c.etasize(i),
1844 c.phisize(i),
1845 c.energy_max(i),
1846 c.etamax(i),
1847 c.phimax(i),
1848 c.etaBE(i),
1849 c.phiBE(i),
1850 c.energyBE(i)))
1851 return
1852
1853
1854@nolist_nmax
1855def dump_CaloClusters_sorted (l, f, nmax = None):
1856 ll = [x for x in l]
1857 ll.sort (key=lambda a: a.pt(), reverse=True)
1858 dump_list (ll, f, dump_CaloCluster, nmax=nmax)
1859 return
1860
1861
1863 beg = l.begin()
1864 end = l.end()
1865 last = None
1866 while beg != end:
1867 el = beg.getElement()
1868 if last != el.dataID():
1869 last = el.dataID()
1870 fprint (f, last)
1871 fprint (f, el.index())
1872 beg.next()
1873 return
1874
1875
1877 beg = l.begin()
1878 end = l.end()
1879 while beg != end:
1880 fprint (f, '%d/%f' % (beg.index(), beg.weight()))
1881 beg.__preinc__()
1882 return
1883
1884
1885def dump_CaloCell (l, f):
1886 fprint (f, l.ID().getString())
1887 if l.__class__ == PyAthena.TileCell:
1888 fprint (f, '%.2f %.2f %d %d %d ' % (l.ene1(), l.time1(), l.qual1(), l.qbit1(), l.gain1()))
1889 fprint (f, '%.2f %.2f %d %d %d ' % (l.ene2(), l.time2(), l.qual2(), l.qbit2(), l.gain2()))
1890 else:
1891 fprint (f, '%.2f %.2f %d %d %d ' % (l.energy(), l.time(), l.quality(), l.provenance(), l.gain()))
1892 return
1893
1894
1895def dump_Vertex (v, f):
1896 dump_Threevec (v.position(), f)
1897 return
1898
1899
1901 dump_Vertex (v, f)
1902 dump_FitQuality (v.fitQuality(), f)
1903 dump_AmgMatrix (v.covariancePosition(), f) # eigen
1904 return
1905
1906
1908 perigee = None
1909 trk = l.cptr()
1910 if trk:
1911 pm = trk.trackParameters()
1912 if pm and len(pm) > 0:
1913 perigee = pm[-1]
1914 dump_parameters (perigee, f)
1915 return
1916
1917
1919 dump_ITrackLink (l, f)
1920 fprint (f, '\n ', l.isValid(), l.index(), l.dataID())
1921 return
1922
1923
1925 dump_ITrackLink (l, f)
1926 fprint (f, l.isValid(), l.index(), l.dataID())
1927 return
1928
1929
1931 dump_FitQuality (t.trackQuality(), f)
1932 fprint (f, '%f %f' %
1933 (t.vtxCompatibility(),
1934 t.weight()))
1935 fprint (f, tonone(t.linState()), tonone(t.ImpactPoint3dAtaPlane()))
1936 if t.perigeeAtVertex():
1937 fprint (f, '\n pv')
1938 dump_parameters (t.perigeeAtVertex(), f)
1939
1940 # Methods below will try to dereference the link given by
1941 # trackOrParticleLink, which is an EL to either a Trk::Track
1942 # or a TrackParticle. TrackParticle we can handle, but we
1943 # shouldn't try to dereference an EL to a Track, since ARA
1944 # can't handle that.
1945 tel = PyAthena.ElementLink ('DataVector<Trk::Track>')
1946 if not isinstance (t.trackOrParticleLink(), tel):
1947 fprint (f, '\n ip')
1948 perigee = None
1949 trk = t.trackOrParticleLink().cptr()
1950 if trk:
1951 pm = trk.trackParameters()
1952 if pm and len(pm) > 0:
1953 perigee = pm[-1]
1954 dump_parameters (perigee, f)
1955 fprint (f, '\n pl')
1956 if isinstance (t.trackOrParticleLink(), PyAthena.Trk.LinkToTrack):
1957 dump_LinkToTrack (t.trackOrParticleLink(), f)
1958 elif isinstance (t.trackOrParticleLink(),PyAthena.Trk.LinkToTrackParticleBase):
1959 dump_LinkToTrackParticleBase (t.trackOrParticleLink(), f)
1960 else:
1961 fprint (f, t.trackOrParticleLink())
1962 return
1963
1964
1966 dump_VxTrackAtVertex (t, f)
1967 fprint (f, '\n ', tonone(t.linkToVertices()))
1968 return
1969
1970
1972 dump_RecVertex (v.recVertex(), f)
1973 # Use this rather than iterating over the tav vector directly.
1974 # With recent pyroot versions, the object doesn't get converted
1975 # to the dynamic type.
1976 tav = v.vxTrackAtVertex()
1977 for i in range(tav.size()):
1978 t = tav[i]
1979 fprint (f, '\n ', typename(t.__class__))
1980 if isinstance (t, PyAthena.Trk.MVFVxTrackAtVertex):
1981 dump_MVFVxTrackAtVertex (t, f)
1982 elif t.__class__ == PyAthena.Trk.VxTrackAtVertex:
1983 dump_VxTrackAtVertex (t, f)
1984 else:
1985 fprint (f, tonone(t))
1986 return
1987
1988
1990 fprint (f, tonone(v.constraintVertex()),
1991 tonone(v.seedVertex()),
1992 tonone(v.linearizationVertex()))
1993 return
1994
1995
1997 dump_VxCandidate1 (v, f)
1998 fprint (f, '\n ', v.isInitialized(), 'fi')
1999 dump_MvfFitInfo (v.vertexFitInfo(), f)
2000 return
2001
2002
2004 fprint (f, typename(v.__class__))
2005 if isinstance (v, PyAthena.Trk.MVFVxCandidate):
2006 dump_MVFVxCandidate (v, f)
2007 elif (v.__class__ == PyAthena.Trk.VxCandidate or
2008 isinstance (v, PyAthena.Trk.V0Hypothesis)):
2009 dump_VxCandidate1 (v, f)
2010 elif isinstance (v, PyAthena.Trk.ExtendedVxCandidate):
2011 dump_ExtendedVxCandidate (v, f)
2012 else:
2013 fprint (f, tonone(v))
2014 dump_VxCandidate1 (v, f)
2015 return
2016
2017
2018def dump_EventID (e, f):
2019 fprint (f, '%9d %9d %9d %9d %9d %9d' %
2020 (e.run_number(),
2021 e.event_number(),
2022 e.time_stamp(),
2023 e.time_stamp_ns_offset(),
2024 e.lumi_block(),
2025 e.bunch_crossing_id()))
2026 return
2027
2028
2030 fprint (f, e.typeToString(), e.user_type(), e.mc_event_weight())
2031 return
2032
2033
2035 fprint (f, e.statusElement(), e.extendedLevel1ID(), e.level1TriggerType())
2036 fprint (f, '\n l2:', formatItemUsingLong ([x for x in e.level2TriggerInfo()]))
2037 fprint (f, '\n ef:', formatItemUsingLong ([x for x in e.eventFilterInfo()]))
2038 fprint (f, '\n st:', [(x.name(), x.type(), x.obeysLumiblock()) for x in e.streamTags()])
2039 return
2040
2041
2042@nolist
2044 fprint (f, e.clID())
2045 dump_EventID (e.event_ID(), f)
2046 fprint (f, '\n ')
2047 fprint (f, e.actualInteractionsPerCrossing(), e.averageInteractionsPerCrossing())
2048 for i in range(ROOT.EventInfo.nDets):
2049 fprint (f, '\n det', i, e.eventFlags(i), e.errorState(i))
2050 fprint (f, '\n ')
2051 dump_EventType (e.event_type(), f)
2052 fprint (f, '\n tg')
2053 dump_TriggerInfo (e.trigger_info(), f)
2054 return
2055
2056
2057@nolist
2059 dump_EventInfo (e, f)
2060 for (i,s) in enumerate (toiter (e.beginSubEvt(), e.endSubEvt())):
2061 fprint (f, '\n subevt', i, s.time(), s.index(), s.BCID(), s.type())
2062 return
2063
2064
2065@nolist
2067 fprint (f, 'nevents: ', e.getNumberOfEvents())
2068 fprint (f, '\nrun numbers: ', formatItemUsingLong(list(e.getRunNumbers())))
2069 fprint (f, '\nlb numbers: ', formatItemUsingLong(list(e.getLumiBlockNumbers())))
2070 fprint (f, '\nproc tags: ', list(e.getProcessingTags()))
2071 fprint (f, '\nitem list: ', formatItemUsingLong([(p.first, p.second) for p in e.getItemList()]))
2072 for typ in list(e.getEventTypes()):
2073 fprint (f, '\n ')
2074 dump_EventType (typ, f)
2075 return
2076
2077
2078# HepMC2/3 compatibility hacks
2079def _gen_attr(e, a, typ):
2080 fn = getattr(e, a, None)
2081 if fn:
2082 return fn()
2083 v = e.attribute_as_string(a)
2084 if v == '': return None
2085 return typ(v)
2086def _gen_vecattr(e, a, typ):
2087 fn = getattr(e, a, None)
2088 if fn:
2089 return fn()
2090 return [typ(x) for x in e.attribute_as_string(a).split()]
2092 return _gen_attr(p, 'barcode', int)
2094 if hasattr(e, 'particles_size'):
2095 return e.particles_size()
2096 return e.particles().size()
2098 if hasattr(e, 'vertices_size'):
2099 return e.vertices_size()
2100 return e.vertices().size()
2102 if hasattr(e, 'particles_begin'):
2103 return toiter (e.particles_begin(), e.particles_end())
2104 return e.particles()
2106 if hasattr(e, 'vertices_begin'):
2107 return toiter (e.vertices_begin(), e.vertices_end())
2108 return e.vertices()
2110 if hasattr(e, 'signal_process_vertex'):
2111 return e.signal_process_vertex()
2112 for v in e.vertices():
2113 if v.attribute_as_string('signal_process_vertex') == '1':
2114 return v
2115 return None
2117 if hasattr(e, 'particles_in_size'):
2118 return e.particles_in_size()
2119 return e.particles_in().size()
2121 if hasattr(e, 'particles_out_size'):
2122 return e.particles_out_size()
2123 return e.particles_out().size()
2124
2125
2126def barcodes (beg, end, sz):
2127 #out = [x.barcode() for x in toiter (beg, end)]
2128
2129 # Work around pyroot iterator comparison breakage.
2130 out = []
2131 while beg != end and sz > 0:
2132 sz -= 1
2133 x = beg.__deref__()
2134 beg.__preinc__()
2135 out.append (x.barcode())
2136
2137 out.sort()
2138 return out
2140 if hasattr(v, 'particles_in_const_begin'):
2141 parts = barcodes(v.particles_in_const_begin(),
2142 v.particles_in_const_end(),
2143 v.particles_in_size())
2144 else:
2145 parts = [_gen_barcode(p) for p in v.particles_in()]
2146 parts.sort()
2147 return parts
2149 if hasattr(v, 'particles_out_const_begin'):
2150 parts = barcodes(v.particles_out_const_begin(),
2151 v.particles_out_const_end(),
2152 v.particles_out_size())
2153 else:
2154 parts = [_gen_barcode(p) for p in v.particles_out()]
2155 parts.sort()
2156 return parts
2158 fprint (f, "%d %d %d %d %d" %
2159 (v.status() if hasattr(v,'status') else v.id(),
2160 _gen_barcode(v),
2161 v.parent_event().event_number(),
2164 dump_Threevec (v.position(), f)
2165 fprint (f, '%f ' % v.position().t())
2166 if not hasattr(v, 'weights'):
2167 ww = _gen_vecattr(v, 'weights', float)
2168 elif v.weights().size() == 0:
2169 ww = []
2170 else:
2171 ww = list(v.weights())
2172 fprintln (f, [w for w in ww])
2173 fprint (f, ' (')
2174 for bc in genvertex_in_barcodes(v):
2175 fprint (f, bc)
2176 fprint (f, ')(')
2177 for bc in genvertex_out_barcodes(v):
2178 fprint (f, bc)
2179 fprint (f, ')')
2180
2181 return
2182
2183
2185 fprint (f, "%d %5s %d %d" %
2186 (_gen_barcode(p),
2187 PDG.pdgid_to_name(p.pdg_id()),
2188 p.parent_event().event_number(),
2189 p.status(),))
2190 if p.production_vertex():
2191 s = str(_gen_barcode (p.production_vertex())) + '('
2192 parts = genvertex_in_barcodes (p.production_vertex())
2193 for bc in parts: s += '%d ' % bc
2194 if len(parts) > 3: s += '...'
2195 s += '->)'
2196 fprint (f, s)
2197 else:
2198 fprint (f, None)
2199 if p.end_vertex():
2200 s = str (_gen_barcode (p.end_vertex())) + '(->'
2201 parts = genvertex_out_barcodes (p.end_vertex())
2202 for bc in parts: s += '%d ' % bc
2203 if len(parts) > 3: s += '...'
2204 s += ')'
2205 fprint (f, s)
2206 else:
2207 fprint (f, None)
2208 dump_HLV (p.momentum(), f)
2209 if hasattr (p, 'polarization'):
2210 pol = p.polarization()
2211 poltheta = fix_neg0 (pol.theta())
2212 fprint (f, "%f %f" % (poltheta, pol.phi()))
2213 if pol.normal3d().theta() != 0 or pol.normal3d().phi() != 0:
2214 fprint (f, "%f %f" %
2215 (pol.normal3d().theta(), pol.normal3d().phi()))
2216 else:
2217 poltheta = fix_neg0 (_gen_attr(p, 'theta', float))
2218 polphi = _gen_attr(p, 'phi', float)
2219 fprint (f, "%f %f" % (poltheta, polphi))
2220 return
2221
2222
2223def dump_GenEvent (e, f):
2224 fprint (f, '%d %d %f %f %f %d %d' %
2225 (e.event_number(),
2226 _gen_attr(e, 'signal_process_id', int),
2227 _gen_attr(e, 'event_scale', float),
2228 _gen_attr(e, 'alphaQCD', float),
2229 _gen_attr(e, 'alphaQED', float),
2232 fprint (f, '\n wt', [w for w in e.weights()], \
2233 [i for i in _gen_vecattr(e, 'random_states', int)])
2234 fprint (f, '\n v0')
2236 if sv:
2237 dump_GenVertex (sv, f)
2238 else:
2239 fprint (f, None)
2240 for v in _genevent_vertices(e):
2241 fprint (f, '\n v')
2242 dump_GenVertex (v, f)
2243
2244 parts = list (_genevent_particles(e))
2245 parts.sort (key = lambda p : _gen_barcode(p))
2246 for p in parts:
2247 fprint (f, '\n p')
2248 if p:
2249 dump_GenParticle (p, f)
2250 else:
2251 fprint (f, None)
2252 return
2253
2254
2255@nolist
2257 fprint (f, t.dump())
2258 return
2259
2260
2261def dump_Muon_ROI (m, f):
2262 dump_Fourvec (m, f)
2263 fprint (f, "%d %s %f %d %d %d %d %d %d %d %d" %
2264 (m.getROIWord(),
2265 m.getThrName(),
2266 m.getThrValue(),
2267 m.getThrNumber(),
2268 m.getRoI(),
2269 m.getSectorAddress(),
2270 m.isFirstCandidate(),
2271 m.isMoreCandInRoI(),
2272 m.isMoreCandInSector(),
2273 m.getSource(),
2274 m.getHemisphere()))
2275 return
2276
2277
2279 dump_Fourvec (m, f)
2280 fprint (f, "%d %f %f %f %f %f %f %d" %
2281 (m.getROIWord(),
2282 m.getCore(),
2283 m.getEMClus(),
2284 m.getTauClus(),
2285 m.getEMIsol(),
2286 m.getHadIsol(),
2287 m.getHadCore(),
2288 m.getThrPattern()))
2289 for (n,v) in zip (m.getThresholdNames(), m.getThresholdValues()):
2290 fprint (f, n, v)
2291 return
2292
2293
2294def dump_Jet_ROI (m, f):
2295 dump_Fourvec (m, f)
2296 fprint (f, "%d %d %f %f %f" %
2297 (m.getROIWord(),
2298 m.getThrPattern(),
2299 m.getET4x4(),
2300 m.getET6x6(),
2301 m.getET8x8()))
2302 for (n,v) in zip (m.getThresholdNames(), m.getThresholdValues()):
2303 fprint (f, n, v)
2304 return
2305
2306
2308 fprint (f, "%d %d" %
2309 (m.getROIWord(),
2310 m.getThrPattern(),))
2311 fprint (f, [t for t in m.getThresholds()])
2312 return
2313
2314
2316 fprint (f, "%d %d %d %f %f %f %f %f %d %d %d %d %d %d" %
2317 (m.getROIWord0(),
2318 m.getROIWord1(),
2319 m.getROIWord2(),
2320 m.getEnergyX(),
2321 m.getEnergyY(),
2322 m.getEnergyT(),
2323 m.getExMiss(),
2324 m.getEyMiss(),
2325 m.getOverflowX(),
2326 m.getOverflowY(),
2327 m.getOverflowT(),
2328 m.getOverflows(),
2329 m.getThrPatSummET(),
2330 m.getThrPatMissET()))
2331 fprint (f, [t for t in m.getThresholds()])
2332 return
2333
2334
2335@nolist
2336def dump_LVL1_ROI (t, f):
2337 for m in t.getMuonROIs():
2338 fprint (f, '\nmu')
2339 dump_Muon_ROI (m, f)
2340 for m in t.getEmTauROIs():
2341 fprint (f, '\nem')
2342 dump_EmTau_ROI (m, f)
2343 for m in t.getJetROIs():
2344 fprint (f, '\njt')
2345 dump_Jet_ROI (m, f)
2346 for m in t.getJetEtROIs():
2347 fprint (f, '\nje')
2348 dump_JetET_ROI (m, f)
2349 for m in t.getEnergySumROIs():
2350 fprint (f, '\nes')
2351 dump_EnergySum_ROI (m, f)
2352 return
2353
2354
2356 fprint (f, "%d %d %d" %
2357 (t.accepted(),
2358 t.error(),
2359 t.error_bits(),))
2360 return
2361
2362
2363@nolist
2365 dump_GenericResult (t, f)
2366 fprint (f, "%d %d %d %d %d %d %d %d %d %d %d %d" %
2367 (t.getHLTResultClassVersion(),
2368 t.getLvl1Id(),
2369 t.isPassThrough(),
2370 t.getHLTStatus().code,
2371 t.getLvlConverterStatus().code,
2372 t.getHLTLevel(),
2373 t.isValid(),
2374 t.getNumOfSatisfiedSigs(),
2375 t.isCreatedOutsideHLT(),
2376 t.isHLTResultTruncated(),
2377 t.size(),
2378 t.isEmpty(),
2379 ))
2380 fprint (f, [i for i in t.partSizes()])
2381 fprint (f, [i for i in t.getNavigationResult()])
2382 fprint (f, [i for i in t.getChainResult()])
2383 fprint (f, [i for i in t.getNavigationResultCuts()])
2384 return
2385
2386
2387@nolist
2389 fprint (f, 'version', p.getVersion())
2390 fprint (f, '\n streamtags', list(p.getStreamTags()))
2391 #fprint (f, '\n passraw', list(p.getHltPassRawBits()))
2392 #fprint (f, '\n prescaled', list(p.getHltPrescaledBits()))
2393 fprint (f, '\n hltbits', list(p.getHltBitsAsWords()))
2394 fprint (f, '\n data size', p.getSerialisedData().size())
2395 #fprint (f, '\n robstatus size', p.getRobStatus().size())
2396 fprint (f, '\n status', list(p.getStatus()))
2397 fprint (f, '\n trunc', p.severeTruncation(), list(p.getTruncatedModuleIds()))
2398 return
2399
2400
2401@nolist
2403 fprint (f, t.isConfigured(),
2404 t.isAccepted(),
2405 t.anyActiveL1ItemAfterVeto(),
2406 t.nItems())
2407 fprint (f, '\n ', [i for i in t.itemsPassed()])
2408 fprint (f, '\n ', [i for i in t.itemsBeforePrescale()])
2409 fprint (f, '\n ', [i for i in t.itemsAfterPrescale()])
2410 fprint (f, '\n ', [i for i in t.itemsAfterVeto()])
2411 return
2412
2413
2414@nolist
2416 fprint (f, t.masterKey())
2417 fprint (f, '\nl1')
2418 dump_Lvl1Result (t.getL1Result(), f)
2419 fprint (f, '\nl2')
2420 dump_HLTResult (t.getL2Result(), f)
2421 fprint (f, '\nef')
2422 dump_HLTResult (t.getEFResult(), f)
2423 return
2424
2425
2427 fprint (f, e.id(), e.name())
2428 return
2429
2430
2432 fprint (f, '(', s.signature_counter(),
2433 s.logic(),
2434 s.label())
2435 for e in s.outputTEs():
2436 dump_HLTTriggerElement (e, f)
2437 fprint (f, ')')
2438 return
2439
2440
2442 fprint (f, '(',
2443 s.stream(),
2444 s.type(),
2445 s.obeyLB(),
2446 s.prescale(),
2447 ')')
2448 return
2449
2450def dump_HLTChain (c, f):
2451 fprint (f, c.chain_name(),
2452 c.chain_version(),
2453 c.chain_counter(),
2454 c.level(),
2455 c.lower_chain_name(),
2456 c.lower_chain_counter(),
2457 c.prescale(),
2458 c.pass_through(),
2459 c.chain_hash_id(),
2460 c.lower_chain_hash_id())
2461 for s in c.signatureList():
2462 dump_HLTSignature (s, f)
2463 fprint (f, [t.bit() for t in c.triggerTypeList()])
2464 for s in c.streamTagList():
2465 dump_HLTStreamTag (s, f)
2466 fprint (f, [s for s in c.groupList()])
2467 return
2468
2469
2471 fprint (f, '(')
2472 dump_HLTTriggerElement (s.outputTE(), f)
2473 dump_HLTTriggerElement (s.topoStartTE(), f)
2474 for t in s.inputTEs():
2475 dump_HLTTriggerElement (t, f)
2476 fprint (f, [a for a in s.algorithms()], ')')
2477 return
2478
2479
2480@nolist
2482 fprint (f, "%d" %
2483 (d.masterKey()))
2484 for c in d.getChainList().chains():
2485 fprint (f, '\nch')
2486 dump_HLTChain (c, f)
2487 for c in d.getSequenceList().sequences():
2488 fprint (f, '\nsq')
2489 dump_HLTSequence (c, f)
2490 return
2491
2492
2494 fprint (f, c.id())
2495 return
2496
2497
2499 dump_L1DataBaseclass (c, f)
2500 fprint (f, c)
2501# Menu* menu() const;
2502# void setMenu( Menu* m );
2503# PrescaleSet prescaleSet() const;
2504# void setPrescaleSet( PrescaleSet m );
2505# BunchGroupSet bunchGroupSet() const;
2506# void setBunchGroupSet( BunchGroupSet m );
2507# PrescaledClock prescaledClock() const;
2508# void setPrescaledClock( PrescaledClock m );
2509# TriggerType triggerType() const;
2510# void setTriggerType( TriggerType m );
2511# DeadTime deadTime() const;
2512# void setDeadTime( DeadTime m );
2513# Random random() const;
2514# void setRandom( Random m );
2515
2516# int lvl1MasterTableId() const {return m_Lvl1MasterTableId;}
2517# void setLvl1MasterTableId (const int& id){m_Lvl1MasterTableId=id;}
2518 return
2519
2520
2521@nolist
2523 fprint (f, d.masterKey())
2524 fprint (f, '\nit', [s for s in d.getItems()])
2525 fprint (f, '\nmu', [s for s in d.getMuonThresholds()])
2526 fprint (f, '\nem', [s for s in d.getEMTauThresholds()])
2527 fprint (f, '\njt', [s for s in d.getJetThresholds()])
2528 fprint (f, '\nfj', [s for s in d.getForwardJetThresholds()])
2529 fprint (f, '\net', [s for s in d.getTotalEtThresholds()])
2530 fprint (f, '\nje', [s for s in d.getJetEtThresholds()])
2531 fprint (f, '\nms', [s for s in d.getMissingEtThresholds()])
2532 fprint (f, '\nctp')
2533 if d.ctpConfig():
2534 dump_CTPConfig (d.ctpConfig(), f)
2535 else:
2536 fprint (f, None)
2537 fprint (f, '\ntcf')
2538 if d.thresholdConfig():
2539 fprint (f, d.thresholdConfig())
2540 else:
2541 fprint (f, None)
2542 return
2543
2544
2545@nolist
2547 fprint (f, d.masterKey())
2548 fprint (f, [i for i in d.getPrescales()])
2549 return
2550
2551
2553 dump_H3V (t.GetPosition(), f)
2554 dump_H3V (t.GetMomentum(), f)
2555 fprint (f, t.GetEnergy(),
2556 t.GetPDGCode(),
2557 t.GetTime(),
2558 t.barcode(),
2559 t.GetVolName())
2560 return
2561
2562
2564 fprintln (f, s.code(),
2565 s.fullCode(),
2566 s.deadFrac(),
2567 s.deadThrust(),
2568 s.colour())
2569 return
2570
2571
2572@nolist
2574 for e in m:
2575 fprint (f, e.first)
2576 dump_DetStatus (e.second, f)
2577 return
2578
2579
2581 fprint (f, "%f %f %f %f %f %f %f %f %f %f %f %d" %
2582 (p.a0,
2583 p.z0,
2584 p.phi0,
2585 p.eta,
2586 p.pT,
2587 p.ea0,
2588 p.ez0,
2589 p.ephi0,
2590 p.eeta,
2591 p.epT,
2592 p.surfaceCoordinate,
2593 p.surfaceType))
2594 if p.cov:
2595 fprint (f, [x for x in p.cov])
2596 return
2597
2598
2600 fprint (f, "%d %f %d %d %d %d" %
2601 (t.algorithmId,
2602 t.chi2,
2603 t.NStrawHits,
2604 t.NStraw,
2605 t.NStrawTime,
2606 t.NTRHits))
2607 fprint (f, tonone(t.siSpacePoints), tonone(t.trtDriftCircles))
2608 fprint (f, '\n par')
2609 if t.param:
2610 dump_TrigInDetTrackFitPar (t.param, f)
2611 else:
2612 fprint (f, None)
2613 fprint (f, '\n end')
2614 if t.endParam:
2615 dump_TrigInDetTrackFitPar (t.endParam, f)
2616 else:
2617 fprint (f, None)
2618 return
2619
2620
2622 def __init__ (self, t):
2623 self.a0 = t.a0()
2624 self.z0 = t.z0()
2625 self.phi0 = t.phi0()
2626 self.eta = t.eta()
2627 self.pT = t.pT()
2628 self.ea0 = t.ea0()
2629 self.ez0 = t.ez0()
2630 self.ephi0 = t.ephi0()
2631 self.eeta = t.eeta()
2632 self.epT = t.epT()
2633 self.surfaceCoordinate = t.surfaceCoordinate()
2634 self.surfaceType = t.surfaceType()
2635 if t.cov():
2636 self.cov = [x for x in t.cov()]
2637 else:
2638 self.cov = None
2639 return
2640
2642 def __init__ (self, t):
2643 self.algorithmId = t.algorithmId()
2644 self.chi2 = t.chi2()
2645 self.NStrawHits = t.NStrawHits()
2646 self.NStraw = t.NStraw()
2647 self.NStrawTime = t.NStrawTime()
2648 self.NTRHits = t.NTRHits()
2649 self.siSpacePoints = t.siSpacePoints()
2650 self.trtDriftCircles = t.trtDriftCircles()
2651 if t.param():
2652 self.param = PyTrigInDetTrackFitPar (t.param())
2653 else:
2654 self.param = None
2655 if t.endParam():
2656 self.endParam = PyTrigInDetTrackFitPar (t.endParam())
2657 else:
2658 self.endParam = None
2659 return
2660
2661
2662# Deal with the possibility that some of the ELs in the target set
2663# may be invalid. Doesn't seem to be any way to know that other than
2664# by trying to do the deref. (I.e., we can't get a hold of the EL directly.)
2665def safe_assocs (a, obj, coll, f):
2666 bv = a.beginAssociation(obj)
2667 ev = a.endAssociation(obj)
2668 res = []
2669 err = False
2670 while bv != ev:
2671 try:
2672 targ = bv.__deref__()
2673 res.append (targ)
2674 except RuntimeError as e:
2675 if e.args[0].find ('dereferencing invalid ElementLink') >= 0:
2676 err = True
2677 else:
2678 raise
2679 bv.__preinc__()
2680
2681 if err:
2682 errflag = True
2683 for o in res:
2684 coll.push_back (o)
2685 else:
2686 errflag = False
2687 a.assocs (obj, coll)
2688 return errflag
2689
2690
2691@nolist
2692def dump_Assocs (a, f, colltype):
2693 bo = a.beginObject()
2694 eo = a.endObject()
2695 l = []
2696 while bo != eo:
2697 obj = a.getObject(bo)
2698 coll = colltype(1)
2699 errflag = safe_assocs (a, obj, coll, f)
2700 l.append ((obj, coll, errflag))
2701 bo.next()
2702
2703 l.sort (key=lambda a: a[0].pt(), reverse=True)
2704
2705 for obj, coll, errflag in l:
2706 fprint (f, '\n', typename(obj.__class__))
2707 dump_Fourvec (obj, f)
2708 fprint (f, '->')
2709 for p in coll:
2710 fprint (f, typename(p.__class__))
2711 dump_Fourvec (p, f)
2712 if errflag:
2713 fprint (f, ' [Got invalid EL error]')
2714 return
2715
2716
2717@nolist
2719 return dump_Assocs (a, f, PyAthena.DataVector(PyAthena.INavigable4Momentum))
2720
2721
2722@nolist
2724 return dump_Assocs (a, f, PyAthena.Rec.TrackParticleContainer)
2725
2726
2728 fprint (f, a.name())
2729 return
2730
2731
2733 dump_JetAssociationBase (a, f)
2734 ele = a.electron()
2735 if ele:
2736 fprint (f, a.getElectronWeight (ele))
2737 dump_Fourvec (ele, f)
2738 return
2739
2740
2742 dump_JetAssociationBase (a, f)
2743 gam = a.photon()
2744 if gam:
2745 fprint (f, a.getPhotonWeight (gam))
2746 dump_Fourvec (gam, f)
2747 return
2748
2749
2751 dump_JetAssociationBase (a, f)
2752 muo = a.muon()
2753 if muo != muonNull:
2754 fprint (f, a.getMuonWeight (muo))
2755 dump_Fourvec (muo, f)
2756 return
2757
2758
2760 return i.infoType()
2761
2762def dump_Jet (j, f):
2763 if j.e() == 0 and j.phi() == 0 and j.eta() == 0:
2764 with signalstate (j, PyAthena.P4SignalState.JETEMSCALE):
2765 dump_ParticleImpl (j, f)
2766 else:
2767 dump_ParticleImpl (j, f)
2768 fprint (f, '\n %s %f' %
2769 (j.jetAuthor(),
2770 j.getFlavourTagWeight(),))
2771 # ELs to towers will always be invalid (towers aren't actually saved...)
2772 tower_constituents_p = False
2773 if j.firstConstituent() != j.lastConstituent():
2774 if isinstance (j.getContainer(j.firstConstituent()),
2775 PyAthena.CaloTowerContainer):
2776 tower_constituents_p = True
2777 elif j.firstConstituent().__deref__():
2778 ss = asint(j.constituentSignalState())
2779 j.setConstituentSignalState (PyAthena.P4SignalState.CALIBRATED)
2780 dump_HLV (j.constituent_sum4Mom(), f)
2781 j.setConstituentSignalState (ss)
2782 fprint (f, [x for x in j.combinedLikelihood()])
2783 fprint (f, '\n moms ')
2784 for mk in j.getMomentKeys():
2785 if mk in ['Timing', 'LArQuality']: continue
2786 mom = j.getMoment (mk, False)
2787 if mom != 0:
2788 fprint (f, mk, j.getMoment (mk, True))
2789 if hasattr(j, 'getJetTime'):
2790 fprint (f, '\n timing ', j.getJetTime(),
2791 ' qual ', j.getJetQuality())
2792 else:
2793 fprint (f, '\n timing ', j.getMoment('Timing',True),
2794 ' qual ', j.getMoment('LArQuality',True))
2795 fprint (f, '\n assoc ')
2796 for ak in j.getAssociationKeys():
2797 ass = j.getAssociationBase(ak)
2798 if ass == jetAssocNull : continue
2799 fprint (f, '\n ', ak)
2800 if isinstance (ass, PyAthena.Analysis.ElectronAssociation):
2801 dump_ElectronAssociation (ass, f)
2802 elif isinstance (ass, PyAthena.Analysis.PhotonAssociation):
2803 dump_PhotonAssociation (ass, f)
2804 elif isinstance (ass, PyAthena.Analysis.MuonAssociation):
2805 dump_MuonAssociation (ass, f)
2806 else:
2807 fprint (f, ass)
2808 ti = j.jetTagInfoVector()
2809 fprint (f, '\n tag info:')
2810 if ti:
2811 #ROOT.SetOwnership (ti, True)
2812 ti = list(ti)
2813 ti.sort (key=_infoType)
2814 for info in ti:
2815 if not info:
2816 fprint (f, '\n (null)')
2817 continue
2818 fprint (f, '\n %s %s: %f: '
2819 % (info.infoType(), typename(info.__class__), j.getFlavourTagWeight (info.infoType())))
2820 fprint (f, info)
2821 if tower_constituents_p:
2822 fprint (f, '\n (not dumping tower constituents)')
2823 else:
2824 fprint (f, '\n constituents:')
2825 for c in toiter (j.firstConstituent(), j.lastConstituent()):
2826 fprint (f, '\n ')
2827 if not c:
2828 fprint (f, tonone(c))
2829 else:
2830 fprint (f, typename(c.__class__))
2831 fprint (f, j.getWeight (c))
2832 dump_Fourvec (c, f)
2833 return
2834
2835
2837 dump_VxCandidate1 (c, f)
2838 fprint (f, '\n em')
2839 if c.fullCovariance():
2840 dump_AmgMatrix (c.fullCovariance(), f)
2841 else:
2842 fprint (f, None)
2843 return
2844
2845
2847 if h is None:
2848 fprint (f, None)
2849 return
2850 fprint (f, 'V0Hypothesis', h.positiveTrackID(),
2851 h.negativeTrackID(), h.hypothesisID())
2852 fprint (f, '\n ')
2853 dump_ExtendedVxCandidate (h, f)
2854 return
2855
2856
2858 fprint (f, "V0Candidate", len(v.v0Hypothesis()))
2859 for h in v.v0Hypothesis():
2860 fprint (f, '\n ')
2861 dump_V0Hypothesis (h, f)
2862 return
2863
2864
2866 dump_Threevec (v, f)
2867 fprint (f, v.algorithmId(), v.chi2(), v.ndof(), v.mass(),
2868 v.massVariance(), v.energyFraction(), v.nTwoTracksSecVtx())
2869 fprint (f, '\n cov: ', [v.cov()[i] for i in range(6)])
2870 if v.tracks() and v.tracks().size() > 0:
2871 for (i, t) in enumerate (v.tracks()):
2872 fprint (f, '\n t%d'%i)
2873 p = t.param()
2874 fprint (f, p.a0(), p.z0(), p.phi0(), p.eta(), p.pT())
2875 if v.getMotherTrack():
2876 fprint (f, '\n mother: ')
2877 dump_TrigInDetTrackFitPar (v.getMotherTrack(), f)
2878 return
2879
2880
2881def dump_clist (l, f):
2882 fprint (f, '[')
2883 last = None
2884 n = 0
2885 for i in l:
2886 if i != last:
2887 if n > 0:
2888 if n == 1:
2889 fprint (f, '%f, ' % last)
2890 else:
2891 fprint (f, '%d*%f, ' % (n, last))
2892 last = i
2893 n = 1
2894 else:
2895 n = n + 1
2896 if n > 0:
2897 if n == 1:
2898 fprint (f, '%f, ' % last)
2899 else:
2900 fprint (f, '%d*%f, ' % (n, last))
2901 fprint (f, ']')
2902 return
2903
2905 fprint (f, 'z0_pt:')
2906 dump_TrigHisto2D (t.z0_pt(), f)
2907 fprint (f, '\neta_phi:')
2908 dump_TrigHisto2D (t.eta_phi(), f)
2909 return
2910@nolist
2912 dump_TrigTrackCounts (t, f)
2913 return
2914
2915
2917 fprint (f, c.rawEnergy(), c.rawEt(), c.rawEta(), c.rawPhi(), c.RoIword(),
2918 c.nCells(), c.quality())
2919 fprint (f, '\n ', [c.rawEnergy(i) for i in range(25)])
2920 return
2921
2922
2924 dump_TrigCaloCluster (c, f)
2925 fprint (f, '\n ', c.energy(), c.et(), c.eta(), c.phi(),
2926 c.e237(), c.e277(), c.fracs1(), c.weta2(),
2927 c.ehad1(), c.Eta1(), c.emaxs1(), c.e2tsts1())
2928 fprint (f, '\n ', [c.energyInSample(i) for i in range(25)])
2929 return
2930@nolist
2932 dump_TrigEMCluster (c, f)
2933 return
2934
2935
2936@nolist
2938 fprintln (f, ' ROI ', t.RoI_ID())
2939 t2 = [PyTrigInDetTrack(tt) for tt in t]
2940 dump_list (t2, f, dump_TrigInDetTrack)
2941 return
2942
2943
2945 fprint (f, ' ',
2946 d.version(), d.isFullscan(),
2947 d.eta(), d.etaPlus(), d.etaMinus(),
2948 d.phi(), d.phiPlus(), d.phiMinus(),
2949 d.zed(), d.zedPlus(), d.zedMinus(),
2950 d.composite(), d.manageConstituents(), d.size(),
2951 formatItemUsingLong ([d.at(i).roiId() for i in range(d.size())]))
2952 return
2953
2954
2956 fprint (f, ' ', d.roiId(), d.l1Id(), d.roiWord())
2957 dump_RoiDescriptor (d, f)
2958@nolist
2960 dump_TrigRoiDescriptor (d, f)
2961 return
2962
2963
2965 fprint (f, m.e(), m.eta(), m.phi(), m.inCone(), m.caloSample())
2966 return
2967
2968
2970 if not t: return
2971 for s in range(4):
2972 fprint (f, '\n EM%d: '% s)
2973 fprint (f, t.EMRadius(s), t.EMenergyWidth(s), t.EMenergyMedium(s),
2974 t.EMenergyWide(s), t.EMenergyNarrow(s))
2975 for s in range(3):
2976 fprint (f, '\n HAD%d: '% s)
2977 fprint (f, t.HADRadius(s), t.HADenergyWidth(s), t.HADenergyMedium(s),
2978 t.HADenergyWide(s), t.HADenergyNarrow(s))
2979 return
2980
2982 fprint (f, ' ')
2983 dump_TrigCaloCluster (t, f)
2984 fprint (f, '\n ', t.energy(), t.EMCalibEnergy(), t.EMenergy(),
2985 t.HADenergy(), t.eta(), t.phi(), t.IsoFrac(), t.numStripCells(),
2986 t.stripWidth(), t.eCalib(), t.eEMCalib(), t.EMRadius2())
2987 for s in range(25):
2988 fprint (f, '\n %2d: '% s)
2989 fprint (f, t.energy(s))
2990 dump_TrigTauClusterDetails (t.clusterDetails(), f)
2991 fprintln (f, ' ')
2992 return
2993@nolist
2995 dump_TrigTauCluster (t, f)
2996 return
2997
2998
3000 fprint (f, "x:", h.nbins_x(), h.min_x(), h.max_x(), '[')
3001 for x in h.contents():
3002 fprint (f, x)
3003 fprint (f, ']')
3004 return
3006 dump_TrigHisto (h, f)
3007 return
3009 fprint (f, "y:", h.nbins_y(), h.min_y(), h.max_y())
3010 dump_TrigHisto (h, f)
3011 return
3012
3014 fprint (f, c.sctSpEndcapC(), c.sctSpBarrel(), c.sctSpEndcapA(), '[')
3015 for id in c.droppedSctModules():
3016 fprint (f, id.getString())
3017 fprint (f, ']')
3018 fprint (f, '\n clus endcap c: ')
3019 dump_TrigHisto2D (c.pixelClusEndcapC(), f)
3020 fprint (f, '\n clus barrel: ')
3021 dump_TrigHisto2D (c.pixelClusBarrel(), f)
3022 fprint (f, '\n clus endcap a: ')
3023 dump_TrigHisto2D (c.pixelClusEndcapA(), f)
3024 return
3025@nolist
3027 dump_TrigSpacePointCounts (c, f)
3028 return
3029
3030
3031def dump_TileMu (m, f):
3032 fprint (f, m.eta(), m.phi(), m.quality(), list(m.enedep()))
3033 return
3034
3035
3037 beg = m.begin()
3038 end = m.end()
3039 while beg != end:
3040 fprint (f, '\n ', beg.getMomentType(), beg.getMoment().getValue())
3041 beg.next()
3042 return
3043
3044
3046 nsamp = s.getNumberOfSamplings()
3047 for i in range(min(10, s.getNumberOfVariableTypes())):
3048 if s.contains(i):
3049 slist = [s.retrieveData(i, samp) for samp in range(nsamp)]
3050 fprint (f, '\n ', i, slist)
3051 return
3052
3053
3055 fprint (f, ' moments:')
3056 dump_CaloClusterMomentStore (s.getMomentStore(), f)
3057 fprint (f, '\n sampling data:')
3058 dump_CaloSamplingData (s.getSamplingStore(), f)
3059 return
3060
3061
3062@nolist
3064 # Note: container contents aren't saved...
3065 fprintln (f, t.neta(), t.etamin(), t.deta(),
3066 t.nphi(), t.phimin(), t.dphi())
3067 return
3068
3069
3070@nolist
3072 # Note: container contents aren't saved...
3073 dump_CaloTowerContainer (t, f)
3074 fprint (f, ' ', t.GetMinimumCellEnergy(),
3075 t.GetMinimumClusterEnergy(),
3076 t.GetUseCellWeights(),
3077 False, # was t.GetUseNoiseTool(),
3078 True, # was t.GetUsePileUpNoise(),
3079 t.GetNoiseSigma(),
3080 t.GetCellESignificanceThreshold(),
3081 t.GetCaloSelection())
3082 ci = t.GetCaloIndices()
3083 # list(ci) broken in root 6.04.12.
3084 fprint (f, [ci[i] for i in range(ci.size())])
3085 def dl(l):
3086 fprint (f, ' ')
3087 if l.isValid(): fprintln (f, l.dataID())
3088 else: fprintln (f, '(null)')
3089 dl(t.GetClusters())
3090 dl(t.GetTowers())
3091 dl(t.GetCells())
3092 if t.GetCellToClusterMap():
3093 fprintln (f, ' ', t.GetCellToClusterMap().size())
3094 else:
3095 fprintln (f, ' (null)')
3096 return
3097
3098
3100 fprint (f, t.cellID().getString(), t.particleID(),
3101 [t.energy(i) for i in range(4)])
3102 return
3103
3104
3105def dump_LArHit (t, f):
3106 fprint (f, t.cellID().getString(), t.energy(), t.time())
3107 return
3108
3109
3110def dump_TileHit (t, f):
3111 sz = t.size()
3112 fprint (f, t.identify().getString(), [t.energy(i) for i in range(sz)],
3113 [t.time(i) for i in range(sz)])
3114 return
3115
3116
3118 fprint (f, p.barcode(), p.eventIndex())
3119 return
3120
3121
3122def dump_SiHit (t, f):
3123 fprint (f, t.identify())
3124 dump_Threevec (t.localStartPosition(), f)
3125 dump_Threevec (t.localEndPosition(), f)
3126 fprint (f, t.energyLoss(), t.meanTime(), t.truthBarcode())
3127 dump_HepMcParticleLink (t.particleLink(), f)
3128 return
3129
3130
3132 fprint (f, t.GetHitID(), t.truthBarcode(), t.GetParticleEncoding(),
3133 t.GetKineticEnergy(), t.GetEnergyDeposit(),
3134 t.GetPreStepX(), t.GetPreStepY(), t.GetPreStepZ(),
3135 t.GetPostStepX(), t.GetPostStepY(), t.GetPostStepZ(),
3136 t.GetGlobalTime())
3137 return
3138
3139
3141 if hasattr(t, 'triggerEnergies'):
3142 fprint (f, list(t.triggerEnergies()), list(t.triggerTimes()))
3143 else:
3144 fprint (f, t.mbtsWord(), list(t.triggerTimes()))
3145 return
3146
3147
3149 # Not really implemented.
3150 # The AODs i saw had containers of these, which were always empty.
3151 # Print as the address, so that if we do see one with contents,
3152 # we'll see a miscompare and know to fill this in.
3153 fprint (f, id(m))
3154 #fprint (f, m.p(), m.theta(), m.phi(), m.t(), m.radius(),
3155 # m.isIngoing, m.NRpcPairs(), m.NTgcPairs(), m.NMdtHits(),
3156 # m.NMdtSegs())
3157# void getRefPoint(double vec[3]) const;
3158# double residual(double z, double r) const;
3159# double longPos(double z, double r) const;
3160# void perigee(double point[3], double x0=0, double y0=0, double z0=0) const;
3161# void perigee2D(double point[2], double x0=0, double y0=0) const;
3162# double dca3D(double x0=0.0, double y0=0.0, double z0=0.0) const;
3163# double dcaXY(double x0=0.0, double y0=0.0) const;
3164# double dca2D_Z(double x0=0.0, double y0=0.0) const;
3165 return
3166
3167
3169 # Not really implemented.
3170 # The AODs i saw had containers of these, which were always empty.
3171 # Print as the address, so that if we do see one with contents,
3172 # we'll see a miscompare and know to fill this in.
3173 fprint (f, id(t))
3174 return
3175
3176
3178 fprint (f, list(r.rings()))
3179 return
3180
3181
3183 fprint (f, ' barrel')
3184 dump_TrigHisto1D (p.barrel(), f)
3185 fprint (f, '\n endcapA')
3186 dump_TrigHisto1D (p.endcapA(), f)
3187 fprint (f, '\n endcapC')
3188 dump_TrigHisto1D (p.endcapC(), f)
3189 return
3190
3191
3193 fprint (f, list(p.output()))
3194 #if p.isValid():
3195 # cl = p.cluster()
3196 # fprint (f, ' [', cl.rawEnergy(), cl.rawEta(), cl.rawPhi(), ']')
3197 return
3198
3199
3201 if p == InDetLowBetaCandidateNull:
3202 fprint (f, '(null)')
3203 return
3204 if hasattr (p, 'getTRTInverseBeta'):
3205 fprint (f, p.getTRTCorrBitsOverThreshold(),
3206 p.getTRTInverseBeta(),
3207 p.getTRTInverseBetaError(),
3208 p.getTRTNLastBits())
3209 else:
3210 fprint (f, p.getTRTCorrBitsOverThreshold(),
3211 p.getTRTTrailingEdge(),
3212 p.getTRTTrailingEdgeError(),
3213 p.getTRTNLastBits())
3214 others = (p.getTRTdEdx(),
3215 p.getTRTLikelihoodBeta(),
3216 p.getTRTLikelihoodError(),
3217 p.getTRTHighTbits(),)
3218 if max(others)!=0 or min(others) != 0:
3219 for o in others: fprint (f, o)
3220 return
3221
3222
3223@nolist
3225 fprintln (f, ' noisy febs', [id.getString() for id in p.get_noisy_febs()])
3226 # Dictionary problem here --- punt for now.
3227 #fprint (f, ' noisy preamps',
3228 # [(p.first.getString(),p.second) for p in p.get_noisy_preamps()])
3229 return
3230
3231
3233 fprint (f, p.getName(), p.isAccepted())
3234 return
3235
3236
3237@nolist
3239 for a in dir(p):
3240 if a.startswith ('get'):
3241 fprintln (f, a[3:]+':', getattr(p, a)())
3242 return
3243
3244
3245@nolist
3247 for p in m.getAllT0s():
3248 fprintln (f, ' ', p.first.getString(), p.second)
3249 return
3250
3251
3253 fprint (f, [b.isPassing(i) for i in range(b.size())])
3254 return
3255
3256
3258 p = b.infos()
3259 fprint (f, [str(s) for s in p.first], list(p.second))
3260 return
3261
3262
3264 fprint (f,
3265 formatItemUsingLong (list(v.vtxNtrks())),
3266 list(v.vtxTrkPtSqSum()))
3267 return
3268
3269
3271 # The interface changed, sigh...
3272 if hasattr (m, 'getNumObjects'):
3273 for i in range (m.getNumObjects()):
3274 fwrite (f, ' \n')
3275 fprint (f, i, list(m.getFlag(i,j) for j in range(m.getNumFlags(i))))
3276 else:
3277 for i in range (m.size()):
3278 fwrite (f, ' \n')
3279 fprint (f, i, list(m.getFlagBit(i,j) for j in range(m.flagSize())))
3280 return
3281
3282
3284 dump_Fourvec (e, f)
3285 fprint (f, e.eflowType(), e.isValid(), e.d0(), e.z0(),
3286 e.getPassEOverPCheck(), e.getIsSubtracted(),
3287 e.getIsDuplicated(), e.getCaloRecoStatus().getStatusWord())
3288 for i in range(e.numTrack()):
3289 fprint (f, '\n tk: ')
3290 dump_EL (e.trackLink(i), f)
3291 for i in range(e.numClus()):
3292 fprint (f, '\n cl: ')
3293 dump_EL (e.clusLink(i), f)
3294 fprint (f, '\n mu: ')
3295 dump_EL (e.muonLink(), f)
3296 fprint (f, '\n cv: ')
3297 dump_EL (e.conversionLink(), f)
3298 return
3299
3300
3301@nolist
3303 print (c.missET(), c.sumET(), c.pTx(), c.pTy(), c.numEf(),
3304 c.numPhot(), c.numEle(), c.numMuo(), c.isValid(),
3305 c.circularity(), c.thrust(), c.oblateness(),
3306 file = f)
3307 dump_list (c, f, dump_eflowObject)
3308 return
3309
3310
3311@nolist
3313 fprint (f, p.smk(), p.l1psk(), p.hltpsk())
3314 return
3315
3316
3318 fprint (f, p.collHash(), p.objIndex())
3319 return
3320
3321
3323 fprint (f, p.identify().getString())
3324 dump_IdentContIndex (p.getHashAndIndex(), f)
3325 dump_AmgVector (p.localPosition(), f)
3326 dump_AmgMatrix (p.localCovariance(), f)
3327 fprint (f, '[')
3328 for i in p.rdoList():
3329 fprint (f, i.getString())
3330 fprint (f, ']')
3331 return
3332
3333
3335 dump_PrepRawData (p, f)
3336 dump_AmgVector (p.globalPosition(), f, thresh=1e-8, prec=4)
3337 return
3338
3339
3341 dump_MuonCluster (p, f)
3342 fprint (f, p.charge(), p.time(), p.status(), p.timeStatus())
3343 fprint (f, p.detectorElement().identifyHash().value())
3344 return
3345
3346
3348 dump_MuonCluster (p, f)
3349 fprint (f, p.timeOfFirstSample(), p.samplingPhase(), p.samplingTime())
3350 fprint (f, list(p.sampleCharges()))
3351 fprint (f, p.detectorElement().identifyHash().value())
3352 return
3353
3354
3356 dump_MuonCluster (p, f)
3357 fprint (f, p.getBcBitMap())
3358 fprint (f, p.detectorElement().identifyHash().value())
3359 return
3360
3361
3363 fprint (f, p.type(), p.channelIdIn().getString(), p.channelIdOut().getString(), p.identifyHash().value())
3364 dump_IdentContIndex (p.getHashAndIndex(), f)
3365 fprint (f, p.isAside(), p.phi(), p.isInner(), p.isForward(), p.isStrip(), p.trackletId(), p.trackletIdStrip())
3366 fprint (f, p.widthIn(), p.widthOut())
3367 fprint (f, p.delta(), p.roi(), p.pt(), p.veto(), p.sub(), p.inner(), p.isPositiveDeltaR())
3368 if p.channelIdIn().get_compact() != 0:
3369 dump_AmgVector (p.posIn(), f, thresh=1e-8)
3370 dump_AmgVector (p.globalposIn(), f, thresh=1e-8)
3371 if p.channelIdOut().get_compact() != 0:
3372 dump_AmgVector (p.posOut(), f, thresh=1e-8)
3373 dump_AmgVector (p.globalposOut(), f, thresh=1e-8)
3374 if p.hasErrMat():
3375 dump_AmgMatrix (p.errMat(), f)
3376 if p.detectorElementIn():
3377 fprint (f, p.detectorElementIn().identifyHash().value())
3378 else:
3379 fprint (f, '(null detel)')
3380 if p.detectorElementOut():
3381 fprint (f, p.detectorElementOut().identifyHash().value())
3382 else:
3383 fprint (f, '(null detel)')
3384 return
3385
3386
3388 dump_MuonCluster (p, f)
3389 fprint (f, p.tdc(), p.adc(), p.status())
3390 fprint (f, p.detectorElement().identifyHash().value())
3391 return
3392
3393
3395 fprint (f, p.time(), p.ambiguityFlag())
3396 fprint (f, p.detectorElement().identifyHash().value())
3397 return
3398
3399
3401 dump_RpcPrepData (p, f)
3402 fprint (f, p.ijk(), p.threshold(), p.overlap(), p.parentCmId(), p.parentPadId(), p.parentSectorId())
3403 return
3404
3405
3406def dump_SiWidth (p, f):
3407 dump_AmgVector (p.colRow(), f)
3408 dump_AmgVector (p.widthPhiRZ(), f)
3409 return
3410
3411
3413 dump_PrepRawData (p, f)
3414 fprint (f, p.gangedPixel())
3415 dump_AmgVector (p.globalPosition(), f)
3416 dump_SiWidth (p.width(), f)
3417 fprint (f, p.detectorElement().identifyHash().value())
3418 return
3419
3420
3422 dump_SiCluster (p, f)
3423 fprint (f, p.omegax(), p.omegay(), list (p.totList()))
3424 fprint (f, p.totalToT(), list(p.chargeList()), p.totalCharge())
3425 fprint (f, p.isFake(), p.isAmbiguous(), p.LVL1A(), p.splitInfoRaw(), p.tooBigToBeSplit())
3426 return
3427
3428
3430 dump_SiCluster (p, f)
3431 fprint (f, p.hitsInThirdTimeBin())
3432 return
3433
3434
3436 dump_PrepRawData (p, f)
3437 fprint (f, p.getWord())
3438 fprint (f, p.detectorElement().identifyHash().value())
3439 return
3440
3441
3443 fprint (f, p.identify().getString(), p.getWord())
3444 return
3445
3446
3448 dump_InDetRawData (p, f)
3449 fprint (f, p.getToT(), p.getBCID(), p.getLVL1A(), p.getLVL1ID())
3450 return
3451
3452
3454 dump_InDetRawData (p, f)
3455 fprint (f, p.highLevel(), p.timeOverThreshold(), p.driftTimeBin())
3456 return
3457
3458
3460 dump_InDetRawData (p, f)
3461 fprint (f, p.getGroupSize())
3462 return
3463
3464
3465def dump_IDC (payload_dumper, p, f, extra_idc_dumper = None):
3466 beg = p.begin()
3467 end = p.end()
3468 if hasattr(beg.__class__, '__preinc__'):
3469 nextfunc = beg.__preinc__
3470 elif hasattr(beg.__class__, '__next__'):
3471 nextfunc = beg.__next__
3472 else:
3473 nextfunc = beg.next
3474 while beg != end:
3475 coll = beg.cptr()
3476 if hasattr (coll, 'identifyHash'):
3477 hash = coll.identifyHash().value()
3478 else:
3479 hash = coll.identifierHash().value()
3480 fprint (f, 'IDC', beg.hashId().value(), hash, coll.size())
3481 if hasattr (coll, 'type'):
3482 fprint (f, coll.type())
3483 if extra_idc_dumper:
3484 extra_idc_dumper (coll, f)
3485 for x in coll:
3486 fprint (f, '\n ')
3487 payload_dumper (x, f)
3488 fwrite (f, '\n')
3489 nextfunc()
3490 fwrite (f, '\n')
3491 return
3492
3493
3494@nolist
3496 dump_IDC (dump_CscPrepData, p, f)
3497 return
3498
3499
3500@nolist
3502 dump_IDC (dump_CscStripPrepData, p, f)
3503 return
3504
3505
3506@nolist
3508 dump_IDC (dump_RpcCoinData, p, f)
3509 return
3510
3511
3512@nolist
3514 dump_IDC (dump_RpcPrepData, p, f)
3515 return
3516
3517
3518@nolist
3520 dump_IDC (dump_TgcPrepData, p, f)
3521 return
3522
3523
3524@nolist
3526 dump_IDC (dump_TgcCoinData, p, f)
3527 return
3528
3529
3530@nolist
3532 dump_IDC (dump_MdtPrepData, p, f)
3533 return
3534
3535
3536@nolist
3538 dump_IDC (dump_PixelCluster, p, f)
3539 return
3540
3541
3542@nolist
3544 dump_IDC (dump_SCT_Cluster, p, f)
3545 return
3546
3547
3548@nolist
3550 dump_IDC (dump_TRT_DriftCircle, p, f)
3551 return
3552
3553
3554@nolist
3556 dump_IDC (dump_PixelRDORawData, p, f)
3557 return
3558
3559
3560@nolist
3562 dump_IDC (dump_TRT_RDORawData, p, f)
3563 return
3564
3565
3566@nolist
3568 dump_IDC (dump_SCT_RDORawData, p, f)
3569 return
3570
3571
3573 fprint (f, p.energy(), p.ypos(), p.zpos(), p.charge())
3574 return
3575
3576
3578 fprint (f, p.word())
3579 for d in p.getdeposits():
3580 dump_HepMcParticleLink (d.first, f)
3581 dump_CscMcData (d.second, f)
3582 return
3583
3584
3585@nolist
3587 for elt in p:
3588 fprint (f, elt.first.getString())
3589 dump_CscSimData (elt.second, f)
3590 fwrite (f, '\n')
3591 return
3592
3593
3595 fprint (f, p.firstEntry(), p.secondEntry())
3596 return
3597
3598
3600 fprint (f, p.word())
3601 dump_AmgVector (p.globalPosition(), f)
3602 for d in p.getdeposits():
3603 dump_HepMcParticleLink (d.first, f)
3604 dump_MuonMcData (d.second, f)
3605 return
3606
3607
3608@nolist
3610 for elt in p:
3611 fprint (f, elt.first.getString())
3612 dump_MuonSimData (elt.second, f)
3613 fwrite (f, '\n')
3614 return
3615
3616
3617@nolist
3619 for elt in p:
3620 dump_SiCluster (elt.first, f)
3621 dump_SiCluster (elt.second, f)
3622 fwrite (f, '\n')
3623 return
3624
3625
3627 fprint (f, p.identify().getString())
3628 return
3629
3630
3632 dump_TileRawData (p, f)
3633 fprint (f, list(p.get_digits()))
3634 return
3635
3636
3637@nolist
3639 fprint (f, p.get_unit(), p.get_type(), p.get_bsflags())
3640 fprint (f, p.hashFunc().max(), p.hashFunc().offset(), p.hashFunc().type())
3641 fwrite (f, '\n')
3642 beg = p.begin()
3643 end = p.end()
3644 if hasattr(beg.__class__, '__preinc__'):
3645 nextfunc = beg.__preinc__
3646 elif hasattr(beg.__class__, '__next__'):
3647 nextfunc = beg.__next__
3648 else:
3649 nextfunc = beg.next
3650 while beg != end:
3651 coll = beg.cptr()
3652 fprint (f, 'TDC',
3653 beg.hashId().value(),
3654 list(coll.getFragChipCRCWords()),
3655 list(coll.getFragChipCRCWordsHigh()),
3656 list(coll.getFragChipHeaderWords()),
3657 list(coll.getFragChipHeaderWordsHigh()),
3658 formatItemUsingLong(list(coll.getFragExtraWords())),
3659 coll.getFragBCID(), coll.getFragSize())
3660 for x in coll:
3661 fprint (f, '\n ')
3662 dump_TileDigits (x, f)
3663 fwrite (f, '\n')
3664 nextfunc()
3665 fwrite (f, '\n')
3666 return
3667
3668
3670 dump_TileRawData (data, f)
3671 fprint (f, [data.amplitude(i) for i in range(data.size())])
3672 fprint (f, [data.time(i) for i in range(data.sizeTime())])
3673 fprint (f, [data.quality(i) for i in range(data.sizeQuality())])
3674 fprint (f, data.pedestal())
3675 return
3676
3677
3678
3680 fprint (f, '\n ', data.identify(),
3681 data.getLvl1Id(),
3682 data.getLvl1Type(),
3683 data.getDetEvType(),
3684 data.getRODBCID())
3685 for x in data:
3686 fprint (f, '\n ')
3687 dump_TileRawChannel (x, f)
3688 return
3689
3690
3692 fprint (f, '\n ', data.getFragGlobalCRC(),
3693 data.getFragDSPBCID(),
3694 data.getFragBCID(),
3695 data.getFragMemoryPar(),
3696 data.getFragSstrobe(),
3697 data.getFragDstrobe(),
3698 data.getFragHeaderBit(),
3699 data.getFragHeaderPar(),
3700 data.getFragSampleBit(),
3701 data.getFragSamplePar(),
3702 data.getFragFEChipMask(),
3703 data.getFragRODChipMask())
3704 dump_TileRawDataCollection (data, f)
3705 return
3706
3707
3708@nolist
3710 fprintln (f, data.get_unit(), data.get_type(), data.get_bsflags())
3711 beg = data.begin()
3712 end = data.end()
3713 while beg != end:
3714 coll = beg.cptr()
3715 fprint (f, 'Coll', beg.hashId().value(), coll.size())
3716 dump_TileRawChannelCollection (coll, f)
3717 fwrite (f, '\n')
3718 beg.__preinc__()
3719 fwrite (f, '\n')
3720 return
3721
3722
3723@nolist
3725 fprintln (f, data.get_unit(), data.get_type(), data.get_bsflags())
3726 beg = data.begin()
3727 end = data.end()
3728 while beg != end:
3729 coll = beg.cptr()
3730 fprint (f, 'Coll', beg.hashId().value(), coll.size())
3731 #dump_TileRawChannelCollection (coll, f)
3732 fwrite (f, '\n')
3733 beg.__preinc__()
3734 fwrite (f, '\n')
3735 return
3736
3737
3738def dump_TileL2 (p, f):
3739 fprint (f, p.identify(), p.phi(0), p.cosphi(), p.sinphi())
3740 fprint (f, [p.sumE(i) for i in range(p.NsumE())])
3741 fprint (f, [p.eta(i) for i in range(p.NMuons())])
3742 fprint (f, [p.enemu0(i) for i in range(p.NMuons())])
3743 fprint (f, [p.enemu1(i) for i in range(p.NMuons())])
3744 fprint (f, [p.enemu2(i) for i in range(p.NMuons())])
3745 fprint (f, formatItemUsingLong ([p.qual(i) for i in range(p.NMuons())]))
3746 fprint (f, formatItemUsingLong ([p.val(i) for i in range(p.Ndata())]))
3747 return
3748
3749
3750def dump_TileTTL1 (p, f):
3751 fprint (f, p.identify().getString(), list(p.fsamples()))
3752 return
3753
3754
3756 fprint (f, p.GetID(), list (p.GetDecision()),
3757 list(p.GetThresholds()), list(p.GetEne()), list(p.GetTime()))
3758 return
3759
3760
3762 fprint (f, p.crate(), p.dataID(), p.peak(),
3763 formatItemUsingLong (list(p.HitsVec0())),
3764 formatItemUsingLong (list(p.HitsVec1())),
3765 list(p.ErrorVec0()),
3766 list(p.ErrorVec1()))
3767 return
3768
3769
3771 fprint (f, p.crate(), p.dataID(), p.peak(),
3772 formatItemUsingLong (list(p.EtVec())),
3773 formatItemUsingLong (list(p.ExVec())),
3774 formatItemUsingLong (list(p.EyVec())),
3775 list(p.EtErrorVec()),
3776 list(p.ExErrorVec()),
3777 list(p.EyErrorVec()))
3778 return
3779
3780
3782 fprint (f, p.crate(), p.dataID(), p.peak(),
3783 formatItemUsingLong (list(p.HitsVec())),
3784 list(p.ErrorVec()))
3785 return
3786
3787
3788@nolist
3789def dump_CMMRoI (p, f):
3790 fprint (f, p.jetEtRoiWord(),
3791 p.energyRoiWord0(),
3792 p.energyRoiWord1(),
3793 p.energyRoiWord2())
3794 return
3795
3796
3797def dump_CPMHits (p, f):
3798 fprint (f, p.crate(), p.module(), p.peak(),
3799 formatItemUsingLong (list(p.HitsVec0())),
3800 formatItemUsingLong (list(p.HitsVec1())))
3801 return
3802
3803
3804def dump_CPMRoI (p, f):
3805 fprint (f, p.roiWord())
3806 return
3807
3808
3809def dump_CPMTower (p, f):
3810 fprint (f, p.eta(), p.phi(), p.peak(),
3811 list(p.emEnergyVec()),
3812 list(p.hadEnergyVec()),
3813 list(p.emErrorVec()),
3814 list(p.hadErrorVec()))
3815 return
3816
3817
3818@nolist
3819def dump_CTP_RDO (p, f):
3820 fprint (f, p.getCTPVersionNumber(),
3821 p.getCTPVersion().getVersionNumber(),
3822 formatItemUsingLong (list(p.getDataWords())),
3823 p.getL1AcceptBunchPosition(),
3824 p.getTurnCounter(),
3825 p.getNumberOfBunches(),
3826 p.getNumberOfAdditionalWords())
3827 return
3828
3829
3830@nolist
3832 fprint (f,
3833 formatItemUsingLong (list(p.getAllCandidateMultiplicities())),
3834 formatItemUsingLong (list(p.dataWord())))
3835 return
3836
3837
3839 fprint (f, p.crate(), p.module(), p.peak(),
3840 formatItemUsingLong (list(p.EtVec())),
3841 formatItemUsingLong (list(p.ExVec())),
3842 formatItemUsingLong (list(p.EyVec())))
3843 return
3844
3845
3846def dump_JEMHits (p, f):
3847 fprint (f, p.crate(), p.module(), p.peak(),
3848 formatItemUsingLong (list(p.JetHitsVec())))
3849 return
3850
3851
3852def dump_JEMRoI (p, f):
3853 fprint (f, p.roiWord())
3854 return
3855
3856
3858 fprint (f, p.eta(), p.phi(), p.key(), p.peak(),
3859 list(p.emEnergyVec()),
3860 list(p.hadEnergyVec()),
3861 list(p.emErrorVec()),
3862 list(p.hadErrorVec()),
3863 list(p.linkErrorVec()))
3864 return
3865
3866
3868 fprint (f, formatItemUsingLong (list(p.header())))
3869 return
3870
3871
3873 fprint (f, formatItemUsingLong (list(p.trailer())))
3874 return
3875
3876
3878 fprint (f, p.roIWord())
3879 return
3880
3881
3883 dump_ROIBHeader (p.header(), f)
3884 for r in p.roIVec():
3885 dump_MuCTPIRoI (r, f)
3886 dump_ROIBTrailer (p.trailer(), f)
3887 return
3888
3889
3890def dump_CTPRoI (p, f):
3891 fprint (f, p.roIWord())
3892 return
3893
3894
3896 dump_ROIBHeader (p.header(), f)
3897 for r in p.roIVec():
3898 dump_CTPRoI (r, f)
3899 dump_ROIBTrailer (p.trailer(), f)
3900 return
3901
3902
3904 fprint (f, p.roIWord())
3905 return
3906
3907
3909 dump_ROIBHeader (p.header(), f)
3910 for r in p.roIVec():
3911 dump_JetEnergyRoI (r, f)
3912 dump_ROIBTrailer (p.trailer(), f)
3913 return
3914
3915
3916def dump_EMTauRoI (p, f):
3917 fprint (f, p.roIWord())
3918 return
3919
3920
3922 dump_ROIBHeader (p.header(), f)
3923 for r in p.roIVec():
3924 dump_EMTauRoI (r, f)
3925 dump_ROIBTrailer (p.trailer(), f)
3926 return
3927
3928
3930 fprint (f, p.getSourceID(),
3931 list(p.getErrors()),
3932 list(p.getDataWords()),
3933 list(p.getStatusWords()))
3934 return
3935
3936
3938 dump_ROIBHeader (p.header(), f)
3939 dump_L1TopoRDO (p.rdo(), f)
3940 dump_ROIBTrailer (p.trailer(), f)
3941 return
3942
3943
3944@nolist
3946 fprint (f, 'MuCTPI:')
3947 dump_MuCTPIResult (p.muCTPIResult(), f)
3948 fprint (f, '\nCTP:')
3949 dump_CTPResult (p.cTPResult(), f)
3950 for r in p.jetEnergyResult():
3951 fprint (f, '\nJetEnergy:')
3953 for r in p.eMTauResult():
3954 fprint (f, '\nEMTau:')
3955 dump_EMTauResult(r, f)
3956 for r in p.l1TopoResult():
3957 fprint (f, '\nL1Topo:')
3958 dump_L1TopoResult(r, f)
3959 return
3960
3961
3963 fprint (f, p.eta(), p.phi(), p.key(), p.emError(), p.hadError(),
3964 p.emPeak(), p.emADCPeak(), p.hadPeak(), p.hadADCPeak(),
3965 list(p.emLUT()), list(p.hadLUT()),
3966 list(p.emADC()), list(p.hadADC()),
3967 list(p.emBCIDvec()), list(p.hadBCIDvec()),
3968 list(p.emBCIDext()), list(p.hadBCIDext()))
3969 return
3970
3971
3973 fprint (f, p.getStatus(),
3974 p.getWord0(), p.getWord1(), p.getWord2() , p.getWord3(),
3975 p.getWord0p(), p.getWord1p(), p.getWord2p(), p.getWord3p(),
3976 p.getWord0n(), p.getWord1n(), p.getWord2n(), p.getWord3n())
3977 return
3978
3979
3980def dump_BCM_RDO (p, f):
3981 fprint (f, '[', p.getWord1(), p.getWord2(), ']')
3982 return
3983
3984
3986 fprint (f, p.getChannel())
3987 for r in p:
3988 dump_BCM_RDO(r, f)
3989 return
3990
3991
3993 fprint (f, p.CSCid(), p.globalTime(), p.energyDeposit())
3994 dump_Threevec (p.getHitStart(), f)
3995 dump_Threevec (p.getHitEnd(), f)
3996 fprint (f, p.particleID(), p.kineticEnergy())
3997 dump_HepMcParticleLink (p.particleLink(), f)
3998 return
3999
4000
4002 fprint (f, p.MDTid(), p.globalTime(), p.driftRadius())
4003 dump_Threevec (p.localPosition(), f)
4004 fprint (f, p.stepLength(), p.energyDeposit(), p.particleEncoding(), p.kineticEnergy())
4005 dump_HepMcParticleLink (p.particleLink(), f)
4006 return
4007
4008
4010 fprint (f, p.RPCid(), p.globalTime())
4011 dump_Threevec (p.localPosition(), f)
4012 dump_Threevec (p.postLocalPosition(), f)
4013 fprint (f, p.stepLength(), p.energyDeposit(), p.particleEncoding(), p.kineticEnergy())
4014 dump_HepMcParticleLink (p.particleLink(), f)
4015 return
4016
4017
4019 fprintln (f, p.TGCid(), p.globalTime())
4020 dump_Threevec (p.localPosition(), f)
4021 dump_Threevec (p.localDireCos(), f)
4022 fprint (f, p.stepLength(), p.energyDeposit(), p.particleEncoding(), p.kineticEnergy())
4023 dump_HepMcParticleLink (p.particleLink(), f)
4024 return
4025
4026
4027def dump_LArDigit (p, f):
4028 fprint (f, p.channelID().getString(), p.gain(), list(p.samples()))
4029 return
4030
4031
4033 fprint (f, p.identify().getString())
4034 return
4035
4036
4038 dump_ZdcRawData (p, f)
4039 fprint (f, list(p.get_digits_gain0_delay0()))
4040 fprint (f, list(p.get_digits_gain0_delay1()))
4041 fprint (f, list(p.get_digits_gain1_delay0()))
4042 fprint (f, list(p.get_digits_gain1_delay1()))
4043 return
4044
4045
4046def dump_EventBookkeeper (p, f, level=0):
4047 fprint (f, p.getName(), p.getDescription(), p.getInputStream(), p.getOutputStream(), p.getLogic(), p.getNAcceptedEvents(), p.getNWeightedAcceptedEvents(), p.getCycle())
4048 for c in list(p.getChildrenEventBookkeepers()):
4049 fprint (f, '\n ' + (' '*level))
4050 dump_EventBookkeeper (c, f, level+1)
4051 return
4052
4053
4055 fprint (f, 'RpcFiredChannel', p.bcid(), p.time(), p.ijk(), p.channel(), p.ovl(), p.thr())
4056 return
4057
4058
4060 fprint (f, p.identify().getString(), p.onlineId(), p.crc(), p.fel1Id(), p.febcId())
4061 for chan in p:
4062 fprint(f, '\n ')
4063 dump_RpcFiredChannel (chan, f)
4064 return
4065
4066
4067@nolist
4069 dump_IDC (dump_RpcCoinMatrix, p, f,
4070 extra_idc_dumper = lambda p, f: \
4071 fprint (f, p.identify().getString(), p.onlineId(), p.lvl1Id(), p.bcId(),
4072 p.sector(), p.status(), p.errorCode()))
4073 return
4074
4075
4077 fprint (f, 'hit', p.rowinBcid(), p.padId(), p.ptId(), p.roi(),
4078 p.outerPlane(), p.overlapPhi(), p.overlapEta(),
4079 p.triggerBcid(), p.isInput())
4080 return
4081
4083 fprint (f, p.sectorId(), p.fel1Id(), p.bcid(), p.errorCode(), p.crc(),
4084 p.hasMoreThan2TriggerCand(),
4085 list (p.counters()),
4086 list (p.triggerRates()))
4087 for hit in p:
4088 fprint (f, '\n ')
4089 dump_RpcSLTriggerHit (hit, f)
4090 return
4091
4092
4094 fprint (f, p.address(), p.hashId(), p.identify(), p.rpuID(),
4095 p.time(), p.width(), p.isTimeComputed(), list(p.samples()))
4096 return
4097
4098@nolist
4100 dump_IDC (dump_CscRawData, p, f,
4101 extra_idc_dumper = lambda p, f: \
4102 fprint (f, p.identify(), p.rodId(), p.subDetectorId(),
4103 p.samplingPhase(), p.triggerType(), p.firstBitSummary(),
4104 p.eventType(), p.scaAddress(),
4105 list(p.rpuID()), [ord(c) for c in p.dataType()]))
4106 return
4107
4108
4110 fprint (f, p.bcTag(),
4111 'ids',
4112 p.subDetectorId(), p.rodId(), p.sswId(),
4113 p.slbId(), p.l1Id(), p.bcId(), p.slbType(),
4114 'hit',
4115 p.bitpos(), p.tracklet(), p.isAdjacent(),
4116 'coin',
4117 p.type(), p.isForward(), p.index(), p.position(),
4118 p.delta(), p.segment(), p.subMatrix(),
4119 'hipt',
4120 p.sector(), p.chip(), p.isHipt(), p.hitId(), p.hsub(),
4121 p.isStrip(), p.inner(),
4122 'sl',
4123 p.cand3plus(), p.isMuplus(), p.threshold(), p.isOverlap(),
4124 p.isVeto(), p.roi(), p.innerflag(), p.coinflag(),
4125 'nsw',
4126 p.nsweta(), p.nswphi(), p.nswsl(), p.nswcand(), p.nswdtheta(),
4127 p.nswphires(), p.nswlowres(), p.nswid(),
4128 'rpc',
4129 p.rpceta(), p.rpcphi(), p.rpcflag(), p.rpcdeta(), p.rpcdphi(),
4130 'eifi',
4131 p.ei(), p.fi(), p.cid(),
4132 'tmdb',
4133 p.tmdbmod(), p.tmdbbcid())
4134
4135 return
4136
4137def dump_TgcBitmask (p, f, lab, fields):
4138 mask = 0
4139 val = 1
4140 for ff in fields:
4141 if getattr (p, ff): mask += val
4142 val *= 2
4143 fprint (f, lab, hex (mask))
4144 return
4146 dump_TgcBitmask (p, f, 'err',
4147 ['badBcID',
4148 'badL1Id',
4149 'timedout',
4150 'badData',
4151 'overflow'])
4152 return
4154 dump_TgcBitmask (p, f, 'rod',
4155 ['EC_RXsend',
4156 'EC_FELdown',
4157 'EC_frame',
4158 'EC_Glnk',
4159 'EC_xor',
4160 'EC_ovfl',
4161 'EC_timeout',
4162 'EC_xormezz',
4163 'EC_wc0',
4164 'EC_L1ID',
4165 'EC_nohdr',
4166 'EC_rectype',
4167 'EC_null',
4168 'EC_order',
4169 'EC_LDB',
4170 'EC_RXovfl',
4171 'EC_SSWerr',
4172 'EC_sbid',
4173 'EC_unxsbid',
4174 'EC_dupsb',
4175 'EC_ec4',
4176 'EC_bc',
4177 'EC_celladr',
4178 'EC_hitovfl',
4179 'EC_trgbit',
4180 'EC_badEoE',
4181 'EC_endWCnot0',
4182 'EC_noEoE'])
4183 return
4185 dump_TgcBitmask (p, f, 'local',
4186 ['mergedHitBCs',
4187 'mergedTrackletBCs',
4188 'sortedHits',
4189 'sortedTracklets',
4190 'hasRoI',
4191 'fakeSsw'])
4192 return
4193def dump_TgcRdo (p, f):
4194 fprint (f, p.version(), p.identify(),
4195 p.subDetectorId(), p.rodId(), p.triggerType(),
4196 p.bcId(), p.l1Id(), p.orbit())
4197 dump_TgcRdo_Errors (p.errors(), f)
4198 dump_TgcRdo_RodStatus (p.rodStatus(), f)
4199 dump_TgcRdo_LocalStatus (p.localStatus(), f)
4200 return
4201
4202@nolist
4204 dump_IDC (dump_TgcRawData, p, f,
4205 extra_idc_dumper = dump_TgcRdo)
4206 return
4207
4208
4210 fprint (f, p.tdcId(), p.channelId(), p.leading(), p.coarse(), p.fine(),
4211 p.width(), p.isMasked(), list(p.dataWords()))
4212 return
4213
4214@nolist
4216 dump_IDC (dump_MdtAmtHit, p, f,
4217 extra_idc_dumper = lambda p, f: \
4218 fprint (f, p.identify().getString(),
4219 p.SubDetId(), p.MrodId(), p.CsmId()))
4220 return
4221
4222
4224 fprint (f, p.identify().getString(), p.bcTag(), p.time(), p.tdo(), p.charge(),
4225 p.isDead(), p.timeAndChargeInCounts())
4226 return
4227
4228@nolist
4230 dump_IDC (dump_STGC_RawData, p, f)
4231 return
4232
4233
4235 fprint (f, p.identify().getString(), p.channel(), p.relBcid(),
4236 p.time(), p.charge(),
4237 p.timeAndChargeInCounts())
4238 return
4239
4240@nolist
4242 dump_IDC (dump_MM_RawData, p, f)
4243 return
4244
4245
4247 fprint (f, p.getSourceid(), p.getFlags(), p.getEc(), p.getFragid(),
4248 p.getSecid(), p.getSpare(), p.getOrbit(), p.getBcid(), p.getL1id(),
4249 p.getOrbitid(), p.getOrbit1(), p.getStatus(),
4250 p.getNumberOfHits(), p.getNumberOfPfebs(), p.getNumberOfTriggers(),
4251 p.getNumberOfBcids(),
4252 list(p.getHitRelBcids()),
4253 list(p.getHitPfebs()),
4254 list(p.getHitTdsChannels()),
4255 list(p.getHitVmmChannels()),
4256 list(p.getHitVmms()),
4257 list(p.getHitPadChannels()),
4258 list(p.getPfebAddrs()),
4259 list(p.getPfebNChannels()),
4260 list(p.getPfebDisconnecteds()),
4261 list(p.getTriggerBandIds()),
4262 list(p.getTriggerPhiIds()),
4263 list(p.getTriggerRelBcids()),
4264 list(p.getBcidRels()),
4265 list(p.getBcidStatuses()),
4266 list(p.getBcidMultZeros()),
4267 list(p.getBcidMultiplicities()))
4268 return
4269
4270@nolist
4272 beg = p.begin()
4273 end = p.end()
4274 while beg != end:
4275 dump_NSW_PadTriggerData (beg.cptr(), f)
4276 fwrite (f, '\n')
4277 beg.__preinc__()
4278 fwrite (f, '\n')
4279 return
4280
4281
4283 fprint (f, 'ld', p.GetLucrodID(), 'bcid', p.GetBCID(),
4284 'run', p.GetRunNumber(), 'l1id', p.GetLevel1ID(),
4285 'nbc', p.GetNumBCs(), 'stat', p.GetStatus(),
4286 'avga/c', p.GetTrigAvgA(), p.GetTrigAvgC(),
4287 'data', list(p.GetTrigData()))
4288 for i in range (p.GetChanDataSize()):
4289 ch = p.GetChanData(i)
4290 fprint (f, '\n chan ', ch.id, list(ch.waveform))
4291 return
4292
4293
4295 dump_HepMcParticleLink (p.first, f)
4296 dump_EL (p.second, f)
4297 return
4298
4299
4300def format_int(x): return '%d'%x
4301def format_float(x): return '%.1f'%x
4302def format_float_vector(v): return ''.join ([format_float(x) for x in v])
4304 key = x.dataID()
4305 if not key:
4306 key = '(%d)' % x.key()
4307 return f'DataLink({key})'
4309 if x.isDefaultIndex():
4310 return '(null)'
4311 key = x.dataID()
4312 if not key:
4313 key = '(%d)' % x.key()
4314 return '%s[%d]' % (key, x.index())
4315char_accessor_ = getattr (ROOT, 'SG::ConstAccessor<char>')
4317 def __init__ (self, name):
4318 self.ac = char_accessor_ (name)
4319 return
4320 def __call__ (self, x):
4321 return ord(self.ac(x))
4322uchar_accessor_ = getattr (ROOT, 'SG::ConstAccessor<unsigned char>')
4324 def __init__ (self, name):
4325 self.ac = uchar_accessor_ (name)
4326 return
4327 def __call__ (self, x):
4328 return ord(self.ac(x))
4329tlist = ['bool',
4330 'int',
4331 'short',
4332 'long',
4333 'unsigned int',
4334 'unsigned short',
4335 'unsigned long',
4336 'unsigned long long',
4337 'std::vector<float>',
4338 'float',
4339 'double']
4340accessors = {
4341 'char' : char_accessor,
4342 'unsigned char' : uchar_accessor,
4343 }
4344for t in tlist:
4345 aname = 'SG::ConstAccessor<' + t
4346 if t[-1] == '>': aname += ' '
4347 aname += '>'
4348 accessors[t] = getattr (ROOT, aname)
4349
4350
4351atomic_accessors = {
4352 'unsigned int' : getattr (ROOT, 'SG::AtomicConstAccessor<unsigned int>'),
4353 }
4354
4355
4356def format_obj (x, name=None):
4357 if isinstance(x, float):
4358 return format_float (x)
4359 if isinstance(x, int):
4360 return format_int (x)
4361 tname = typename(type(x))
4362 if tname.startswith ('CxxUtils::range_with_conv<'):
4363 x = x.asVector()
4364 tname = typename(type(x))
4365 if tname.startswith ('ROOT.'):
4366 tname = tname[5:]
4367 if tname.startswith ('ElementLink<'):
4368 return format_el (x)
4369 if tname.startswith ('DataLink<'):
4370 return format_dl (x)
4371 if tname.startswith ('std::vector<') or tname.startswith ('vector<'):
4372 ipos = tname.find('<')
4373 tname2 = tname[ipos+1:]
4374 if (tname2.startswith('char,') or
4375 tname2.startswith('char>') or
4376 tname2.startswith ('unsigned char,') or
4377 tname2.startswith ('unsigned char>')):
4378 l = ', '.join ([str(ord(x[i])) for i in range(len(x))])
4379 elif tname2.startswith('bool,') or tname2 == 'bool>':
4380 l = ', '.join ([str(bool(xx)) for xx in x])
4381 else:
4382 l = ', '.join ([format_obj(x[i], name) for i in range(x.size())])
4383 return '[' + l + ']'
4384 if isinstance(x, PyAthena.xAOD.CaloClusterBadChannelData_v1):
4385 return '<BadChannel: %6.3f/%6.3f/%2d: %04x>' % \
4386 (x.eta(), x.phi(), x.layer(), x.badChannel())
4387 if tname == 'set<unsigned int>':
4388 acls=getattr(PyAthena, 'PyDumper::PySTLAdaptor<std::set<unsigned int>')
4389 if acls:
4390 return str(list(toiter1(acls(x))))
4391
4392 if tname.startswith ('std::pair<') or tname.startswith ('pair<'):
4393 return '(' + format_obj(x.first, name) + ', ' + format_obj(x.second, name) + ')'
4394
4395 if tname == 'Trk::VxTrackAtVertex':
4396 fout = StringIO()
4397 dump_VxTrackAtVertex (x, fout)
4398 out = fout.getvalue()
4399 return '{' + out.replace('\n', '; ') + '}'
4400
4401 return str(x)
4402
4403
4404def generic_dump_auxitem (x, auxid, f):
4405 if hasattr (x, 'container'):
4406 try:
4407 x.container().getConstStore().getData(auxid)[0]
4408 except IndexError:
4409 fprint (f, '<unavailable 1>')
4410 return
4411
4412 reg=ROOT.SG.AuxTypeRegistry.instance()
4413 tname = reg.getTypeName (auxid)
4414 ac = ROOT.SG.ConstAuxElement.TypelessConstAccessor (reg.getName(auxid))
4415 try:
4416 buf = ac(x)
4417 except TypeError:
4418 fprint (f, '<unavailable 2>')
4419 return
4420 try:
4421 obj = ROOT.TPython.CPPInstance_FromVoidPtr (buf, tname)
4422 except TypeError:
4423 fprint (f, '<unknown %s>'%tname)
4424 return
4425 fprint (f, format_obj(obj, reg.getName(auxid)))
4426 return
4427
4428
4429def dump_auxitem (x, auxid, f = sys.stdout):
4430 if hasattr (x, 'container'):
4431 auxdata = x.container().getConstStore().getData(auxid)
4432 if not auxdata:
4433 # Expected if a dynamic variable is missing for an event.
4434 fprint (f, '<unavailable>')
4435 return
4436 try:
4437 auxdata[0]
4438 except IndexError:
4439 fprint (f, '<unavailable 4>')
4440 return
4441
4442 reg=ROOT.SG.AuxTypeRegistry.instance()
4443 tname = reg.getTypeName (auxid)
4444 atomic = reg.getFlags (auxid) & ROOT.SG.AuxVarFlags.Atomic
4445 if atomic:
4446 ac_cl = atomic_accessors.get (tname)
4447 else:
4448 ac_cl = accessors.get (tname)
4449
4450 if not ac_cl and tname.startswith ('SG::JaggedVecElt<'):
4451 ac_cl = getattr (ROOT, 'SG::ConstAccessor<' + tname + ' >')
4452 if ac_cl:
4453 accessors[tname] = ac_cl
4454
4455 if not ac_cl and tname.startswith ('SG::PackedLink<') or tname.startswith ('std::vector<SG::PackedLink<'):
4456 ac_cl = getattr (ROOT, 'SG::ConstAccessor<' + tname + ' >')
4457 if ac_cl:
4458 accessors[tname] = ac_cl
4459
4460 #print x, auxid, reg.getName(auxid)
4461 if ac_cl:
4462 ac = ac_cl(reg.getName(auxid))
4463 try:
4464 val = ac(x)
4465 except TypeError:
4466 # Can happen due to schema evolution
4467 val = '<unavailable 5>'
4468 fprint (f, format_obj(val))
4469 else:
4470 generic_dump_auxitem (x, auxid, f)
4471 return
4472
4473
4474def dump_auxdata (x, exclude=None, f = sys.stdout):
4475 reg=ROOT.SG.AuxTypeRegistry.instance()
4476 if cppyy.addressof (x) == 0:
4477 fprint (f, '<null pointer>', x, type(x))
4478 return
4479 try:
4480 auxids = ROOT.PyDumper.Utils.getAuxIDVector (x)
4481 except TypeError:
4482 print ('xxx', x)
4483 raise
4484 auxids = [(reg.getName(id), id) for id in auxids]
4485 auxids.sort()
4486 for name, auxid in auxids:
4487 if exclude and name in exclude: continue
4488 if name.endswith ('_linked'): continue
4489 fprint (f, name + ': ')
4490 dump_auxitem (x, auxid, f)
4491 fprint (f, '\n ')
4492 return
4493
4494
4495def dump_xAOD(o, f):
4496 fprint (f, typename(o.__class__), '\n ')
4497 dump_auxdata (o, f=f)
4498 return
4499
4500
4501@nolist
4503 dump_xAOD(o, f)
4504 return
4505
4506
4507@nolist
4509 dump_xAOD(o, f)
4510 fwrite (f, '\n')
4511 return
4512
4513
4514def dump_list (l, f, dumper, nmax = None):
4515 i = 0
4516 for x in l:
4517 if nmax is not None and i >= nmax: break
4518 i += 1
4519 fprint (f, ' ')
4520 dumper (x, f)
4521 fwrite (f, '\n')
4522 return
4523
4524
4525
4526
4527"""The list of tuples (cpp_type, dumper_fct)
4528"""
4529dumpspecs = [
4530 ["ElectronContainer", dump_Electron],
4531 ["PhotonContainer", dump_Photon],
4532 ["Analysis::TauJetContainer", dump_TauJet],
4533 ["TruthParticleContainer", dump_TruthParticle],
4534 ["Rec::TrackParticleContainer", dump_TrackParticle],
4535 ["DataVector<Trk::Track>", dump_Track],
4536 ["DataVector<Trk::Segment>", dump_Segment],
4537 ["CaloClusterContainer", dump_CaloClusters_sorted],
4538 ['CaloCellLinkContainer', dump_CaloCellLink],
4539 ['CaloCellContainer', dump_CaloCell],
4540 ['CaloClusterCellLinkContainer', dump_CaloClusterCellLink],
4541 ['TileContainer<TileCell>', dump_CaloCell],
4542 ['TileCellContainer', dump_CaloCell],
4543 ["VxContainer", dump_VxCandidate],
4544 ["EventInfo", dump_EventInfo],
4545 ["PileUpEventInfo", dump_PileUpEventInfo],
4546 ["EventStreamInfo", dump_EventStreamInfo],
4547 ["McEventCollection", dump_GenEvent],
4548 ["CTP_Decision", dump_CTP_Decision],
4549 ["LVL1_ROI", dump_LVL1_ROI],
4550 ["TrigDec::TrigDecision", dump_TrigDecision],
4551 ["TrigConf::HLTAODConfigData", dump_HLTAODConfigData],
4552 ["TrigConf::Lvl1AODConfigData", dump_Lvl1AODConfigData],
4553 ["TrigConf::Lvl1AODPrescaleConfigData", dump_Lvl1AODPrescaleConfigData],
4554 ["TrackParticleTruthCollection", dump_TrackParticleTruthCollection],
4555 ["DetailedTrackTruthCollection", dump_DetailedTrackTruthCollection],
4556 ["HLT::HLTResult", dump_HLTResult],
4557 ["HLT::HLTResultMT", dump_HLTResultMT],
4558 ["INav4MomAssocs", dump_INav4MomAssocs],
4559 ["DetStatusMap", dump_DetStatusMap],
4560 ["AtlasHitsVector<TrackRecord>", dump_TrackRecord],
4561 ["AthenaHitsVector<TrackRecord>", dump_TrackRecord],
4562 ["JetCollection", dump_Jet],
4563 ["V0Container", dump_V0Candidate],
4564 ["egammaContainer", dump_egamma],
4565 ["DataVector<TrigVertex>", dump_TrigVertex],
4566 ["TrigVertexCollection", dump_TrigVertex],
4567 ["TrigTrackCounts", dump_TrigTrackCounts_nolist],
4568 ["TrigEMCluster", dump_TrigEMCluster_nolist],
4569 ["TrigInDetTrackCollection", dump_TrigInDetTrackCollection],
4570 ["TrigCaloClusterContainer", dump_TrigCaloCluster],
4571 ["TrigTauClusterDetailsContainer", dump_TrigTauClusterDetails],
4572 ["TrigRoiDescriptor", dump_TrigRoiDescriptor_nolist],
4573 ["TrigTauCluster", dump_TrigTauCluster_nolist],
4574 ["TrigSpacePointCounts", dump_TrigSpacePointCounts_nolist],
4575 ["TileContainer<TileMu>", dump_TileMu],
4576 ["CaloShowerContainer", dump_CaloShower],
4577 ["CaloTowerContainer", dump_CaloTowerContainer],
4578 ["CaloTopoTowerContainer", dump_CaloTopoTowerContainer],
4579 ["CaloCalibrationHitContainer", dump_CaloCalibrationHit],
4580 ['LArHitContainer', dump_LArHit],
4581 ['TileHitVector', dump_TileHit],
4582 ['AtlasHitsVector<TileHit>', dump_TileHit],
4583 ['TileRawChannelContainer', dump_TileRawChannelContainer],
4584 ['TileBeamElemContainer', dump_TileBeamElemContainer],
4585 ['SiHitCollection', dump_SiHit],
4586 ['AtlasHitsVector<SiHit>', dump_SiHit],
4587 ['TRTUncompressedHitCollection', dump_TRTUncompressedHit],
4588 ['AtlasHitsVector<TRTUncompressedHit>', dump_TRTUncompressedHit],
4589 ['AtlasHitsVector<CSCSimHit>', dump_CSCSimHit],
4590 ['AtlasHitsVector<MDTSimHit>', dump_MDTSimHit],
4591 ['AtlasHitsVector<RPCSimHit>', dump_RPCSimHit],
4592 ['AtlasHitsVector<TGCSimHit>', dump_TGCSimHit],
4593 ["TrigEMClusterContainer", dump_TrigEMCluster],
4594 ["TrigTauClusterContainer", dump_TrigTauCluster],
4595 ["TrigSpacePointCountsCollection", dump_TrigSpacePointCounts],
4596 ["TrigTrackCountsCollection", dump_TrigTrackCounts],
4597 ["TrigT2MbtsBitsContainer", dump_TrigT2MbtsBits],
4598 ["TrigRoiDescriptorCollection", dump_TrigRoiDescriptor],
4599 ["CosmicMuonCollection", dump_CosmicMuon],
4600 ["MdtTrackSegmentCollection", dump_MdtTrackSegment],
4601 ["RingerRingsContainer", dump_RingerRings],
4602 ["TrigTrtHitCountsCollection", dump_TrigTrtHitCounts],
4603 ["TrigRNNOutputContainer", dump_TrigRNNOutput],
4604 ["InDet::InDetLowBetaContainer", dump_InDetLowBetaCandidate],
4605 ["LArNoisyROSummary", dump_LArNoisyROSummary],
4606 ["SkimDecisionCollection", dump_SkimDecision],
4607 ["RawInfoSummaryForTag", dump_RawInfoSummaryForTag],
4608 ["Muon::ChamberT0s", dump_ChamberT0s],
4609 ["TrigPassBitsCollection", dump_TrigPassBits],
4610 ["TrigOperationalInfoCollection", dump_TrigOperationalInfo],
4611 ["TrigVertexCountsCollection", dump_TrigVertexCounts],
4612 ["eflowObjectContainer", dump_eflowObjectContainer],
4613 ["TrigPassFlagsCollection", dump_TrigPassFlags],
4614 ["TrackParticleAssocs", dump_TrackParticleAssocs],
4615 ['MuonCaloEnergyContainer', dump_CaloEnergy],
4616 ['CscSimDataCollection', dump_CscSimDataCollection],
4617 ['MuonSimDataCollection', dump_MuonSimDataCollection],
4618 ['Muon::MuonPrepDataContainer<Muon::MuonPrepDataCollection<Muon::CscPrepData> >', dump_CscPrepDataContainer],
4619 ['Muon::MuonPrepDataContainer<Muon::MuonPrepDataCollection<Muon::CscStripPrepData> >', dump_CscStripPrepDataContainer],
4620 ['Muon::MuonPrepDataContainer<Muon::MuonPrepDataCollection<Muon::TgcPrepData> >', dump_TgcPrepDataContainer],
4621 ['Muon::MuonPrepDataContainer<Muon::MuonPrepDataCollection<Muon::MdtPrepData> >', dump_MdtPrepDataContainer],
4622 ['Muon::MuonPrepDataContainer<Muon::MuonPrepDataCollection<Muon::RpcPrepData> >', dump_RpcPrepDataContainer],
4623 ['Muon::MuonCoinDataContainer<Muon::MuonCoinDataCollection<Muon::RpcCoinData> >', dump_RpcCoinDataContainer],
4624 ['Muon::MuonCoinDataContainer<Muon::MuonCoinDataCollection<Muon::TgcCoinData> >', dump_TgcCoinDataContainer],
4625 ['Trk::PrepRawDataContainer<Trk::PrepRawDataCollection<InDet::PixelCluster> >', dump_PixelClusterContainer],
4626 ['Trk::PrepRawDataContainer<Trk::PrepRawDataCollection<InDet::SCT_Cluster> >', dump_SCT_ClusterContainer],
4627 ['Trk::PrepRawDataContainer<Trk::PrepRawDataCollection<InDet::TRT_DriftCircle> >', dump_TRT_DriftCircleContainer],
4628 ['InDetRawDataContainer<InDetRawDataCollection<PixelRDORawData> >', dump_PixelRawDataContainer],
4629 ['InDetRawDataContainer<InDetRawDataCollection<TRT_RDORawData> >', dump_TRT_RawDataContainer],
4630 ['InDetRawDataContainer<InDetRawDataCollection<SCT_RDORawData> >', dump_SCT_RawDataContainer],
4631 ['std::multimap<const InDet::SiCluster*,const InDet::SiCluster*,InDet::compare_SiCluster>', dump_PixelGangedClusterAmbiguities],
4632 ['TileDigitsContainer', dump_TileDigitsContainer],
4633 ['TileContainer<TileL2>', dump_TileL2],
4634 ['TileContainer<TileTTL1>', dump_TileTTL1],
4635 ['TileContainer<TileMuonReceiverObj>', dump_TileMuonReceiverObj],
4636 ['DataVector<LVL1::CMMCPHits>', dump_CMMCPHits],
4637 ['DataVector<LVL1::CMMEtSums>', dump_CMMEtSums],
4638 ['DataVector<LVL1::CMMJetHits>', dump_CMMJetHits],
4639 ['LVL1::CMMRoI', dump_CMMRoI],
4640 ['DataVector<LVL1::CPMHits>', dump_CPMHits],
4641 ['DataVector<LVL1::CPMRoI>', dump_CPMRoI],
4642 ['DataVector<LVL1::CPMTower>', dump_CPMTower],
4643 ['CTP_RDO', dump_CTP_RDO],
4644 ['MuCTPI_RDO', dump_MuCTPI_RDO],
4645 ['DataVector<LVL1::JEMEtSums>', dump_JEMEtSums],
4646 ['DataVector<LVL1::JEMHits>', dump_JEMHits],
4647 ['DataVector<LVL1::JEMRoI>', dump_JEMRoI],
4648 ['DataVector<LVL1::JetElement>', dump_JetElement],
4649 ['DataVector<LVL1::TriggerTower>', dump_TriggerTower],
4650 ['ROIB::RoIBResult', dump_RoIBResult],
4651 ['LUCID_RawDataContainer', dump_LUCID_RawData],
4652 ['BCM_RDO_Container', dump_BCM_RDO_Collection],
4653 ['LArDigitContainer', dump_LArDigit],
4654 ['EventBookkeeperCollection', dump_EventBookkeeper],
4655 ['ZdcDigitsCollection', dump_ZdcDigits],
4656 ['RpcPadContainer', dump_RpcPadContainer],
4657 ['RpcSectorLogicContainer', dump_RpcSectorLogic],
4658 ['CscRawDataContainer', dump_CscRawDataContainer],
4659 ['TgcRdoContainer', dump_TgcRdoContainer],
4660 ['MdtCsmContainer', dump_MdtCsmContainer],
4661 ['Muon::STGC_RawDataContainer', dump_STGC_RawDataContainer],
4662 ['Muon::MM_RawDataContainer', dump_MM_RawDataContainer],
4663 ['Muon::NSW_PadTriggerDataContainer', dump_NSW_PadTriggerDataContainer],
4664 ['ZdcLucrodDataContainer', dump_ZdcLucrod_Data],
4665 ['AthenaAttributeList', dump_AttributeList],
4666 ['InDetTimeCollection', dump_InDetTime],
4667 ['std::vector<pair<unsigned int,unsigned int> >', dump_InDetTime],
4668 ['IDCInDetBSErrContainer', dump_IDCInDetBSErrContainer],
4669 ['TRT_BSErrContainer', dump_TRT_BSErrContainer],
4670 ['LArFebHeaderContainer', dump_LArFebHeader],
4671 ['LArRawChannelContainer', dump_LArRawChannel],
4672 ['LVL1CTP::Lvl1Result', dump_Lvl1Result],
4673 ['AFP_RawContainer', dump_AFP_RawContainer],
4674 ['ALFA_RawDataContainer', dump_ALFA_RawDataContainer],
4675 ['TrigT2ZdcSignalsContainer', dump_TrigT2ZdcSignals],
4676 ['Analysis::TauDetailsContainer', dump_TauDetailsContainer],
4677 ['egDetailContainer', dump_egDetailContainer],
4678 ['JetMomentMapCollection', dump_JetMomentMapCollection],
4679 ['JetKeyDescriptorCollection', dump_JetKeyDescriptorCollection],
4680 ['LArFebErrorSummary', dump_LArFebErrorSummary],
4681 ['Trk::ClusterSplitProbabilityContainer', dump_ClusterSplitProbabilityContainer],
4682 ['InDetSimDataCollection', dump_InDetSimDataCollection],
4683 ['PRD_MultiTruthCollection', dump_PRD_MultiTruthCollection],
4684 ['TrackTruthCollection', dump_TrackTruthCollection],
4685 ['LArTTL1Container', dump_LArTTL1],
4686 ['ComTime', dump_ComTime],
4687 ['std::vector<unsigned int>', dump_vector],
4688
4689 ['DataVector<xAOD::BTagVertex_v1>', dump_xAOD],
4690 ['xAOD::BTagVertexContainer', dump_xAOD],
4691 ['DataVector<xAOD::BTagging_v1>', dump_xAOD],
4692 ['xAOD::BTaggingContainer', dump_xAOD],
4693 ['DataVector<xAOD::CaloCluster_v1>', dump_xAOD],
4694 ['xAOD::CaloClusterContainer', dump_xAOD],
4695 ['DataVector<xAOD::Electron_v1>', dump_xAOD],
4696 ['DataVector<xAOD::EmTauRoI_v1>', dump_xAOD],
4697 ['DataVector<xAOD::EmTauRoI_v2>', dump_xAOD],
4698 ['xAOD::EmTauRoIContainer', dump_xAOD],
4699 ['DataVector<xAOD::JetRoI_v1>', dump_xAOD],
4700 ['DataVector<xAOD::JetRoI_v2>', dump_xAOD],
4701 ['xAOD::JetRoIContainer', dump_xAOD],
4702 ['DataVector<xAOD::Jet_v1>', dump_xAOD],
4703 ['xAOD::JetContainer', dump_xAOD],
4704 ['DataVector<xAOD::L2CombinedMuon_v1>', dump_xAOD],
4705 ['xAOD::L2CombinedMuonContainer', dump_xAOD],
4706 ['DataVector<xAOD::L2StandAloneMuon_v1>',dump_xAOD],
4707 ['DataVector<xAOD::L2StandAloneMuon_v2>',dump_xAOD],
4708 ['xAOD::L2StandAloneMuonContainer', dump_xAOD],
4709 ['DataVector<xAOD::MuonRoI_v1>', dump_xAOD],
4710 ['xAOD::MuonRoIContainer', dump_xAOD],
4711 ['DataVector<xAOD::MuonSegment_v1>', dump_xAOD],
4712 ['xAOD::MuonSegmentContainer', dump_xAOD],
4713 ['DataVector<xAOD::Muon_v1>', dump_xAOD],
4714 ['xAOD::MuonContainer', dump_xAOD],
4715 ['DataVector<xAOD::PFO_v1>', dump_xAOD],
4716 ['xAOD::PFOContainer', dump_xAOD],
4717 ['DataVector<xAOD::Photon_v1>', dump_xAOD],
4718 ['DataVector<xAOD::SlowMuon_v1>', dump_xAOD],
4719 ['xAOD::SlowMuonContainer', dump_xAOD],
4720 ['DataVector<xAOD::TauJet_v1>', dump_xAOD],
4721 ['DataVector<xAOD::TauJet_v2>', dump_xAOD],
4722 ['DataVector<xAOD::TauJet_v3>', dump_xAOD],
4723 ['xAOD::TauJetContainer', dump_xAOD],
4724 ['DataVector<xAOD::TauTrack_v1>', dump_xAOD],
4725 ['xAOD::TauTrackContainer', dump_xAOD],
4726 ['DataVector<xAOD::Particle_v1>', dump_xAOD],
4727 ['xAOD::ParticleContainer', dump_xAOD],
4728 ['DataVector<xAOD::TrackParticle_v1>', dump_xAOD],
4729 ['xAOD::TrackParticleContainer', dump_xAOD],
4730 ['DataVector<xAOD::TrigBphys_v1>', dump_xAOD],
4731 ['xAOD::TrigBphysContainer', dump_xAOD],
4732 ['DataVector<xAOD::TrigComposite_v1>', dump_xAOD],
4733 ['xAOD::TrigCompositeContainer', dump_xAOD],
4734 ['DataVector<xAOD::TrigEMCluster_v1>', dump_xAOD],
4735 ['xAOD::TrigEMClusterContainer', dump_xAOD],
4736 ['DataVector<xAOD::TrigElectron_v1>', dump_xAOD],
4737 ['xAOD::TrigElectronContainer', dump_xAOD],
4738 ['DataVector<xAOD::TrigMissingET_v1>', dump_xAOD],
4739 ['xAOD::TrigMissingETContainer', dump_xAOD],
4740 ['DataVector<xAOD::TrigPhoton_v1>', dump_xAOD],
4741 ['xAOD::TrigPhotonContainer', dump_xAOD],
4742 ['DataVector<xAOD::TrigRNNOutput_v1>', dump_xAOD],
4743 ['DataVector<xAOD::TrigRNNOutput_v2>', dump_xAOD],
4744 ['xAOD::TrigRNNOutputContainer', dump_xAOD],
4745 ['DataVector<xAOD::TrigRingerRings_v1>', dump_xAOD],
4746 ['DataVector<xAOD::TrigRingerRings_v2>', dump_xAOD],
4747 ['xAOD::TrigRingerRingsContainer', dump_xAOD],
4748 ['DataVector<xAOD::TrigSpacePointCounts_v1>',dump_xAOD],
4749 ['xAOD::TrigSpacePointCountsContainer', dump_xAOD],
4750 ['DataVector<xAOD::TrigT2MbtsBits_v1>', dump_xAOD],
4751 ['xAOD::TrigT2MbtsBitsContainer', dump_xAOD],
4752 ['DataVector<xAOD::TrigTrackCounts_v1>', dump_xAOD],
4753 ['xAOD::TrigTrackCountsContainer', dump_xAOD],
4754 ['DataVector<xAOD::TrigVertexCounts_v1>',dump_xAOD],
4755 ['xAOD::TrigVertexCountsContainer', dump_xAOD],
4756 ['DataVector<xAOD::TruthEvent_v1>', dump_xAOD],
4757 ['xAOD::TruthEventContainer', dump_xAOD],
4758 ['DataVector<xAOD::TruthParticle_v1>', dump_xAOD],
4759 ['xAOD::TruthParticleContainer', dump_xAOD],
4760 ['DataVector<xAOD::TruthVertex_v1>', dump_xAOD],
4761 ['xAOD::TruthVertexContainer', dump_xAOD],
4762 ['DataVector<xAOD::Vertex_v1>', dump_xAOD],
4763 ['xAOD::VertexContainer', dump_xAOD],
4764 ['DataVector<xAOD::L2IsoMuon_v1>', dump_xAOD],
4765 ['xAOD::L2IsoMuonContainer', dump_xAOD],
4766 ['DataVector<xAOD::TrigT2ZdcSignals_v1>',dump_xAOD],
4767 ['xAOD::TrigT2ZdcSignalsContainer', dump_xAOD],
4768 ['DataVector<xAOD::HIEventShape_v1>', dump_xAOD],
4769 ['DataVector<xAOD::HIEventShape_v2>', dump_xAOD],
4770 ['xAOD::HIEventShapeContainer', dump_xAOD],
4771 ['DataVector<xAOD::DiTauJet_v1>', dump_xAOD],
4772 ['xAOD::DiTauJetContainer', dump_xAOD],
4773 ['DataVector<xAOD::TrigPassBits_v1>', dump_xAOD],
4774 ['xAOD::TrigPassBitsContainer', dump_xAOD],
4775 ['DataVector<xAOD::TrackParticleClusterAssociation_v1>', dump_xAOD],
4776 ['xAOD::TrackParticleClusterAssociationContainer', dump_xAOD],
4777 ['DataVector<xAOD::TruthPileupEvent_v1>',dump_xAOD],
4778 ['xAOD::TruthPileupEventContainer_v1', dump_xAOD],
4779 ['DataVector<xAOD::CaloRings_v1>', dump_xAOD],
4780 ['xAOD::CaloRingsContainer', dump_xAOD],
4781 ['DataVector<xAOD::RingSet_v1>', dump_xAOD],
4782 ['xAOD::RingSetContainer', dump_xAOD],
4783 ['DataVector<xAOD::ForwardEventInfo_v1>',dump_xAOD],
4784 ['xAOD::ForwardEventInfoContainer', dump_xAOD],
4785 ['DataVector<xAOD::MBTSModule_v1>', dump_xAOD],
4786 ['xAOD::MBTSModuleContainer', dump_xAOD],
4787 ['DataVector<xAOD::ZdcModule_v1>', dump_xAOD],
4788 ['xAOD::ZdcModuleContainer', dump_xAOD],
4789 ['DataVector<xAOD::CPMTower_v2>', dump_xAOD],
4790 ['xAOD::CPMTowerContainer', dump_xAOD],
4791 ['DataVector<xAOD::JetElement_v2>', dump_xAOD],
4792 ['xAOD::JetElementContainer', dump_xAOD],
4793 ['DataVector<xAOD::TriggerTower_v2>', dump_xAOD],
4794 ['xAOD::TriggerTowerContainer', dump_xAOD],
4795 ['xAOD::MissingETContainer_v1', dump_xAOD],
4796 ['xAOD::MissingETContainer', dump_xAOD],
4797 ['xAOD::MissingETComponentMap_v1', dump_xAOD],
4798 ['xAOD::MissingETComponentMap', dump_xAOD],
4799 ['DataVector<xAOD::FlowElement_v1>', dump_xAOD],
4800 ['xAOD::FlowElementContainer', dump_xAOD],
4801 ['DataVector<xAOD::AFPSiHitsCluster_v1>',dump_xAOD],
4802 ['xAOD::AFPSiHitsClusterContainer', dump_xAOD],
4803 ['DataVector<xAOD::AFPProton_v1>', dump_xAOD],
4804 ['xAOD::AFPProtonContainer', dump_xAOD],
4805 ['DataVector<xAOD::AFPVertex_v1>', dump_xAOD],
4806 ['xAOD::AFPVertexContainer', dump_xAOD],
4807 ['DataVector<xAOD::AFPTrack_v2>', dump_xAOD],
4808 ['xAOD::AFPTrackContainer', dump_xAOD],
4809 ['DataVector<xAOD::AFPToFTrack_v1>', dump_xAOD],
4810 ['xAOD::AFPToFTrackContainer', dump_xAOD],
4811 ['xAOD::EventInfo_v1', dump_xAODObject],
4812 ['xAOD::EventInfo', dump_xAODObject],
4813 ['xAOD::EventShape_v1', dump_xAODObjectNL],
4814 ['xAOD::EventShape', dump_xAODObjectNL],
4815 ['xAOD::MissingETAssociationMap_v1', dump_xAOD],
4816 ['xAOD::MissingETAssociationMap', dump_xAOD],
4817 ['xAOD::TrigDecision_v1', dump_xAODObject],
4818 ['xAOD::TrigConfKeys_v1', dump_TrigConfKeys],
4819 ['xAOD::JetEtRoI_v1', dump_xAODObject],
4820 ['xAOD::EnergySumRoI_v1', dump_xAODObject],
4821 ['xAOD::EnergySumRoI_v2', dump_xAODObject],
4822 ['xAOD::TrigNavigation_v1', dump_xAODObject],
4823 ['xAOD::TrigNavigation', dump_xAODObject],
4824 ['xAOD::RoiDescriptorStore_v1', dump_xAODObject],
4825 ['xAOD::RoiDescriptorStore', dump_xAODObject],
4826 ['DataVector<xAODTruthParticleLink>', dump_xAODTruthParticleLink],
4827 ['xAODTruthParticleLinkVector', dump_xAODTruthParticleLink],
4828 ['DataVector<xAOD::NSWTPRDO_v1>', dump_xAOD],
4829 ['xAOD::NSWTPRDOContainer', dump_xAOD],
4830 ['DataVector<xAOD::NSWMMTPRDO_v1>', dump_xAOD],
4831 ['xAOD::NSWMMTPRDOContainer', dump_xAOD],
4832 ['DataVector<xAOD::RODHeader_v2>', dump_xAOD],
4833 ['xAOD::RODHeaderContainer', dump_xAOD],
4834 ['DataVector<xAOD::CMXJetTob_v1>', dump_xAOD],
4835 ['xAOD::CMXJetTobContainer', dump_xAOD],
4836 ['DataVector<xAOD::JEMTobRoI_v1>', dump_xAOD],
4837 ['xAOD::JEMTobRoIContainer', dump_xAOD],
4838 ['DataVector<xAOD::CMXCPTob_v1>', dump_xAOD],
4839 ['xAOD::CMXCPTobContainer', dump_xAOD],
4840 ['DataVector<xAOD::CMXJetHits_v1>', dump_xAOD],
4841 ['xAOD::CMXJetHitsContainer', dump_xAOD],
4842 ['DataVector<xAOD::CMXEtSums_v1>', dump_xAOD],
4843 ['xAOD::CMXEtSumsContainer', dump_xAOD],
4844 ['DataVector<xAOD::CMXRoI_v1>', dump_xAOD],
4845 ['xAOD::CMXRoIContainer', dump_xAOD],
4846 ['DataVector<xAOD::CPMTobRoI_v1>', dump_xAOD],
4847 ['xAOD::CPMTobRoIContainer', dump_xAOD],
4848 ['DataVector<xAOD::JEMEtSums_v2>', dump_xAOD],
4849 ['xAOD::JEMEtSumsContainer', dump_xAOD],
4850 ['DataVector<xAOD::CMXCPHits_v1>', dump_xAOD],
4851 ['xAOD::CMXCPHitsContainer', dump_xAOD],
4852 ['DataVector<xAOD::L1TopoRawData_v1>', dump_xAOD],
4853 ['xAOD::L1TopoRawDataContainer', dump_xAOD],
4854 ['DataVector<xAOD::jFexFwdElRoI_v1>', dump_xAOD],
4855 ['xAOD::jFexFwdElRoIContainer', dump_xAOD],
4856 ['DataVector<xAOD::jFexSRJetRoI_v1>', dump_xAOD],
4857 ['xAOD::jFexSRJetRoIContainer', dump_xAOD],
4858 ['DataVector<xAOD::jFexSumETRoI_v1>', dump_xAOD],
4859 ['xAOD::jFexSumETRoIContainer', dump_xAOD],
4860 ['DataVector<xAOD::gFexGlobalRoI_v1>', dump_xAOD],
4861 ['xAOD::gFexGlobalRoIContainer', dump_xAOD],
4862 ['DataVector<xAOD::jFexLRJetRoI_v1>', dump_xAOD],
4863 ['xAOD::jFexLRJetRoIContainer', dump_xAOD],
4864 ['DataVector<xAOD::eFexTauRoI_v1>', dump_xAOD],
4865 ['xAOD::eFexTauRoIContainer', dump_xAOD],
4866 ['DataVector<xAOD::gFexJetRoI_v1>', dump_xAOD],
4867 ['xAOD::gFexJetRoIContainer', dump_xAOD],
4868 ['DataVector<xAOD::gFexTower_v1>', dump_xAOD],
4869 ['xAOD::gFexTowerContainer', dump_xAOD],
4870 ['DataVector<xAOD::eFexEMRoI_v1>', dump_xAOD],
4871 ['xAOD::eFexEMRoIContainer', dump_xAOD],
4872 ['DataVector<xAOD::jFexTauRoI_v1>', dump_xAOD],
4873 ['xAOD::jFexTauRoIContainer', dump_xAOD],
4874 ['DataVector<xAOD::jFexTower_v1>', dump_xAOD],
4875 ['xAOD::jFexTowerContainer', dump_xAOD],
4876 ['DataVector<xAOD::jFexMETRoI_v1>', dump_xAOD],
4877 ['xAOD::jFexMETRoIContainer', dump_xAOD],
4878 ['DataVector<xAOD::eFexTower_v1>', dump_xAOD],
4879 ['xAOD::eFexTowerContainer', dump_xAOD],
4880 ['DataVector<xAOD::AFPSiHit_v2>', dump_xAOD],
4881 ['xAOD::AFPSiHitContainer', dump_xAOD],
4882 ['DataVector<xAOD::AFPToFHit_v1>', dump_xAOD],
4883 ['xAOD::AFPToFHitContainer', dump_xAOD],
4884 ['xAOD::BunchConfKey_v1', dump_BunchConfKey],
4885 ['xAOD::BunchConfKey', dump_BunchConfKey],
4886
4887 # Make some of these more compact?
4888
4889]
4890
4891
4892import sys
4893def get_dumper_fct(klass, ofile=sys.stdout, nmax = None):
4894 """helper function to automatically retrieve the suitable dumper function
4895 given the name of a class or the class-type
4896 @param `klass' a string containing the name of a C++ type or a type
4897 @param `ofile' a file-like instance where to dump the objects' content
4898 @param `nmax` maximum number of container elements to dump
4899 """
4900 if isinstance(klass, type):
4901 # ok
4902 pass
4903 elif isinstance(klass, str):
4904 klass = getattr(PyAthena,klass)
4905 pass
4906 else:
4907 raise TypeError('expected a type or a string')
4908
4909 klname = typename(klass)
4910 dumpers = [ i for i in dumpspecs if i[0] == klname ]
4911 if len(dumpers) != 1:
4912 raise RuntimeError('no suitable dumper function for class [%s]'%
4913 klname )
4914 fct = dumpers[0][1]
4915 nolist = hasattr (fct, 'nolist') and fct.nolist
4916 from functools import partial as _partial
4917 if nolist:
4918 if fct.nmax:
4919 dumper = _partial(fct, f=ofile, nmax=nmax)
4920 else:
4921 dumper = _partial(fct, f=ofile)
4922 else:
4923 dumper = _partial(dump_list, f=ofile, dumper=fct, nmax=nmax)
4924 return dumper
4925
Scalar phi() const
phi method
Scalar theta() const
theta method
static std::string to_string(const std::vector< T > &v)
size_t size() const
Number of registered mappings.
#define min(a, b)
Definition cfImp.cxx:40
#define max(a, b)
Definition cfImp.cxx:41
std::vector< std::string > split(const std::string &s, const std::string &t=":")
Definition hcg.cxx:179
Definition index.py:1
dump_CaloTowerContainer(t, f)
Definition Dumpers.py:3063
dump_CMMEtSums(p, f)
Definition Dumpers.py:3770
dump_TgcRdoContainer(p, f)
Definition Dumpers.py:4203
dump_TRT_RawDataContainer(p, f)
Definition Dumpers.py:3561
dump_SiHit(t, f)
Definition Dumpers.py:3122
dump_EL(l, f)
Definition Dumpers.py:321
dump_AFP_ToFRawCollection(p, f)
Definition Dumpers.py:1459
dump_CscStripPrepData(p, f)
Definition Dumpers.py:3347
dump_HLTTriggerElement(e, f)
Definition Dumpers.py:2426
dump_TileMuonReceiverObj(p, f)
Definition Dumpers.py:3755
dump_TgcRdo_Errors(p, f)
Definition Dumpers.py:4145
dump_Tau1P3PExtraDetails(t, f)
Definition Dumpers.py:720
dump_TruthParticle(p, f)
Definition Dumpers.py:983
_genvertex_particles_in_size(e)
Definition Dumpers.py:2116
dump_vvdouble(c, f)
Definition Dumpers.py:864
dump_LUCID_RawData(p, f)
Definition Dumpers.py:3972
dump_Electron(e, f)
Definition Dumpers.py:587
dump_eflowObjectContainer(c, f)
Definition Dumpers.py:3302
dump_HLTStreamTag(s, f)
Definition Dumpers.py:2441
genvertex_out_barcodes(v)
Definition Dumpers.py:2148
dump_AFP_ToFRawData(p, f)
Definition Dumpers.py:1450
dump_RpcCoinData(p, f)
Definition Dumpers.py:3400
dump_ParametersBase(info, f)
Definition Dumpers.py:1181
dump_Assocs(a, f, colltype)
Definition Dumpers.py:2692
dump_TileRawData(p, f)
Definition Dumpers.py:3626
dump_MuonSimDataCollection(p, f)
Definition Dumpers.py:3609
dump_MdtPrepDataContainer(p, f)
Definition Dumpers.py:3531
dump_CaloShower(s, f)
Definition Dumpers.py:3054
dump_MdtCsmContainer(p, f)
Definition Dumpers.py:4215
dump_AttributeList(p, f)
Definition Dumpers.py:1364
dump_V0Hypothesis(h, f)
Definition Dumpers.py:2846
dump_TrigSpacePointCounts_nolist(c, f)
Definition Dumpers.py:3026
dump_TrigConfKeys(p, f)
Definition Dumpers.py:3312
dump_Threevec(v, f)
Definition Dumpers.py:286
dump_CscSimData(p, f)
Definition Dumpers.py:3577
dump_CSCSimHit(p, f)
Definition Dumpers.py:3992
dump_Fourvec(v, f, parens=1)
Definition Dumpers.py:225
dump_TrackInfo(p, f)
Definition Dumpers.py:1768
dump_TrackTruthCollection(p, f)
Definition Dumpers.py:1601
dump_L1TopoResult(p, f)
Definition Dumpers.py:3937
dump_ExtendedVxCandidate(c, f)
Definition Dumpers.py:2836
dump_PixelRDORawData(p, f)
Definition Dumpers.py:3447
dump_NSW_PadTriggerData(p, f)
Definition Dumpers.py:4246
dump_PhotonAssociation(a, f)
Definition Dumpers.py:2741
dump_TrigInDetTrack(t, f)
Definition Dumpers.py:2599
dump_EMTauResult(p, f)
Definition Dumpers.py:3921
formatItemUsingLong(x)
Definition Dumpers.py:151
dump_TauPi0Details(t, f)
Definition Dumpers.py:779
dump_RpcCoinMatrix(p, f)
Definition Dumpers.py:4059
dump_CaloCalibrationHit(t, f)
Definition Dumpers.py:3099
dump_InDetSimData(p, f)
Definition Dumpers.py:1571
dump_xAODTruthParticleLink(p, f)
Definition Dumpers.py:4294
dump_PileUpEventInfo(e, f)
Definition Dumpers.py:2058
dump_FitQuality(info, f)
Definition Dumpers.py:1067
dump_ZdcLucrod_Data(p, f)
Definition Dumpers.py:4282
dump_HLTChain(c, f)
Definition Dumpers.py:2450
dump_eflowObject(e, f)
Definition Dumpers.py:3283
dump_Twovec(v, f)
Definition Dumpers.py:292
dump_PlaneSurface(info, f)
Definition Dumpers.py:1118
dump_TRT_BSErrContainer(p, f)
Definition Dumpers.py:1394
dump_TrigVertex(v, f)
Definition Dumpers.py:2865
dump_V0Candidate(v, f)
Definition Dumpers.py:2857
dump_CaloCellLink(l, f)
Definition Dumpers.py:1862
dump_BunchConfKey(p, f)
Definition Dumpers.py:1425
dump_MVFVxTrackAtVertex(t, f)
Definition Dumpers.py:1965
dump_CaloEnergy(p, f)
Definition Dumpers.py:605
dump_LArHit(t, f)
Definition Dumpers.py:3105
dump_MuCTPI_RDO(p, f)
Definition Dumpers.py:3831
dump_JetET_ROI(m, f)
Definition Dumpers.py:2307
dump_HLTResult(t, f)
Definition Dumpers.py:2364
dump_EventInfo(e, f)
Definition Dumpers.py:2043
dump_ZdcRawData(p, f)
Definition Dumpers.py:4032
dump_AFP_SiRawData(p, f)
Definition Dumpers.py:1438
dump_MdtAmtHit(p, f)
Definition Dumpers.py:4209
_genevent_signal_process_vertex(e)
Definition Dumpers.py:2109
dump_CylinderSurface(info, f)
Definition Dumpers.py:1128
dump_TgcPrepData(p, f)
Definition Dumpers.py:3355
asinh(x)
helper methods ---------------------------------------------------------—
Definition Dumpers.py:80
dump_TauPi0Cluster(t, f)
Definition Dumpers.py:751
dump_CaloSamplingData(s, f)
Definition Dumpers.py:3045
dump_LArFebErrorSummary(p, f)
Definition Dumpers.py:1558
dump_ZdcDigits(p, f)
Definition Dumpers.py:4037
dump_TrigTrackCounts(t, f)
Definition Dumpers.py:2904
dump_CaloCluster(c, f)
Definition Dumpers.py:1813
dump_TrackParticleTruth(p, f)
Definition Dumpers.py:1018
dump_CaloClusterCellLink(l, f)
Definition Dumpers.py:1876
dump_surface(p, f)
Definition Dumpers.py:1153
dump_TrigTrackCounts_nolist(t, f)
Definition Dumpers.py:2911
dump_TrigT2MbtsBits(t, f)
Definition Dumpers.py:3140
dump_ROIBHeader(p, f)
Definition Dumpers.py:3867
_genevent_vertices_size(e)
Definition Dumpers.py:2097
dump_MdtTrackSegment(t, f)
Definition Dumpers.py:3168
signalstate(o, state)
Definition Dumpers.py:126
dump_TileRawChannelCollection(data, f)
Definition Dumpers.py:3691
dump_Lvl1Result(t, f)
Definition Dumpers.py:2402
dump_CTPResult(p, f)
Definition Dumpers.py:3895
dump_Muon_ROI(m, f)
Definition Dumpers.py:2261
barcodes(beg, end, sz)
Definition Dumpers.py:2126
dump_HepMcParticleLink(p, f)
Definition Dumpers.py:3117
dump_TrackParticleTruthCollection(c, f)
Definition Dumpers.py:1029
dump_sTgcClusterOnTrack(p, f)
Definition Dumpers.py:1637
dump_TileMu(m, f)
Definition Dumpers.py:3031
dump_TgcRawData(p, f)
Definition Dumpers.py:4109
dump_TauDetailsContainer(p, f)
Definition Dumpers.py:1534
dump_Track(p, f)
Definition Dumpers.py:1775
dump_CMMCPHits(p, f)
Definition Dumpers.py:3761
dump_JetMomentMapCollection(p, f)
Definition Dumpers.py:1546
dump_EnergySum_ROI(m, f)
Definition Dumpers.py:2315
dump_MvfFitInfo(v, f)
Definition Dumpers.py:1989
dump_LocalParameters(p, f)
Definition Dumpers.py:1258
dump_TileDigits(p, f)
Definition Dumpers.py:3631
dump_AFP_RawCollectionHead(p, f)
Definition Dumpers.py:1430
dump_CTPRoI(p, f)
Definition Dumpers.py:3890
dump_TrigTauClusterDetails(t, f)
Definition Dumpers.py:2969
dump_PixelRawDataContainer(p, f)
Definition Dumpers.py:3555
dump_STGC_RawData(p, f)
Definition Dumpers.py:4223
dump_auxdata(x, exclude=None, f=sys.stdout)
Definition Dumpers.py:4474
dump_TgcCoinData(p, f)
Definition Dumpers.py:3362
dump_TGCSimHit(p, f)
Definition Dumpers.py:4018
dump_EMTrackMatch(d, f)
Definition Dumpers.py:395
dump_ITrackLink(l, f)
Definition Dumpers.py:1907
dump_TrigRoiDescriptor(d, f)
Definition Dumpers.py:2955
dump_LArFebHeader(p, f)
Definition Dumpers.py:1404
dump_CPMHits(p, f)
Definition Dumpers.py:3797
dump_Photon(e, f)
Definition Dumpers.py:591
dump_PixelClusterContainer(p, f)
Definition Dumpers.py:3537
format_obj(x, name=None)
Definition Dumpers.py:4356
dump_MuonCluster(p, f)
Definition Dumpers.py:3334
dump_CMMRoI(p, f)
Definition Dumpers.py:3789
dump_L1DataBaseclass(c, f)
Definition Dumpers.py:2493
dump_auxitem(x, auxid, f=sys.stdout)
Definition Dumpers.py:4429
dump_TRT_RDORawData(p, f)
Definition Dumpers.py:3453
dump_MVFVxCandidate(v, f)
Definition Dumpers.py:1996
_genevent_particles_size(e)
Definition Dumpers.py:2093
dump_TrigTrtHitCounts(p, f)
Definition Dumpers.py:3182
dump_PixelCluster(p, f)
Definition Dumpers.py:3421
dump_TileHit(t, f)
Definition Dumpers.py:3110
dump_TrigCaloCluster(c, f)
Definition Dumpers.py:2916
dump_RIO_OnTrack(p, f)
Definition Dumpers.py:1270
dump_RawInfoSummaryForTag(p, f)
Definition Dumpers.py:3238
safe_assocs(a, obj, coll, f)
Definition Dumpers.py:2665
dump_TRT_DriftCircle(p, f)
Definition Dumpers.py:3435
dump_SCT_Cluster(p, f)
Definition Dumpers.py:3429
_genevent_vertices(e)
Definition Dumpers.py:2105
dump_SCT_RawDataContainer(p, f)
Definition Dumpers.py:3567
dump_DiscSurface(info, f)
Definition Dumpers.py:1133
dump_Lvl1AODConfigData(d, f)
Definition Dumpers.py:2522
dump_EMTrackFit(d, f)
Definition Dumpers.py:499
dump_MMClusterOnTrack(p, f)
Definition Dumpers.py:1644
dump_CscRawDataContainer(p, f)
Definition Dumpers.py:4099
dump_TileTTL1(p, f)
Definition Dumpers.py:3750
dump_TrackParticle(p, f)
Definition Dumpers.py:1224
dump_MDTSimHit(p, f)
Definition Dumpers.py:4001
dump_TrigOperationalInfo(b, f)
Definition Dumpers.py:3257
dump_PrepRawData(p, f)
Definition Dumpers.py:3322
dump_TileDigitsContainer(p, f)
Definition Dumpers.py:3638
dump_TrackSummary(info, f)
Definition Dumpers.py:1075
dump_VxCandidate(v, f)
Definition Dumpers.py:2003
dump_TrigT2ZdcSignals(p, f)
Definition Dumpers.py:1528
dump_SaggedLineSurface(info, f)
Definition Dumpers.py:1146
dump_TrigTauCluster_nolist(t, f)
Definition Dumpers.py:2994
dump_TrigDecision(t, f)
Definition Dumpers.py:2415
dump_TileRawDataCollection(data, f)
Definition Dumpers.py:3679
dump_STGC_RawDataContainer(p, f)
Definition Dumpers.py:4229
dump_RPCSimHit(p, f)
Definition Dumpers.py:4009
dump_StraightLineSurface(info, f)
Definition Dumpers.py:1123
dump_CaloCell(l, f)
Definition Dumpers.py:1885
dump_ALFA_RawDataCollection(p, f)
Definition Dumpers.py:1489
dump_ScatteringAngles(p, f)
Definition Dumpers.py:1715
dump_InDetRawData(p, f)
Definition Dumpers.py:3442
dump_RpcPrepData(p, f)
Definition Dumpers.py:3394
dump_TileL2(p, f)
Definition Dumpers.py:3738
dump_IDCInDetBSErrContainer(p, f)
Definition Dumpers.py:1387
dump_Trig3Momentum(m, f)
Definition Dumpers.py:2964
dump_LArRawChannel(p, f)
Definition Dumpers.py:1418
dump_LineSaggingDescriptor(info, f)
Definition Dumpers.py:1138
dump_CompetingRIOsOnTrack(p, f)
Definition Dumpers.py:1321
_genevent_particles(e)
Definition Dumpers.py:2101
dump_LinkToTrack(l, f)
Definition Dumpers.py:1918
dump_EventID(e, f)
Definition Dumpers.py:2018
dump_TruthTrajectory(t, f)
Definition Dumpers.py:1047
dump_CTPConfig(c, f)
Definition Dumpers.py:2498
dump_RpcSectorLogic(p, f)
Definition Dumpers.py:4082
dump_SCT_ClusterContainer(p, f)
Definition Dumpers.py:3543
dump_RpcFiredChannel(p, f)
Definition Dumpers.py:4054
dump_MuonClusterOnTrack(p, f)
Definition Dumpers.py:1329
dump_HLTAODConfigData(d, f)
Definition Dumpers.py:2481
dump_DetStatusMap(m, f)
Definition Dumpers.py:2573
dump_TrackRecord(t, f)
Definition Dumpers.py:2552
dump_SCT_ClusterOnTrack(p, f)
Definition Dumpers.py:1291
dump_materialeffects(p, f)
Definition Dumpers.py:1731
get_dumper_fct(klass, ofile=sys.stdout, nmax=None)
Definition Dumpers.py:4893
toiter(beg, end)
Definition Dumpers.py:86
dump_AmgVector(m, f, thresh=1e-38, prec=3)
Definition Dumpers.py:308
dump_TrigPassFlags(m, f)
Definition Dumpers.py:3270
dump_TileRawChannel(data, f)
Definition Dumpers.py:3669
dump_MuonSimData(p, f)
Definition Dumpers.py:3599
dump_Attribute(p, f)
Definition Dumpers.py:1355
dump_CscPrepData(p, f)
Definition Dumpers.py:3340
dump_Vertex(v, f)
Definition Dumpers.py:1895
dump_HLTSignature(s, f)
Definition Dumpers.py:2431
dump_LArTTL1(p, f)
Definition Dumpers.py:1609
dump_CscClusterOnTrack(p, f)
Definition Dumpers.py:1656
dump_PerigeeSurface(info, f)
Definition Dumpers.py:1113
dump_SiCluster(p, f)
Definition Dumpers.py:3412
dump_MdtPrepData(p, f)
Definition Dumpers.py:3387
dump_BCM_RDO(p, f)
Definition Dumpers.py:3980
generic_dump_auxitem(x, auxid, f)
Definition Dumpers.py:4404
dump_Surface(info, f)
Definition Dumpers.py:1084
dump_LVL1_ROI(t, f)
Definition Dumpers.py:2336
dump_egamma(e, f)
Definition Dumpers.py:539
dump_TrigTauCluster(t, f)
Definition Dumpers.py:2981
dump_EventStreamInfo(e, f)
Definition Dumpers.py:2066
dump_IdentContIndex(p, f)
Definition Dumpers.py:3317
dump_ROIBTrailer(p, f)
Definition Dumpers.py:3872
dump_egDetailContainer(p, f)
Definition Dumpers.py:1540
dump_PseudoMeasurementOnTrack(p, f)
Definition Dumpers.py:1667
dump_TrigRoiDescriptor_nolist(d, f)
Definition Dumpers.py:2959
dump_TRTUncompressedHit(t, f)
Definition Dumpers.py:3131
dump_ChamberT0s(m, f)
Definition Dumpers.py:3246
dump_GenVertex(v, f)
Definition Dumpers.py:2157
dump_JEMHits(p, f)
Definition Dumpers.py:3846
dump_RingerRings(r, f)
Definition Dumpers.py:3177
dump_LArNoisyROSummary(p, f)
Definition Dumpers.py:3224
dump_Tau1P3PDetails(t, f)
Definition Dumpers.py:656
dump_VxTrackAtVertex(t, f)
Definition Dumpers.py:1930
dump_JetEnergyRoI(p, f)
Definition Dumpers.py:3903
dump_GenEvent(e, f)
Definition Dumpers.py:2223
dump_TrigEMCluster(c, f)
Definition Dumpers.py:2923
dump_CTP_Decision(t, f)
Definition Dumpers.py:2256
dump_TrigInDetTrackFitPar(p, f)
Definition Dumpers.py:2580
dump_CosmicMuon(m, f)
Definition Dumpers.py:3148
dump_SiClusterOnTrack(p, f)
Definition Dumpers.py:1276
dump_ElectronAssociation(a, f)
Definition Dumpers.py:2732
dump_ParticleBase(e, f)
Definition Dumpers.py:334
dump_SiWidth(p, f)
Definition Dumpers.py:3406
dump_parameters(p, f)
Definition Dumpers.py:1206
dump_AFP_SiRawCollection(p, f)
Definition Dumpers.py:1443
dump_CscRawData(p, f)
Definition Dumpers.py:4093
dump_SubDetHitStatistics(s, f)
Definition Dumpers.py:1042
safe_float_vector(v)
Definition Dumpers.py:121
dump_TrigRNNOutput(p, f)
Definition Dumpers.py:3192
dump_TrigSpacePointCounts(c, f)
Definition Dumpers.py:3013
dump_TileRawChannelContainer(data, f)
Definition Dumpers.py:3709
dump_TriggerInfo(e, f)
Definition Dumpers.py:2034
dump_AFP_RawContainer(p, f)
Definition Dumpers.py:1467
dump_EventBookkeeper(p, f, level=0)
Definition Dumpers.py:4046
dump_JetElement(p, f)
Definition Dumpers.py:3857
dump_AlignmentEffectsOnTrack(p, f)
Definition Dumpers.py:1742
dump_PixelClusterOnTrack(p, f)
Definition Dumpers.py:1283
dump_TrigPassBits(b, f)
Definition Dumpers.py:3252
dump_IDC(payload_dumper, p, f, extra_idc_dumper=None)
Definition Dumpers.py:3465
dump_CMMJetHits(p, f)
Definition Dumpers.py:3781
dump_measurement(p, f)
Definition Dumpers.py:1674
dump_TauCommonDetails(t, f)
Definition Dumpers.py:796
dump_LinkToTrackParticleBase(l, f)
Definition Dumpers.py:1924
_gen_vecattr(e, a, typ)
Definition Dumpers.py:2086
dump_Lvl1AODPrescaleConfigData(d, f)
Definition Dumpers.py:2546
dump_TrackParticleAssocs(a, f)
Definition Dumpers.py:2723
dump_TgcBitmask(p, f, lab, fields)
Definition Dumpers.py:4137
dump_H3V(v, f)
Definition Dumpers.py:195
dump_MaterialEffectsOnTrack(p, f)
Definition Dumpers.py:1724
dump_TrigVertexCounts(v, f)
Definition Dumpers.py:3263
dump_CscMcData(p, f)
Definition Dumpers.py:3572
dump_EmTau_ROI(m, f)
Definition Dumpers.py:2278
dump_DetStatus(s, f)
Definition Dumpers.py:2563
dump_MM_RawDataContainer(p, f)
Definition Dumpers.py:4241
dump_GenericResult(t, f)
Definition Dumpers.py:2355
dump_associatedSurface(p, f)
Definition Dumpers.py:1173
dump_INav4MomAssocs(a, f)
Definition Dumpers.py:2718
dump_TrackStateOnSurface(p, f)
Definition Dumpers.py:1755
dump_ComTime(p, f)
Definition Dumpers.py:1616
dump_TauRecDetails(t, f)
Definition Dumpers.py:698
fix_neg0(x, thresh=0)
library methods ---------------------------------------------------------—
Definition Dumpers.py:191
genvertex_in_barcodes(v)
Definition Dumpers.py:2139
dump_TauCommonExtraDetails(t, f)
Definition Dumpers.py:875
dump_RoiDescriptor(d, f)
Definition Dumpers.py:2944
dump_CscStripPrepDataContainer(p, f)
Definition Dumpers.py:3501
dump_HLTResultMT(p, f)
Definition Dumpers.py:2388
dump_TrigEMCluster_nolist(c, f)
Definition Dumpers.py:2931
dump_CaloTopoTowerContainer(t, f)
Definition Dumpers.py:3071
dump_TgcPrepDataContainer(p, f)
Definition Dumpers.py:3519
dump_EMShower(d, f)
Definition Dumpers.py:402
dump_TgcCoinDataContainer(p, f)
Definition Dumpers.py:3525
dump_AmgMatrix(m, f, thresh=1e-38)
Definition Dumpers.py:296
dump_TRT_DriftCircleContainer(p, f)
Definition Dumpers.py:3549
dump_EMErrorDetail(d, f)
Definition Dumpers.py:434
dump_RpcClusterOnTrack(p, f)
Definition Dumpers.py:1347
dump_MuonMcData(p, f)
Definition Dumpers.py:3594
dump_MuCTPIRoI(p, f)
Definition Dumpers.py:3877
dump_CaloClusterMomentStore(m, f)
Definition Dumpers.py:3036
dump_JetKeyDescriptorCollection(p, f)
Definition Dumpers.py:1552
dump_InDetLowBetaCandidate(p, f)
Definition Dumpers.py:3200
dump_HLV(v, f)
Definition Dumpers.py:200
dump_xAODObject(o, f)
Definition Dumpers.py:4502
dump_HLTSequence(s, f)
Definition Dumpers.py:2470
dump_TrigHisto(h, f)
Definition Dumpers.py:2999
dump_CurvilinearParameters(info, f)
Definition Dumpers.py:1195
dump_InDetSimDataCollection(p, f)
Definition Dumpers.py:1584
dump_TauRecExtraDetails(t, f)
Definition Dumpers.py:734
dump_EMConvert(d, f)
Definition Dumpers.py:367
dump_JetEnergyResult(p, f)
Definition Dumpers.py:3908
dump_MaterialEffectsBase(p, f)
Definition Dumpers.py:1709
dump_TauPi0Candidate(t, f)
Definition Dumpers.py:742
dump_JEMEtSums(p, f)
Definition Dumpers.py:3838
dump_TauShot(t, f)
Definition Dumpers.py:621
dump_EventType(e, f)
Definition Dumpers.py:2029
dump_VxCandidate1(v, f)
Definition Dumpers.py:1971
dump_RoIBResult(p, f)
Definition Dumpers.py:3945
dump_TauDetail(t, f)
Definition Dumpers.py:649
dump_EMBremFit(d, f)
Definition Dumpers.py:371
dump_EMTauRoI(p, f)
Definition Dumpers.py:3916
dump_ParticleImpl(p, f)
Definition Dumpers.py:351
dump_DetailedTrackTruthCollection(c, f)
Definition Dumpers.py:1053
dump_Segment(p, f)
Definition Dumpers.py:1804
dump_TrigHisto2D(h, f)
Definition Dumpers.py:3008
dump_list(l, f, dumper, nmax=None)
Definition Dumpers.py:4514
dump_PRD_MultiTruthCollection(p, f)
Definition Dumpers.py:1593
dump_SCT_RDORawData(p, f)
Definition Dumpers.py:3459
dump_RecVertex(v, f)
Definition Dumpers.py:1900
dump_MuonAssociation(a, f)
Definition Dumpers.py:2750
dump_EnergyLoss(p, f)
Definition Dumpers.py:596
dump_vector(p, f)
Definition Dumpers.py:1625
dump_xAOD(o, f)
Definition Dumpers.py:4495
dump_AFP_RawDataCommonHead(p, f)
Definition Dumpers.py:1434
dump_ClusterSplitProbabilityContainer(p, f)
Definition Dumpers.py:1565
dump_TauJet(t, f)
Definition Dumpers.py:899
dump_CTP_RDO(p, f)
Definition Dumpers.py:3819
dump_PixelGangedClusterAmbiguities(p, f)
Definition Dumpers.py:3618
_gen_attr(e, a, typ)
Definition Dumpers.py:2079
format_float_vector(v)
Definition Dumpers.py:4302
dump_LArDigit(p, f)
Definition Dumpers.py:4027
dump_clist(l, f)
Definition Dumpers.py:2881
dump_CscPrepDataContainer(p, f)
Definition Dumpers.py:3495
dump_RpcPadContainer(p, f)
Definition Dumpers.py:4068
dump_TgcRdo_RodStatus(p, f)
Definition Dumpers.py:4153
dump_MdtDriftCircleOnTrack(p, f)
Definition Dumpers.py:1310
dump_ALFA_RawData(p, f)
Definition Dumpers.py:1481
dump_MuCTPIResult(p, f)
Definition Dumpers.py:3882
dump_RpcPrepDataContainer(p, f)
Definition Dumpers.py:3513
dump_JetAssociationBase(a, f)
Definition Dumpers.py:2727
dump_CPMRoI(p, f)
Definition Dumpers.py:3804
dump_ALFA_RawDataContainer(p, f)
Definition Dumpers.py:1509
dump_TileBeamElemContainer(data, f)
Definition Dumpers.py:3724
dump_CscSimDataCollection(p, f)
Definition Dumpers.py:3586
dump_CaloClusters_sorted(l, f, nmax=None)
Definition Dumpers.py:1855
dump_TRT_DriftCircleOnTrack(p, f)
Definition Dumpers.py:1299
dump_xAODObjectNL(o, f)
Definition Dumpers.py:4508
dump_L1TopoRDO(p, f)
Definition Dumpers.py:3929
dump_CPMTower(p, f)
Definition Dumpers.py:3809
dump_MM_RawData(p, f)
Definition Dumpers.py:4234
dump_BCM_RDO_Collection(p, f)
Definition Dumpers.py:3985
dump_InDetTime(p, f)
Definition Dumpers.py:1381
dump_TrigHisto1D(h, f)
Definition Dumpers.py:3005
dump_TgcRdo(p, f)
Definition Dumpers.py:4193
dump_MeasurementBase(p, f)
Definition Dumpers.py:1264
dump_RpcSLTriggerHit(p, f)
Definition Dumpers.py:4076
dump_vvelccell(c, f)
Definition Dumpers.py:850
dump_Jet_ROI(m, f)
Definition Dumpers.py:2294
dump_JEMRoI(p, f)
Definition Dumpers.py:3852
dump_SkimDecision(p, f)
Definition Dumpers.py:3232
dump_GenParticle(p, f)
Definition Dumpers.py:2184
dump_CompetingMuonClustersOnTrack(p, f)
Definition Dumpers.py:1337
dump_RpcCoinDataContainer(p, f)
Definition Dumpers.py:3507
_genvertex_particles_out_size(e)
Definition Dumpers.py:2120
dump_TgcRdo_LocalStatus(p, f)
Definition Dumpers.py:4184
dump_TgcClusterOnTrack(p, f)
Definition Dumpers.py:1630
dump_TrigInDetTrackCollection(t, f)
Definition Dumpers.py:2937
dump_TriggerTower(p, f)
Definition Dumpers.py:3962
dump_NSW_PadTriggerDataContainer(p, f)
Definition Dumpers.py:4271