1 |
mzanetti |
1.1 |
#!/usr/bin/env python
|
2 |
|
|
import ROOT
|
3 |
mzanetti |
1.2 |
from array import array
|
4 |
mzanetti |
1.1 |
|
5 |
|
|
class lepTree:
|
6 |
|
|
def __init__(self):
|
7 |
|
|
self.tree = ROOT.TTree("lep3Tree", "lep3Tree")
|
8 |
mzanetti |
1.2 |
# doubles
|
9 |
|
|
self.leaves = {}
|
10 |
mzanetti |
1.5 |
for label in ['processID','type',
|
11 |
mzanetti |
1.4 |
'lq1','lq2','lq3','lq4',
|
12 |
mzanetti |
1.3 |
'mu1IsoCH','mu1IsoEM','mu1IsoNH',
|
13 |
|
|
'mu2IsoCH','mu2IsoEM','mu2IsoNH',
|
14 |
mzanetti |
1.4 |
'mu3IsoCH','mu3IsoEM','mu3IsoNH',
|
15 |
|
|
'mu4IsoCH','mu4IsoEM','mu4IsoNH',
|
16 |
mzanetti |
1.3 |
'ele1IsoCH','ele1IsoEM','ele1IsoNH',
|
17 |
mzanetti |
1.4 |
'ele2IsoCH','ele2IsoEM','ele2IsoNH',
|
18 |
|
|
'ele3IsoCH','ele3IsoEM','ele3IsoNH',
|
19 |
|
|
'ele4IsoCH','ele4IsoEM','ele4IsoNH',
|
20 |
|
|
'visibleE','chargeMulti',
|
21 |
|
|
]:
|
22 |
mzanetti |
1.2 |
self.leaves[label] = array('d',[-999])
|
23 |
mzanetti |
1.1 |
# four vectors
|
24 |
|
|
self.fourVectorLeaves = {}
|
25 |
mzanetti |
1.4 |
for label in ['muonicZ1','muonicZ2','electronicZ1','electronicZ2',
|
26 |
|
|
'lepton1', 'lepton2','lepton3','lepton4',
|
27 |
|
|
'photon1','photon2',
|
28 |
|
|
'jet1','jet2','jet3','jet4','jet5','jet6',
|
29 |
|
|
'missingE']:
|
30 |
mzanetti |
1.1 |
self.fourVectorLeaves[label] = ROOT.TLorentzVector()
|
31 |
|
|
self.setBranches()
|
32 |
|
|
|
33 |
|
|
def setBranches(self):
|
34 |
mzanetti |
1.2 |
for leaf in self.leaves:
|
35 |
|
|
self.tree.Branch(leaf,self.leaves[leaf],leaf+'/D')
|
36 |
mzanetti |
1.1 |
for leaf in self.fourVectorLeaves:
|
37 |
|
|
self.tree.Branch(leaf, self.fourVectorLeaves[leaf])
|
38 |
|
|
|
39 |
|
|
def reset(self):
|
40 |
mzanetti |
1.2 |
for leaf in self.leaves:
|
41 |
|
|
self.leaves[leaf][0] = -999
|
42 |
mzanetti |
1.1 |
for leaf in self.fourVectorLeaves: self.fourVectorLeaves[leaf].SetPxPyPzE(0,0,0,0)
|