-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathNewSuperAnalysis.py
More file actions
65 lines (47 loc) · 1.74 KB
/
NewSuperAnalysis.py
File metadata and controls
65 lines (47 loc) · 1.74 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
import ROOT
import time
import TupleReader as reader
import Analysis.HistManager
import Analysis.EventCounter
#======================================================================
class Analysis(object):
"""Baseclass for all analyses. Common functionality should go here.
This class handles some of the technicalities that are common to all analyses.
"""
def __init__(self, auxName):
super(Analysis, self).__init__()
# Configurables
self.Name = type(self).__name__
self.TotName = auxName + "." + self.Name
self.isData = False
# Functionality providers
self.Store = reader.TupleReader()
self.HistManager = HistManager.HistManager(self.TotName)
#Getters and Setters
def setIsData(self, isData):
self.isData = isDat
def getIsData(self):
return self.isData
#Execution functions
def doInitialization(self):
self.initialize()
def initialize(self):
pass
def doAnalysis(self):
eventinfo = self.Store.getEventInfo()
weight = eventinfo.scalefactor()*eventinfo.eventWeight() if not self.getIsData() else 1
self.analyze()
def analyze(self):
return True
def doFinalization(self):
self.HistManager.writeHistograms()
self.finalize()
def finalize(self):
pass
#Forwarding functions
def addHistogram(self, histName, histogram):
return self.HistManager.addHistogram(histName, histogram)
def addStandardHistogram(self, histName):
return self.HistManager.addStandardHistogram(histName)
def getHistogram(self, histName):
return self.HistManager.getHistogram(histName)