5 if __name__ ==
"__main__":
12 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
13 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
14 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
17 from InDetConfig.ConfigurationHelpers
import OnlyTrackingPreInclude
20 parser = argparse.ArgumentParser(description=
'Run HGTD reconstruction with ACTS')
21 parser.add_argument(
'--file_dir', type=str, required=
True, help=
'Path to directory with RDO files')
22 parser.add_argument(
'--Nfiles', type=int, default=-1, help=
'Number of files to process (-1 for all)')
23 parser.add_argument(
'--output_suffix', type=str, default=
'', help=
'Suffix to append to output files')
24 args = parser.parse_args()
27 file_pattern = f
"{args.file_dir}/RDO*.pool.root.1"
28 all_files =
sorted(glob.glob(file_pattern))
32 matching_files.append(f)
34 if args.Nfiles > 0
and len(matching_files) > args.Nfiles:
35 matching_files = matching_files[:args.Nfiles]
36 print(f
"Limiting to first {args.Nfiles} files as requested")
38 flags.Input.Files = matching_files
41 print(f
"Matched {len(matching_files)} files:")
42 for f
in matching_files:
45 flags.Exec.MaxEvents = -1
47 flags.Output.doWriteAOD =
True
48 flags.Output.AODFileName = f
"ActsHGTD_track_extension_test_AOD_{args.output_suffix}.root"
49 flags.Output.HISTFileName = f
"ActsHGTD_track_extension_HIST_{args.output_suffix}.root"
52 flags.Tracking.doTruth =
False
54 flags.Detector.EnableCalo =
False
55 flags.DQ.useTrigger =
False
56 flags.Acts.doMonitoring =
True
57 flags.HGTD.doMonitoring =
True
59 flags.Detector.EnableHGTD =
True
60 flags.Acts.doITkConversion=
False
61 flags.Tracking.doITkConversion=
False
63 flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint=
True
64 flags.Tracking.ITkMainPass.doAthenaToActsCluster=
True
65 from TrkConfig.TrkConfigFlags
import TrackingComponent
66 flags.Tracking.recoChain = [TrackingComponent.ActsLegacyChain]
67 flags.Acts.doRotCorrection =
False
74 acc.getService(
"MessageSvc").debugLimit = 100000000
75 acc.getService(
"MessageSvc").verboseLimit = 100000000
79 from ActsConfig.ActsClusterizationConfig
import ActsHgtdClusterizationAlgCfg
83 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
87 from ActsConfig.ActsHGTDTrackExtensionAlgConfig
import ActsHGTDTrackExtensionAlgConfig
92 acc.printConfig(withDetails =
True, summariseProps =
True)