3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
7 name: str =
"ActsTruthGuidedProtoTrackCreatorTool",
8 **kwargs) -> 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:
19 from ActsConfig.ActsGeometryConfig
import ActsDetectorElementToActsGeometryIdMappingAlgCfg
21 kwargs.setdefault(
'DetectorElementToActsGeometryIdMapKey',
'DetectorElementToActsGeometryIdMap')
23 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
26 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
29 kwargs.setdefault(
'PixelClusterContainer',
'ITkPixelClusters')
30 kwargs.setdefault(
'StripClusterContainer',
'ITkStripClusters')
31 kwargs.setdefault(
'ACTSTracksLocation',
'EFTestTracks')
33 if "TrackingGeometryTool" not in kwargs:
34 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
36 "TrackingGeometryTool",
40 if 'ExtrapolationTool' not in kwargs:
41 from ActsConfig.ActsGeometryConfig
import ActsExtrapolationToolCfg
47 if 'ActsFitter' not in kwargs:
48 from ActsConfig.ActsTrackFittingConfig
import ActsFitterCfg
49 kwargs.setdefault(
"ActsFitter", acc.popToolsAndMerge(
ActsFitterCfg(flags,
53 if 'PatternBuilder' not in kwargs:
56 acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackCreationAndFitAlg(name,**kwargs),
61 name: str =
"ActsProtoTrackReportingAlg",
62 **kwargs) -> ComponentAccumulator:
64 kwargs.setdefault(
"ProtoTracksLocation",
"ProtoTracksCollection")
65 kwargs.setdefault(
"copyParametersFromFit",
True)
66 acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackReportingAlg(name,**kwargs),
70 if __name__ ==
"__main__":
71 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
75 histSvc = CompFactory.THistSvc(Output= [
"{streamName} DATAFILE='{data_file}', OPT='RECREATE'".
format(streamName=streamName, data_file = dataFile )])
76 acc.addService(histSvc, primary=
True)
80 ACTSProtoTrackChainTrackKey =
"ACTSProtoTrackChainTestTracks"
81 FinalProtoTrackChainTracksKey=
"TrkProtoTrackChainTestTracks"
82 FinalProtoTrackChainxAODTracksKey=
"xAODProtoTrackChainTestTracks"
84 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
88 flags.addFlag(
"outputNTupleFile",
"refits.root")
91 flags.Detector.EnableCalo =
False
95 flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint=
True
96 flags.Tracking.ITkMainPass.doAthenaToActsCluster=
True
98 flags.Acts.doRotCorrection =
False
101 from InDetTrackPerfMon.InDetTrackPerfMonFlags
import initializeIDTPMConfigFlags, initializeIDTPMTrkAnaConfigFlags
104 flags.PhysVal.IDTPM.plotsDefFileList =
"InDetTrackPerfMon/PlotsDefFileList_default.txt"
105 flags.PhysVal.IDTPM.plotsCommonValuesFile =
"InDetTrackPerfMon/PlotsDefCommonValues.json"
106 flags.PhysVal.OutputFileName = flags.PhysVal.IDTPM.outputFilePrefix +
'.HIST.root'
107 flags.Output.doWriteAOD_IDTPM =
True
108 flags.PhysVal.IDTPM.trkAnaCfgFile =
"InDetTrackPerfMon/EFTrkAnaConfig_example.json"
111 flags.PhysVal.IDTPM.TrkAnaEF.TrigTrkKey = f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"
112 flags.PhysVal.IDTPM.TrkAnaDoubleRatio.TrigTrkKey = f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"
114 flags.PhysVal.doExample =
False
117 if flags.Input.Files == [
'_ATHENA_GENERIC_INPUTFILE_NAME_']:
118 flags.Input.Files = [
"/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/PhaseIIUpgrade/RDO/ATLAS-P2-RUN4-03-00-00/mc21_14TeV.900498.PG_single_muonpm_Pt100_etaFlatnp0_43.recon.RDO.e8481_s4149_r14697/RDO.33675668._000016.pool.root.1"]
120 flags.Debug.DumpEvtStore =
True
122 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.MainPass")
125 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
128 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
133 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
140 top_acc.merge(
SetupHistSvc(flags,streamName=
"HmmRefits",dataFile=flags.outputNTupleFile))
144 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
148 from ActsConfig.ActsTruthConfig
import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
149 acts_tracks=f
"{flags.Tracking.ActiveConfig.extension}Tracks" if not flags.Acts.doAmbiguityResolution
else f
"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
151 name=f
"{acts_tracks}TrackToTruthAssociationAlg",
152 ACTSTracksLocation=ACTSProtoTrackChainTrackKey,
153 AssociationMapOut=acts_tracks+
"ToTruthParticleAssociation"))
156 name=f
"{acts_tracks}TrackFindingValidationAlg",
157 TrackToTruthAssociationMap=acts_tracks+
"ToTruthParticleAssociation"
161 prefix = flags.Tracking.ActiveConfig.extension
162 from ActsConfig.ActsTrackFindingConfig
import ActsTrackToTrackParticleCnvAlgCfg
164 ACTSTracksLocation=[ACTSProtoTrackChainTrackKey,],
165 TrackParticlesOutKey=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
167 from ActsConfig.ActsTruthConfig
import ActsTrackParticleTruthDecorationAlgCfg
169 f
"{prefix}ActsSandboxTrackParticleTruthDecorationAlg",
170 TrackToTruthAssociationMaps=[acts_tracks+
"ToTruthParticleAssociation"],
171 TrackParticleContainerName=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
174 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import AddDecoratorCfg
178 from InDetTrackPerfMon.InDetTrackPerfMonConfig
import InDetTrackPerfMonCfg
181 top_acc.printConfig(withDetails=
True, summariseProps=
True)
186 top_acc.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
187 top_acc.printConfig(withDetails=
True, summariseProps=
True)
188 top_acc.store(
open(
"ITkTrackRecoWithProtoTracks.pkl",
"wb"))
189 sc = top_acc.run(flags.Exec.MaxEvents)