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 PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
22 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
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",
36 if 'ExtrapolationTool' not in kwargs:
37 from ActsConfig.ActsGeometryConfig
import ActsExtrapolationToolCfg
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:
60 kwargs.setdefault(
"ProtoTracksLocation",
"ProtoTracksCollection")
61 kwargs.setdefault(
"copyParametersFromFit",
True)
62 acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackReportingAlg(name,**kwargs),
66 if __name__ ==
"__main__":
67 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
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
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
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"
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
124 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
129 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
136 top_acc.merge(
SetupHistSvc(flags,streamName=
"HmmRefits",dataFile=flags.outputNTupleFile))
140 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
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"
147 name=f
"{acts_tracks}TrackToTruthAssociationAlg",
148 ACTSTracksLocation=ACTSProtoTrackChainTrackKey,
149 AssociationMapOut=acts_tracks+
"ToTruthParticleAssociation"))
152 name=f
"{acts_tracks}TrackFindingValidationAlg",
153 TrackToTruthAssociationMap=acts_tracks+
"ToTruthParticleAssociation"
157 prefix = flags.Tracking.ActiveConfig.extension
158 from ActsConfig.ActsTrackFindingConfig
import ActsTrackToTrackParticleCnvAlgCfg
160 ACTSTracksLocation=[ACTSProtoTrackChainTrackKey,],
161 TrackParticlesOutKey=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
163 from ActsConfig.ActsTruthConfig
import ActsTrackParticleTruthDecorationAlgCfg
165 f
"{prefix}ActsSandboxTrackParticleTruthDecorationAlg",
166 TrackToTruthAssociationMaps=[acts_tracks+
"ToTruthParticleAssociation"],
167 TrackParticleContainerName=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
170 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import AddDecoratorCfg
174 from InDetTrackPerfMon.InDetTrackPerfMonConfig
import InDetTrackPerfMonCfg
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)