17 def xAODDigest(evt, counter=False, extravars=False):
20 for i
in range(0, evt.getEntries()):
21 if (counter
and (i % 100) == 0):
22 print(
"Processing event %s" % i)
25 ei = evt.retrieve(
"xAOD::EventInfo",
"EventInfo")
26 runnbr = ei.runNumber()
27 evtnbr = ei.eventNumber()
30 evt,
"xAOD::CaloClusterContainer",
"CaloCalTopoClusters")
34 "xAOD::TrackParticleContainer",
"InDetTrackParticles")
35 nIdTracks = len(idTracks)
37 tautracks =
safeRetrieve(evt,
"xAOD::TauTrackContainer",
"TauTracks")
38 nTauTracks = len(tautracks)
39 taus =
safeRetrieve(evt,
"xAOD::TauJetContainer",
"TauJets")
43 tau1eta = taus[0].
eta()
44 tau1phi = taus[0].
phi()
46 tau1pt = tau1eta = tau1phi = 0
48 muons =
safeRetrieve(evt,
"xAOD::MuonContainer",
"Muons")
51 muon1pt = muons[0].
pt()
52 muon1eta = muons[0].
eta()
53 muon1phi = muons[0].
phi()
55 muon1pt = muon1eta = muon1phi = 0
57 electrons =
safeRetrieve(evt,
"xAOD::ElectronContainer",
"Electrons")
58 nElec = len(electrons)
60 elec1pt = electrons[0].
pt()
61 elec1eta = electrons[0].
eta()
62 elec1phi = electrons[0].
phi()
64 elec1pt = elec1eta = elec1phi = 0
66 photons =
safeRetrieve(evt,
"xAOD::PhotonContainer",
"Photons")
69 phot1pt = photons[0].
pt()
70 phot1eta = photons[0].
eta()
71 phot1phi = photons[0].
phi()
73 phot1pt = phot1eta = phot1phi = 0
76 jets =
safeRetrieve(evt,
"xAOD::JetContainer",
"AntiKt4EMPFlowJets")
80 jet1eta = jets[0].
eta()
81 jet1phi = jets[0].
phi()
83 jet1pt = jet1eta = jet1phi = 0
85 met =
safeRetrieve(evt,
"xAOD::MissingETContainer",
"MET_Reference_AntiKt4EMPFlow")
88 metx = met[nmet-1].mpx()
89 mety = met[nmet-1].mpy()
90 sumet = met[nmet-1].sumet()
92 metx = mety = sumet = 0
96 acc = ROOT.SG.ConstAccessor(
97 'ElementLink< xAOD::TruthParticleContainer>')(
'truthParticleLink')
99 if nElec > 0
and acc.isAvailable(electrons.at(0)):
100 for i
in range(nElec):
101 truthLink =
acc(electrons.at(i))
102 if(truthLink.isValid()):
103 pdgId = truthLink.pdgId()
107 if nPhot > 0
and acc.isAvailable(photons.at(0)):
108 for i
in range(nPhot):
109 truthLink =
acc(photons.at(i))
110 if(truthLink.isValid()):
111 pdgId = truthLink.pdgId()
115 nFakeElectrons = nElec - nTrueElectrons
116 nFakePhotons = nPhot - nTruePhotons
119 result.append((runnbr, evtnbr, nclus, nIdTracks,
120 nTauTracks, nTaus, tau1pt, tau1eta, tau1phi,
121 nMuons, muon1pt, muon1eta, muon1phi,
122 nElec, elec1pt, elec1eta, elec1phi, nTrueElectrons, nFakeElectrons,
123 nPhot, phot1pt, phot1eta, phot1phi ,nTruePhotons, nFakePhotons,
124 nJet, jet1pt, jet1eta, jet1phi, nmet, metx, mety, sumet))
126 result.append((runnbr, evtnbr, nclus, nIdTracks, nTauTracks, nTaus, nMuons,
127 nElec, nTrueElectrons, nFakeElectrons,
128 nPhot, nTruePhotons, nFakePhotons))
133 result.sort(key=
lambda er: er[0] << 32 | er[1])