6from AthenaConfiguration.ComponentFactory
import CompFactory
7from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
8from AthenaConfiguration.Enums
import Format
9from AthenaConfiguration.Enums
import LHCPeriod
11from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
12from OutputStreamAthenaPool.OutputStreamConfig
import addToESD
14from TriggerJobOpts.TriggerByteStreamConfig
import ByteStreamReadCfg
16from ZdcNtuple.ZdcNtupleConfig
import ZdcNtupleCfg
19from TrigConfigSvc.TriggerConfigAccess
import getL1MenuAccess
21from TrigDecisionTool.TrigDecisionToolConfig
import TrigDecisionToolCfg, getRun3NavigationContainerFromInput
22from AthenaConfiguration.TestDefaults
import defaultGeometryTags, defaultConditionsTags
24from AthenaCommon.Logging
import logging
25log = logging.getLogger(
"ZdcRecConfig")
27from CoolConvUtilities.ParticleTypeUtil
import getTypeForRun
32 projName = flags.Input.ProjectName
35 return defaultGeometryTags.RUN2_ZDC
37 return defaultGeometryTags.RUN2_ZDC
38 case
"data16_hip5TeV":
39 return defaultGeometryTags.RUN2_ZDC
40 case
"data16_hip8TeV":
41 return defaultGeometryTags.RUN2_ZDC
43 return defaultGeometryTags.RUN3_ZDC23
45 return defaultGeometryTags.RUN3_ZDC24
47 return defaultGeometryTags.RUN3_ZDC24
49 return defaultGeometryTags.RUN3_ZDC24
51 return defaultGeometryTags.RUN3_ZDC24
52 case
"data25_hipcomm":
53 return defaultGeometryTags.RUN3_ZDC24
55 return defaultGeometryTags.RUN3_ZDC24
57 run = flags.GeoModel.Run
58 if run == LHCPeriod.Run2:
59 return defaultGeometryTags.RUN2_ZDC
60 if run == LHCPeriod.Run3:
61 return defaultGeometryTags.RUN3_ZDC24
66 zdcConfigMap[
'data15_hi'] = {}
67 zdcConfigMap[
'data16_hip5TeV'] = {}
68 zdcConfigMap[
'data16_hip8TeV'] = {}
69 zdcConfigMap[
'data17_13TeV'] = {}
70 zdcConfigMap[
'data18_hi'] = {}
71 zdcConfigMap[
'data22_13p6TeV'] = {}
72 zdcConfigMap[
'data23_5p36TeV'] = {}
73 zdcConfigMap[
'data23_13p6TeV'] = {}
74 zdcConfigMap[
'data23_hi'] = {}
75 zdcConfigMap[
'data23_comm'] = {}
76 zdcConfigMap[
'data23_5p36TeV'] = {}
77 zdcConfigMap[
'data24_900GeV'] = {}
79 zdcConfigMap[
'data24_13p6TeV'] = {}
80 zdcConfigMap[
'data24_13p6TeV'][
'default'] =
'pp2024'
82 zdcConfigMap[
'data24_refcomm'] = {}
83 zdcConfigMap[
'data24_refcomm'][
'default'] =
'pp2024'
84 zdcConfigMap[
'data24_refcomm'][
'calibration_ZdcInjCalib'] =
'Injectorpp2024'
86 zdcConfigMap[
'data24_hicomm'] = {}
87 zdcConfigMap[
'data24_hicomm'][
'default'] =
'PbPb2024'
88 zdcConfigMap[
'data24_hicomm'][
'calibration_ZdcInjCalib'] =
'InjectorPbPb2024'
90 zdcConfigMap[
'data24_hi'] = {}
91 zdcConfigMap[
'data24_hi'][
'default']=
"PbPb2024"
92 zdcConfigMap[
'data24_hi'][
'calibration_ZdcInjCalib']=
"InjectorPbPb2024"
97 if flags.Input.RunNumbers:
98 run_num = flags.Input.RunNumbers[0]
99 aa = getTypeForRun(run_num)
101 aa_type = aa.getBeam1Type()
102 print(
'ZdcRecConfig::SetConfigTag(): Getting config for type %d' % (aa_type))
104 if flags.Input.ProjectName ==
"data25_comm" and flags.Input.TriggerStream ==
"calibration_ZDCCalib":
105 config =
"InjectorPbPb2024"
107 elif flags.Input.TriggerStream ==
"calibration_ZDCInjCalib" or flags.Input.TriggerStream ==
"calibration_DcmDummyProcessor":
108 config =
"InjectorpOOONeNe2025"
109 if flags.Input.ProjectName ==
"data24_5p36TeV" or flags.Input.ProjectName ==
"data24_900GeV" or flags.Input.ProjectName ==
"data24_13p6TeV" or flags.Input.ProjectName ==
"data24_refcomm":
110 config =
"Injectorpp2024"
111 if flags.Input.ProjectName
in [
"data24_hi",
"data24_hicomm"]:
112 config =
"InjectorPbPb2024"
113 if flags.Input.ProjectName
in [
"data25_hi",
"data25_hicomm",
"data25_hip"] :
114 if (aa_type == 8
or aa_type == 10):
115 config =
"InjectorpOOONeNe2025"
117 config =
"configZDC_PbPb2025.inj.v1.json"
122 run = flags.GeoModel.Run
123 if run == LHCPeriod.Run3:
125 config =
"MonteCarloPbPb2023"
126 elif flags.Input.ProjectName ==
"data22_13p6TeV":
128 elif flags.Input.ProjectName
in [
"data23_5p36TeV",
"data23_900GeV",
"data23_13p6TeV"]:
130 elif flags.Input.ProjectName
in [
"data23_hi",
"data23_comm"]:
132 elif flags.Input.ProjectName
in [
"data24_5p36TeV",
"data24_900GeV",
"data24_13p6TeV",
"data24_refcomm"]:
134 elif flags.Input.ProjectName
in [
"data24_hi",
"data24_hicomm"]:
135 config =
"configZDC_PbPb2024.v5.json"
136 elif flags.Input.ProjectName
in [
"data25_hipcomm"]:
138 elif flags.Input.ProjectName
in [
"data25_hip"]:
140 elif flags.Input.ProjectName
in [
"data25_hi",
"data25_hicomm"]:
141 if (aa_type == 8
or aa_type == 10):
142 config =
"OONeNe2025"
144 config =
"configZDC_PbPb2025.v1.json"
145 elif flags.Input.ProjectName
in [
"data26_comm",
"data26_cos",
"data26_900GeV",
"data26_13p6TeV"]:
146 config =
"configZDC_PbPb2025.v1.json"
148 elif run == LHCPeriod.Run2:
149 if flags.Input.ProjectName ==
"data15_hi":
151 elif flags.Input.ProjectName ==
"data17_13TeV":
153 elif flags.Input.ProjectName ==
"data16_hip5TeV":
155 elif flags.Input.ProjectName ==
"data16_hip8TeV":
157 config =
"configZDC_pPb2016.v1.json"
159 config =
"configZDC_Pbp2016.v1.json"
160 elif flags.Input.ProjectName ==
"data18_hi":
167 '''set generic flags needed for ZDC reconstruction that are independent of stream type
168 Also fills flags from input arguments'''
170 flags.Scheduler.CheckDependencies =
True
171 flags.Scheduler.ShowDataDeps =
True
172 flags.Scheduler.ShowDataFlow =
True
173 flags.Scheduler.ShowControlFlow =
True
174 flags.Scheduler.EnableVerboseViews =
True
176 flags.Detector.GeometryZDC=
True
177 flags.Detector.GeometryAFP=
False
178 flags.Detector.GeometryALFA=
False
179 flags.Detector.GeometryLucid=
False
180 flags.Detector.GeometryMDT=
False
181 flags.Detector.GeometryMM=
False
182 flags.Detector.GeometryMuon=
False
184 flags.Trigger.decodeHLT=
False
185 flags.Trigger.enableL1MuonPhase1=
False
186 flags.Trigger.L1.doMuon=
False
187 flags.Trigger.L1.doCalo=
False
188 flags.Trigger.L1.doTopo=
False
194 parser = flags.getArgumentParser()
195 parser.add_argument(
'--runInjForStandaloneData',default=
"Inj",help=
"indicate if we run inj/LED reconstruction for standalone data: inj (default) --> run injected-pulse reconstruction for injector-pulse events; LED --> run LED reconstruction for LED events")
196 flags.fillFromArgs(parser=parser)
200 '''Function that checks on data type from triggerstream tag
201 and sets run-type-and-year-dependent settings
202 Returns: a tuple of the following four values
203 isLED - bool, true if running on LED data
204 isInj - bool, true if running on Inj data
205 isCalib - bool, true if running on Calib data
206 pn - string, project name such as data24_hi
209 isComm = (flags.Input.ProjectName ==
"data25_comm" and flags.Input.TriggerStream ==
"calibration_ZDCCalib")
210 isLED = (flags.Input.TriggerStream ==
"calibration_ZDCLEDCalib")
211 isInj = (flags.Input.TriggerStream ==
"calibration_ZDCInjCalib" or isComm)
212 isCalib = (flags.Input.TriggerStream
in [
"calibration_ZDCCalib",
"calibration_zdcCalib"]
or "physics_" in flags.Input.TriggerStream
or flags.Input.TriggerStream ==
"express_express" and not isComm)
214 if flags.Input.TriggerStream ==
"calibration_DcmDummyProcessor":
215 runInjForStandaloneDataArgValid =
False
217 if flags.hasFlag(
"runInjForStandaloneData"):
218 if flags.runInjForStandaloneData.lower() ==
"inj":
220 runInjForStandaloneDataArgValid =
True
221 elif flags.runInjForStandaloneData.lower() ==
"led":
223 runInjForStandaloneDataArgValid =
True
225 if not runInjForStandaloneDataArgValid:
226 log.warning(
"runInjForStandaloneData is either not a defined flag or has invalid value (value must be Inj / LED, case insensitive).")
227 log.warning(
"Running nominal reconstruction (injector-pulse) by default for standalone data")
228 log.warning(
"Could lead to undesired behavior if pulsing LED in standalone mode")
232 log.info(
'ZdcRecConfig: Running LED data!')
234 log.info(
'ZdcRecConfig: Running Injected pulse data!')
236 log.info(
'ZdcRecConfig: Running ZDC calibration data!')
238 log.info(
'ZdcRecConfig: Running over MC Samples')
239 flags.Input.ProjectName =
"data23_hi"
240 flags.Reco.EnableTrigger =
False
243 pn = flags.Input.ProjectName
245 raise ValueError(
'Unknown project name')
247 if isLED
or isInj
or pn ==
'data_test':
248 flags.Trigger.EDMVersion=3
249 flags.GeoModel.Run = LHCPeriod.Run3
250 flags.IOVDb.GlobalTag=defaultConditionsTags.RUN3_DATA
252 year = int(pn.split(
'_')[0].
split(
'data')[1])
254 flags.Trigger.EDMVersion=2
255 flags.GeoModel.Run = LHCPeriod.Run2
256 flags.IOVDb.GlobalTag=defaultConditionsTags.RUN2_DATA
258 flags.Trigger.EDMVersion=3
259 flags.GeoModel.Run = LHCPeriod.Run3
260 flags.IOVDb.GlobalTag=defaultConditionsTags.RUN3_DATA
263 log.info(
'ZdcRecConfig: Overriding MC run to be Run 3!')
264 flags.GeoModel.Run = LHCPeriod.Run3
267 or flags.Input.TriggerStream ==
"calibration_DcmDummyProcessor"
268 or pn ==
"data22_13p6TeV"):
269 flags.Detector.EnableZDC_RPD =
False
271 if flags.Input.TriggerStream ==
"calibration_DcmDummyProcessor":
272 flags.DQ.useTrigger =
False
273 flags.DQ.triggerDataAvailable =
False
277 return isLED, isInj, isCalib, pn
282 acc = ComponentAccumulator()
285 if flags.Input.Format
is Format.BS:
286 ZDC_ItemList.append(
"xAOD::ZdcModuleContainer#ZdcModules")
287 ZDC_ItemList.append(
"xAOD::ZdcModuleAuxContainer#ZdcModulesAux.")
288 ZDC_ItemList.append(
"xAOD::ZdcModuleContainer#ZdcSums")
289 ZDC_ItemList.append(
"xAOD::ZdcModuleAuxContainer#ZdcSumsAux.")
291 acc.merge(addToESD(flags,ZDC_ItemList))
292 acc.merge(addToAOD(flags,ZDC_ItemList))
294 if flags.Output.doWriteAOD:
295 from xAODMetaDataCnv.InfileMetaDataConfig
import SetupMetaDataForStreamCfg
296 acc.merge(SetupMetaDataForStreamCfg(flags,streamName=
"AOD"))
301def ZdcAnalysisToolCfg(flags, run, config="PbPb2023", DoCalib=False, DoFADCCorr=False, DoNonLinCorr=False, DoTimeCalib=False, DoTrigEff=False, ForceCalibRun=-1, ForceCalibLB=814, AuxSuffix=""):
302 acc = ComponentAccumulator()
304 log.info(
'ZdcAnalysisToolCfg: setting up ZdcAnalysisTool with config='+config)
308 if (config[-5:]==
'.json'):
311 log.info(
'ZdcAnalysisToolCfg: setting up with JSON file '+jsonFile)
313 acc.setPrivateTools(CompFactory.ZDC.ZdcAnalysisTool(
314 name =
'ZdcAnalysisTool'+config,
315 Configuration = config,
317 DoFADCCorr = DoFADCCorr,
318 DoFADCCorrPerSample =
True,
319 DoNonLinCorr = DoNonLinCorr,
320 DoTimeCalib = DoTimeCalib,
321 DoTrigEff = DoTrigEff,
322 ForceCalibRun = ForceCalibRun,
323 ForceCalibLB = ForceCalibLB,
324 AuxSuffix = AuxSuffix,
325 JSONConfigurationFile=jsonFile,
327 CombineDelay =
True if flags.Input.ProjectName ==
"data16_hip8TeV" else False))
331 acc = ComponentAccumulator()
333 log.info(
'ZdcAnalysisToolCfg: setting up ZdcAnalysisTool with config='+config)
334 acc.setPrivateTools(CompFactory.ZDC.ZdcLEDAnalysisTool(name =
'ZdcLEDAnalysisTool'+config,
335 Configuration = config,
336 DoFADCCorr = DoFADCCorr))
341 acc = ComponentAccumulator()
343 acc.merge(TrigDecisionToolCfg(flags))
345 trigValTool = CompFactory.ZDC.ZdcTrigValidTool(
346 name =
'ZdcTrigValTool',
349 filepath_LUT =
'TrigT1ZDC/zdc_json_PbPb5.36TeV_2023.json')
351 trigValTool.TrigDecisionTool = acc.getPublicTool(
'TrigDecisionTool')
353 trigValTool.triggerList = [c
for c
in getL1MenuAccess(flags)
if 'L1_ZDC_BIT' in c]
355 acc.setPrivateTools(trigValTool)
360 acc = ComponentAccumulator()
362 CompFactory.ZDC.RPDAnalysisTool(
363 name=
"RPDAnalysisTool",
364 Configuration=config,
365 AuxSuffix = AuxSuffix
371 acc = ComponentAccumulator()
373 CompFactory.ZDC.RpdSubtractCentroidTool(
374 name=
"RpdSubtractCentroidTool",
375 Configuration=config,
376 AuxSuffix = AuxSuffix
382 acc = ComponentAccumulator()
384 CompFactory.ZDC.LISAnalysisTool(
385 name=
"LISAnalysisTool",
386 Configuration=config,
394 acc = ComponentAccumulator()
395 LisNtuple = CompFactory.LisNtuple(
"LisNtuple")
396 LisNtuple.enableOutputTree =
True
397 LisNtuple.lisInj = lisInj
398 LisNtuple.lisLED = lisLED
399 acc.addEventAlgo(LisNtuple)
400 acc.addService(CompFactory.THistSvc(Output = [
"ANALYSIS DATAFILE='NTUP.root' OPT='RECREATE'"]))
404 acc = ComponentAccumulator()
406 log.info (
'ZdcRecConfig.py: Running with config tag%s', config)
414 if flags.Input.ProjectName ==
"data15_hi":
418 elif flags.Input.ProjectName ==
"data17_13TeV":
422 elif flags.Input.ProjectName ==
"data16_hip5TeV":
426 elif flags.Input.ProjectName ==
"data16_hip8TeV":
430 elif flags.Input.ProjectName ==
"data18_hi":
435 acc.merge(ByteStreamReadCfg(flags, type_names=[
'xAOD::TriggerTowerContainer/ZdcTriggerTowers',
436 'xAOD::TriggerTowerAuxContainer/ZdcTriggerTowersAux.']))
438 acc.addEventAlgo(CompFactory.ZdcByteStreamRawDataV2())
439 acc.addEventAlgo(CompFactory.ZdcRecV3Decode())
441 anaTool = acc.popToolsAndMerge(
ZdcAnalysisToolCfg(flags,2,config,doCalib,doFADCCorr,doNonLinCorr,doTimeCalib,doTrigEff))
443 acc.addEventAlgo(CompFactory.ZdcRecV3(
"ZdcRecV3",ZdcAnalysisTool=anaTool))
449 acc = ComponentAccumulator()
451 log.info (
'ZdcRecConfig.py: Running with config tag %s', config)
462 if flags.Input.TriggerStream !=
"calibration_ZDCInjCalib" and flags.Input.TriggerStream !=
"calibration_DcmDummyProcessor":
463 if flags.Common.isOnline:
466 if flags.Input.ProjectName ==
"data24_5p36TeV" or flags.Input.ProjectName ==
"data24_refcomm":
467 ForceCalibRun = 488239
469 elif flags.Input.ProjectName ==
"data24_hi" or flags.Input.ProjectName ==
"data24_hicomm":
470 ForceCalibRun = 488980
475 elif flags.Input.ProjectName ==
"data23_comm":
477 elif flags.Input.ProjectName ==
"data23_hi":
480 elif flags.Input.ProjectName ==
"data24_hi":
485 elif flags.Input.ProjectName
in [
"data25_hip",
"data25_hipcomm"]:
490 elif flags.Input.ProjectName
in [
"data25_hicomm"]:
495 elif flags.Input.ProjectName
in [
"data25_hi"]:
505 doRPD = flags.Detector.EnableZDC_RPD
507 log.info(
'ZdcRecRun3Cfg: doCalib = '+str(doCalib)+
' for project '+flags.Input.ProjectName)
508 log.info(
'RPD enable flag is '+str(doRPD))
511 if "ZdcModules" in flags.Input.Collections:
512 log.info(
'ZdcRecConfig.py: found ZdcModules in input, reprocessing mode set')
516 anaTool = acc.popToolsAndMerge(
ZdcAnalysisToolCfg(flags,3,config,doCalib,doFADCCorr,doNonLinCorr,doTimeCalib,doTrigEff,ForceCalibRun,ForceCalibLB, AuxSuffix))
523 if flags.Input.isMC :
526 zdcTools += [rpdAnaTool,centroidTool]
527 elif flags.Trigger.doZDC :
529 elif flags.Input.TriggerStream ==
"calibration_ZDCInjCalib" or flags.Input.TriggerStream ==
"calibration_DcmDummyProcessor":
531 elif flags.Common.isOnline:
534 zdcTools += [rpdAnaTool,centroidTool]
538 zdcTools += [rpdAnaTool,centroidTool]
541 zdcTools = [anaTool,trigTool]
543 zdcTools += [rpdAnaTool,centroidTool]
545 if flags.Input.Format
is Format.BS:
546 acc.addEventAlgo(CompFactory.ZdcByteStreamLucrodData())
547 acc.addEventAlgo(CompFactory.ZdcRecRun3Decode())
550 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
551 acc.merge(PoolReadCfg(flags))
552 acc.addEventAlgo(CompFactory.ZdcMCTruthAlg())
554 zdcAlg = CompFactory.ZdcRecRun3(
"ZdcRecRun3",ZdcAnalysisTools=zdcTools)
555 acc.addEventAlgo(zdcAlg, primary=
True)
561 acc = ComponentAccumulator()
562 run = flags.GeoModel.Run
564 if run == LHCPeriod.Run2:
565 log.info (
'ZdcRecConfig.py: setting up Run 2 ntuple!')
567 elif run == LHCPeriod.Run3:
568 log.info (
'ZdcRecConfig.py: setting up Run 3 ntuples!')
571 log.info (
'ZdcRecConfig.py: setting up no ntuple!')
577 acc = ComponentAccumulator()
578 acc.merge(ZdcNtupleCfg(flags,
581 enableTrigger =
False,
582 enableOutputSamples =
True,
583 enableOutputTree =
True,
584 writeOnlyTriggers =
False,
588 acc.addService(CompFactory.THistSvc(Output = [
"ANALYSIS DATAFILE='NTUP.root' OPT='RECREATE'"]))
593 acc = ComponentAccumulator()
594 acc.merge(ZdcNtupleCfg(flags,
600 isMC = flags.Input.isMC,
601 enableTrigger =
not flags.Input.isMC,
602 enableOutputSamples =
True,
603 enableOutputTree =
True,
604 writeOnlyTriggers =
False,
605 enableRPD = flags.Detector.EnableZDC_RPD,
606 enableCentroid = flags.Detector.EnableZDC_RPD,
610 acc.addService(CompFactory.THistSvc(Output = [
"ANALYSIS DATAFILE='NTUP.root' OPT='RECREATE'"]))
616 acc = ComponentAccumulator()
617 acc.merge(ZdcNtupleCfg(flags,
624 enableTrigger =
False,
625 enableOutputSamples =
True,
626 enableOutputTree =
True,
627 writeOnlyTriggers =
False,
629 enableCentroid =
False,
633 acc.addService(CompFactory.THistSvc(Output = [
"ANALYSIS DATAFILE='NTUP.root' OPT='RECREATE'"]))
638 acc = ComponentAccumulator()
639 zdcLEDNtuple = CompFactory.ZdcLEDNtuple(
"ZdcLEDNtuple")
640 zdcLEDNtuple.enableOutputTree =
True
641 acc.addEventAlgo(zdcLEDNtuple)
642 acc.addService(CompFactory.THistSvc(Output = [
"ANALYSIS DATAFILE='NTUP.root' OPT='RECREATE'"]))
647 acc = ComponentAccumulator()
649 if flags.Input.Format
is Format.BS:
650 run = flags.GeoModel.Run
653 log.info (
"ZdcRecConfig.py: run = "+run.name)
655 config =
'ppPbPb2023'
659 if flags.Input.ProjectName
in [
"data24_hi",
"data25_hip",
"data25_hi"]:
662 acc.addEventAlgo(CompFactory.ZdcByteStreamLucrodData())
663 acc.addEventAlgo(CompFactory.ZdcRecRun3Decode())
668 zdcTools += [anaTool]
671 zdcAlg = CompFactory.ZdcRecRun3(
"ZdcRecRun3",DAQMode=2, ForcedEventType=2, ZdcAnalysisTools=zdcTools)
672 acc.addEventAlgo(zdcAlg, primary=
True)
674 if flags.Output.doWriteESD
or flags.Output.doWriteAOD:
681 acc = ComponentAccumulator()
684 tdmv = CompFactory.TrigDec.TrigDecisionMakerValidator()
685 tdmv.errorOnFailure =
True
686 tdmv.TrigDecisionTool = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
687 tdmv.NavigationKey = getRun3NavigationContainerFromInput(flags)
688 acc.addEventAlgo( tdmv )
694 acc = ComponentAccumulator()
696 run = flags.GeoModel.Run
699 log.info (
"LisRecConfig.py: run = "+run.name)
704 if flags.Input.ProjectName
in [
"data26_900GeV",
"data26_13p6TeV"]:
706 elif flags.Input.ProjectName
in [
"data26_comm",
"data26_cos",
"data_test"]:
711 isLED = (flags.Input.TriggerStream ==
"calibration_ZDCLEDCalib")
716 if flags.Input.Format
is Format.BS:
717 acc.merge(ByteStreamReadCfg(flags))
718 acc.addEventAlgo(CompFactory.ZdcByteStreamLucrodData())
719 acc.addEventAlgo(CompFactory.ZdcRecRun3Decode( DecodeRunMode = DecodeRunMode ))
721 evtType = 2
if isLED
else 1
722 DAQMode = 2
if isLED
else 3
724 zdcAlg = CompFactory.ZdcRecRun3(
"ZdcRecRun3",DAQMode=DAQMode, ForcedEventType=evtType, ZdcAnalysisTools=zdcTools)
725 acc.addEventAlgo(zdcAlg, primary=
True)
727 if flags.Output.doWriteESD
or flags.Output.doWriteAOD:
733 """Configure Zdc analysis alg
734 Additional arguments are useful in calibration runs
737 acc = ComponentAccumulator()
739 run = flags.GeoModel.Run
742 log.info (
"ZdcRecConfig.py: run = "+run.name)
744 if run == LHCPeriod.Run2:
745 log.info (
'ZdcRecConfig.py: setting up Run 2!')
747 elif run == LHCPeriod.Run3:
748 log.info (
'ZdcRecConfig.py: setting up Run 3!')
751 log.warning (
'ZdcRecConfig.py: setting up nothing (problem)!')
753 if flags.Output.doWriteESD
or flags.Output.doWriteAOD:
759if __name__ ==
'__main__':
761 """ This is selftest & ZDC calibration transform at the same time"""
767 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
768 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
770 flags = initConfigFlags()
774 ProjectNamesLIS = [
"data26_cos",
"data26_900GeV",
"data26_13p6TeV",
"data26_comm",
"data_test"]
778 flags.Output.AODFileName=
"AOD.pool.root"
779 flags.Output.HISTFileName=
"HIST.root"
780 flags.Output.doWriteAOD=
True
784 log.debug(
'ZdcRecConfig: Running on project name '+pn +
' with trigger stream '+flags.Input.TriggerStream +
' isLED: ' + str(isLED) +
' isInj: ' + str(isInj) +
' isCalib: ' + str(isCalib))
788 acc=MainServicesCfg(flags)
790 from AtlasGeoModel.ForDetGeoModelConfig
import ForDetGeometryCfg
791 acc.merge(ForDetGeometryCfg(flags))
793 if not flags.Input.isMC
and pn !=
'data_test':
794 from TriggerJobOpts.TriggerRecoConfig
import TriggerRecoCfgData
795 acc.merge(TriggerRecoCfgData(flags))
797 if pn
not in ProjectNamesLIS:
805 if not flags.Input.isMC:
807 from ZdcMonitoring.ZdcLEDMonitorAlgorithm
import ZdcLEDMonitoringConfig
808 acc.merge(ZdcLEDMonitoringConfig(flags,
'ppPbPb2023'))
812 if (flags.GeoModel.Run==LHCPeriod.Run3):
813 from ZdcMonitoring.ZdcMonitorAlgorithm
import ZdcMonitoringConfig
814 acc.merge(ZdcMonitoringConfig(flags))
816 if flags.Input.TriggerStream !=
"calibration_DcmDummyProcessor":
820 from ZdcMonitoring.ZdcMonitorAlgorithm
import ZdcMonitoringConfig
821 zdcMonitorAcc = ZdcMonitoringConfig(flags)
822 acc.merge(zdcMonitorAcc)
832 acc.printConfig(withDetails=
True)
835 with open(
"config.pkl",
"wb")
as f:
839 sys.exit(status.isFailure())
void print(char *figname, TCanvas *c1)
std::vector< std::string > split(const std::string &s, const std::string &t=":")
ZdcNtupleRun3Cfg(flags, **kwargs)
ZdcTrigValToolCfg(flags, config='PbPb2023')
ZdcNtupleRun2Cfg(flags, **kwargs)
ZdcInjNtupleCfg(flags, **kwargs)
ZdcAnalysisToolCfg(flags, run, config="PbPb2023", DoCalib=False, DoFADCCorr=False, DoNonLinCorr=False, DoTimeCalib=False, DoTrigEff=False, ForceCalibRun=-1, ForceCalibLB=814, AuxSuffix="")
ZdcLEDAnalysisToolCfg(flags, config='ppPbPb2023', DoFADCCorr=True)
RPDAnalysisToolCfg(flags, str config, AuxSuffix="")
RpdSubtractCentroidToolCfg(flags, str config, AuxSuffix="")
ZdcGenericFlagSetting(flags)
ZdcStreamDependentFlagSetting(flags)
ZdcLisNtupleCfg(flags, lisInj=False, lisLED=False)
LISAnalysisToolCfg(flags, str config)