6if __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")
109 print(
"Couldn not find IS Parameters - Set default flag")
126 FirstSample = x.firstSample
127 NSamples = x.nbOfSamples
129 print(
"RUN CONFIGURATION: format %i,run type %i"%(RunType,LArFormat))
136 print(
"RUN CONFIGURATION: ReadDigits =", ReadDigits)
139 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
140 flags = initConfigFlags()
141 from AthenaMonitoring.DQConfigFlags
import allSteeringFlagsOff
142 allSteeringFlagsOff(flags)
145 flags.Beam.Type=beamType
146 flags.Beam.BunchSpacing=25
147 print(
"RUN CONFIGURATION: Beamtype =",flags.Beam.Type)
149 flags.Common.isOnline=
True
150 flags.Input.Format=Format.BS
151 flags.Input.isMC=
False
155 flags.Exec.MaxEvents=-1
157 from AthenaConfiguration.AutoConfigOnlineRecoFlags
import autoConfigOnlineRecoFlags
158 autoConfigOnlineRecoFlags(flags,partition)
160 flags.IOVDb.DatabaseInstance=
"CONDBR2"
161 flags.IOVDb.GlobalTag=
"CONDBR2-ES1PA-2023-03"
163 flags.GeoModel.Layout=
"atlas"
164 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
165 flags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
168 flags.Input.RunNumbers=[runnumber]
170 flags.Input.LumiBlockNumbers=[0]
172 from AthenaConfiguration.DetectorConfigFlags
import setupDetectorFlags
173 setupDetectorFlags(flags, [
'LAr'], toggle_geometry=
True)
175 flags.Trigger.doID=
False
176 flags.Trigger.doMuon=
False
177 flags.Trigger.L1.doMuon=
False
178 flags.Trigger.L1.doTopo=
False
179 flags.Trigger.doHLT=
False
180 flags.Trigger.doLVL1=
False
181 flags.Trigger.Online.isPartition=
True
182 flags.Trigger.triggerConfig=
'DB'
183 flags.Trigger.DecisionMakerValidation.Execute=
False
184 flags.Trigger.enableL1CaloPhase1=
False
186 flags.DQ.doMonitoring=
True
187 flags.DQ.disableAtlasReadyFilter=
True
188 flags.DQ.useTrigger=
True
190 flags.DQ.Environment=
'online'
192 flags.LAr.doAlign=
False
193 flags.LAr.doHVCorr=
False
201 flags.LAr.ROD.forceIter=
True
203 flags.Calo.TopoCluster.doTopoClusterLocalCalib=
False
210 from LArMonitoring.LArMonConfigFlags
import createLArMonConfigFlags
211 return createLArMonConfigFlags()
213 flags.addFlagsCategory(
"LArMon", __monflags)
215 if STREAM==
"CosmicCalo" or STREAM==
"LArCellsEmpty":
216 flags.LArMon.doLArRawMonitorSignal=
True
218 if 'CaloMon' in CONFIG:
219 flags.DQ.enableLumiAccess=
False
221 flags.DQ.enableLumiAccess=
True
224 flags.Trigger.decodeHLT=
False
225 flags.DQ.useTrigger =
False
232 from AthenaConfiguration.ComponentFactory
import CompFactory
234 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
235 acc = MainServicesCfg(flags)
237 bytestream_conversion = CompFactory.ByteStreamCnvSvc()
238 acc.addService(bytestream_conversion, primary=
True)
240 from ByteStreamEmonSvc.EmonByteStreamConfig
import EmonByteStreamCfg
241 acc.merge(EmonByteStreamCfg(flags))
243 bytestream_input = acc.getService(
"ByteStreamInputSvc")
250 bytestream_input.Partition = partition
256 if partition ==
"ATLAS" or partition[:3] ==
"LAr":
257 bytestream_input.Key =
"dcm"
259 bytestream_input.Key =
"CompleteEvent"
261 bytestream_input.KeyCount = 15
262 bytestream_input.KeyCount = 150
263 bytestream_input.UpdatePeriod = 60
271 bytestream_input.ISServer =
'LArHistogramming'
279 bytestream_input.PublishName =
'%s-Test-%s'%(CONFIG,STREAM)
281 bytestream_input.PublishName =
'%s-Test-%s'%(CONFIG,
"NoTrigSel")
288 bytestream_input.ClearHistograms =
True
307 bytestream_input.Timeout = 3600000
315 if bytestream_input.Partition[:3] ==
"LAr":
316 bytestream_input.StreamType =
""
318 bytestream_input.LVL1Logic =
"Or"
319 bytestream_input.LVL1Origin =
"TAV"
320 bytestream_input.StreamType =
"physics"
321 bytestream_input.StreamLogic =
"And"
323 if STREAM==
"LArCellsEmpty":
324 bytestream_input.StreamType =
"calibration"
325 bytestream_input.StreamNames = [
'LArCellsEmpty']
327 bytestream_input.StreamNames = [
'Main']
328 if STREAM==
"CosmicCalo":
329 bytestream_input.StreamNames = [
'CosmicCalo']
331 bytestream_input.StreamNames = [
'L1Topo']
333 bytestream_input.StreamNames = [
'L1Calo']
334 if STREAM==
"express":
335 bytestream_input.StreamNames = [
'express']
336 bytestream_input.StreamType =
"express"
337 if STREAM==
"LArNoiseBurst":
338 bytestream_input.StreamType =
"calibration"
339 bytestream_input.StreamNames = [
'LArNoiseBurst']
340 if STREAM==
"Standby":
341 bytestream_input.StreamNames = [
'Standby']
342 if STREAM==
"ZeroBias":
343 bytestream_input.StreamNames = [
'ZeroBias']
344 if STREAM==
"MinBias":
345 bytestream_input.StreamNames = [
'MinBias']
346 if STREAM==
"Background":
347 bytestream_input.StreamNames = [
'Background']
348 if STREAM==
"05_Jets":
349 bytestream_input.StreamType =
"calibration"
350 bytestream_input.StreamNames = [
'DataScouting_05_Jets']
352 bytestream_input.StreamNames = [
'monitoring_random']
353 bytestream_input.StreamType =
"monitoring"
354 if STREAM==
"calibration":
355 bytestream_input.StreamType =
"calibration"
356 if "LArPEBDigitalTrigger" in STREAM:
357 bytestream_input.StreamType =
"calibration"
358 bytestream_input.StreamNames = [
'LArPEBDigitalTrigger']
359 if "EMPTY" in STREAM:
360 bytestream_input.LVL1Names=[
"L1_RD0_EMPTY",
"L1_RD0_LAR_EMPTY",
"L1_RD0_FIRSTEMPTY"]
361 elif "FILLED" in STREAM:
362 bytestream_input.LVL1Names=[
"L1_RD0_FILLED"]
363 elif "PHYS" in STREAM:
364 bytestream_input.LVL1Names=[
"L1_jJ500_LAR",
"L1_LAR-ZEE-eEM"]
368 print(
"DEBUG: bytestream_input.StreamNames:",bytestream_input.StreamNames)
371 bytestream_input.StreamType =
"physics"
372 bytestream_input.StreamLogic =
"Or"
374 bytestream_input.StreamNames = [
"Main",
"CosmicCalo",
"L1Topo",
"L1Calo",
"Standby",
"ZeroBias",
"Background",
"EnhancedBias",
"MinBias",
"LArCells",
"LArCellsEmpty",
"LArNoiseBurst",
"BphysDelayed",
"Late"]
382 bytestream_input.ExitOnPartitionShutdown =
False
390 bytestream_input.BufferSize = 10
399 event_selector = CompFactory.EventSelectorByteStream(
400 name=
'EventSelector',
401 ByteStreamInputSvc=bytestream_input.name,
403 acc.addService(event_selector)
404 acc.setAppProperty(
"EvtSel", event_selector.name)
406 event_persistency = CompFactory.EvtPersistencySvc(
407 name=
"EventPersistencySvc",
408 CnvServices=[bytestream_conversion.name])
409 acc.addService(event_persistency)
411 address_provider = CompFactory.ByteStreamAddressProviderSvc()
412 acc.addService(address_provider)
414 proxy = CompFactory.ProxyProviderSvc()
415 proxy.ProviderNames += [address_provider.name]
416 acc.addService(proxy)
418 from TriggerJobOpts.TriggerRecoConfig
import TriggerRecoCfg
419 acc.merge(TriggerRecoCfg(flags))
422 l1bsdec = acc.getEventAlgo(
"L1TriggerByteStreamDecoder")
423 l1bsdec.ByteStreamMetadataRHKey=
""
424 print(
"MaybeMissingROBs: ",l1bsdec.MaybeMissingROBs)
425 l1bsdec.MaybeMissingROBs += [0x770001, 0x7500ac, 0x7500ad, 0x7300a8, 0x7300a9, 0x7300aa, 0x7300ab]
427 from LArMonitoring.RecoPT_NewConfig
import LArMonitoringConfig
428 print(
'CONFIG ',CONFIG)
429 print(
'STREAM ',STREAM)
438 if "LArSCvsRawChannel" in CONFIG:
439 from LArMonitoring.RecoPT_Phase1NewConfig
import LArSCvsRawChannelMonAlgCfg
440 acc.merge(LArSCvsRawChannelMonAlgCfg(flags,STREAM))
442 elif CONFIG!=
"LArDTMon":
443 from LArMonitoring.RecoPT_NewConfig
import LArMonitoringConfig
444 acc.merge(LArMonitoringConfig(flags,CONFIG,STREAM,RunType))
447 from LArMonitoring.RecoPT_Phase1NewConfig
import LArDTMonitoringConfig
448 acc.merge(LArDTMonitoringConfig(flags,STREAM))
452 if RunType == 0
and CONFIG!=
"LArDTMon":
453 acc.getEventAlgo(
"LArRawDataReadingAlg").LArRawChannelKey=
""
456 cil=acc.getCondAlgo(
'CondInputLoader')
457 iovdbsvc=acc.getService(
'IOVDbSvc')
458 folder=
'/TRIGGER/LUMI/LBLB'
459 for i
in range(0,len(iovdbsvc.Folders)):
460 if (iovdbsvc.Folders[i].
find(folder)>=0):
461 del iovdbsvc.Folders[i]
464 remove_folder =
False
465 for cil_Loadval
in cil.Load:
466 if folder
in cil_Loadval:
467 print(f
"Removing {cil_Loadval} from cil/Load")
470 if remove_folder: cil.Load.remove(cil_Loadval)
472 if flags.DQ.enableLumiAccess:
473 lbd = acc.getCondAlgo(
'LBDurationCondAlg')
474 lbd.LBLBFolderInputKey=
""
479 from DataQualityUtils.DQPostProcessingAlg
import DQPostProcessingAlg
480 ppa = DQPostProcessingAlg(
"DQPostProcessingAlg")
481 ppa.ExtraInputs = {(
'xAOD::EventInfo' ,
'StoreGateSvc+EventInfo' )}
483 ppa.OutputLevel = WARNING
484 if flags.Common.isOnline:
485 ppa.FileKey = ((flags.DQ.FileKey +
'/')
if not flags.DQ.FileKey.endswith(
'/')
486 else flags.DQ.FileKey)
488 acc.addEventAlgo(ppa, sequenceName=
'AthEndSeq')
void print(char *figname, TCanvas *c1)
std::string find(const std::string &s)
return a remapped string