1 | import ROOT |
---|
2 | import sys |
---|
3 | import os |
---|
4 | from AnalysisEvent import AnalysisEvent |
---|
5 | from BaseControlPlots import BaseControlPlots |
---|
6 | from CPconfig import configuration |
---|
7 | import EventSelection |
---|
8 | |
---|
9 | # Requirements: |
---|
10 | # fully implemented EventSelection |
---|
11 | # categories stored as event.category |
---|
12 | |
---|
13 | class EventSelectionControlPlots(BaseControlPlots): |
---|
14 | """A class to create control plots for event selection""" |
---|
15 | |
---|
16 | def __init__(self, dir=None, dataset=None, mode="plots"): |
---|
17 | # create output file if needed. If no file is given, it means it is delegated |
---|
18 | BaseControlPlots.__init__(self, dir=dir, purpose="eventSelection", dataset=dataset, mode=mode) |
---|
19 | self.eventCategories = EventSelection.eventCategories() |
---|
20 | |
---|
21 | def beginJob(self): |
---|
22 | # declare histograms |
---|
23 | self.add("event","Event number",1000,0,100000) |
---|
24 | self.add("category","event category",self.eventCategories+1,0,self.eventCategories+1) |
---|
25 | |
---|
26 | def process(self, event): |
---|
27 | """EventSelectionControlPlots""" |
---|
28 | result = { } |
---|
29 | ## event category |
---|
30 | categoryData = event.category |
---|
31 | result["category"] = [ ] |
---|
32 | for category in range(self.eventCategories): |
---|
33 | if EventSelection.isInCategory(category, categoryData): |
---|
34 | result["category"].append(category) |
---|
35 | result["event"] = event.event() |
---|
36 | return result |
---|
37 | |
---|
38 | if __name__=="__main__": |
---|
39 | import sys |
---|
40 | from BaseControlPlots import runTest |
---|
41 | runTest(sys.argv[1], EventSelectionControlPlots()) |
---|
42 | |
---|