8 objectFloat = NTupleObjectType(
"builtInType", variables = [
9 NTupleVariable(
"",
lambda x : x),
11 objectInt = NTupleObjectType(
"builtInType", variables = [
12 NTupleVariable(
"",
lambda x : x,int),
15 twoVectorType = NTupleObjectType(
"twoVector", variables = [
16 NTupleVariable(
"pt",
lambda x : x.pt()),
17 NTupleVariable(
"phi",
lambda x : x.phi()),
20 fourVectorType = NTupleObjectType(
"fourVector", variables = [
21 NTupleVariable(
"pt",
lambda x : x.pt()),
22 NTupleVariable(
"eta",
lambda x : x.eta()),
23 NTupleVariable(
"phi",
lambda x : x.phi()),
24 NTupleVariable(
"mass",
lambda x : x.mass()),
25 NTupleVariable(
"p4",
lambda x : x,
"TLorentzVector", default=ROOT.reco.Particle.LorentzVector(0.,0.,0.,0.), filler =
lambda vector, obj: vector.SetPtEtaPhiM(obj.pt(), obj.eta(), obj.phi(), obj.mass())),
28 tlorentzFourVectorType = NTupleObjectType(
"tlorentzFourVectorType", variables = [
29 NTupleVariable(
"pt",
lambda x : x.Pt()),
30 NTupleVariable(
"eta",
lambda x : x.Eta()),
31 NTupleVariable(
"phi",
lambda x : x.Phi()),
32 NTupleVariable(
"energy",
lambda x : x.E()),
34 particleType = NTupleObjectType(
"particle", baseObjectTypes = [ fourVectorType ], variables = [
35 NTupleVariable(
"pdgId",
lambda x : x.pdgId(), int),
38 weightsInfoType = NTupleObjectType(
"WeightsInfo", mcOnly=
True, variables = [
39 NTupleVariable(
"id",
lambda x : x.id, int),
40 NTupleVariable(
"wgt",
lambda x : x.wgt),
48 leptonType = NTupleObjectType(
"lepton", baseObjectTypes = [ particleType ], variables = [
49 NTupleVariable(
"charge",
lambda x : x.charge(), int),
51 NTupleVariable(
"tightId",
lambda x : x.tightId(), int, help=
"POG Tight ID (for electrons it's configured in the analyzer)"),
52 NTupleVariable(
"eleCutIdCSA14_25ns_v1",
lambda x : (1*x.electronID(
"POG_Cuts_ID_CSA14_25ns_v1_Veto") + 1*x.electronID(
"POG_Cuts_ID_CSA14_25ns_v1_Loose") + 1*x.electronID(
"POG_Cuts_ID_CSA14_25ns_v1_Medium") + 1*x.electronID(
"POG_Cuts_ID_CSA14_25ns_v1_Tight"))
if abs(x.pdgId()) == 11
else -1, int, help=
"Electron cut-based id (POG CSA14_25ns_v1): 0=none, 1=veto, 2=loose, 3=medium, 4=tight"),
53 NTupleVariable(
"eleCutIdCSA14_50ns_v1",
lambda x : (1*x.electronID(
"POG_Cuts_ID_CSA14_50ns_v1_Veto") + 1*x.electronID(
"POG_Cuts_ID_CSA14_50ns_v1_Loose") + 1*x.electronID(
"POG_Cuts_ID_CSA14_50ns_v1_Medium") + 1*x.electronID(
"POG_Cuts_ID_CSA14_50ns_v1_Tight"))
if abs(x.pdgId()) == 11
else -1, int, help=
"Electron cut-based id (POG CSA14_50ns_v1): 0=none, 1=veto, 2=loose, 3=medium, 4=tight"),
54 NTupleVariable(
"eleCutIdSpring15_25ns_v1",
lambda x : (1*x.electronID(
"cutBasedElectronID-Spring15-25ns-V1-standalone-veto") + 1*x.electronID(
"cutBasedElectronID-Spring15-25ns-V1-standalone-loose") + 1*x.electronID(
"cutBasedElectronID-Spring15-25ns-V1-standalone-medium") + 1*x.electronID(
"cutBasedElectronID-Spring15-25ns-V1-standalone-tight"))
if abs(x.pdgId()) == 11
and x.isElectronIDAvailable(
"cutBasedElectronID-Spring15-25ns-V1-standalone-veto")
else -1, int, help=
"Electron cut-based id (POG Spring15_25ns_v1): 0=none, 1=veto, 2=loose, 3=medium, 4=tight"),
56 NTupleVariable(
"dxy",
lambda x : x.dxy(), help=
"d_{xy} with respect to PV, in cm (with sign)"),
57 NTupleVariable(
"dz",
lambda x : x.dz() , help=
"d_{z} with respect to PV, in cm (with sign)"),
58 NTupleVariable(
"edxy",
lambda x : x.edB(), help=
"#sigma(d_{xy}) with respect to PV, in cm"),
59 NTupleVariable(
"edz",
lambda x : x.edz(), help=
"#sigma(d_{z}) with respect to PV, in cm"),
60 NTupleVariable(
"ip3d",
lambda x : x.ip3D() , help=
"d_{3d} with respect to PV, in cm (absolute value)"),
61 NTupleVariable(
"sip3d",
lambda x : x.sip3D(), help=
"S_{ip3d} with respect to PV (significance)"),
63 NTupleVariable(
"convVeto",
lambda x : x.passConversionVeto()
if abs(x.pdgId())==11
else 1, int, help=
"Conversion veto (always true for muons)"),
64 NTupleVariable(
"lostHits",
lambda x : (x.gsfTrack()
if abs(x.pdgId())==11
else x.innerTrack()).hitPattern().
numberOfLostHits(ROOT.reco.HitPattern.MISSING_INNER_HITS), int, help=
"Number of lost hits on inner track"),
66 NTupleVariable(
"relIso03",
lambda x : x.relIso03, help=
"PF Rel Iso, R=0.3, pile-up corrected"),
67 NTupleVariable(
"relIso04",
lambda x : x.relIso04, help=
"PF Rel Iso, R=0.4, pile-up corrected"),
68 NTupleVariable(
"miniRelIso",
lambda x : x.miniRelIso
if hasattr(x,
'miniRelIso')
else -999, help=
"PF Rel miniRel, pile-up corrected"),
69 NTupleVariable(
"relIsoAn04",
lambda x : x.relIsoAn04
if hasattr(x,
'relIsoAn04')
else -999, help=
"PF Activity Annulus, pile-up corrected"),
71 NTupleVariable(
"tightCharge",
lambda lepton : ( lepton.isGsfCtfScPixChargeConsistent() + lepton.isGsfScPixChargeConsistent() )
if abs(lepton.pdgId()) == 11
else 2*(lepton.innerTrack().ptError()/lepton.innerTrack().
pt() < 0.2), int, help=
"Tight charge criteria: for electrons, 2 if isGsfCtfScPixChargeConsistent, 1 if only isGsfScPixChargeConsistent, 0 otherwise; for muons, 2 if ptError/pt < 0.20, 0 otherwise "),
73 NTupleVariable(
"mcMatchId",
lambda x : getattr(x,
'mcMatchId', -99), int, mcOnly=
True, help=
"Match to source from hard scatter (pdgId of heaviest particle in chain, 25 for H, 6 for t, 23/24 for W/Z), zero if non-prompt or fake"),
74 NTupleVariable(
"mcMatchAny",
lambda x : getattr(x,
'mcMatchAny', -99), int, mcOnly=
True, help=
"Match to any final state leptons: 0 if unmatched, 1 if light flavour (including prompt), 4 if charm, 5 if bottom"),
75 NTupleVariable(
"mcMatchTau",
lambda x : getattr(x,
'mcMatchTau', -99), int, mcOnly=
True, help=
"True if the leptons comes from a tau"),
76 NTupleVariable(
"mcPt",
lambda x : x.mcLep.pt()
if getattr(x,
"mcLep",
None)
else 0., mcOnly=
True, help=
"p_{T} of associated gen lepton"),
77 NTupleVariable(
"mediumMuonId",
lambda x : x.muonID(
"POG_ID_Medium")
if abs(x.pdgId())==13
else 1, int, help=
"Muon POG Medium id"),
81 leptonTypeExtra = NTupleObjectType(
"leptonExtra", baseObjectTypes = [ leptonType ], variables = [
83 NTupleVariable(
"chargedHadRelIso03",
lambda x : x.chargedHadronIsoR(0.3)/x.pt(), help=
"PF Rel Iso, R=0.3, charged hadrons only"),
84 NTupleVariable(
"chargedHadRelIso04",
lambda x : x.chargedHadronIsoR(0.4)/x.pt(), help=
"PF Rel Iso, R=0.4, charged hadrons only"),
86 NTupleVariable(
"softMuonId",
lambda x : x.muonID(
"POG_ID_Soft")
if abs(x.pdgId())==13
else 1, int, help=
"Muon POG Soft id"),
87 NTupleVariable(
"pfMuonId",
lambda x : x.muonID(
"POG_ID_Loose")
if abs(x.pdgId())==13
else 1, int, help=
"Muon POG Loose id"),
89 NTupleVariable(
"eleCutId2012_full5x5",
lambda x : (1*x.electronID(
"POG_Cuts_ID_2012_full5x5_Veto") + 1*x.electronID(
"POG_Cuts_ID_2012_full5x5_Loose") + 1*x.electronID(
"POG_Cuts_ID_2012_full5x5_Medium") + 1*x.electronID(
"POG_Cuts_ID_2012_full5x5_Tight"))
if abs(x.pdgId()) == 11
else -1, int, help=
"Electron cut-based id (POG 2012, full5x5 shapes): 0=none, 1=veto, 2=loose, 3=medium, 4=tight"),
91 NTupleVariable(
"trackerLayers",
lambda x : (x.track()
if abs(x.pdgId())==13
else x.gsfTrack()).hitPattern().trackerLayersWithMeasurement(), int, help=
"Tracker Layers"),
92 NTupleVariable(
"pixelLayers",
lambda x : (x.track()
if abs(x.pdgId())==13
else x.gsfTrack()).hitPattern().pixelLayersWithMeasurement(), int, help=
"Pixel Layers"),
93 NTupleVariable(
"trackerHits",
lambda x : (x.track()
if abs(x.pdgId())==13
else x.gsfTrack()).hitPattern().numberOfValidTrackerHits(), int, help=
"Tracker hits"),
94 NTupleVariable(
"lostOuterHits",
lambda x : (x.gsfTrack()
if abs(x.pdgId())==11
else x.innerTrack()).hitPattern().
numberOfLostHits(ROOT.reco.HitPattern.MISSING_OUTER_HITS), int, help=
"Number of lost hits on inner track"),
95 NTupleVariable(
"innerTrackValidHitFraction",
lambda x : (x.gsfTrack()
if abs(x.pdgId())==11
else x.innerTrack()).validFraction(), help=
"fraction of valid hits on inner track"),
96 NTupleVariable(
"innerTrackChi2",
lambda x : (x.gsfTrack()
if abs(x.pdgId())==11
else x.innerTrack()).
normalizedChi2(), help=
"Inner track normalized chi2"),
98 NTupleVariable(
"nStations",
lambda lepton : lepton.numberOfMatchedStations()
if abs(lepton.pdgId()) == 13
else 4, help=
"Number of matched muons stations (4 for electrons)"),
99 NTupleVariable(
"caloCompatibility",
lambda lepton : lepton.caloCompatibility()
if abs(lepton.pdgId()) == 13
else 0, help=
"Calorimetric compatibility"),
100 NTupleVariable(
"globalTrackChi2",
lambda lepton : lepton.globalTrack().
normalizedChi2()
if abs(lepton.pdgId()) == 13
and lepton.globalTrack().isNonnull()
else 0, help=
"Global track normalized chi2"),
101 NTupleVariable(
"trkKink",
lambda lepton : lepton.combinedQuality().trkKink
if abs(lepton.pdgId()) == 13
else 0, help=
"Tracker kink-finder"),
102 NTupleVariable(
"segmentCompatibility",
lambda lepton : lepton.segmentCompatibility()
if abs(lepton.pdgId()) == 13
else 0, help=
"Segment-based compatibility"),
103 NTupleVariable(
"chi2LocalPosition",
lambda lepton : lepton.combinedQuality().chi2LocalPosition
if abs(lepton.pdgId()) == 13
else 0, help=
"Tracker-Muon matching in position"),
104 NTupleVariable(
"chi2LocalMomentum",
lambda lepton : lepton.combinedQuality().chi2LocalMomentum
if abs(lepton.pdgId()) == 13
else 0, help=
"Tracker-Muon matching in momentum"),
105 NTupleVariable(
"glbTrackProbability",
lambda lepton : lepton.combinedQuality().glbTrackProbability
if abs(lepton.pdgId()) == 13
else 0, help=
"Global track pseudo-probability"),
107 NTupleVariable(
"sigmaIEtaIEta",
lambda x : x.full5x5_sigmaIetaIeta()
if abs(x.pdgId())==11
else 0, help=
"Electron sigma(ieta ieta), with full5x5 cluster shapes"),
108 NTupleVariable(
"dEtaScTrkIn",
lambda x : x.deltaEtaSuperClusterTrackAtVtx()
if abs(x.pdgId())==11
else 0, help=
"Electron deltaEtaSuperClusterTrackAtVtx (without absolute value!)"),
109 NTupleVariable(
"dPhiScTrkIn",
lambda x : x.deltaPhiSuperClusterTrackAtVtx()
if abs(x.pdgId())==11
else 0, help=
"Electron deltaPhiSuperClusterTrackAtVtx (without absolute value!)"),
110 NTupleVariable(
"hadronicOverEm",
lambda x : x.hadronicOverEm()
if abs(x.pdgId())==11
else 0, help=
"Electron hadronicOverEm"),
111 NTupleVariable(
"eInvMinusPInv",
lambda x : ((1.0/x.ecalEnergy() - x.eSuperClusterOverP()/x.ecalEnergy())
if x.ecalEnergy()>0.
else 9e9)
if abs(x.pdgId())==11
else 0, help=
"Electron 1/E - 1/p (without absolute value!)"),
113 NTupleVariable(
"eInvMinusPInv_tkMom",
lambda x: ((1.0/x.ecalEnergy()) - (1.0 / x.trackMomentumAtVtx().
R() )
if (x.ecalEnergy()>0.
and x.trackMomentumAtVtx().
R()>0.)
else 9e9)
if abs(x.pdgId())==11
else 0, help=
"Electron 1/E - 1/p_tk_vtx (without absolute value!)"),
114 NTupleVariable(
"etaSc",
lambda x : x.superCluster().
eta()
if abs(x.pdgId())==11
else -100, help=
"Electron supercluster pseudorapidity"),
115 NTupleVariable(
"mcMatchPdgId",
lambda x : x.mcLep.pdgId()
if getattr(x,
'mcLep',
None)!=
None else -99, int, mcOnly=
True, help=
"Match to source from hard scatter (pdgId of heaviest particle in chain, 25 for H, 6 for t, 23/24 for W/Z): pdgId of the matched gen-level lepton, zero if non-prompt or fake")
123 tauType = NTupleObjectType(
"tau", baseObjectTypes = [ particleType ], variables = [
124 NTupleVariable(
"charge",
lambda x : x.charge(), int),
125 NTupleVariable(
"decayMode",
lambda x : x.decayMode(), int),
126 NTupleVariable(
"idDecayMode",
lambda x : x.idDecayMode, int),
127 NTupleVariable(
"idDecayModeNewDMs",
lambda x : x.idDecayModeNewDMs, int),
128 NTupleVariable(
"dxy",
lambda x : x.dxy(), help=
"d_{xy} of lead track with respect to PV, in cm (with sign)"),
129 NTupleVariable(
"dz",
lambda x : x.dz() , help=
"d_{z} of lead track with respect to PV, in cm (with sign)"),
130 NTupleVariable(
"idMVA",
lambda x : x.idMVA, int, help=
"1,2,3,4,5,6 if the tau passes the very loose to very very tight WP of the MVA3oldDMwLT discriminator"),
131 NTupleVariable(
"idMVANewDM",
lambda x : x.idMVANewDM, int, help=
"1,2,3,4,5,6 if the tau passes the very loose to very very tight WP of the MVA3newDMwLT discriminator"),
132 NTupleVariable(
"idCI3hit",
lambda x : x.idCI3hit, int, help=
"1,2,3 if the tau passes the loose, medium, tight WP of the By<X>CombinedIsolationDBSumPtCorr3Hits discriminator"),
133 NTupleVariable(
"idAntiMu",
lambda x : x.idAntiMu, int, help=
"1,2 if the tau passes the loose/tight WP of the againstMuon<X>3 discriminator"),
134 NTupleVariable(
"idAntiE",
lambda x : x.idAntiE, int, help=
"1,2,3,4,5 if the tau passes the v loose, loose, medium, tight, v tight WP of the againstElectron<X>MVA5 discriminator"),
135 NTupleVariable(
"isoCI3hit",
lambda x : x.tauID(
"byCombinedIsolationDeltaBetaCorrRaw3Hits"), help=
"byCombinedIsolationDeltaBetaCorrRaw3Hits raw output discriminator"),
137 NTupleVariable(
"mcMatchId",
lambda x : getattr(x,
'mcMatchId', -99), int, mcOnly=
True, help=
"Match to source from hard scatter (pdgId of heaviest particle in chain, 25 for H, 6 for t, 23/24 for W/Z), zero if non-prompt or fake"),
144 isoTrackType = NTupleObjectType(
"isoTrack", baseObjectTypes = [ particleType ], variables = [
145 NTupleVariable(
"charge",
lambda x : x.charge(), int),
146 NTupleVariable(
"dz",
lambda x : x.dz() , help=
"d_{z} of lead track with respect to PV, in cm (with sign)"),
147 NTupleVariable(
"absIso",
lambda x : x.absIso, float, mcOnly=
False, help=
"abs charged iso with condition for isolation such that Min(0.2*pt, 8 GeV)"),
148 NTupleVariable(
"relIsoAn04",
lambda x : x.relIsoAn04
if hasattr(x,
'relIsoAn04')
else -999, help=
"PF Activity Annulus, pile-up corrected"),
149 NTupleVariable(
"mcMatchId",
lambda x : getattr(x,
'mcMatchId', -99), int, mcOnly=
True, help=
"Match to source from hard scatter (pdgId of heaviest particle in chain, 25 for H, 6 for t, 23/24 for W/Z), zero if non-prompt or fake"),
157 photonType = NTupleObjectType(
"gamma", baseObjectTypes = [ particleType ], variables = [
158 NTupleVariable(
"idCutBased",
lambda x : x.idCutBased, int, help=
"1,2,3 if the gamma passes the loose, medium, tight WP of PhotonCutBasedID"),
159 NTupleVariable(
"hOverE",
lambda x : x.hOVERe(), float, help=
"hoverE for photons"),
160 NTupleVariable(
"r9",
lambda x : x.full5x5_r9(), float, help=
"r9 for photons"),
161 NTupleVariable(
"sigmaIetaIeta",
lambda x : x.full5x5_sigmaIetaIeta(), float, help=
"sigmaIetaIeta for photons"),
162 NTupleVariable(
"chHadIso04",
lambda x : x.chargedHadronIso(), float, help=
"chargedHadronIsolation for photons (PAT method, deltaR = 0.4)"),
166 NTupleVariable(
"chHadIso",
lambda x : x.chargedHadronIso(), float, help=
"chargedHadronIsolation for photons with footprint removal"),
167 NTupleVariable(
"phIso",
lambda x : x.photonIso(), float, help=
"gammaIsolation for photons with footprint removal"),
168 NTupleVariable(
"neuHadIso",
lambda x : x.neutralHadronIso(), float, help=
"neutralHadronIsolation for photons with footprint removal"),
169 NTupleVariable(
"relIso",
lambda x : x.ftprRelIso03
if hasattr(x,
'ftprRelIso03')
else x.relIso, float, help=
"relativeIsolation for photons with footprint removal and pile-up correction"),
170 NTupleVariable(
"mcMatchId",
lambda x : getattr(x,
'mcMatchId', -99), int, mcOnly=
True, help=
"Match to source from hard scatter (pdgId of heaviest particle in chain, 25 for H, 6 for t, 23/24 for W/Z), zero if non-prompt or fake"),
171 NTupleVariable(
"mcPt",
lambda x : x.mcGamma.pt()
if getattr(x,
"mcGamma",
None)
else 0., mcOnly=
True, help=
"p_{T} of associated gen photon"),
178 jetType = NTupleObjectType(
"jet", baseObjectTypes = [ fourVectorType ], variables = [
179 NTupleVariable(
"id",
lambda x : x.jetID(
"POG_PFID") , int, mcOnly=
False,help=
"POG Loose jet ID"),
180 NTupleVariable(
"puId",
lambda x : getattr(x,
'puJetIdPassed', -99), int, mcOnly=
False, help=
"puId (full MVA, loose WP, 5.3.X training on AK5PFchs: the only thing that is available now)"),
181 NTupleVariable(
"btagCSV",
lambda x : x.btag(
'pfCombinedInclusiveSecondaryVertexV2BJetTags'), help=
"CSV-IVF v2 discriminator"),
183 NTupleVariable(
"btagCMVA",
lambda x : x.btag(
'pfCombinedMVAV2BJetTags'), help=
"CMVA discriminator"),
184 NTupleVariable(
"rawPt",
lambda x : x.pt() * x.rawFactor(), help=
"p_{T} before JEC"),
185 NTupleVariable(
"mcPt",
lambda x : x.mcJet.pt()
if getattr(x,
"mcJet",
None)
else 0., mcOnly=
True, help=
"p_{T} of associated gen jet"),
186 NTupleVariable(
"mcFlavour",
lambda x : x.partonFlavour(), int, mcOnly=
True, help=
"parton flavour (physics definition, i.e. including b's from shower)"),
187 NTupleVariable(
"partonFlavour",
lambda x : x.partonFlavour(), int, mcOnly=
True, help=
"purely parton-based flavour"),
188 NTupleVariable(
"hadronFlavour",
lambda x : x.hadronFlavour(), int, mcOnly=
True, help=
"hadron flavour (ghost matching to B/C hadrons)"),
189 NTupleVariable(
"mcMatchId",
lambda x : getattr(x,
'mcMatchId', -99), int, mcOnly=
True, help=
"Match to source from hard scatter (pdgId of heaviest particle in chain, 25 for H, 6 for t, 23/24 for W/Z), zero if non-prompt or fake"),
190 NTupleVariable(
"corr_JECUp",
lambda x : getattr(x,
'corrJECUp', -99), float, help=
""),
191 NTupleVariable(
"corr_JECDown",
lambda x : getattr(x,
'corrJECDown', -99), float,help=
""),
192 NTupleVariable(
"corr",
lambda x : getattr(x,
'corr', -99), float, help=
""),
193 NTupleVariable(
"corr_JERUp",
lambda x : getattr(x,
'corrJERUp', -99), float, mcOnly=
True, help=
""),
194 NTupleVariable(
"corr_JERDown",
lambda x : getattr(x,
'corrJERDown', -99), float, mcOnly=
True, help=
""),
195 NTupleVariable(
"corr_JER",
lambda x : getattr(x,
'corrJER', -99), float, mcOnly=
True, help=
""),
197 jetTypeExtra = NTupleObjectType(
"jetExtra", baseObjectTypes = [ jetType ], variables = [
198 NTupleVariable(
"area",
lambda x : x.jetArea(), help=
"Catchment area of jet"),
200 NTupleVariable(
"qgl",
lambda x :x.qgl() , float, mcOnly=
False,help=
"QG Likelihood"),
201 NTupleVariable(
"ptd",
lambda x : getattr(x.computeQGvars(),
'ptd', 0), float, mcOnly=
False,help=
"QG input variable: ptD"),
202 NTupleVariable(
"axis2",
lambda x : getattr(x.computeQGvars(),
'axis2', 0) , float, mcOnly=
False,help=
"QG input variable: axis2"),
203 NTupleVariable(
"mult",
lambda x : getattr(x.computeQGvars(),
'mult', 0) , int, mcOnly=
False,help=
"QG input variable: total multiplicity"),
204 NTupleVariable(
"partonId",
lambda x : getattr(x,
'partonId', 0), int, mcOnly=
True, help=
"parton flavour (manually matching to status 23 particles)"),
205 NTupleVariable(
"partonMotherId",
lambda x : getattr(x,
'partonMotherId', 0), int, mcOnly=
True, help=
"parton flavour (manually matching to status 23 particles)"),
206 NTupleVariable(
"nLeptons",
lambda x : len(x.leptons)
if hasattr(x,
'leptons')
else 0 , float, mcOnly=
False,help=
"Number of associated leptons"),
214 metType = NTupleObjectType(
"met", baseObjectTypes = [ fourVectorType ], variables = [
215 NTupleVariable(
"sumEt",
lambda x : x.sumEt() ),
216 NTupleVariable(
"rawPt",
lambda x : x.uncorPt() ),
217 NTupleVariable(
"rawPhi",
lambda x : x.uncorPhi() ),
218 NTupleVariable(
"rawSumEt",
lambda x : x.uncorSumEt() ),
219 NTupleVariable(
"genPt",
lambda x : x.genMET().
pt()
if x.genMET()
else 0 , mcOnly=
True ),
220 NTupleVariable(
"genPhi",
lambda x : x.genMET().phi()
if x.genMET()
else 0, mcOnly=
True ),
221 NTupleVariable(
"genEta",
lambda x : x.genMET().
eta()
if x.genMET()
else 0, mcOnly=
True ),
228 genParticleType = NTupleObjectType(
"genParticle", baseObjectTypes = [ particleType ], mcOnly=
True, variables = [
229 NTupleVariable(
"charge",
lambda x : x.threeCharge()/3.0, float),
230 NTupleVariable(
"status",
lambda x : x.status(),int),
232 genParticleWithMotherId = NTupleObjectType(
"genParticleWithMotherId", baseObjectTypes = [ genParticleType ], mcOnly=
True, variables = [
233 NTupleVariable(
"motherId",
lambda x : x.mother(0).
pdgId()
if x.mother(0)
else 0, int, help=
"pdgId of the mother of the particle"),
234 NTupleVariable(
"grandmotherId",
lambda x : x.mother(0).mother(0).
pdgId()
if x.mother(0)
and x.mother(0).mother(0)
else 0, int, help=
"pdgId of the grandmother of the particle")
236 genParticleWithAncestryType = NTupleObjectType(
"genParticleWithAncestry", baseObjectTypes = [ genParticleType ], mcOnly=
True, variables = [
237 NTupleVariable(
"motherId",
lambda x : x.motherId, int, help=
"pdgId of the mother of the particle"),
238 NTupleVariable(
"grandmotherId",
lambda x : x.grandmotherId, int, help=
"pdgId of the grandmother of the particle"),
239 NTupleVariable(
"sourceId",
lambda x : x.sourceId, int, help=
"origin of the particle (heaviest ancestor): 6=t, 25=h, 23/24=W/Z"),
241 genParticleWithLinksType = NTupleObjectType(
"genParticleWithLinks", baseObjectTypes = [ genParticleWithAncestryType ], mcOnly=
True, variables = [
242 NTupleVariable(
"motherIndex",
lambda x : x.motherIndex, int, help=
"index of the mother in the generatorSummary")