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-03-00-00/mc21_14TeV.900498.PG_single_muonpm_Pt100_etaFlatnp0_43.recon.RDO.e8481_s4149_r14697/RDO.33675668._000016.pool.root.1"]
116 flags.Debug.DumpEvtStore =
True
118 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.MainPass")
121 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
122 top_acc = MainServicesCfg(flags)
124 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
125 top_acc.merge(PoolReadCfg(flags))
129 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
130 top_acc.merge(GEN_AOD2xAODCfg(flags))
133 top_acc.merge(ITkTrackRecoCfg(flags))
136 top_acc.merge(
SetupHistSvc(flags,streamName=
"HmmRefits",dataFile=flags.outputNTupleFile))
140 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
141 top_acc.merge(ActsTruthAssociationAlgCfg(flags))
142 top_acc.merge(ActsTruthParticleHitCountAlgCfg(flags))
144 from ActsConfig.ActsTruthConfig
import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
145 acts_tracks=f
"{flags.Tracking.ActiveConfig.extension}Tracks" if not flags.Acts.doAmbiguityResolution
else f
"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
146 top_acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
147 name=f
"{acts_tracks}TrackToTruthAssociationAlg",
148 ACTSTracksLocation=ACTSProtoTrackChainTrackKey,
149 AssociationMapOut=acts_tracks+
"ToTruthParticleAssociation"))
151 top_acc.merge(ActsTrackFindingValidationAlgCfg(flags,
152 name=f
"{acts_tracks}TrackFindingValidationAlg",
153 TrackToTruthAssociationMap=acts_tracks+
"ToTruthParticleAssociation"
157 prefix = flags.Tracking.ActiveConfig.extension
158 from ActsConfig.ActsTrackFindingConfig
import ActsTrackToTrackParticleCnvAlgCfg
159 top_acc.merge(ActsTrackToTrackParticleCnvAlgCfg(flags, f
"{prefix}ResolvedProtoTrackToAltTrackParticleCnvAlg",
160 ACTSTracksLocation=[ACTSProtoTrackChainTrackKey,],
161 TrackParticlesOutKey=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
163 from ActsConfig.ActsTruthConfig
import ActsTrackParticleTruthDecorationAlgCfg
164 top_acc.merge(ActsTrackParticleTruthDecorationAlgCfg(flags,
165 f
"{prefix}ActsSandboxTrackParticleTruthDecorationAlg",
166 TrackToTruthAssociationMaps=[acts_tracks+
"ToTruthParticleAssociation"],
167 TrackParticleContainerName=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
170 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import AddDecoratorCfg
171 top_acc.merge(AddDecoratorCfg(flags))
174 from InDetTrackPerfMon.InDetTrackPerfMonConfig
import InDetTrackPerfMonCfg
175 top_acc.merge( InDetTrackPerfMonCfg(flags) )
177 top_acc.printConfig(withDetails=
True, summariseProps=
True)
182 top_acc.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
183 top_acc.printConfig(withDetails=
True, summariseProps=
True)
184 top_acc.store(open(
"ITkTrackRecoWithProtoTracks.pkl",
"wb"))
185 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)