6 from AthenaConfiguration.ComponentFactory
import CompFactory
7 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
9 from ZdcNtuple.ZdcNtupleConfig
import ZdcNtupleCfg
10 from ZdcRecConfig
import ZdcGenericFlagSetting, ZdcStreamDependentFlagSetting
14 """additional flag settings in possible scenarios we may need FCal info"""
18 IsPhysicsStream =
"physics_" in flags.Input.TriggerStream
or flags.Input.TriggerStream ==
"express_express"
20 if flags.Input.TriggerStream ==
"calibration_ZDCCalib" or IsPhysicsStream:
21 flags.Trigger.L1.doCTP =
True
24 flags.Trigger.L1.doCaloInputs =
True
26 flags.Detector.EnableCalo = IsPhysicsStream
29 """Calorimeter and HIGlobal reconstruction config for ZDC-FCal correlations"""
33 from CaloRec.CaloRecoConfig
import CaloRecoCfg
35 from HIGlobal.HIGlobalConfig
import HIGlobalRecCfg
42 """ZDC Ntuple configuration for run3 data potential with Calorimeter-info retrieving & writing
43 Depends on the flag Detector.EnableCalo to be correctly set
44 Retrieves and writes calorimeter info in ZdcNTuple if and only if Detector.EnableCalo is true"""
49 zdcOnly =
not flags.Detector.EnableCalo,
53 isMC = flags.Input.isMC,
54 enableTrigger =
not flags.Input.isMC,
55 enableOutputSamples =
True,
56 enableOutputTree =
True,
57 writeOnlyTriggers =
False,
58 enableRPD = flags.Detector.EnableZDC_RPD,
59 enableRPDAmp = flags.Detector.EnableZDC_RPD,
60 enableCentroid = flags.Detector.EnableZDC_RPD,
61 enableCalo = flags.Detector.EnableCalo,
64 ZdcNtupleAcc.getEventAlgo(
'ZdcNtuple').OutputLevel = outputlevel
65 acc.merge(ZdcNtupleAcc)
67 acc.addService(CompFactory.THistSvc(Output = [
"ANALYSIS DATAFILE='NTUP.root' OPT='RECREATE'"]))
71 if __name__ ==
'__main__':
74 start_time = time.time()
76 """ This is selftest & ZDC calibration transform at the same time"""
77 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
78 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
86 flags.Output.AODFileName=
"AOD.pool.root"
87 flags.Output.HISTFileName=
"HIST.root"
88 flags.Output.doWriteAOD=
True
92 from ZdcRecConfig
import SetConfigTag
96 flags.Trigger.decodeHLT = (
'pO' in config
or 'OO' in config)
and flags.DQ.useTrigger
and flags.Input.TriggerStream ==
'physics_MinBias'
99 flags.dump(evaluate=
True)
103 from AtlasGeoModel.ForDetGeoModelConfig
import ForDetGeometryCfg
106 if not flags.Input.isMC
and pn !=
'data_test':
107 from TriggerJobOpts.TriggerRecoConfig
import TriggerRecoCfgData
111 from ZdcRecConfig
import ZdcLEDRecCfg
114 from ZdcRecConfig
import ZdcRecCfg
117 from ZdcRecConfig
import ZdcRecCfg
120 if (
"physics_" in flags.Input.TriggerStream
or flags.Input.TriggerStream ==
"express_express"):
123 if not flags.Input.isMC:
125 from ZdcMonitoring.ZdcLEDMonitorAlgorithm
import ZdcLEDMonitoringConfig
127 from ZdcRecConfig
import ZdcLEDNtupleCfg
131 from ZdcMonitoring.ZdcMonitorAlgorithm
import ZdcMonitoringConfig
133 acc.merge(zdcMonitorAcc)
137 from ZdcMonitoring.ZdcMonitorAlgorithm
import ZdcMonitoringConfig
139 acc.merge(zdcMonitorAcc)
140 from ZdcRecConfig
import ZdcInjNtupleCfg
143 from ZdcRecConfig
import ZdcRecCfg, ZdcNtupleLocalCfg
147 acc.printConfig(withDetails=
True)
150 with open(
"config.pkl",
"wb")
as f:
153 if status.isFailure():
157 end_time = time.time()
161 n_events =
int(flags.Exec.MaxEvents)
if 'flags' in locals()
and hasattr(flags.Exec,
"MaxEvents")
else -1
163 print(f
"Total time: {end_time - start_time:.2f} seconds")
165 print(f
"Average time per event: {(end_time - start_time)/n_events:.4f} seconds/event")
167 print(
"Number of events unknown, cannot compute per-event timing.")