6 if __name__==
'__main__':
9 if len(sys.argv)>1
and (sys.argv[1]==
"-h" or sys.argv[1]==
"--help"):
12 print(
"StateLessPT_NewConfig.py {--config XXX} {--stream YYY} {--run Z}")
13 print(
" default XXX: LArMon")
14 print(
" default YYY: ''")
15 print(
" default Z: '435946'")
26 for ii
in range(1,len(sys.argv)):
27 print(ii,
" ",sys.argv[ii])
29 opts,args=getopt.getopt(sys.argv[1:],
"t:",[
"config=",
"stream=",
"run="])
30 except getopt.GetoptError
as e:
31 print(
"Failed to interpret arguments")
38 print(
"Got option --config: ",a)
40 if o==
"--stream": STREAM=a
41 if o==
"--run": RUNN=
int(a)
43 from AthenaConfiguration.Enums
import Format
49 partition = os.environ.get(
"TDAQ_PARTITION")
51 from ispy
import IPCPartition, ISObject
56 p = IPCPartition(partition)
58 print(
"Partition:",p.name(),
"is not valid")
62 from AthenaConfiguration.Enums
import BeamType
64 if partition ==
"ATLAS" or partition[0:3] ==
"LAr":
66 y = ISObject(p,
'RunParams.SOR_RunParams',
'RunParams')
68 print(
"Could not find Run Parameters in IS - Set default beam type to 'cosmics'")
69 beamType=BeamType.Cosmics
72 beamtype = y.beam_type
73 beamenergy = y.beam_energy
74 runnumber = y.run_number
75 project = y.T0_project_tag
76 print(
"RUN CONFIGURATION: beam type %i, beam energy %i, run number %i, project tag %s"%(beamtype,beamenergy,runnumber,project))
78 if project[7:10]==
"cos":
79 beamType=BeamType.Cosmics
81 beamType=BeamType.Collisions
85 beamType=BeamType.Collisions
89 x = ISObject(p,
'LArParams.LAr.RunLogger.GlobalParams',
'GlobalParamsInfo')
91 print(
"Could not find IS Parameters - Set default flag")
107 print(
"Couldn not find IS Parameters - Set default flag")
122 FirstSample = x.firstSample
123 NSamples = x.nbOfSamples
125 print(
"RUN CONFIGURATION: format %i,run type %i"%(RunType,LArFormat))
132 print(
"RUN CONFIGURATION: ReadDigits =", ReadDigits)
135 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
137 from AthenaMonitoring.DQConfigFlags
import allSteeringFlagsOff
141 flags.Beam.Type=beamType
142 flags.Beam.BunchSpacing=25
143 print(
"RUN CONFIGURATION: Beamtype =",flags.Beam.Type)
145 flags.Common.isOnline=
True
146 flags.Input.Format=Format.BS
147 flags.Input.isMC=
False
151 flags.Exec.MaxEvents=-1
153 from AthenaConfiguration.AutoConfigOnlineRecoFlags
import autoConfigOnlineRecoFlags
156 flags.IOVDb.DatabaseInstance=
"CONDBR2"
157 flags.IOVDb.GlobalTag=
"CONDBR2-ES1PA-2023-03"
159 flags.GeoModel.Layout=
"atlas"
160 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
161 flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
164 flags.Input.RunNumbers=[runnumber]
166 flags.Input.LumiBlockNumbers=[0]
168 from AthenaConfiguration.DetectorConfigFlags
import setupDetectorFlags
171 flags.Trigger.doID=
False
172 flags.Trigger.doMuon=
False
173 flags.Trigger.L1.doMuon=
False
174 flags.Trigger.L1.doTopo=
False
175 flags.Trigger.doHLT=
False
176 flags.Trigger.doLVL1=
False
177 flags.Trigger.Online.isPartition=
True
178 flags.Trigger.triggerConfig=
'DB'
179 flags.Trigger.DecisionMakerValidation.Execute=
False
180 flags.Trigger.enableL1CaloPhase1=
False
182 flags.DQ.doMonitoring=
True
183 flags.DQ.disableAtlasReadyFilter=
True
184 flags.DQ.useTrigger=
True
186 flags.DQ.Environment=
'online'
188 flags.LAr.doAlign=
False
189 flags.LAr.doHVCorr=
False
197 flags.LAr.ROD.forceIter=
True
199 flags.Calo.TopoCluster.doTopoClusterLocalCalib=
False
202 from LArMonitoring.LArMonConfigFlags
import createLArMonConfigFlags
205 flags.addFlagsCategory(
"LArMon", __monflags)
207 if STREAM==
"CosmicCalo" or STREAM==
"LArCellsEmpty":
208 flags.LArMon.doLArRawMonitorSignal=
True
210 if 'CaloMon' in CONFIG:
211 flags.DQ.enableLumiAccess=
False
213 flags.DQ.enableLumiAccess=
True
221 from AthenaConfiguration.ComponentFactory
import CompFactory
222 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
224 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
227 bytestream_conversion = CompFactory.ByteStreamCnvSvc()
228 acc.addService(bytestream_conversion, primary=
True)
230 from ByteStreamEmonSvc.EmonByteStreamConfig
import EmonByteStreamCfg
233 bytestream_input = acc.getService(
"ByteStreamInputSvc")
240 bytestream_input.Partition = partition
246 if partition ==
"ATLAS" or partition[:3] ==
"LAr":
247 bytestream_input.Key =
"dcm"
249 bytestream_input.Key =
"CompleteEvent"
251 bytestream_input.KeyCount = 15
252 bytestream_input.KeyCount = 150
253 bytestream_input.UpdatePeriod = 200
261 bytestream_input.ISServer =
'LArHistogramming'
269 bytestream_input.PublishName =
'%s-%s'%(CONFIG,STREAM)
271 bytestream_input.PublishName =
'%s-%s'%(CONFIG,
"NoTrigSel")
278 bytestream_input.ClearHistograms =
True
290 bytestream_input.Frequency = 5
297 bytestream_input.Timeout = 3600000
305 if bytestream_input.Partition[:3] ==
"LAr":
306 bytestream_input.StreamType =
""
308 bytestream_input.LVL1Logic =
"Or"
309 bytestream_input.LVL1Origin =
"TAV"
310 bytestream_input.StreamType =
"physics"
311 bytestream_input.StreamLogic =
"And"
313 if STREAM==
"LArCellsEmpty":
314 bytestream_input.StreamType =
"calibration"
315 bytestream_input.StreamNames = [
'LArCellsEmpty']
317 bytestream_input.StreamNames = [
'Main']
318 if STREAM==
"CosmicCalo":
319 bytestream_input.StreamNames = [
'CosmicCalo']
321 bytestream_input.StreamNames = [
'L1Topo']
323 bytestream_input.StreamNames = [
'L1Calo']
324 if STREAM==
"express":
325 bytestream_input.StreamNames = [
'express']
326 bytestream_input.StreamType =
"express"
327 if STREAM==
"LArNoiseBurst":
328 bytestream_input.StreamType =
"calibration"
329 bytestream_input.StreamNames = [
'LArNoiseBurst']
330 if STREAM==
"Standby":
331 bytestream_input.StreamNames = [
'Standby']
332 if STREAM==
"ZeroBias":
333 bytestream_input.StreamNames = [
'ZeroBias']
334 if STREAM==
"MinBias":
335 bytestream_input.StreamNames = [
'MinBias']
336 if STREAM==
"Background":
337 bytestream_input.StreamNames = [
'Background']
338 if STREAM==
"05_Jets":
339 bytestream_input.StreamType =
"calibration"
340 bytestream_input.StreamNames = [
'DataScouting_05_Jets']
342 bytestream_input.StreamNames = [
'monitoring_random']
343 bytestream_input.StreamType =
"monitoring"
344 if STREAM==
"calibration":
345 bytestream_input.StreamType =
"calibration"
348 print(
"DEBUG: bytestream_input.StreamNames:",bytestream_input.StreamNames)
351 bytestream_input.StreamType =
"physics"
352 bytestream_input.StreamLogic =
"Or"
354 bytestream_input.StreamNames = [
"Main",
"CosmicCalo",
"L1Topo",
"L1Calo",
"Standby",
"ZeroBias",
"Background",
"EnhancedBias",
"MinBias",
"LArCells",
"LArCellsEmpty",
"LArNoiseBurst",
"BphysDelayed",
"Late"]
362 bytestream_input.ExitOnPartitionShutdown =
False
370 bytestream_input.BufferSize = 10
377 event_selector = CompFactory.EventSelectorByteStream(
378 name=
'EventSelector',
379 ByteStreamInputSvc=bytestream_input.name,
381 acc.addService(event_selector)
382 acc.setAppProperty(
"EvtSel", event_selector.name)
384 event_persistency = CompFactory.EvtPersistencySvc(
385 name=
"EventPersistencySvc",
386 CnvServices=[bytestream_conversion.name])
387 acc.addService(event_persistency)
389 address_provider = CompFactory.ByteStreamAddressProviderSvc()
390 acc.addService(address_provider)
392 proxy = CompFactory.ProxyProviderSvc()
393 proxy.ProviderNames += [address_provider.name]
394 acc.addService(proxy)
399 from TriggerJobOpts.TriggerRecoConfig
import TriggerRecoCfg
403 l1bsdec = acc.getEventAlgo(
"L1TriggerByteStreamDecoder")
404 l1bsdec.ByteStreamMetadataRHKey=
""
405 print(
"MaybeMissingROBs: ",l1bsdec.MaybeMissingROBs)
406 l1bsdec.MaybeMissingROBs += [0x770001, 0x7500ac, 0x7500ad, 0x7300a8, 0x7300a9, 0x7300aa, 0x7300ab]
408 print(
'CONFIG ',CONFIG)
409 print(
'STREAM ',STREAM)
411 if "LArSCvsRawChannel" in CONFIG:
412 from LArMonitoring.RecoPT_Phase1NewConfig
import LArSCvsRawChannelMonAlgCfg
415 elif CONFIG!=
"LArDTMon":
416 from LArMonitoring.RecoPT_NewConfig
import LArMonitoringConfig
420 from LArMonitoring.RecoPT_Phase1NewConfig
import LArDTMonitoringConfig
425 if RunType == 0
and CONFIG!=
"LArDTMon":
426 acc.getEventAlgo(
"LArRawDataReadingAlg").LArRawChannelKey=
""
429 cil=acc.getCondAlgo(
'CondInputLoader')
430 iovdbsvc=acc.getService(
'IOVDbSvc')
431 folder=
'/TRIGGER/LUMI/LBLB'
432 for i
in range(0,len(iovdbsvc.Folders)):
433 if (iovdbsvc.Folders[i].
find(folder)>=0):
434 del iovdbsvc.Folders[i]
437 remove_folder =
False
438 for cil_Loadval
in cil.Load:
439 if folder
in cil_Loadval:
440 print(f
"Removing {cil_Loadval} from cil/Load")
443 if remove_folder: cil.Load.remove(cil_Loadval)
445 if flags.DQ.enableLumiAccess:
446 lbd = acc.getCondAlgo(
'LBDurationCondAlg')
447 lbd.LBLBFolderInputKey=
""
451 from DataQualityUtils.DQPostProcessingAlg
import DQPostProcessingAlg
452 ppa = DQPostProcessingAlg(
"DQPostProcessingAlg")
453 ppa.ExtraInputs = {(
'xAOD::EventInfo' ,
'StoreGateSvc+EventInfo' )}
455 ppa.OutputLevel = WARNING
456 if flags.Common.isOnline:
457 ppa.FileKey = ((flags.DQ.FileKey +
'/')
if not flags.DQ.FileKey.endswith(
'/')
458 else flags.DQ.FileKey)
460 acc.addEventAlgo(ppa, sequenceName=
'AthEndSeq')