Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 ActsConfig.ActsGeometryConfig import ActsDetectorElementToActsGeometryIdMappingAlgCfg
21  kwargs.setdefault('DetectorElementToActsGeometryIdMapKey', 'DetectorElementToActsGeometryIdMap')
22 
23  from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
24  acc.merge(ITkPixelReadoutGeometryCfg(flags))
25 
26  from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
27  acc.merge(ITkStripReadoutGeometryCfg(flags))
28 
29  kwargs.setdefault('PixelClusterContainer', 'ITkPixelClusters')
30  kwargs.setdefault('StripClusterContainer', 'ITkStripClusters')
31  kwargs.setdefault('ACTSTracksLocation', 'EFTestTracks')
32 
33  if "TrackingGeometryTool" not in kwargs:
34  from ActsConfig.ActsGeometryConfig import ActsTrackingGeometryToolCfg
35  kwargs.setdefault(
36  "TrackingGeometryTool",
37  acc.popToolsAndMerge(ActsTrackingGeometryToolCfg(flags)),
38  ) # PrivateToolHandle
39 
40  if 'ExtrapolationTool' not in kwargs:
41  from ActsConfig.ActsGeometryConfig import ActsExtrapolationToolCfg
42  kwargs.setdefault(
43  "ExtrapolationTool",
44  acc.popToolsAndMerge(ActsExtrapolationToolCfg(flags, MaxSteps=10000)),
45  ) # PrivateToolHandle
46 
47  if 'ActsFitter' not in kwargs:
48  from ActsConfig.ActsTrackFittingConfig import ActsFitterCfg
49  kwargs.setdefault("ActsFitter", acc.popToolsAndMerge(ActsFitterCfg(flags,
50  ReverseFilteringPt=0,
51  OutlierChi2Cut=30)))
52 
53  if 'PatternBuilder' not in kwargs:
54  kwargs.setdefault('PatternBuilder', acc.popToolsAndMerge(ActsTruthGuidedProtoTrackCreatorToolCfg(flags)))
55 
56  acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackCreationAndFitAlg(name,**kwargs),
57  primary=True)
58  return acc
59 
61  name: str = "ActsProtoTrackReportingAlg",
62  **kwargs) -> ComponentAccumulator:
63  acc = ComponentAccumulator()
64  kwargs.setdefault("ProtoTracksLocation", "ProtoTracksCollection")
65  kwargs.setdefault("copyParametersFromFit", True)
66  acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackReportingAlg(name,**kwargs),
67  primary=True)
68  return acc
69 
70 if __name__ == "__main__":
71  from InDetConfig.ITkTrackRecoConfig import ITkTrackRecoCfg
72 
73  def SetupHistSvc(flags, streamName, dataFile):
74  acc = ComponentAccumulator()
75  histSvc = CompFactory.THistSvc(Output= ["{streamName} DATAFILE='{data_file}', OPT='RECREATE'".format(streamName=streamName, data_file = dataFile )])
76  acc.addService(histSvc, primary=True)
77  return acc
78 
79  # Key names for the different track containers
80  ACTSProtoTrackChainTrackKey = "ACTSProtoTrackChainTestTracks"
81  FinalProtoTrackChainTracksKey="TrkProtoTrackChainTestTracks"
82  FinalProtoTrackChainxAODTracksKey="xAODProtoTrackChainTestTracks"
83 
84  from AthenaConfiguration.AllConfigFlags import initConfigFlags
85  flags = initConfigFlags()
86 
87  # this job specific flags
88  flags.addFlag("outputNTupleFile", "refits.root")
89 
90  # Disable calo for this test
91  flags.Detector.EnableCalo = False
92 
93 
94  # ensure that the xAOD SP and cluster containers are available
95  flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint=True
96  flags.Tracking.ITkMainPass.doAthenaToActsCluster=True
97 
98  flags.Acts.doRotCorrection = False
99 
100  # IDTPM flags
101  from InDetTrackPerfMon.InDetTrackPerfMonFlags import initializeIDTPMConfigFlags, initializeIDTPMTrkAnaConfigFlags
102  flags = initializeIDTPMConfigFlags(flags)
103 
104  flags.PhysVal.IDTPM.plotsDefFileList = "InDetTrackPerfMon/PlotsDefFileList_default.txt" # default value - not needed
105  flags.PhysVal.IDTPM.plotsCommonValuesFile = "InDetTrackPerfMon/PlotsDefCommonValues.json" # default value - not needed
106  flags.PhysVal.OutputFileName = flags.PhysVal.IDTPM.outputFilePrefix + '.HIST.root' # automatically set in IDTPM config - not needed
107  flags.Output.doWriteAOD_IDTPM = True
108  flags.PhysVal.IDTPM.trkAnaCfgFile = "InDetTrackPerfMon/EFTrkAnaConfig_example.json"
109  flags = initializeIDTPMTrkAnaConfigFlags(flags)
110 
111  flags.PhysVal.IDTPM.TrkAnaEF.TrigTrkKey = f"{FinalProtoTrackChainxAODTracksKey}TrackParticles"
112  flags.PhysVal.IDTPM.TrkAnaDoubleRatio.TrigTrkKey = f"{FinalProtoTrackChainxAODTracksKey}TrackParticles"
113 
114  flags.PhysVal.doExample = False
115 
116  flags.fillFromArgs()
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"]
119 
120  flags.Debug.DumpEvtStore = True
121  flags.lock()
122  flags = flags.cloneAndReplace("Tracking.ActiveConfig","Tracking.MainPass")
123 
124  # Main services
125  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
126  top_acc = MainServicesCfg(flags)
127 
128  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
129  top_acc.merge(PoolReadCfg(flags))
130 
131  #Truth
132  if flags.Input.isMC:
133  from xAODTruthCnv.xAODTruthCnvConfig import GEN_AOD2xAODCfg
134  top_acc.merge(GEN_AOD2xAODCfg(flags))
135 
136  # Standard reco
137  top_acc.merge(ITkTrackRecoCfg(flags))
138 
139  # ProtoTrackChain Track algo
140  top_acc.merge(SetupHistSvc(flags,streamName="HmmRefits",dataFile=flags.outputNTupleFile))
141  top_acc.merge(ActsProtoTackCreationAndFitAlgCfg(flags,"ActsProtoTackCreationAndFitAlg",ACTSTracksLocation=ACTSProtoTrackChainTrackKey ))
142 
143 
144  from ActsConfig.ActsTruthConfig import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
145  top_acc.merge(ActsTruthAssociationAlgCfg(flags))
146  top_acc.merge(ActsTruthParticleHitCountAlgCfg(flags))
147 
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"
150  top_acc.merge(ActsTrackToTruthAssociationAlgCfg(flags,
151  name=f"{acts_tracks}TrackToTruthAssociationAlg",
152  ACTSTracksLocation=ACTSProtoTrackChainTrackKey,
153  AssociationMapOut=acts_tracks+"ToTruthParticleAssociation"))
154 
155  top_acc.merge(ActsTrackFindingValidationAlgCfg(flags,
156  name=f"{acts_tracks}TrackFindingValidationAlg",
157  TrackToTruthAssociationMap=acts_tracks+"ToTruthParticleAssociation"
158  ))
159 
160  # Convert ActsTrk::TrackContainer to xAOD::TrackParticleContainer
161  prefix = flags.Tracking.ActiveConfig.extension
162  from ActsConfig.ActsTrackFindingConfig import ActsTrackToTrackParticleCnvAlgCfg
163  top_acc.merge(ActsTrackToTrackParticleCnvAlgCfg(flags, f"{prefix}ResolvedProtoTrackToAltTrackParticleCnvAlg",
164  ACTSTracksLocation=[ACTSProtoTrackChainTrackKey,],
165  TrackParticlesOutKey=f"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
166 
167  from ActsConfig.ActsTruthConfig import ActsTrackParticleTruthDecorationAlgCfg
168  top_acc.merge(ActsTrackParticleTruthDecorationAlgCfg(flags,
169  f"{prefix}ActsSandboxTrackParticleTruthDecorationAlg",
170  TrackToTruthAssociationMaps=[acts_tracks+"ToTruthParticleAssociation"],
171  TrackParticleContainerName=f"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
172 
173  # Add the truth decorators
174  from InDetPhysValMonitoring.InDetPhysValDecorationConfig import AddDecoratorCfg
175  top_acc.merge(AddDecoratorCfg(flags))
176 
177  # IDTPM running
178  from InDetTrackPerfMon.InDetTrackPerfMonConfig import InDetTrackPerfMonCfg
179  top_acc.merge( InDetTrackPerfMonCfg(flags) )
180 
181  top_acc.printConfig(withDetails=True, summariseProps=True)
182  flags.dump()
183 
184 
185  from AthenaCommon.Constants import DEBUG
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)
190 
191  if sc.isFailure():
192  import sys
193  sys.exit(1)
ActsProtoTrackCreationAndFitConfig.SetupHistSvc
def SetupHistSvc(flags, streamName, dataFile)
Definition: ActsProtoTrackCreationAndFitConfig.py:73
python.ITkTrackRecoConfig.ITkTrackRecoCfg
ComponentAccumulator ITkTrackRecoCfg(flags)
Main ITk tracking config #####################.
Definition: ITkTrackRecoConfig.py:489
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:60
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:69
ActsTruthConfig.ActsTrackToTruthAssociationAlgCfg
ComponentAccumulator ActsTrackToTruthAssociationAlgCfg(flags, str name='ActsTracksToTruthAssociationAlg', **dict kwargs)
Definition: ActsTruthConfig.py:50
ITkPixelGeoModelConfig.ITkPixelReadoutGeometryCfg
def ITkPixelReadoutGeometryCfg(flags)
Definition: ITkPixelGeoModelConfig.py:39
ActsTruthConfig.ActsTrackFindingValidationAlgCfg
ComponentAccumulator ActsTrackFindingValidationAlgCfg(flags, str name='ActsTracksValidationAlg', **dict kwargs)
Definition: ActsTruthConfig.py:141
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:125
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:260
Constants
some useful constants -------------------------------------------------—
ActsGeometryConfig.ActsTrackingGeometryToolCfg
ComponentAccumulator ActsTrackingGeometryToolCfg(flags, str name="ActsTrackingGeometryTool")
Definition: ActsGeometryConfig.py:116
Trk::open
@ open
Definition: BinningType.h:40
ActsGeometryConfig.ActsDetectorElementToActsGeometryIdMappingAlgCfg
ComponentAccumulator ActsDetectorElementToActsGeometryIdMappingAlgCfg(flags, str name="ActsDetectorElementToActsGeometryIdMappingAlg", **kwargs)
Definition: ActsGeometryConfig.py:273
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:157
ActsTruthConfig.ActsTruthAssociationAlgCfg
ComponentAccumulator ActsTruthAssociationAlgCfg(flags, **dict kwargs)
Definition: ActsTruthConfig.py:89
InDetTrackPerfMonFlags.initializeIDTPMTrkAnaConfigFlags
def initializeIDTPMTrkAnaConfigFlags(flags)
Create flags category and corresponding set of flags.
Definition: InDetTrackPerfMonFlags.py:167
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:69
ActsTrackFittingConfig.ActsFitterCfg
ComponentAccumulator ActsFitterCfg(flags, str name="ActsFitterTool", **kwargs)
Definition: ActsTrackFittingConfig.py:8
ActsTruthConfig.ActsTrackParticleTruthDecorationAlgCfg
ComponentAccumulator ActsTrackParticleTruthDecorationAlgCfg(flags, str name='ActsTrackParticleTruthDecorationAlg', **dict kwargs)
Definition: ActsTruthConfig.py:116
InDetTrackPerfMonConfig.InDetTrackPerfMonCfg
def InDetTrackPerfMonCfg(flags)
Definition: InDetTrackPerfMonConfig.py:249
ActsTrackFindingConfig.ActsTrackToTrackParticleCnvAlgCfg
ComponentAccumulator ActsTrackToTrackParticleCnvAlgCfg(flags, str name="ActsTrackToTrackParticleCnvAlg", **kwargs)
Definition: ActsTrackFindingConfig.py:383