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.TruthGuidedProtoTrackCreator(name, **kwargs))
15 name: str =
"ActsProtoTrackCreationAndFitAlg",
16 **kwargs) -> ComponentAccumulator:
18 from ActsConfig.ActsTrackFindingConfig
import isdet
19 kwargs.setdefault(
"DetectorElementCollectionKeys",
isdet(flags, pixel=[
"ITkPixelDetectorElementCollection"], strip=[
"ITkStripDetectorElementCollection"]))
21 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
24 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
27 kwargs.setdefault(
'PixelClusterContainer',
'ITkPixelClusters')
28 kwargs.setdefault(
'StripClusterContainer',
'ITkStripClusters')
29 kwargs.setdefault(
'ACTSTracksLocation',
'EFTestTracks')
31 if "TrackingGeometryTool" not in kwargs:
32 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
34 "TrackingGeometryTool",
38 if 'ExtrapolationTool' not in kwargs:
39 from ActsConfig.ActsGeometryConfig
import ActsExtrapolationToolCfg
45 if 'ATLASConverterTool' not in kwargs:
46 from ActsConfig.ActsEventCnvConfig
import ActsToTrkConverterToolCfg
52 if 'ActsFitter' not in kwargs:
53 from ActsConfig.ActsTrackFittingConfig
import ActsFitterCfg
54 kwargs.setdefault(
"ActsFitter", acc.popToolsAndMerge(
ActsFitterCfg(flags,
58 if 'PatternBuilder' not in kwargs:
61 acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackCreationAndFitAlg(name,**kwargs),
66 name: str =
"ActsProtoTrackReportingAlg",
67 **kwargs) -> ComponentAccumulator:
69 acc.addEventAlgo(CompFactory.ActsTrk.ProtoTrackReportingAlg(name,**kwargs),
73 if __name__ ==
"__main__":
74 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
78 histSvc = CompFactory.THistSvc(Output= [
"{streamName} DATAFILE='{data_file}', OPT='RECREATE'".
format(streamName=streamName, data_file = dataFile )])
79 acc.addService(histSvc, primary=
True)
83 ACTSProtoTrackChainTrackKey =
"ACTSProtoTrackChainTestTracks"
84 FinalProtoTrackChainTracksKey=
"TrkProtoTrackChainTestTracks"
85 FinalProtoTrackChainxAODTracksKey=
"xAODProtoTrackChainTestTracks"
87 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
91 flags.addFlag(
"outputNTupleFile",
"refits.root")
94 flags.Detector.EnableCalo =
False
98 flags.Tracking.ITkMainPass.doAthenaToActsSpacePoint=
True
99 flags.Tracking.ITkMainPass.doAthenaToActsCluster=
True
101 flags.Acts.doRotCorrection =
False
103 flags.PhysVal.IDPVM.doExpertOutput =
True
104 flags.PhysVal.IDPVM.doPhysValOutput =
False
105 flags.PhysVal.IDPVM.doHitLevelPlots =
True
106 flags.PhysVal.IDPVM.runDecoration =
True
107 flags.PhysVal.IDPVM.validateExtraTrackCollections = [f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"]
113 flags.PhysVal.IDPVM.doTechnicalEfficiency =
False
114 flags.PhysVal.OutputFileName =
"IDPVM.root"
116 if flags.Input.Files == [
'_ATHENA_GENERIC_INPUTFILE_NAME_']:
117 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 flags = flags.cloneAndReplace(
"Tracking.ActiveConfig",
"Tracking.MainPass")
122 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
125 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
130 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
137 top_acc.merge(
SetupHistSvc(flags,streamName=
"HmmRefits",dataFile=flags.outputNTupleFile))
141 from ActsConfig.ActsTruthConfig
import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
145 from ActsConfig.ActsTruthConfig
import ActsTrackToTruthAssociationAlgCfg, ActsTrackFindingValidationAlgCfg
146 acts_tracks=f
"{flags.Tracking.ActiveConfig.extension}Tracks" if not flags.Acts.doAmbiguityResolution
else f
"{flags.Tracking.ActiveConfig.extension}ResolvedTracks"
148 name=f
"{acts_tracks}TrackToTruthAssociationAlg",
149 ACTSTracksLocation=ACTSProtoTrackChainTrackKey,
150 AssociationMapOut=acts_tracks+
"ToTruthParticleAssociation"))
153 name=f
"{acts_tracks}TrackFindingValidationAlg",
154 TrackToTruthAssociationMap=acts_tracks+
"ToTruthParticleAssociation"
158 prefix = flags.Tracking.ActiveConfig.extension
159 from ActsConfig.ActsTrackFindingConfig
import ActsTrackToTrackParticleCnvAlgCfg
161 ACTSTracksLocation=[ACTSProtoTrackChainTrackKey,],
162 TrackParticlesOutKey=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
164 from ActsConfig.ActsTruthConfig
import ActsTrackParticleTruthDecorationAlgCfg
166 f
"{prefix}ActsSandboxTrackParticleTruthDecorationAlg",
167 TrackToTruthAssociationMaps=[acts_tracks+
"ToTruthParticleAssociation"],
168 TrackParticleContainerName=f
"{FinalProtoTrackChainxAODTracksKey}TrackParticles"))
171 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import AddDecoratorCfg
175 from InDetPhysValMonitoring.InDetPhysValMonitoringConfig
import InDetPhysValMonitoringCfg
178 top_acc.printConfig(withDetails=
True, summariseProps=
True)
183 top_acc.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
184 top_acc.printConfig(withDetails=
True, summariseProps=
True)
185 top_acc.store(
open(
"ITkTrackRecoWithProtoTracks.pkl",
"wb"))
186 sc = top_acc.run(flags.Exec.MaxEvents)