6from AthenaConfiguration.AllConfigFlags
import initConfigFlags
7flags = initConfigFlags()
12if 'outputlevel' not in configMy.jobConfig: configMy.jobConfig[
'outputlevel'] = 3
13if 'maxEvents' not in configMy.jobConfig: configMy.jobConfig[
'maxEvents'] = -1
14if 'skipEvents' not in configMy.jobConfig: configMy.jobConfig[
'skipEvents'] = 0
15if 'MsgLimit' not in configMy.jobConfig: configMy.jobConfig[
'MsgLimit'] = 20
17if 'outputfileprefix' not in configMy.jobConfig: configMy.jobConfig[
'outputfileprefix'] =
''
18if 'outputfile' not in configMy.jobConfig: configMy.jobConfig[
'outputfile'] = configMy.jobConfig[
'outputfileprefix']+
'beamspot.db'
19if 'histfile' not in configMy.jobConfig: configMy.jobConfig[
'histfile'] = configMy.jobConfig[
'outputfileprefix']+
'nt.root'
20if 'monfile' not in configMy.jobConfig: configMy.jobConfig[
'monfile'] = configMy.jobConfig[
'outputfileprefix']+
'beamspotmonitoring.root'
21if 'jobpostprocsteps' not in configMy.jobConfig: configMy.jobConfig[
'jobpostprocsteps'] =
'MergeNt PlotBeamSpot LinkResults AveBeamSpot DQBeamSpot'
22if 'doMonitoring' not in configMy.jobConfig: configMy.jobConfig[
'doMonitoring'] =
True
23if 'VertexNtuple' not in configMy.jobConfig: configMy.jobConfig[
'VertexNtuple'] =
True
24if 'WriteAllVertices' not in configMy.jobConfig: configMy.jobConfig[
'WriteAllVertices'] =
False
25if 'VertexTreeName' not in configMy.jobConfig: configMy.jobConfig[
'VertexTreeName'] =
'Vertices'
28if 'UseBCID' not in configMy.jobConfig: configMy.jobConfig[
'UseBCID'] = []
29if 'UseFilledBCIDsOnly' not in configMy.jobConfig: configMy.jobConfig[
'UseFilledBCIDsOnly'] =
True
32if 'MinTracksPerVtx' not in configMy.jobConfig: configMy.jobConfig[
'MinTracksPerVtx'] = 5
33if 'MaxTracksPerVtx' not in configMy.jobConfig: configMy.jobConfig[
'MaxTracksPerVtx'] = 1000000
34if 'MinVtxNum' not in configMy.jobConfig: configMy.jobConfig[
'MinVtxNum'] = 100
35if 'MaxVtxChi2' not in configMy.jobConfig: configMy.jobConfig[
'MaxVtxChi2'] = 10
36if 'MaxTransverseErr' not in configMy.jobConfig: configMy.jobConfig[
'MaxTransverseErr'] = 1000000
37if 'VertexTypes' not in configMy.jobConfig: configMy.jobConfig[
'VertexTypes'] = [
'PriVtx']
38if 'MinVtxProb' not in configMy.jobConfig: configMy.jobConfig[
'MinVtxProb'] = .001
39if 'VertexContainer' not in configMy.jobConfig: configMy.jobConfig[
'VertexContainer'] =
'PrimaryVertices'
40if 'MaxAbsCorrelXY' not in configMy.jobConfig: configMy.jobConfig[
'MaxAbsCorrelXY'] = 0.8
43if 'LumiRange' not in configMy.jobConfig: configMy.jobConfig[
'LumiRange'] = 0
44if 'RunRange' not in configMy.jobConfig: configMy.jobConfig[
'RunRange'] = 0
48if 'GroupFitsBy' not in configMy.jobConfig: configMy.jobConfig[
'GroupFitsBy'] =
'none'
49if 'EventRange' not in configMy.jobConfig: configMy.jobConfig[
'EventRange'] = 0
52if 'InitialKFactor' not in configMy.jobConfig: configMy.jobConfig[
'InitialKFactor'] = 1.0
53if 'ConstantKFactor' not in configMy.jobConfig: configMy.jobConfig[
'ConstantKFactor'] =
False
56if 'MaxSigmaTr' not in configMy.jobConfig: configMy.jobConfig[
'MaxSigmaTr'] = 20.
57if 'MaxSigmaVtx' not in configMy.jobConfig: configMy.jobConfig[
'MaxSigmaVtx'] = 2.0
58if 'TruncatedRMS' not in configMy.jobConfig: configMy.jobConfig[
'TruncatedRMS'] =
True
59if 'SetInitialRMS' not in configMy.jobConfig: configMy.jobConfig[
'SetInitialRMS'] =
False
60if 'OutlierChi2Tr' not in configMy.jobConfig: configMy.jobConfig[
'OutlierChi2Tr'] = 20.
61if 'BeamSpotToolList' not in configMy.jobConfig: configMy.jobConfig[
'BeamSpotToolList'] = [
'InDetBeamSpotRooFit',
'InDetBeamSpotVertex']
62if 'FixWidth' not in configMy.jobConfig: configMy.jobConfig[
'FixWidth'] =
False
65if 'RooFitMaxTransverseErr' not in configMy.jobConfig: configMy.jobConfig[
'RooFitMaxTransverseErr'] = 0.05
68if 'MinTrackPt' not in configMy.jobConfig: configMy.jobConfig[
'MinTrackPt'] = 500.
69if 'useBeamSpot' not in configMy.jobConfig:
71 configMy.jobConfig[
'useBeamSpot'] = configMy.jobConfig.get(
'beamspottag',
'')!=
'' or configMy.jobConfig.get(
'beamspotfile',
'')!=
''
74if 'triggerConfig' not in configMy.jobConfig: configMy.jobConfig[
'triggerConfig'] =
'DB'
77print(
"Job configuration: ")
78for option
in configMy.jobConfig:
79 print(
" ",option,
': ',configMy.jobConfig[option])
82flags.Exec.OutputLevel = configMy.jobConfig[
'outputlevel']
83flags.Exec.SkipEvents = configMy.jobConfig[
'skipEvents']
84flags.Exec.MaxEvents = configMy.jobConfig[
'maxEvents']
87for path
in configMy.jobConfig[
'inputfiles']:
89 print(
"glob: ",glob(path))
90 flags.Input.Files += glob(path)
93flags.Trigger.triggerConfig = configMy.jobConfig[
'triggerConfig']
94flags.DQ.enableLumiAccess =
False
95flags.Output.HISTFileName = configMy.jobConfig[
'monfile']
96flags.Exec.EventPrintoutInterval = 10000
100from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
101acc = MainServicesCfg(flags)
102from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
103acc.merge(PoolReadCfg(flags))
104acc.getService(
"MessageSvc").defaultLimit = configMy.jobConfig[
'MsgLimit']
106from InDetBeamSpotFinder.InDetBeamSpotFinderConfig
import InDetBeamSpotFinderCfg
107acc.merge(InDetBeamSpotFinderCfg(flags,configMy.jobConfig))
109from AthenaConfiguration.ComponentFactory
import CompFactory
110acc.addService(CompFactory.THistSvc(
111 Output = [
"INDETBEAMSPOTFINDER DATAFILE='%s' OPT='RECREATE'" % configMy.jobConfig[
'histfile']]))
113if configMy.jobConfig[
'doMonitoring']:
114 from AthenaMonitoring
import AthMonitorCfgHelper
115 helper = AthMonitorCfgHelper(flags,
"BeamSpotMonitoring")
116 from InDetGlobalMonitoringRun3Test.InDetGlobalBeamSpotMonAlgCfg
import (
117 InDetGlobalBeamSpotMonAlgCfg )
119 acc.merge(helper.result())
121acc.printConfig(withDetails=
True)
128sys.exit(
not sc.isSuccess())
void print(char *figname, TCanvas *c1)