3from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory
import CompFactory
7 name: str =
"ActsTruthGuidedProtoTrackCreatorTool",
8 **kwargs) -> ComponentAccumulator:
9 acc = ComponentAccumulator()
10 kwargs.setdefault(
'PRD_MultiTruthCollections', [
"PRD_MultiTruthITkPixel",
"PRD_MultiTruthITkStrip"])
11 acc.setPrivateTools(CompFactory.ActsTrk.TruthGuidedProtoTrackCreatorTool(name, **kwargs))
15 name: str =
"ActsProtoTrackCreationAndFitAlg",
16 **kwargs) -> ComponentAccumulator:
17 acc = ComponentAccumulator()
19 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
20 acc.merge(ITkPixelReadoutGeometryCfg(flags))
22 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
23 acc.merge(ITkStripReadoutGeometryCfg(flags))
25 kwargs.setdefault(
'PixelClusterContainer',
'ITkPixelClusters')
26 kwargs.setdefault(
'StripClusterContainer',
'ITkStripClusters')
27 kwargs.setdefault(
'ACTSTracksLocation',
'EFTestTracks')
29 if "TrackingGeometryTool" not in kwargs:
30 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
32 "TrackingGeometryTool",
33 acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)),
36 if 'ExtrapolationTool' not in kwargs:
37 from ActsConfig.ActsGeometryConfig
import ActsExtrapolationToolCfg
40 acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)),
43 if 'ActsFitter' not in kwargs:
44 from ActsConfig.ActsTrackFittingConfig
import ActsFitterCfg
45 kwargs.setdefault(
"ActsFitter", acc.popToolsAndMerge(ActsFitterCfg(flags,
49 if 'PatternBuilder' not in kwargs:
52 acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackCreationAndFitAlg(name,**kwargs),
57 name: str =
"ActsProtoTrackReportingAlg",
58 **kwargs) -> ComponentAccumulator:
59 acc = ComponentAccumulator()
60 kwargs.setdefault(
"ProtoTracksLocation",
"ProtoTracksCollection")
61 kwargs.setdefault(
"copyParametersFromFit",
True)
62 acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackReportingAlg(name,**kwargs),
66if __name__ ==
"__main__":
67 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
70 acc = ComponentAccumulator()
71 histSvc = CompFactory.THistSvc(Output= [
"{streamName} DATAFILE='{data_file}', OPT='RECREATE'".format(streamName=streamName, data_file = dataFile )])
72 acc.addService(histSvc, primary=
True)
76 ACTSProtoTrackChainTrackKey =
"ACTSProtoTrackChainTestTracks"
77 FinalProtoTrackChainTracksKey=
"TrkProtoTrackChainTestTracks"
78 FinalProtoTrackChainxAODTracksKey=
"xAODProtoTrackChainTestTracks"
80 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
81 flags = initConfigFlags()
84 flags.addFlag(
"outputNTupleFile",
"refits.root")
87 flags.Detector.EnableCalo =
False
91 flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint=
True
92 flags.Tracking.ITkMainPass.doAthenaToActsCluster=
True
94 flags.Acts.doRotCorrection =
False
97 from InDetTrackPerfMon.InDetTrackPerfMonFlags
import initializeIDTPMConfigFlags, initializeIDTPMTrkAnaConfigFlags
98 flags = initializeIDTPMConfigFlags(flags)
100 flags.PhysVal.IDTPM.plotsDefFileList =
"InDetTrackPerfMon/PlotsDefFileList_default.txt"
101 flags.PhysVal.IDTPM.plotsCommonValuesFile =
"InDetTrackPerfMon/PlotsDefCommonValues.json"
102 flags.PhysVal.OutputFileName = flags.PhysVal.IDTPM.outputFilePrefix +
'.HIST.root'
103 flags.Output.doWriteAOD_IDTPM =
True
104 flags.PhysVal.IDTPM.trkAnaCfgFile =
"InDetTrackPerfMon/EFTrkAnaConfig_example.json"
105 flags = initializeIDTPMTrkAnaConfigFlags(flags)
107 flags.PhysVal.IDTPM.TrkAnaEF.TrigTrkKey = f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"
108 flags.PhysVal.IDTPM.TrkAnaDoubleRatio.TrigTrkKey = f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"
110 flags.PhysVal.doExample =
False
113 if flags.Input.Files == [
'_ATHENA_GENERIC_INPUTFILE_NAME_']:
114 flags.Input.Files = [
"/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/RDO/ATLAS-P2-RUN4-04-00-00/mc21_14TeV.900498.PG_single_muonpm_Pt100_etaFlatnp0_43.recon.RDO.e8481_s4494_r16632/RDO.45451592._000021.pool.root.1"]
116 from AthenaConfiguration.TestDefaults
import defaultConditionsTags
117 flags.IOVDb.GlobalTag = defaultConditionsTags.RUN4_MC
119 flags.Debug.DumpEvtStore =
True
121 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.MainPass")
124 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
125 top_acc = MainServicesCfg(flags)
127 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
128 top_acc.merge(PoolReadCfg(flags))
132 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
133 top_acc.merge(GEN_AOD2xAODCfg(flags))
136 top_acc.merge(ITkTrackRecoCfg(flags))
139 top_acc.merge(
SetupHistSvc(flags,streamName=
"HmmRefits",dataFile=flags.outputNTupleFile))
143 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
144 top_acc.merge(ActsTruthAssociationAlgCfg(flags))
145 top_acc.merge(ActsTruthParticleHitCountAlgCfg(flags))
147 from ActsConfig.ActsTruthConfig
import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
148 acts_tracks=f
"{flags.Tracking.ActiveConfig.extension}Tracks" if not flags.Acts.doAmbiguityResolution
else f
"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
149 top_acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
150 name=f
"{acts_tracks}TrackToTruthAssociationAlg",
151 ACTSTracksLocation=ACTSProtoTrackChainTrackKey,
152 AssociationMapOut=acts_tracks+
"ToTruthParticleAssociation"))
154 top_acc.merge(ActsTrackFindingValidationAlgCfg(flags,
155 name=f
"{acts_tracks}TrackFindingValidationAlg",
156 TrackToTruthAssociationMap=acts_tracks+
"ToTruthParticleAssociation"
160 prefix = flags.Tracking.ActiveConfig.extension
161 from ActsConfig.ActsTrackFindingConfig
import ActsTrackToTrackParticleCnvAlgCfg
162 top_acc.merge(ActsTrackToTrackParticleCnvAlgCfg(flags, f
"{prefix}ResolvedProtoTrackToAltTrackParticleCnvAlg",
163 ACTSTracksLocation=[ACTSProtoTrackChainTrackKey,],
164 TrackParticlesOutKey=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
166 from ActsConfig.ActsTruthConfig
import ActsTrackParticleTruthDecorationAlgCfg
167 top_acc.merge(ActsTrackParticleTruthDecorationAlgCfg(flags,
168 f
"{prefix}ActsSandboxTrackParticleTruthDecorationAlg",
169 TrackToTruthAssociationMaps=[acts_tracks+
"ToTruthParticleAssociation"],
170 TrackParticleContainerName=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
173 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import AddDecoratorCfg
174 top_acc.merge(AddDecoratorCfg(flags))
177 from InDetTrackPerfMon.InDetTrackPerfMonConfig
import InDetTrackPerfMonCfg
178 top_acc.merge( InDetTrackPerfMonCfg(flags) )
180 top_acc.printConfig(withDetails=
True, summariseProps=
True)
185 top_acc.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
186 top_acc.printConfig(withDetails=
True, summariseProps=
True)
187 top_acc.store(open(
"ITkTrackRecoWithProtoTracks.pkl",
"wb"))
188 sc = top_acc.run(flags.Exec.MaxEvents)
SetupHistSvc(flags, streamName, dataFile)
ComponentAccumulator ActsProtoTrackReportingAlgCfg(flags, str name="ActsProtoTrackReportingAlg", **kwargs)
ComponentAccumulator ActsProtoTackCreationAndFitAlgCfg(flags, str name="ActsProtoTrackCreationAndFitAlg", **kwargs)
ComponentAccumulator ActsTruthGuidedProtoTrackCreatorToolCfg(flags, str name="ActsTruthGuidedProtoTrackCreatorTool", **kwargs)