13 '''Function to configures some algorithms in the monitoring system.'''
24 from AthenaMonitoring
import AthMonitorCfgHelper
25 helper = AthMonitorCfgHelper(flags,
'ExampleAthMonitorCfg')
35 from AthenaConfiguration.ComponentFactory
import CompFactory
36 exampleMonAlg = helper.addAlgorithm(CompFactory.ExampleMonitorAlgorithm,
'ExampleMonAlg')
40 anotherExampleMonAlg = helper.addAlgorithm(CompFactory.ExampleMonitorAlgorithm,
'AnotherExampleMonAlg')
65 myGroup = helper.addGroup(
72 anotherGroup = helper.addGroup(anotherExampleMonAlg,
'ExampleMonitor')
77 myGroup.defineHistogram(
'lumiPerBCID',title=
'Luminosity,WithCommaInTitle;L/BCID;Events',
78 path=
'ToRuleThemAll',xbins=40,xmin=0.0,xmax=80.0)
79 myGroup.defineHistogram(
'lb', title=
'Luminosity Block;lb;Events',
80 path=
'ToFindThem',xbins=1000,xmin=-0.5,xmax=999.5,weight=
'testweight')
81 myGroup.defineHistogram(
'random;random2', title=
'LB;x;Events',
82 path=
'ToBringThemAll',xbins=30,xmin=0,xmax=1,opt=
'kLBNHistoryDepth=10')
83 myGroup.defineHistogram(
'random', title=
'title;x;y',path=
'ToBringThemAll',
84 xbins=[0,.1,.2,.4,.8,1.6])
85 myGroup.defineHistogram(
'random,pT', type=
'TH2F', title=
'title;x;y',path=
'ToBringThemAll',
86 xbins=[0,.1,.2,.4,.8,1.6],ybins=[0,10,30,40,60,70,90])
88 myGroup.defineHistogram(
'lumiPerBCID;lumiPerBCID_merge',title=
'Luminosity,WithCommaInTitle;L/BCID;Events',
89 path=
'ToRuleThemAll',xbins=40,xmin=0.0,xmax=80.0, merge=
'weightedAverage')
91 myGroup.defineHistogram(
'evtstr', title=
'Event number as string;Event number;Events',
92 xbins=2500, path=
'ToRuleThemAll', merge=
'merge')
94 myGroup.defineHistogram(
'pT_passed,pT', type=
'TEfficiency', title=
'Test TEfficiency;x;Eff',
95 path=
'AndInTheDarkness', xbins=100, xmin=0.0, xmax=50.0)
96 myGroup.defineHistogram(
'pT_passed,pT,random', type=
'TEfficiency', title=
'Test TEfficiency 2D;x;y;Eff',
97 path=
'AndInTheDarkness', xbins=100, xmin=0.0, xmax=50.0,
98 ybins=10, ymin=0.0, ymax=2.0)
100 myGroup.defineHistogram(
'pT;pT_with_cut', title=
'p_{T};p_{T};Events', path=
'AndInTheDarkness',
101 xbins=50, xmin=0, xmax=50, cutmask=
'pT_passed')
103 myGroup.defineHistogram(
'dummy;alwaysempty', title=
'Plot is always empty', path=
'AndInTheDarkness',
104 xbins=50, xmin=0, xmax=50, opt=
'kAlwaysCreate')
106 myGroup.defineTree(
'pT,lb,pT_vec,strvec,str;testtree', path=
'BindThem',
107 treedef=
'pT/F:lb/i:pT_vec/vector<float>:strvec/vector<string>:str/string')
109 anotherGroup.defineHistogram(
'lbWithFilter',title=
'Lumi;lb;Events',
110 path=
'top',xbins=1000,xmin=-0.5,xmax=999.5)
111 anotherGroup.defineHistogram(
'run',title=
'Run Number;run;Events',
112 path=
'top',xbins=1000000,xmin=-0.5,xmax=999999.5)
118 for alg
in [exampleMonAlg, anotherExampleMonAlg]:
120 topPath =
'OneRing' if alg == exampleMonAlg
else 'top'
121 array = helper.addArray([2],alg,
'ExampleMonitor', topPath=topPath)
122 array.defineHistogram(
'a,b',title=
'AB',type=
'TH2F',path=
'Eta',
123 xbins=10,xmin=0.0,xmax=10.0,
124 ybins=10,ymin=0.0,ymax=10.0)
125 array.defineHistogram(
'c',title=
'C',path=
'Eta',
126 xbins=10,xmin=0.0,xmax=10.0)
127 array = helper.addArray([4,2],alg,
'ExampleMonitor', topPath=topPath)
128 array.defineHistogram(
'a',title=
'A',path=
'EtaPhi',
129 xbins=10,xmin=0.0,xmax=10.0)
132 layerList = [
'layer1',
'layer2']
133 clusterList = [
'clusterX',
'clusterB']
134 array1D = helper.addArray([layerList], alg,
'ExampleMonitor', topPath=topPath)
135 array1D.defineHistogram(
'c', title=
'C', path=
'Layer',
136 xbins=10, xmin=0, xmax=10.0)
137 array2D = helper.addArray([layerList, clusterList], alg,
'ExampleMonitor', topPath=topPath)
138 array2D.defineHistogram(
'c', title=
'C', path=
'LayerCluster',
139 xbins=10, xmin=0, xmax=10.0)
142 array1D.defineHistogram(
'c', title=
'Layer {0}', path=
'Keys', xmax=3.)
143 array1D.defineHistogram(
'c;c_alternate', title=
'Layer', path=
'Keys/{0}', xmax=3.)
144 array1D.defineHistogram(
'c;c_{0}_formatted', path=
'Keys', xmax=3.)
145 array2D.defineHistogram(
'c', title=
'Cluster {1}, Layer {0}', path=
'Keys/{1}', xmax=3.)
148 array2D.defineHistogram(
'c;c_restricted', path=
'Keys', pattern=[(
'layer1',
'clusterB'), (
'layer2',
'clusterX')])
155 return helper.result()