5 from EventDisplaysOnline.EventDisplaysOnlineHelpers
import GetBFields, WaitForPartition, GetUniqueJobID, GetRunNumber, Ready4Physics
7 from AthenaCommon.Logging
import logging
8 mlog = logging.getLogger(
'EventDisplaysOnlineCfg' )
10 if not flags.OnlineEventDisplays.OfflineTest:
11 from AthenaConfiguration.AutoConfigOnlineRecoFlags
import autoConfigOnlineRecoFlags
13 flags.OnlineEventDisplays.Ready4PhysicsAtStart=
Ready4Physics()
17 flags.OnlineEventDisplays.TriggerStreams = [
'MinBias',
'express',
'ZeroBias',
'CosmicCalo',
'IDCosmic',
'CosmicMuons',
'Background',
'Standby',
'L1Calo',
'Main']
18 if flags.OnlineEventDisplays.BeamSplashMode:
19 flags.OnlineEventDisplays.TriggerStreams = [
'MinBias']
22 flags.OnlineEventDisplays.OutputDirectory =
"/atlas/EventDisplayEvents/"
24 if flags.OnlineEventDisplays.OfflineTest:
25 flags.OnlineEventDisplays.OutputDirectory =
"."
38 flags.OnlineEventDisplays.PartitionName=
'ATLAS'
40 if flags.OnlineEventDisplays.HIMode:
41 flags.OnlineEventDisplays.MaxEvents=200
42 flags.OnlineEventDisplays.ProjectTag=
'data25_hi'
43 flags.OnlineEventDisplays.PublicStreams=[
'HardProbes']
44 if flags.OnlineEventDisplays.HIPMode:
45 flags.OnlineEventDisplays.MaxEvents=200
46 flags.OnlineEventDisplays.ProjectTag=
'data25_hip'
47 flags.OnlineEventDisplays.PublicStreams=[
'Main']
48 if flags.OnlineEventDisplays.CosmicMode:
49 flags.OnlineEventDisplays.MaxEvents=200
50 flags.OnlineEventDisplays.ProjectTag=
'data25_cos'
51 flags.OnlineEventDisplays.PublicStreams=[
'']
52 if flags.OnlineEventDisplays.BeamSplashMode:
53 flags.OnlineEventDisplays.MaxEvents=-1
54 flags.OnlineEventDisplays.ProjectTag=
'data25_comm'
55 flags.OnlineEventDisplays.PublicStreams=[
'']
57 flags.OnlineEventDisplays.MaxEvents=50
58 flags.OnlineEventDisplays.ProjectTag=
'data25_13p6TeV'
59 flags.OnlineEventDisplays.PublicStreams=[
'Main']
62 if not flags.OnlineEventDisplays.OfflineTest:
65 if not flags.OnlineEventDisplays.OfflineTest:
67 IPC_timeout =
int(os.environ[
'TDAQ_IPC_TIMEOUT'])
68 print(
" IPC_timeout Envrionment Variable = %d" %IPC_timeout)
71 if flags.OnlineEventDisplays.OfflineTest:
72 flags.IOVDb.GlobalTag =
'CONDBR2-BLKPA-2025-02'
74 flags.IOVDb.GlobalTag =
'CONDBR2-HLTP-2025-01'
77 flags.GeoModel.AtlasVersion =
'ATLAS-R3S-2021-03-02-00'
79 flags.Trigger.triggerConfig=
'DB'
84 if flags.OnlineEventDisplays.PartitionName !=
'ATLAS' or flags.OnlineEventDisplays.OfflineTest:
85 flags.Exec.MaxEvents = 5
86 flags.Output.ESDFileName = flags.OnlineEventDisplays.OutputDirectory +
"ESD-%s-%s.pool.root" % (jobId[3], jobId[4])
88 flags.Exec.MaxEvents = 20000
89 flags.Output.ESDFileName =
"ESD-%s-%s.pool.root" % (jobId[3], jobId[4])
91 if flags.OnlineEventDisplays.MakeVP1File:
92 flags.Output.doWriteESD =
True
94 flags.Output.doWriteESD =
False
96 flags.Output.doJiveXML =
False
98 if flags.OnlineEventDisplays.OfflineTest:
99 flags.Input.Files = [
'/eos/home-m/myexley/sharedWithATLASauthors/data25_13p6TeV.00499912.physics_Main.daq.RAW._lb0600._SFO-11._0001.data']
101 flags.Input.Files = []
103 flags.Reco.EnableTrigger =
False
104 flags.Detector.GeometryForward =
False
105 flags.Detector.EnableFwdRegion =
False
106 flags.LAr.doHVCorr =
False
107 flags.DQ.doMonitoring =
False
108 flags.DQ.doPostProcessing =
False
109 flags.Concurrency.NumThreads = 1
111 if flags.OnlineEventDisplays.MakeVP1File:
112 flags.Concurrency.NumThreads = 0
113 if flags.OnlineEventDisplays.HIMode
or flags.OnlineEventDisplays.HIPMode:
114 mlog.warning(
"You have said you want to create a vp1 file 'flags.OnlineEventDisplays.MakeVP1File=True' but you have also said you want to run reconstruction in an heavy ion mode, this will not work as heavy ion mode needs to run in multithreading mode, and in this mode we cannot write out one ESD file (i.e. vp1 file) per event.")
116 if flags.OnlineEventDisplays.HIMode:
117 from AthenaConfiguration.Enums
import HIMode
118 flags.Reco.HIMode = HIMode.HI
119 flags.Concurrency.NumThreads = 1
120 flags.OnlineEventDisplays.MakeVP1File =
False
121 flags.Beam.BunchSpacing = 50
123 if flags.OnlineEventDisplays.HIPMode:
124 from AthenaConfiguration.Enums
import HIMode
125 flags.Reco.HIMode = HIMode.HIP
126 flags.Concurrency.NumThreads = 1
127 flags.OnlineEventDisplays.MakeVP1File =
False
129 if flags.OnlineEventDisplays.BeamSplashMode:
130 flags.Reco.EnableJet=
False
131 flags.Reco.EnableMet=
False
132 flags.Reco.EnableTau=
False
133 flags.Reco.EnablePFlow=
False
134 flags.Reco.EnableBTagging=
False
135 flags.Reco.EnableEgamma=
False
136 flags.Reco.EnableCombinedMuon=
False
139 flags.Exec.OutputLevel = INFO
141 flags.Common.isOnline =
not flags.OnlineEventDisplays.OfflineTest
143 if flags.OnlineEventDisplays.PartitionName ==
'ATLAS' and not flags.OnlineEventDisplays.OfflineTest:
145 run_number =
GetRunNumber(flags.OnlineEventDisplays.PartitionName)
146 flags.Input.OverrideRunNumber =
True
147 flags.Input.RunNumbers = [run_number]
151 flags.BField.solenoidOn = solenoidOn
152 flags.BField.barrelToroidOn = toroidOn
153 flags.BField.endcapToroidOn = toroidOn
156 if (flags.OnlineEventDisplays.PartitionName ==
'GMTestPartition' or flags.OnlineEventDisplays.PartitionName ==
'GMTestPartitionT9'):
157 flags.Input.RunNumbers = [482485]
158 flags.Input.LumiBlockNumbers = [111]
160 from AthenaConfiguration.Enums
import BeamType
161 if not flags.OnlineEventDisplays.OfflineTest:
162 if flags.OnlineEventDisplays.CosmicMode:
163 flags.Beam.Type = BeamType.Cosmics
165 flags.Beam.Type = BeamType.Collisions
170 from RecJobTransforms.RecoSteering
import RecoSteering
173 from IOVDbSvc.IOVDbSvcConfig
import addOverride
174 if not flags.OnlineEventDisplays.OfflineTest:
175 cfg.merge(
addOverride(flags,
"/TRT/Onl/Calib/PID_NN",
"TRTCalibPID_NN_v2", db=
""))
178 if not flags.OnlineEventDisplays.OfflineTest:
179 from EventDisplaysOnline.ByteStreamConfig
import ByteStreamCfg
182 from EventDisplaysOnline.OnlineEventDisplaysSvcConfig
import OnlineEventDisplaysSvcCfg
185 from JiveXML.OnlineStreamToFileConfig
import OnlineStreamToFileCfg
188 streamToServerTool =
None
189 if not flags.OnlineEventDisplays.OfflineTest:
190 from JiveXML.OnlineStreamToServerConfig
import OnlineStreamToServerCfg
193 from JiveXML.JiveXMLConfig
import AlgoJiveXMLCfg
195 StreamToFileTool = streamToFileTool,
196 StreamToServerTool = streamToServerTool,
197 OnlineMode =
not flags.OnlineEventDisplays.OfflineTest))
199 if flags.OnlineEventDisplays.HIMode:
200 from EventDisplaysOnline.ContainerKeysCfg
import getHIContainterKeys
203 if flags.OnlineEventDisplays.HIPMode:
204 from EventDisplaysOnline.ContainerKeysCfg
import getHIPContainterKeys
207 if flags.OnlineEventDisplays.MakeVP1File:
210 from AthenaServices.OutputStreamSequencerSvcConfig
import OutputStreamSequencerSvcCfg
212 from OutputStreamAthenaPool.OutputStreamConfig
import outputStreamName
214 streamESD.OutputFile=flags.Output.ESDFileName
216 from VP1AlgsEventProd.VP1AlgsEventProdConfig
import VP1AlgsEventProdCfg
220 if flags.OnlineEventDisplays.BeamSplashMode:
221 cfg.getEventAlgo(
"MuonSegmentMaker").doStgcSegments=
False
222 cfg.getEventAlgo(
"MuonSegmentMaker").doMMSegments=
False
223 cfg.getEventAlgo(
"MuonSegmentMaker_NCB").doStgcSegments=
False
224 cfg.getEventAlgo(
"MuonSegmentMaker_NCB").doMMSegments=
False
225 cfg.dropEventAlgo(
"QuadNSW_MuonSegmentCnvAlg")
227 if flags.OnlineEventDisplays.HorizontalMuonsMode:
228 from MuonConfig.MuonReconstructionConfig
import MuonNCBTrackCfg
231 cfg.getService(
"PoolSvc").WriteCatalog =
"xmlcatalog_file:PoolFileCatalog_%s_%s.xml" % (jobId[3], jobId[4])
237 cfg.getService(
"PoolSvc").ReadCatalog += [
"xmlcatalog_file:/det/dqm/GlobalMonitoring/PoolFileCatalog_M7/PoolFileCatalog.xml"]
240 with open(
"OnlineEventDisplays.pkl",
"wb")
as f:
245 if __name__ ==
"__main__":
246 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
249 flags.OnlineEventDisplays.HorizontalMuonsMode =
False
250 flags.OnlineEventDisplays.MakeVP1File =
True
251 flags.OnlineEventDisplays.CosmicMode =
False
252 flags.OnlineEventDisplays.HIMode =
False
253 flags.OnlineEventDisplays.HIPMode =
False
254 flags.OnlineEventDisplays.BeamSplashMode =
False
255 flags.OnlineEventDisplays.OfflineTest =
False
261 sys.exit(0
if sc.isSuccess()
else 1)