ATLAS Offline Software
Functions | Variables
python.ExampleMonitorAlgorithm Namespace Reference

Functions

def ExampleMonitoringConfig (flags)
 

Variables

 flags = initConfigFlags()
 
string nightly = '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs/'
 
string file = 'data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1'
 
 Files
 
 isMC
 
 HISTFileName
 
 cfg = MainServicesCfg(flags)
 
def exampleMonitorAcc = ExampleMonitoringConfig(flags)
 
 withDetails
 

Function Documentation

◆ ExampleMonitoringConfig()

def python.ExampleMonitorAlgorithm.ExampleMonitoringConfig (   flags)
Function to configures some algorithms in the monitoring system.

Definition at line 12 of file ExampleMonitorAlgorithm.py.

12 def ExampleMonitoringConfig(flags):
13  '''Function to configures some algorithms in the monitoring system.'''
14 
15 
21 
22  # The following class will make a sequence, configure algorithms, and link
23  # them to GenericMonitoringTools
24  from AthenaMonitoring import AthMonitorCfgHelper
25  helper = AthMonitorCfgHelper(flags, 'ExampleAthMonitorCfg')
26 
27 
28 
35  from AthenaConfiguration.ComponentFactory import CompFactory
36  exampleMonAlg = helper.addAlgorithm(CompFactory.ExampleMonitorAlgorithm,'ExampleMonAlg')
37 
38  # You can actually make multiple instances of the same algorithm and give
39  # them different configurations
40  anotherExampleMonAlg = helper.addAlgorithm(CompFactory.ExampleMonitorAlgorithm,'AnotherExampleMonAlg')
41 
42  # # If for some really obscure reason you need to instantiate an algorithm
43  # # yourself, the AddAlgorithm method will still configure the base
44  # # properties and add the algorithm to the monitoring sequence.
45  # helper.AddAlgorithm(myExistingAlg)
46 
47 
48 
54 
55 
58 
59  # # Then, add a tool that doesn't have its own configuration function. In
60  # # this example, no accumulator is returned, so no merge is necessary.
61  # from MyDomainPackage.MyDomainPackageConf import MyDomainTool
62  # exampleMonAlg.MyDomainTool = MyDomainTool()
63 
64  # Add a generic monitoring tool (a "group" in old language). The returned
65  # object here is the standard GenericMonitoringTool.
66  myGroup = helper.addGroup(
67  exampleMonAlg,
68  'ExampleMonitor',
69  'OneRing/'
70  )
71 
72  # Add a GMT for the other example monitor algorithm
73  anotherGroup = helper.addGroup(anotherExampleMonAlg,'ExampleMonitor')
74 
75 
76 
78  myGroup.defineHistogram('lumiPerBCID',title='Luminosity,WithCommaInTitle;L/BCID;Events',
79  path='ToRuleThemAll',xbins=40,xmin=0.0,xmax=80.0)
80  myGroup.defineHistogram('lb', title='Luminosity Block;lb;Events',
81  path='ToFindThem',xbins=1000,xmin=-0.5,xmax=999.5,weight='testweight')
82  myGroup.defineHistogram('random;random2', title='LB;x;Events',
83  path='ToBringThemAll',xbins=30,xmin=0,xmax=1,opt='kLBNHistoryDepth=10')
84  myGroup.defineHistogram('random', title='title;x;y',path='ToBringThemAll',
85  xbins=[0,.1,.2,.4,.8,1.6])
86  myGroup.defineHistogram('random,pT', type='TH2F', title='title;x;y',path='ToBringThemAll',
87  xbins=[0,.1,.2,.4,.8,1.6],ybins=[0,10,30,40,60,70,90])
88  # specify a merge method
89  myGroup.defineHistogram('lumiPerBCID;lumiPerBCID_merge',title='Luminosity,WithCommaInTitle;L/BCID;Events',
90  path='ToRuleThemAll',xbins=40,xmin=0.0,xmax=80.0, merge='weightedAverage')
91  # use strings as bin labels
92  myGroup.defineHistogram('evtstr', title='Event number as string;Event number;Events',
93  xbins=2500, path='ToRuleThemAll', merge='merge')
94  # TEfficiencies
95  myGroup.defineHistogram('pT_passed,pT', type='TEfficiency', title='Test TEfficiency;x;Eff',
96  path='AndInTheDarkness', xbins=100, xmin=0.0, xmax=50.0)
97  myGroup.defineHistogram('pT_passed,pT,random', type='TEfficiency', title='Test TEfficiency 2D;x;y;Eff',
98  path='AndInTheDarkness', xbins=100, xmin=0.0, xmax=50.0,
99  ybins=10, ymin=0.0, ymax=2.0)
100  # # use a cutmask to only fill certain events
101  myGroup.defineHistogram('pT;pT_with_cut', title='p_{T};p_{T};Events', path='AndInTheDarkness',
102  xbins=50, xmin=0, xmax=50, cutmask='pT_passed')
103  # make a plot which will always exist, even though it is never filled
104  myGroup.defineHistogram('dummy;alwaysempty', title='Plot is always empty', path='AndInTheDarkness',
105  xbins=50, xmin=0, xmax=50, opt='kAlwaysCreate')
106  # make a TTree
107  myGroup.defineTree('pT,lb,pT_vec,strvec,str;testtree', path='BindThem',
108  treedef='pT/F:lb/i:pT_vec/vector<float>:strvec/vector<string>:str/string')
109 
110  anotherGroup.defineHistogram('lbWithFilter',title='Lumi;lb;Events',
111  path='top',xbins=1000,xmin=-0.5,xmax=999.5)
112  anotherGroup.defineHistogram('run',title='Run Number;run;Events',
113  path='top',xbins=1000000,xmin=-0.5,xmax=999999.5)
114 
115  # Example defining an array of histograms. This is useful if one seeks to create a
116  # number of histograms in an organized manner. (For instance, one plot for each ASIC
117  # in the subdetector, and these components are mapped in eta, phi, and layer.) Thus,
118  # one might have an array of TH1's such as quantity[etaIndex][phiIndex][layerIndex].
119  for alg in [exampleMonAlg, anotherExampleMonAlg]:
120  # Using an array of groups
121  topPath = 'OneRing' if alg == exampleMonAlg else 'top'
122  array = helper.addArray([2],alg,'ExampleMonitor', topPath=topPath)
123  array.defineHistogram('a,b',title='AB',type='TH2F',path='Eta',
124  xbins=10,xmin=0.0,xmax=10.0,
125  ybins=10,ymin=0.0,ymax=10.0)
126  array.defineHistogram('c',title='C',path='Eta',
127  xbins=10,xmin=0.0,xmax=10.0)
128  array = helper.addArray([4,2],alg,'ExampleMonitor', topPath=topPath)
129  array.defineHistogram('a',title='A',path='EtaPhi',
130  xbins=10,xmin=0.0,xmax=10.0)
131 
132  # Using a map of groups
133  layerList = ['layer1', 'layer2']
134  clusterList = ['clusterX', 'clusterB']
135  array1D = helper.addArray([layerList], alg, 'ExampleMonitor', topPath=topPath)
136  array1D.defineHistogram('c', title='C', path='Layer',
137  xbins=10, xmin=0, xmax=10.0)
138  array2D = helper.addArray([layerList, clusterList], alg, 'ExampleMonitor', topPath=topPath)
139  array2D.defineHistogram('c', title='C', path='LayerCluster',
140  xbins=10, xmin=0, xmax=10.0)
141 
142  # Using templates for histogram titles or paths
143  array1D.defineHistogram('c', title='Layer {0}', path='Keys', xmax=3.)
144  array1D.defineHistogram('c;c_alternate', title='Layer', path='Keys/{0}', xmax=3.)
145  array1D.defineHistogram('c;c_{0}_formatted', path='Keys', xmax=3.)
146  array2D.defineHistogram('c', title='Cluster {1}, Layer {0}', path='Keys/{1}', xmax=3.)
147 
148  # Making a histogram only for certain elements of the array
149  array2D.defineHistogram('c;c_restricted', path='Keys', pattern=[('layer1', 'clusterB'), ('layer2', 'clusterX')])
150 
151 
156  return helper.result()
157 
158  # # Otherwise, merge with result object and return
159  # acc = helper.result()
160  # result.merge(acc)
161  # return result
162 

Variable Documentation

◆ cfg

python.ExampleMonitorAlgorithm.cfg = MainServicesCfg(flags)

Definition at line 185 of file ExampleMonitorAlgorithm.py.

◆ exampleMonitorAcc

def python.ExampleMonitorAlgorithm.exampleMonitorAcc = ExampleMonitoringConfig(flags)

Definition at line 188 of file ExampleMonitorAlgorithm.py.

◆ file

string python.ExampleMonitorAlgorithm.file = 'data16_13TeV.00311321.physics_Main.recon.AOD.r9264/AOD.11038520._000001.pool.root.1'

Definition at line 174 of file ExampleMonitorAlgorithm.py.

◆ Files

python.ExampleMonitorAlgorithm.Files

Definition at line 175 of file ExampleMonitorAlgorithm.py.

◆ flags

python.ExampleMonitorAlgorithm.flags = initConfigFlags()

Definition at line 171 of file ExampleMonitorAlgorithm.py.

◆ HISTFileName

python.ExampleMonitorAlgorithm.HISTFileName

Definition at line 177 of file ExampleMonitorAlgorithm.py.

◆ isMC

python.ExampleMonitorAlgorithm.isMC

Definition at line 176 of file ExampleMonitorAlgorithm.py.

◆ nightly

string python.ExampleMonitorAlgorithm.nightly = '/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/CommonInputs/'

Definition at line 173 of file ExampleMonitorAlgorithm.py.

◆ withDetails

python.ExampleMonitorAlgorithm.withDetails

Definition at line 193 of file ExampleMonitorAlgorithm.py.

python.ExampleMonitorAlgorithm.ExampleMonitoringConfig
def ExampleMonitoringConfig(flags)
Definition: ExampleMonitorAlgorithm.py:12