CMS 3D CMS Logo

runTauDisplay.py
Go to the documentation of this file.
1 from __future__ import print_function
2 import ROOT, os, math, sys
3 import numpy as num
4 from DataFormats.FWLite import Events, Handle
5 from DeltaR import *
6 
7 from PhysicsTools.Heppy.analyzers.core.AutoHandle import AutoHandle
8 from PhysicsTools.Heppy.physicsobjects.Muon import Muon
9 from PhysicsTools.Heppy.physicsobjects.Electron import Electron
10 from PhysicsTools.Heppy.physicsobjects.Tau import Tau
11 from PhysicsTools.Heppy.physicsutils.TauDecayModes import tauDecayModes
12 
13 
14 ROOT.gROOT.SetBatch(True)
15 
16 #RelVal = '7_6_0_pre7'
17 #RelVal = '7_6_0'
18 #RelVal = '7_6_1'
19 #RelVal = '7_6_1_v2'
20 RelVal = '7_6_1_v3'
21 
22 tag = 'v11'
23 if RelVal=='7_6_0_pre7':
24  tag = 'v5'
25 
26 tauH = Handle('vector<pat::Tau>')
27 vertexH = Handle('std::vector<reco::Vertex>')
28 genParticlesH = Handle ('std::vector<reco::GenParticle>')
29 jetH = Handle('vector<pat::Jet>')
30 
31 filelist = []
32 argvs = sys.argv
33 argc = len(argvs)
34 
35 if argc != 2:
36  print('Please specify the runtype : python runTauDisplay.py <ZTT, ZEE, ZMM, QCD>')
37  sys.exit(0)
38 
39 runtype = argvs[1]
40 
41 print('You selected', runtype)
42 
43 
44 
45 #def isFinal(p):
46 # return not (p.numberOfDaughters() == 1 and p.daughter(0).pdgId() == p.pdgId())
47 
48 
49 def returnRough(dm):
50  if dm in [0]:
51  return 0
52  elif dm in [1,2]:
53  return 1
54  elif dm in [5,6]:
55  return 2
56  elif dm in [10]:
57  return 3
58  elif dm in [11]:
59  return 4
60  else:
61  return -1
62 
63 
64 def finalDaughters(gen, daughters=None):
65  if daughters is None:
66  daughters = []
67  for i in range(gen.numberOfDaughters()):
68  daughter = gen.daughter(i)
69  if daughter.numberOfDaughters() == 0:
70  daughters.append(daughter)
71  else:
72  finalDaughters(daughter, daughters)
73 
74  return daughters
75 
76 
77 def visibleP4(gen):
78  final_ds = finalDaughters(gen)
79 
80  p4 = sum((d.p4() for d in final_ds if abs(d.pdgId()) not in [12, 14, 16]), ROOT.math.XYZTLorentzVectorD())
81 
82  return p4
83 
84 
85 
86 
87 
88 for ii in range(1, 4):
89 
90  if runtype == 'ZEE' and RelVal.find('7_6_1')!=-1: pass
91  else:
92  if ii==3 : continue
93 
94  filename = ''
95 
96  if runtype == 'ZTT':
97  filename = 'root://eoscms//eos/cms/store/cmst3/user/ytakahas/TauPOG/ZTT_CMSSW_' + RelVal + '_RelValZTT_13_MINIAODSIM_76X_mcRun2_asymptotic_' + tag + '-v1_' + str(ii) + '.root'
98  elif runtype == 'ZEE':
99  filename = 'root://eoscms//eos/cms/store/cmst3/user/ytakahas/TauPOG/ZEE_CMSSW_' + RelVal + '_RelValZEE_13_MINIAODSIM_76X_mcRun2_asymptotic_' + tag + '-v1_' + str(ii) + '.root'
100  elif runtype == 'ZMM':
101  filename = 'root://eoscms//eos/cms/store/cmst3/user/ytakahas/TauPOG/ZMM_CMSSW_' + RelVal + '_RelValZMM_13_MINIAODSIM_76X_mcRun2_asymptotic_' + tag + '-v1_' + str(ii) + '.root'
102  elif runtype == 'QCD':
103  filename = 'root://eoscms//eos/cms/store/cmst3/user/ytakahas/TauPOG/QCD_CMSSW_' + RelVal + '_QCD_FlatPt_15_3000HS_13_MINIAODSIM_76X_mcRun2_asymptotic_v11-v1_' + str(ii) + '.root'
104 
105  print(filename)
106  filelist.append(filename)
107 
108 events = Events(filelist)
109 print(len(filelist), 'files will be analyzed')
110 
111 
112 outputname = 'Myroot_' + RelVal + '_' + runtype + '.root'
113 file = ROOT.TFile(outputname, 'recreate')
114 
115 h_ngen = ROOT.TH1F("h_ngen", "h_ngen",10,0,10)
116 
117 tau_tree = ROOT.TTree('per_tau','per_tau')
118 
119 tau_eventid = num.zeros(1, dtype=int)
120 tau_id = num.zeros(1, dtype=int)
121 tau_dm = num.zeros(1, dtype=int)
122 tau_dm_rough = num.zeros(1, dtype=int)
123 tau_pt = num.zeros(1, dtype=float)
124 tau_eta = num.zeros(1, dtype=float)
125 tau_phi = num.zeros(1, dtype=float)
126 tau_mass = num.zeros(1, dtype=float)
127 tau_gendm = num.zeros(1, dtype=int)
128 tau_gendm_rough = num.zeros(1, dtype=int)
129 tau_genpt = num.zeros(1, dtype=float)
130 tau_geneta = num.zeros(1, dtype=float)
131 tau_genphi = num.zeros(1, dtype=float)
132 tau_vertex = num.zeros(1, dtype=int)
133 
134 tau_againstMuonLoose3 = num.zeros(1, dtype=int)
135 tau_againstMuonTight3 = num.zeros(1, dtype=int)
136 
137 tau_againstElectronVLooseMVA5 = num.zeros(1, dtype=int)
138 tau_againstElectronLooseMVA5 = num.zeros(1, dtype=int)
139 tau_againstElectronMediumMVA5 = num.zeros(1, dtype=int)
140 tau_againstElectronTightMVA5 = num.zeros(1, dtype=int)
141 tau_againstElectronVTightMVA5 = num.zeros(1, dtype=int)
142 tau_againstElectronMVA5raw = num.zeros(1, dtype=float)
143 tau_byIsolationMVA3oldDMwLTraw = num.zeros(1, dtype=float)
144 tau_byLooseIsolationMVA3oldDMwLT = num.zeros(1, dtype=int)
145 tau_byMediumIsolationMVA3oldDMwLT = num.zeros(1, dtype=int)
146 tau_byTightIsolationMVA3oldDMwLT = num.zeros(1, dtype=int)
147 tau_byVLooseIsolationMVA3oldDMwLT = num.zeros(1, dtype=int)
148 tau_byVTightIsolationMVA3oldDMwLT = num.zeros(1, dtype=int)
149 tau_byVVTightIsolationMVA3oldDMwLT = num.zeros(1, dtype=int)
150 
151 
152 tau_byCombinedIsolationDeltaBetaCorrRaw3Hits = num.zeros(1, dtype=float)
153 tau_byLooseCombinedIsolationDeltaBetaCorr3Hits = num.zeros(1, dtype=int)
154 tau_byMediumCombinedIsolationDeltaBetaCorr3Hits = num.zeros(1, dtype=int)
155 tau_byTightCombinedIsolationDeltaBetaCorr3Hits = num.zeros(1, dtype=int)
156 tau_chargedIsoPtSum = num.zeros(1, dtype=float)
157 tau_neutralIsoPtSum = num.zeros(1, dtype=float)
158 tau_puCorrPtSum = num.zeros(1, dtype=float)
159 tau_byLoosePileupWeightedIsolation3Hits = num.zeros(1, dtype=int)
160 tau_byMediumPileupWeightedIsolation3Hits = num.zeros(1, dtype=int)
161 tau_byTightPileupWeightedIsolation3Hits = num.zeros(1, dtype=int)
162 tau_byPileupWeightedIsolationRaw3Hits = num.zeros(1, dtype=float)
163 tau_neutralIsoPtSumWeight = num.zeros(1, dtype=float)
164 tau_footprintCorrection = num.zeros(1, dtype=float)
165 tau_photonPtSumOutsideSignalCone = num.zeros(1, dtype=float)
166 tau_decayModeFindingOldDMs = num.zeros(1, dtype=int)
167 tau_decayModeFindingNewDMs = num.zeros(1, dtype=int)
168 
169 
170 tau_againstElectronVLooseMVA6 = num.zeros(1, dtype=int)
171 tau_againstElectronLooseMVA6 = num.zeros(1, dtype=int)
172 tau_againstElectronMediumMVA6 = num.zeros(1, dtype=int)
173 tau_againstElectronTightMVA6 = num.zeros(1, dtype=int)
174 tau_againstElectronVTightMVA6 = num.zeros(1, dtype=int)
175 tau_againstElectronMVA6raw = num.zeros(1, dtype=float)
176 
177 #'byIsolationMVArun2v1DBdR03oldDMwLTraw'
178 tau_byIsolationMVArun2v1DBoldDMwLTraw = num.zeros(1, dtype=float)
179 tau_byVLooseIsolationMVArun2v1DBoldDMwLT = num.zeros(1, dtype=int)
180 tau_byLooseIsolationMVArun2v1DBoldDMwLT = num.zeros(1, dtype=int)
181 tau_byMediumIsolationMVArun2v1DBoldDMwLT = num.zeros(1, dtype=int)
182 tau_byTightIsolationMVArun2v1DBoldDMwLT = num.zeros(1, dtype=int)
183 tau_byVTightIsolationMVArun2v1DBoldDMwLT = num.zeros(1, dtype=int)
184 tau_byVVTightIsolationMVArun2v1DBoldDMwLT = num.zeros(1, dtype=int)
185 
186 #byIsolationMVArun2v1PWdR03oldDMwLTraw'
187 #'byLooseCombinedIsolationDeltaBetaCorr3HitsdR03'
188 #'byLooseIsolationMVArun2v1DBdR03oldDMwLT'
189 #'byLooseIsolationMVArun2v1PWdR03oldDMwLT'
190 #'byMediumCombinedIsolationDeltaBetaCorr3HitsdR03'
191 #'byMediumIsolationMVArun2v1DBdR03oldDMwLT'
192 #'byMediumIsolationMVArun2v1PWdR03oldDMwLT'
193 #'byTightCombinedIsolationDeltaBetaCorr3HitsdR03'
194 #'byTightIsolationMVArun2v1DBdR03oldDMwLT'
195 #'byTightIsolationMVArun2v1PWdR03oldDMwLT'
196 tau_byIsolationMVArun2v1PWoldDMwLTraw = num.zeros(1, dtype=float)
197 tau_byLooseIsolationMVArun2v1PWoldDMwLT = num.zeros(1, dtype=int)
198 tau_byMediumIsolationMVArun2v1PWoldDMwLT = num.zeros(1, dtype=int)
199 tau_byTightIsolationMVArun2v1PWoldDMwLT = num.zeros(1, dtype=int)
200 tau_byVLooseIsolationMVArun2v1PWoldDMwLT = num.zeros(1, dtype=int)
201 tau_byVTightIsolationMVArun2v1PWoldDMwLT = num.zeros(1, dtype=int)
202 tau_byVVTightIsolationMVArun2v1PWoldDMwLT = num.zeros(1, dtype=int)
203 
204 #'byVLooseIsolationMVArun2v1DBdR03oldDMwLT'
205 #'byVLooseIsolationMVArun2v1PWdR03oldDMwLT'
206 #'byVTightIsolationMVArun2v1DBdR03oldDMwLT'
207 #'byVTightIsolationMVArun2v1PWdR03oldDMwLT'
208 #'byVVTightIsolationMVArun2v1DBdR03oldDMwLT'
209 #'byVVTightIsolationMVArun2v1PWdR03oldDMwLT'
210 
211 
212 
213 tau_tree.Branch('tau_id', tau_id, 'tau_id/I')
214 tau_tree.Branch('tau_vertex', tau_vertex, 'tau_vertex/I')
215 tau_tree.Branch('tau_eventid', tau_eventid, 'tau_eventid/I')
216 tau_tree.Branch('tau_dm', tau_dm, 'tau_dm/I')
217 tau_tree.Branch('tau_dm_rough', tau_dm_rough, 'tau_dm_rough/I')
218 tau_tree.Branch('tau_pt', tau_pt, 'tau_pt/D')
219 tau_tree.Branch('tau_eta', tau_eta, 'tau_eta/D')
220 tau_tree.Branch('tau_phi', tau_phi, 'tau_phi/D')
221 tau_tree.Branch('tau_mass', tau_mass, 'tau_mass/D')
222 tau_tree.Branch('tau_gendm', tau_gendm, 'tau_gendm/I')
223 tau_tree.Branch('tau_gendm_rough', tau_gendm_rough, 'tau_gendm_rough/I')
224 tau_tree.Branch('tau_genpt', tau_genpt, 'tau_genpt/D')
225 tau_tree.Branch('tau_geneta', tau_geneta, 'tau_geneta/D')
226 tau_tree.Branch('tau_genphi', tau_genphi, 'tau_genphi/D')
227 
228 tau_tree.Branch('tau_againstMuonLoose3', tau_againstMuonLoose3, 'tau_againstMuonLoose3/I')
229 tau_tree.Branch('tau_againstMuonTight3', tau_againstMuonTight3, 'tau_againstMuonTight3/I')
230 
231 tau_tree.Branch('tau_againstElectronVLooseMVA5', tau_againstElectronVLooseMVA5, 'tau_againstElectronVLooseMVA5/I')
232 tau_tree.Branch('tau_againstElectronLooseMVA5', tau_againstElectronLooseMVA5, 'tau_againstElectronLooseMVA5/I')
233 tau_tree.Branch('tau_againstElectronMediumMVA5', tau_againstElectronMediumMVA5, 'tau_againstElectronMediumMVA5/I')
234 tau_tree.Branch('tau_againstElectronTightMVA5', tau_againstElectronTightMVA5, 'tau_againstElectronTightMVA5/I')
235 tau_tree.Branch('tau_againstElectronVTightMVA5', tau_againstElectronVTightMVA5, 'tau_againstElectronVTightMVA5/I')
236 tau_tree.Branch('tau_againstElectronMVA5raw', tau_againstElectronMVA5raw, 'tau_againstElectronMVA5raw/D')
237 
238 tau_tree.Branch('tau_againstElectronVLooseMVA6', tau_againstElectronVLooseMVA6, 'tau_againstElectronVLooseMVA6/I')
239 tau_tree.Branch('tau_againstElectronLooseMVA6', tau_againstElectronLooseMVA6, 'tau_againstElectronLooseMVA6/I')
240 tau_tree.Branch('tau_againstElectronMediumMVA6', tau_againstElectronMediumMVA6, 'tau_againstElectronMediumMVA6/I')
241 tau_tree.Branch('tau_againstElectronTightMVA6', tau_againstElectronTightMVA6, 'tau_againstElectronTightMVA6/I')
242 tau_tree.Branch('tau_againstElectronVTightMVA6', tau_againstElectronVTightMVA6, 'tau_againstElectronVTightMVA6/I')
243 tau_tree.Branch('tau_againstElectronMVA6raw', tau_againstElectronMVA6raw, 'tau_againstElectronMVA6raw/D')
244 
245 
246 tau_tree.Branch('tau_byCombinedIsolationDeltaBetaCorrRaw3Hits', tau_byCombinedIsolationDeltaBetaCorrRaw3Hits, 'tau_byCombinedIsolationDeltaBetaCorrRaw3Hits/D')
247 tau_tree.Branch('tau_byLooseCombinedIsolationDeltaBetaCorr3Hits', tau_byLooseCombinedIsolationDeltaBetaCorr3Hits, 'tau_byLooseCombinedIsolationDeltaBetaCorr3Hits/I')
248 tau_tree.Branch('tau_byMediumCombinedIsolationDeltaBetaCorr3Hits', tau_byMediumCombinedIsolationDeltaBetaCorr3Hits, 'tau_byMediumCombinedIsolationDeltaBetaCorr3Hits/I')
249 tau_tree.Branch('tau_byTightCombinedIsolationDeltaBetaCorr3Hits', tau_byTightCombinedIsolationDeltaBetaCorr3Hits, 'tau_byTightCombinedIsolationDeltaBetaCorr3Hits/I')
250 tau_tree.Branch('tau_chargedIsoPtSum', tau_chargedIsoPtSum, 'tau_chargedIsoPtSum/D')
251 tau_tree.Branch('tau_neutralIsoPtSum', tau_neutralIsoPtSum, 'tau_neutralIsoPtSum/D')
252 tau_tree.Branch('tau_puCorrPtSum', tau_puCorrPtSum, 'tau_puCorrPtSum/D')
253 tau_tree.Branch('tau_byLoosePileupWeightedIsolation3Hits', tau_byLoosePileupWeightedIsolation3Hits, 'tau_byLoosePileupWeightedIsolation3Hits/I')
254 tau_tree.Branch('tau_byMediumPileupWeightedIsolation3Hits', tau_byMediumPileupWeightedIsolation3Hits, 'tau_byMediumPileupWeightedIsolation3Hits/I')
255 tau_tree.Branch('tau_byTightPileupWeightedIsolation3Hits', tau_byTightPileupWeightedIsolation3Hits, 'tau_byTightPileupWeightedIsolation3Hits/I')
256 tau_tree.Branch('tau_byPileupWeightedIsolationRaw3Hits', tau_byPileupWeightedIsolationRaw3Hits, 'tau_byPileupWeightedIsolationRaw3Hits/D')
257 tau_tree.Branch('tau_neutralIsoPtSumWeight', tau_neutralIsoPtSumWeight, 'tau_neutralIsoPtSumWeight/D')
258 tau_tree.Branch('tau_footprintCorrection', tau_footprintCorrection, 'tau_footprintCorrection/D')
259 tau_tree.Branch('tau_photonPtSumOutsideSignalCone', tau_photonPtSumOutsideSignalCone, 'tau_photonPtSumOutsideSignalCone/D')
260 tau_tree.Branch('tau_decayModeFindingOldDMs', tau_decayModeFindingOldDMs, 'tau_decayModeFindingOldDMs/I')
261 tau_tree.Branch('tau_decayModeFindingNewDMs', tau_decayModeFindingNewDMs, 'tau_decayModeFindingNewDMs/I')
262 
263 tau_tree.Branch('tau_byIsolationMVA3oldDMwLTraw', tau_byIsolationMVA3oldDMwLTraw, 'tau_byIsolationMVA3oldDMwLTraw/D')
264 tau_tree.Branch('tau_byLooseIsolationMVA3oldDMwLT', tau_byLooseIsolationMVA3oldDMwLT, 'tau_byLooseIsolationMVA3oldDMwLT/I')
265 tau_tree.Branch('tau_byMediumIsolationMVA3oldDMwLT', tau_byMediumIsolationMVA3oldDMwLT, 'tau_byMediumIsolationMVA3oldDMwLT/I')
266 tau_tree.Branch('tau_byTightIsolationMVA3oldDMwLT', tau_byTightIsolationMVA3oldDMwLT, 'tau_byTightIsolationMVA3oldDMwLT/I')
267 tau_tree.Branch('tau_byVLooseIsolationMVA3oldDMwLT', tau_byVLooseIsolationMVA3oldDMwLT, 'tau_byVLooseIsolationMVA3oldDMwLT/I')
268 tau_tree.Branch('tau_byVTightIsolationMVA3oldDMwLT', tau_byVTightIsolationMVA3oldDMwLT, 'tau_byVTightIsolationMVA3oldDMwLT/I')
269 tau_tree.Branch('tau_byVVTightIsolationMVA3oldDMwLT', tau_byVVTightIsolationMVA3oldDMwLT, 'tau_byVVTightIsolationMVA3oldDMwLT/I')
270 
271 
272 tau_tree.Branch('tau_byIsolationMVArun2v1DBoldDMwLTraw', tau_byIsolationMVArun2v1DBoldDMwLTraw, 'tau_byIsolationMVArun2v1DBoldDMwLTraw/D')
273 tau_tree.Branch('tau_byLooseIsolationMVArun2v1DBoldDMwLT', tau_byLooseIsolationMVArun2v1DBoldDMwLT, 'tau_byLooseIsolationMVArun2v1DBoldDMwLT/I')
274 tau_tree.Branch('tau_byMediumIsolationMVArun2v1DBoldDMwLT', tau_byMediumIsolationMVArun2v1DBoldDMwLT, 'tau_byMediumIsolationMVArun2v1DBoldDMwLT/I')
275 tau_tree.Branch('tau_byTightIsolationMVArun2v1DBoldDMwLT', tau_byTightIsolationMVArun2v1DBoldDMwLT, 'tau_byTightIsolationMVArun2v1DBoldDMwLT/I')
276 tau_tree.Branch('tau_byVLooseIsolationMVArun2v1DBoldDMwLT', tau_byVLooseIsolationMVArun2v1DBoldDMwLT, 'tau_byVLooseIsolationMVArun2v1DBoldDMwLT/I')
277 tau_tree.Branch('tau_byVTightIsolationMVArun2v1DBoldDMwLT', tau_byVTightIsolationMVArun2v1DBoldDMwLT, 'tau_byVTightIsolationMVArun2v1DBoldDMwLT/I')
278 tau_tree.Branch('tau_byVVTightIsolationMVArun2v1DBoldDMwLT', tau_byVVTightIsolationMVArun2v1DBoldDMwLT, 'tau_byVVTightIsolationMVArun2v1DBoldDMwLT/I')
279 
280 tau_tree.Branch('tau_byIsolationMVArun2v1PWoldDMwLTraw', tau_byIsolationMVArun2v1PWoldDMwLTraw, 'tau_byIsolationMVArun2v1PWoldDMwLTraw/D')
281 tau_tree.Branch('tau_byLooseIsolationMVArun2v1PWoldDMwLT', tau_byLooseIsolationMVArun2v1PWoldDMwLT, 'tau_byLooseIsolationMVArun2v1PWoldDMwLT/I')
282 tau_tree.Branch('tau_byMediumIsolationMVArun2v1PWoldDMwLT', tau_byMediumIsolationMVArun2v1PWoldDMwLT, 'tau_byMediumIsolationMVArun2v1PWoldDMwLT/I')
283 tau_tree.Branch('tau_byTightIsolationMVArun2v1PWoldDMwLT', tau_byTightIsolationMVArun2v1PWoldDMwLT, 'tau_byTightIsolationMVArun2v1PWoldDMwLT/I')
284 tau_tree.Branch('tau_byVLooseIsolationMVArun2v1PWoldDMwLT', tau_byVLooseIsolationMVArun2v1PWoldDMwLT, 'tau_byVLooseIsolationMVArun2v1PWoldDMwLT/I')
285 tau_tree.Branch('tau_byVTightIsolationMVArun2v1PWoldDMwLT', tau_byVTightIsolationMVArun2v1PWoldDMwLT, 'tau_byVTightIsolationMVArun2v1PWoldDMwLT/I')
286 tau_tree.Branch('tau_byVVTightIsolationMVArun2v1PWoldDMwLT', tau_byVVTightIsolationMVArun2v1PWoldDMwLT, 'tau_byVVTightIsolationMVArun2v1PWoldDMwLT/I')
287 
288 
289 
290 
291 evtid = 0
292 
293 for event in events:
294 
295  evtid += 1
296  eid = event.eventAuxiliary().id().event()
297 
298  if evtid%1000 == 0:
299  print('Event ', evtid, 'processed')
300 
301  event.getByLabel("slimmedTaus", tauH)
302  event.getByLabel("offlineSlimmedPrimaryVertices", vertexH)
303  event.getByLabel('prunedGenParticles',genParticlesH)
304  event.getByLabel("slimmedJets", jetH)
305 
306  taus = tauH.product()
307  vertices = vertexH.product()
308  genParticles = genParticlesH.product()
309  jets = [jet for jet in jetH.product() if jet.pt() > 20 and abs(jet.eta()) < 2.3]
310 
311  genTaus = [p for p in genParticles if abs(p.pdgId()) == 15 and p.status()==2]
312  genElectrons = [p for p in genParticles if abs(p.pdgId()) == 11 and p.status()==1 and p.pt() > 20 and abs(p.eta())<2.3]
313  genMuons = [p for p in genParticles if abs(p.pdgId()) == 13 and p.status()==1 and p.pt() > 20 and abs(p.eta())<2.3]
314 
315  for tau in taus:
316 
317  _genparticle_ = []
318 
319  for igen in genTaus:
320 
321  visP4 = visibleP4(igen)
322 
323  gen_dm = tauDecayModes.genDecayModeInt([d for d in finalDaughters(igen) if abs(d.pdgId()) not in [12, 14, 16]])
324 
325  igen.decaymode = gen_dm
326  igen.vis = visP4
327 
328  if abs(visP4.eta()) > 2.3: continue
329  if visP4.pt() < 20: continue
330 
331  dr = deltaR(tau.eta(), tau.phi(), visP4.eta(), visP4.phi())
332 
333  if dr < 0.5:
334  _genparticle_.append(igen)
335 
336 
337 
338  if runtype=='ZTT':
339  h_ngen.Fill(len(genTaus))
340  if len(_genparticle_) != 1: continue
341 
342  bmjet, _dr_ = bestMatch(tau, jets)
343  if runtype=='QCD':
344  h_ngen.Fill(len(jets))
345  if bmjet == None: continue
346 
347  bme, _dr_ = bestMatch(tau, genElectrons)
348  if runtype=='ZEE':
349  h_ngen.Fill(len(genElectrons))
350  if bme == None: continue
351 
352  bmm, _dr_ = bestMatch(tau, genMuons)
353  if runtype=='ZMM':
354  h_ngen.Fill(len(genMuons))
355  if bmm == None: continue
356 
357 
358  tau_id[0] = evtid
359  tau_eventid[0] = eid
360  tau_dm[0] = tau.decayMode()
361  tau_dm_rough[0] = returnRough(tau.decayMode())
362  tau_pt[0] = tau.pt()
363  tau_eta[0] = tau.eta()
364  tau_phi[0] = tau.phi()
365  tau_mass[0] = tau.mass()
366  tau_vertex[0] = len(vertices)
367 
368  tau_againstMuonLoose3[0] = tau.tauID('againstMuonLoose3')
369  tau_againstMuonTight3[0] = tau.tauID('againstMuonTight3')
370 
371  tau_againstElectronVLooseMVA5[0] = tau.tauID('againstElectronVLooseMVA5')
372  tau_againstElectronLooseMVA5[0] = tau.tauID('againstElectronLooseMVA5')
373  tau_againstElectronMediumMVA5[0] = tau.tauID('againstElectronMediumMVA5')
374  tau_againstElectronTightMVA5[0] = tau.tauID('againstElectronTightMVA5')
375  tau_againstElectronVTightMVA5[0] = tau.tauID('againstElectronVTightMVA5')
376  tau_againstElectronMVA5raw[0] = tau.tauID('againstElectronMVA5raw')
377 
378  tau_byCombinedIsolationDeltaBetaCorrRaw3Hits[0] = tau.tauID('byCombinedIsolationDeltaBetaCorrRaw3Hits')
379  tau_byLooseCombinedIsolationDeltaBetaCorr3Hits[0] = tau.tauID('byLooseCombinedIsolationDeltaBetaCorr3Hits')
380  tau_byMediumCombinedIsolationDeltaBetaCorr3Hits[0] = tau.tauID('byMediumCombinedIsolationDeltaBetaCorr3Hits')
381  tau_byTightCombinedIsolationDeltaBetaCorr3Hits[0] = tau.tauID('byTightCombinedIsolationDeltaBetaCorr3Hits')
382  tau_chargedIsoPtSum[0] = tau.tauID('chargedIsoPtSum')
383  tau_neutralIsoPtSum[0] = tau.tauID('neutralIsoPtSum')
384  tau_puCorrPtSum[0] = tau.tauID('puCorrPtSum')
385  tau_byLoosePileupWeightedIsolation3Hits[0] = tau.tauID('byLoosePileupWeightedIsolation3Hits')
386  tau_byMediumPileupWeightedIsolation3Hits[0] = tau.tauID('byMediumPileupWeightedIsolation3Hits')
387  tau_byTightPileupWeightedIsolation3Hits[0] = tau.tauID('byTightPileupWeightedIsolation3Hits')
388  tau_byPileupWeightedIsolationRaw3Hits[0] = tau.tauID('byPileupWeightedIsolationRaw3Hits')
389  tau_neutralIsoPtSumWeight[0] = tau.tauID('neutralIsoPtSumWeight')
390  tau_footprintCorrection[0] = tau.tauID('footprintCorrection')
391  tau_photonPtSumOutsideSignalCone[0] = tau.tauID('photonPtSumOutsideSignalCone')
392  tau_decayModeFindingOldDMs[0] = tau.tauID('decayModeFinding')
393  tau_decayModeFindingNewDMs[0] = tau.tauID('decayModeFindingNewDMs')
394 
395  tau_byIsolationMVA3oldDMwLTraw[0] = tau.tauID('byIsolationMVA3oldDMwLTraw')
396  tau_byLooseIsolationMVA3oldDMwLT[0] = tau.tauID('byLooseIsolationMVA3oldDMwLT')
397  tau_byMediumIsolationMVA3oldDMwLT[0] = tau.tauID('byMediumIsolationMVA3oldDMwLT')
398  tau_byTightIsolationMVA3oldDMwLT[0] = tau.tauID('byTightIsolationMVA3oldDMwLT')
399  tau_byVLooseIsolationMVA3oldDMwLT[0] = tau.tauID('byVLooseIsolationMVA3oldDMwLT')
400  tau_byVTightIsolationMVA3oldDMwLT[0] = tau.tauID('byVTightIsolationMVA3oldDMwLT')
401  tau_byVVTightIsolationMVA3oldDMwLT[0] = tau.tauID('byVVTightIsolationMVA3oldDMwLT')
402 
403  if RelVal.find('7_6_1')!=-1:
404  tau_againstElectronVLooseMVA6[0] = tau.tauID('againstElectronVLooseMVA6')
405  tau_againstElectronLooseMVA6[0] = tau.tauID('againstElectronLooseMVA6')
406  tau_againstElectronMediumMVA6[0] = tau.tauID('againstElectronMediumMVA6')
407  tau_againstElectronTightMVA6[0] = tau.tauID('againstElectronTightMVA6')
408  tau_againstElectronVTightMVA6[0] = tau.tauID('againstElectronVTightMVA6')
409  tau_againstElectronMVA6raw[0] = tau.tauID('againstElectronMVA6raw')
410 
411  tau_byIsolationMVArun2v1DBoldDMwLTraw[0] = tau.tauID('byIsolationMVArun2v1DBoldDMwLTraw')
412  tau_byLooseIsolationMVArun2v1DBoldDMwLT[0] = tau.tauID('byLooseIsolationMVArun2v1DBoldDMwLT')
413  tau_byMediumIsolationMVArun2v1DBoldDMwLT[0] = tau.tauID('byMediumIsolationMVArun2v1DBoldDMwLT')
414  tau_byTightIsolationMVArun2v1DBoldDMwLT[0] = tau.tauID('byTightIsolationMVArun2v1DBoldDMwLT')
415  tau_byVLooseIsolationMVArun2v1DBoldDMwLT[0] = tau.tauID('byVLooseIsolationMVArun2v1DBoldDMwLT')
416  tau_byVTightIsolationMVArun2v1DBoldDMwLT[0] = tau.tauID('byVTightIsolationMVArun2v1DBoldDMwLT')
417  tau_byVVTightIsolationMVArun2v1DBoldDMwLT[0] = tau.tauID('byVVTightIsolationMVArun2v1DBoldDMwLT')
418 
419  tau_byIsolationMVArun2v1PWoldDMwLTraw[0] = tau.tauID('byIsolationMVArun2v1PWoldDMwLTraw')
420  tau_byLooseIsolationMVArun2v1PWoldDMwLT[0] = tau.tauID('byLooseIsolationMVArun2v1PWoldDMwLT')
421  tau_byMediumIsolationMVArun2v1PWoldDMwLT[0] = tau.tauID('byMediumIsolationMVArun2v1PWoldDMwLT')
422  tau_byTightIsolationMVArun2v1PWoldDMwLT[0] = tau.tauID('byTightIsolationMVArun2v1PWoldDMwLT')
423  tau_byVLooseIsolationMVArun2v1PWoldDMwLT[0] = tau.tauID('byVLooseIsolationMVArun2v1PWoldDMwLT')
424  tau_byVTightIsolationMVArun2v1PWoldDMwLT[0] = tau.tauID('byVTightIsolationMVArun2v1PWoldDMwLT')
425  tau_byVVTightIsolationMVArun2v1PWoldDMwLT[0] = tau.tauID('byVVTightIsolationMVArun2v1PWoldDMwLT')
426 
427 
428  if runtype == 'ZTT':
429  gp = _genparticle_[0]
430  tau_gendm[0] = gp.decaymode
431  tau_gendm_rough[0] = returnRough(gp.decaymode)
432  tau_genpt[0] = gp.vis.pt()
433  tau_geneta[0] = gp.vis.eta()
434  tau_genphi[0] = gp.vis.phi()
435  elif runtype == 'QCD':
436  tau_gendm[0] = -1
437  tau_genpt[0] = bmjet.pt()
438  tau_geneta[0] = bmjet.eta()
439  tau_genphi[0] = bmjet.phi()
440  elif runtype == 'ZEE':
441  tau_gendm[0] = -1
442  tau_genpt[0] = bme.pt()
443  tau_geneta[0] = bme.eta()
444  tau_genphi[0] = bme.phi()
445  elif runtype == 'ZMM':
446  tau_gendm[0] = -1
447  tau_genpt[0] = bmm.pt()
448  tau_geneta[0] = bmm.eta()
449  tau_genphi[0] = bmm.phi()
450 
451  tau_tree.Fill()
452 
453 
454 
455 print(evtid, 'events are processed !')
456 
457 file.Write()
458 file.Close()
459 
S & print(S &os, JobReport::InputFile const &f)
Definition: JobReport.cc:66
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
def visibleP4(gen)
def finalDaughters(gen, daughters=None)
double deltaR(double eta1, double eta2, double phi1, double phi2)
Definition: TreeUtility.cc:17
def bestMatch(object, matchCollection)
Definition: deltar.py:138
def returnRough(dm)
#define str(s)
Definition: event.py:1