ATLAS Offline Software
ActsProtoTrackCreationAndFitConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory import CompFactory
5 
7  name: str = "ActsTruthGuidedProtoTrackCreatorTool",
8  **kwargs) -> ComponentAccumulator:
10  kwargs.setdefault('PRD_MultiTruthCollections', ["PRD_MultiTruthITkPixel","PRD_MultiTruthITkStrip"])
11  acc.setPrivateTools(CompFactory.ActsTrk.TruthGuidedProtoTrackCreatorTool(name, **kwargs))
12  return acc
13 
15  name: str = "ActsProtoTrackCreationAndFitAlg",
16  **kwargs) -> ComponentAccumulator:
17  acc = ComponentAccumulator()
18 
19  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
20  acc.merge(ITkPixelReadoutGeometryCfg(flags))
21 
22  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
23  acc.merge(ITkStripReadoutGeometryCfg(flags))
24 
25  kwargs.setdefault('PixelClusterContainer', 'ITkPixelClusters')
26  kwargs.setdefault('StripClusterContainer', 'ITkStripClusters')
27  kwargs.setdefault('ACTSTracksLocation', 'EFTestTracks')
28 
29  if "TrackingGeometryTool" not in kwargs:
30  from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
31  kwargs.setdefault(
32  "TrackingGeometryTool",
33  acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)),
34  ) # PrivateToolHandle
35 
36  if 'ExtrapolationTool' not in kwargs:
37  from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
38  kwargs.setdefault(
39  "ExtrapolationTool",
40  acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)),
41  ) # PrivateToolHandle
42 
43  if 'ActsFitter' not in kwargs:
44  from ActsConfig.ActsTrackFittingConfig import ActsFitterCfg
45  kwargs.setdefault("ActsFitter", acc.popToolsAndMerge(ActsFitterCfg(flags,
46  ReverseFilteringPt=0,
47  OutlierChi2Cut=30)))
48 
49  if 'PatternBuilder' not in kwargs:
50  kwargs.setdefault('PatternBuilder', acc.popToolsAndMerge(ActsTruthGuidedProtoTrackCreatorToolCfg(flags)))
51 
52  acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackCreationAndFitAlg(name,**kwargs),
53  primary=True)
54  return acc
55 
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),
63  primary=True)
64  return acc
65 
66 if __name__ == "__main__":
67  from InDetConfig.ITkTrackRecoConfig import ITkTrackRecoCfg
68 
69  def SetupHistSvc(flags, streamName, dataFile):
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)
73  return acc
74 
75  # Key names for the different track containers
76  ACTSProtoTrackChainTrackKey = "ACTSProtoTrackChainTestTracks"
77  FinalProtoTrackChainTracksKey="TrkProtoTrackChainTestTracks"
78  FinalProtoTrackChainxAODTracksKey="xAODProtoTrackChainTestTracks"
79 
80  from AthenaConfiguration.AllConfigFlags import initConfigFlags
81  flags = initConfigFlags()
82 
83  # this job specific flags
84  flags.addFlag("outputNTupleFile", "refits.root")
85 
86  # Disable calo for this test
87  flags.Detector.EnableCalo = False
88 
89 
90  # ensure that the xAOD SP and cluster containers are available
91  flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint=True
92  flags.Tracking.ITkMainPass.doAthenaToActsCluster=True
93 
94  flags.Acts.doRotCorrection = False
95 
96  # IDTPM flags
97  from InDetTrackPerfMon.InDetTrackPerfMonFlags import initializeIDTPMConfigFlags, initializeIDTPMTrkAnaConfigFlags
98  flags = initializeIDTPMConfigFlags(flags)
99 
100  flags.PhysVal.IDTPM.plotsDefFileList = "InDetTrackPerfMon/PlotsDefFileList_default.txt" # default value - not needed
101  flags.PhysVal.IDTPM.plotsCommonValuesFile = "InDetTrackPerfMon/PlotsDefCommonValues.json" # default value - not needed
102  flags.PhysVal.OutputFileName = flags.PhysVal.IDTPM.outputFilePrefix + '.HIST.root' # automatically set in IDTPM config - not needed
103  flags.Output.doWriteAOD_IDTPM = True
104  flags.PhysVal.IDTPM.trkAnaCfgFile = "InDetTrackPerfMon/EFTrkAnaConfig_example.json"
105  flags = initializeIDTPMTrkAnaConfigFlags(flags)
106 
107  flags.PhysVal.IDTPM.TrkAnaEF.TrigTrkKey = f"{FinalProtoTrackChainxAODTracksKey}TrackParticles"
108  flags.PhysVal.IDTPM.TrkAnaDoubleRatio.TrigTrkKey = f"{FinalProtoTrackChainxAODTracksKey}TrackParticles"
109 
110  flags.PhysVal.doExample = False
111 
112  flags.fillFromArgs()
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"]
115 
116  flags.Debug.DumpEvtStore = True
117  flags.lock()
118  flags = flags.cloneAndReplace("Tracking.ActiveConfig","Tracking.MainPass")
119 
120  # Main services
121  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
122  top_acc = MainServicesCfg(flags)
123 
124  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
125  top_acc.merge(PoolReadCfg(flags))
126 
127  #Truth
128  if flags.Input.isMC:
129  from xAODTruthCnv.xAODTruthCnvConfig import GEN_AOD2xAODCfg
130  top_acc.merge(GEN_AOD2xAODCfg(flags))
131 
132  # Standard reco
133  top_acc.merge(ITkTrackRecoCfg(flags))
134 
135  # ProtoTrackChain Track algo
136  top_acc.merge(SetupHistSvc(flags,streamName="HmmRefits",dataFile=flags.outputNTupleFile))
137  top_acc.merge(ActsProtoTackCreationAndFitAlgCfg(flags,"ActsProtoTackCreationAndFitAlg",ACTSTracksLocation=ACTSProtoTrackChainTrackKey ))
138 
139 
140  from ActsConfig.ActsTruthConfig import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
141  top_acc.merge(ActsTruthAssociationAlgCfg(flags))
142  top_acc.merge(ActsTruthParticleHitCountAlgCfg(flags))
143 
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"))
150 
151  top_acc.merge(ActsTrackFindingValidationAlgCfg(flags,
152  name=f"{acts_tracks}TrackFindingValidationAlg",
153  TrackToTruthAssociationMap=acts_tracks+"ToTruthParticleAssociation"
154  ))
155 
156  # Convert ActsTrk::TrackContainer to xAOD::TrackParticleContainer
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"))
162 
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"))
168 
169  # Add the truth decorators
170  from InDetPhysValMonitoring.InDetPhysValDecorationConfig import AddDecoratorCfg
171  top_acc.merge(AddDecoratorCfg(flags))
172 
173  # IDTPM running
174  from InDetTrackPerfMon.InDetTrackPerfMonConfig import InDetTrackPerfMonCfg
175  top_acc.merge( InDetTrackPerfMonCfg(flags) )
176 
177  top_acc.printConfig(withDetails=True, summariseProps=True)
178  flags.dump()
179 
180 
181  from AthenaCommon.Constants import DEBUG
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)
186 
187  if sc.isFailure():
188  import sys
189  sys.exit(1)
ActsProtoTrackCreationAndFitConfig.SetupHistSvc
def SetupHistSvc(flags, streamName, dataFile)
Definition: ActsProtoTrackCreationAndFitConfig.py:69
python.ITkTrackRecoConfig.ITkTrackRecoCfg
ComponentAccumulator ITkTrackRecoCfg(flags)
Main ITk tracking config #####################.
Definition: ITkTrackRecoConfig.py:512
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
vtune_athena.format
format
Definition: vtune_athena.py:14
ActsProtoTrackCreationAndFitConfig.ActsTruthGuidedProtoTrackCreatorToolCfg
ComponentAccumulator ActsTruthGuidedProtoTrackCreatorToolCfg(flags, str name="ActsTruthGuidedProtoTrackCreatorTool", **kwargs)
Definition: ActsProtoTrackCreationAndFitConfig.py:6
ActsProtoTrackCreationAndFitConfig.ActsProtoTrackReportingAlgCfg
ComponentAccumulator ActsProtoTrackReportingAlgCfg(flags, str name="ActsProtoTrackReportingAlg", **kwargs)
Definition: ActsProtoTrackCreationAndFitConfig.py:56
xAODTruthCnvConfig.GEN_AOD2xAODCfg
def GEN_AOD2xAODCfg(flags, name="GEN_AOD2xAOD", **kwargs)
Definition: xAODTruthCnvConfig.py:20
ITkStripGeoModelConfig.ITkStripReadoutGeometryCfg
def ITkStripReadoutGeometryCfg(flags)
Definition: ITkStripGeoModelConfig.py:43
InDetPhysValDecorationConfig.AddDecoratorCfg
def AddDecoratorCfg(flags, **kwargs)
Definition: InDetPhysValDecorationConfig.py:159
ActsTruthConfig.ActsTruthParticleHitCountAlgCfg
ComponentAccumulator ActsTruthParticleHitCountAlgCfg(flags, str name='ActsTruthParticleHitCountAlg', **dict kwargs)
Definition: ActsTruthConfig.py:86
ActsTruthConfig.ActsTrackToTruthAssociationAlgCfg
ComponentAccumulator ActsTrackToTruthAssociationAlgCfg(flags, str name='ActsTracksToTruthAssociationAlg', **dict kwargs)
Definition: ActsTruthConfig.py:65
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags)
Definition: ITkPixelGeoModelConfig.py:39
ActsTrackFittingConfig.ActsFitterCfg
ComponentAccumulator ActsFitterCfg(flags, str name="ActsFitterTool", Optional[TrackFitterType] fitterKind=None, **kwargs)
Definition: ActsTrackFittingConfig.py:8
ActsTruthConfig.ActsTrackFindingValidationAlgCfg
ComponentAccumulator ActsTrackFindingValidationAlgCfg(flags, str name='ActsTracksValidationAlg', **dict kwargs)
Definition: ActsTruthConfig.py:162
ActsProtoTrackCreationAndFitConfig.ActsProtoTackCreationAndFitAlgCfg
ComponentAccumulator ActsProtoTackCreationAndFitAlgCfg(flags, str name="ActsProtoTrackCreationAndFitAlg", **kwargs)
Definition: ActsProtoTrackCreationAndFitConfig.py:14
ActsGeometryConfig.ActsExtrapolationToolCfg
ComponentAccumulator ActsExtrapolationToolCfg(flags, str name="ActsExtrapolationTool", **kwargs)
Definition: ActsGeometryConfig.py:149
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
Constants
some useful constants -------------------------------------------------—
ActsGeometryConfig.ActsTrackingGeometryToolCfg
ComponentAccumulator ActsTrackingGeometryToolCfg(flags, str name="ActsTrackingGeometryTool")
Definition: ActsGeometryConfig.py:140
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
InDetTrackPerfMonFlags.initializeIDTPMConfigFlags
def initializeIDTPMConfigFlags(flags)
General config flag category for IDTPM tool job configuration.
Definition: InDetTrackPerfMonFlags.py:172
ActsTruthConfig.ActsTruthAssociationAlgCfg
ComponentAccumulator ActsTruthAssociationAlgCfg(flags, **dict kwargs)
Definition: ActsTruthConfig.py:108
InDetTrackPerfMonFlags.initializeIDTPMTrkAnaConfigFlags
def initializeIDTPMTrkAnaConfigFlags(flags)
Create flags category and corresponding set of flags.
Definition: InDetTrackPerfMonFlags.py:182
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:71
ActsTruthConfig.ActsTrackParticleTruthDecorationAlgCfg
ComponentAccumulator ActsTrackParticleTruthDecorationAlgCfg(flags, str name='ActsTrackParticleTruthDecorationAlg', **dict kwargs)
Definition: ActsTruthConfig.py:137
InDetTrackPerfMonConfig.InDetTrackPerfMonCfg
def InDetTrackPerfMonCfg(flags)
Definition: InDetTrackPerfMonConfig.py:316
ActsTrackFindingConfig.ActsTrackToTrackParticleCnvAlgCfg
ComponentAccumulator ActsTrackToTrackParticleCnvAlgCfg(flags, str name="ActsTrackToTrackParticleCnvAlg", **kwargs)
Definition: ActsTrackFindingConfig.py:441