ATLAS Offline Software
Functions
ActsPostIncludes Namespace Reference

Functions

ComponentAccumulator PersistifyActsEDMCfg (flags)
 
ComponentAccumulator ACTSClusterPostInclude (flags)
 

Function Documentation

◆ ACTSClusterPostInclude()

ComponentAccumulator ActsPostIncludes.ACTSClusterPostInclude (   flags)

Definition at line 92 of file ActsPostIncludes.py.

92 def ACTSClusterPostInclude(flags) -> ComponentAccumulator:
93  # Schedule ACTS Data Preparation and Measurement persistification
94  # This is used for technical efficiencies studies of tracking pipelines
95  if flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements:
96  raise ValueError("The ACTSClusterPostInclude is to be used for technical efficiency computation, however the " \
97  f"config flag 'Tracking.PRDInfo.KeepOnlyOnTrackMeasurements' is set to {flags.Tracking.PRDInfo.KeepOnlyOnTrackMeasurements}, " \
98  "which is incompatible with this purpose")
99 
100  acc = ComponentAccumulator()
101 
102  # Schedule Full Scan RoI
103  from ActsConfig.ActsRegionsOfInterestConfig import ActsMainRegionsOfInterestCreatorAlgCfg
105  name = "ActsOfflineRegionsOfInterestCreatorAlg",
106  RoIs = "ActsOfflineRegionOfInterest"))
107 
108  # Cluster formation
109  # This includes Pixel and Strip
110  clusteringKwargs = dict()
111  clusteringKwargs["PixelClusterizationAlg.name"] = "ActsOfflinePixelClusterizationAlg"
112  clusteringKwargs["PixelClusterizationAlg.ClustersKey"] = "ITkOfflinePixelClusters"
113  clusteringKwargs["StripClusterizationAlg.name"] = "ActsOfflineStripClusterizationAlg"
114  clusteringKwargs["StripClusterizationAlg.ClustersKey"] = "ITkOfflineStripClusters"
115  from ActsConfig.ActsClusterizationConfig import ActsMainClusterizationCfg
116  acc.merge(ActsMainClusterizationCfg(flags,
117  RoIs = "ActsOfflineRegionOfInterest",
118  processHGTD = False,
119  **clusteringKwargs))
120 
121  # Attach truth to clusters
122  if flags.Tracking.doTruth:
123  truthAssociationKwargs = dict()
124  truthAssociationKwargs["PixelClusterToTruthAssociationAlg.name"] = "ActsOfflinePixelClusterToTruthAssociationAlg"
125  truthAssociationKwargs["PixelClusterToTruthAssociationAlg.Measurements"] = "ITkOfflinePixelClusters"
126  truthAssociationKwargs["PixelClusterToTruthAssociationAlg.AssociationMapOut"] = "ITkOfflinePixelClustersToTruthParticles"
127  truthAssociationKwargs["StripClusterToTruthAssociationAlg.name"] = "ActsOfflineStripClusterToTruthAssociationAlg"
128  truthAssociationKwargs["StripClusterToTruthAssociationAlg.Measurements"] = "ITkOfflineStripClusters"
129  truthAssociationKwargs["StripClusterToTruthAssociationAlg.AssociationMapOut"] = "ITkOfflineStripClustersToTruthParticles"
130 
131  from ActsConfig.ActsTruthConfig import ActsTruthAssociationAlgCfg, ActsTruthParticleHitCountAlgCfg
132  acc.merge(ActsTruthAssociationAlgCfg(flags,
133  **truthAssociationKwargs))
134  acc.merge(ActsTruthParticleHitCountAlgCfg(flags,
135  name = "ActsOfflineTruthParticleHitCountAlg",
136  PixelClustersToTruthAssociationMap = "ITkOfflinePixelClustersToTruthParticles",
137  StripClustersToTruthAssociationMap = "ITkOfflineStripClustersToTruthParticles",
138  TruthParticleHitCountsOut = "OfflineTruthParticleHitCounts"))
139 
140  from InDetConfig.InDetPrepRawDataToxAODConfig import TruthParticleIndexDecoratorAlgCfg
141  acc.merge( TruthParticleIndexDecoratorAlgCfg(flags) )
142 
143  from ActsConfig.ActsObjectDecorationConfig import ActsPixelClusterTruthDecoratorAlgCfg,ActsStripClusterTruthDecoratorAlgCfg
144  acc.merge(ActsPixelClusterTruthDecoratorAlgCfg(flags,
145  name = "ActsOfflinePixelClusterTruthDecoratorAlgCfg",
146  ClusterContainer = "ITkOfflinePixelClusters",
147  AssociationMapOut = "ITkOfflinePixelClustersToTruthParticles",
148  MeasurementContainer = "ITkPixelMeasurements_offl"))
149  acc.merge(ActsStripClusterTruthDecoratorAlgCfg(flags,
150  name = "ActsOfflineStripClusterTruthDecoratorAlgCfg",
151  ClusterContainer = "ITkOfflineStripClusters",
152  AssociationMapOut = "ITkOfflineStripClustersToTruthParticles",
153  MeasurementContainer = "ITkStripMeasurements_offl"))
154 
155 
156  toAOD = [
157  'xAOD::TrackMeasurementValidationContainer#ITkPixelMeasurements_offl',
158  'xAOD::TrackMeasurementValidationAuxContainer#ITkPixelMeasurements_offlAux.',
159  'xAOD::TrackMeasurementValidationContainer#ITkStripMeasurements_offl',
160  'xAOD::TrackMeasurementValidationAuxContainer#ITkStripMeasurements_offlAux.'
161  ]
162 
163  from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
164  acc.merge( addToAOD( flags, toAOD ) )
165 
166  return acc

◆ PersistifyActsEDMCfg()

ComponentAccumulator ActsPostIncludes.PersistifyActsEDMCfg (   flags)

Definition at line 5 of file ActsPostIncludes.py.

5 def PersistifyActsEDMCfg(flags) -> ComponentAccumulator:
7 
8  toAOD = []
9 
10  if flags.Acts.EDM.PersistifyClusters or flags.Acts.EDM.PersistifySpacePoints:
11  pixel_cluster_shortlist = ['-pixelClusterLink']
12  strip_cluster_shortlist = ['-sctClusterLink']
13 
14  pixel_cluster_variables = '.'.join(pixel_cluster_shortlist)
15  strip_cluster_variables = '.'.join(strip_cluster_shortlist)
16 
17  toAOD += ['xAOD::PixelClusterContainer#ITkPixelClusters',
18  'xAOD::PixelClusterAuxContainer#ITkPixelClustersAux.' + pixel_cluster_variables,
19  'xAOD::StripClusterContainer#ITkStripClusters',
20  'xAOD::StripClusterAuxContainer#ITkStripClustersAux.' + strip_cluster_variables]
21 
22  if flags.Reco.EnableHGTDExtension:
23  hgtd_cluster_shortlist = ['-hgtdClusterLink']
24 
25  hgtd_cluster_variables = '.'.join(hgtd_cluster_shortlist)
26 
27  toAOD += ['xAOD::HGTDClusterContainer#HGTD_Clusters',
28  'xAOD::HGTDClusterAuxContainer#HGTD_ClustersAux.' + hgtd_cluster_variables]
29 
30  if flags.Acts.doITkConversion:
31  toAOD += ['xAOD::StripClusterContainer#ITkConversionStripClusters',
32  'xAOD::StripClusterAuxContainer#ITkConversionStripClustersAux.' + strip_cluster_variables]
33 
34  if flags.Acts.EDM.PersistifySpacePoints:
35  pixel_spacepoint_shortlist = ['-measurements',
36  '-pixelSpacePointLink']
37  strip_spacepoint_shortlist = ['topHalfStripLength',
38  'bottomHalfStripLength',
39  'topStripDirection',
40  'bottomStripDirection',
41  'stripCenterDistance',
42  'topStripCenter',
43  'measurementLink']
44 
45  pixel_spacepoint_variables = '.'.join(pixel_spacepoint_shortlist)
46  strip_spacepoint_variables = '.'.join(strip_spacepoint_shortlist)
47 
48  toAOD += ['xAOD::SpacePointContainer#ITkPixelSpacePoints',
49  'xAOD::SpacePointAuxContainer#ITkPixelSpacePointsAux.' + pixel_spacepoint_variables,
50  'xAOD::SpacePointContainer#ITkStripSpacePoints',
51  'xAOD::SpacePointAuxContainer#ITkStripSpacePointsAux.' + strip_spacepoint_variables,
52  'xAOD::SpacePointContainer#ITkStripOverlapSpacePoints',
53  'xAOD::SpacePointAuxContainer#ITkStripOverlapSpacePointsAux.' + strip_spacepoint_variables]
54 
55  if flags.Acts.EDM.PersistifyTracks:
56  trackPrefixes = ['Acts', 'ActsResolved',
57  'ActsLargeRadius', 'ActsLargeRadiusResolved',
58  'ActsConversion', 'ActsConversionResolved',
59  'ActsHeavyIon', 'ActsHeavyIonResolved']
60  for prefix in trackPrefixes:
61  toAOD += [f"xAOD::TrackSummaryContainer#{prefix}TrackSummary",
62  f"xAOD::TrackSummaryAuxContainer#{prefix}TrackSummaryAux.",
63  f"xAOD::TrackStateContainer#{prefix}TrackStates",
64  f"xAOD::TrackStateAuxContainer#{prefix}TrackStatesAux.-uncalibratedMeasurement",
65  f"xAOD::TrackParametersContainer#{prefix}TrackParameters",
66  f"xAOD::TrackParametersAuxContainer#{prefix}TrackParametersAux.",
67  f"xAOD::TrackJacobianContainer#{prefix}TrackJacobians",
68  f"xAOD::TrackJacobianAuxContainer#{prefix}TrackJacobiansAux.",
69  f"xAOD::TrackMeasurementContainer#{prefix}TrackMeasurements",
70  f"xAOD::TrackMeasurementAuxContainer#{prefix}TrackMeasurementsAux.",
71  f"xAOD::TrackSurfaceContainer#{prefix}TrackStateSurfaces",
72  f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackStateSurfacesAux.",
73  f"xAOD::TrackSurfaceContainer#{prefix}TrackSurfaces",
74  f"xAOD::TrackSurfaceAuxContainer#{prefix}TrackSurfacesAux."]
75 
76  # add track particles created by the Acts TrackToTrackParticleCnvAlg to the AOD
77  trackCnvPrefixes = ["Acts"]
78  trackparticles_shortlist = [] if flags.Acts.EDM.PersistifyTracks else ['-actsTrack']
79  trackparticles_variables = ".".join(trackparticles_shortlist)
80  for prefix in trackCnvPrefixes:
81  toAOD += [f"xAOD::TrackParticleContainer#InDet{prefix}TrackParticles",
82  f"xAOD::TrackParticleAuxContainer#InDet{prefix}TrackParticlesAux." + trackparticles_variables]
83 
84  # If there is nothing to persistify, returns an empty CA
85  if len(toAOD) == 0:
86  return acc
87 
88  from OutputStreamAthenaPool.OutputStreamConfig import addToAOD
89  acc.merge(addToAOD(flags, toAOD))
90  return acc
91 
ActsObjectDecorationConfig.ActsPixelClusterTruthDecoratorAlgCfg
ComponentAccumulator ActsPixelClusterTruthDecoratorAlgCfg(flags, str name="ActsPixelClusterTruthDecoratorAlg", *list[str] TrackParticles=None, **kwargs)
Definition: ActsObjectDecorationConfig.py:55
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
ActsTruthConfig.ActsTruthParticleHitCountAlgCfg
ComponentAccumulator ActsTruthParticleHitCountAlgCfg(flags, str name='ActsTruthParticleHitCountAlg', **dict kwargs)
Definition: ActsTruthConfig.py:86
ActsPostIncludes.ACTSClusterPostInclude
ComponentAccumulator ACTSClusterPostInclude(flags)
Definition: ActsPostIncludes.py:92
python.InDetPrepRawDataToxAODConfig.TruthParticleIndexDecoratorAlgCfg
def TruthParticleIndexDecoratorAlgCfg(flags, name='TruthParticleIndexDecoratorAlg', **kwargs)
Definition: InDetPrepRawDataToxAODConfig.py:6
ActsRegionsOfInterestConfig.ActsMainRegionsOfInterestCreatorAlgCfg
ComponentAccumulator ActsMainRegionsOfInterestCreatorAlgCfg(flags, str name="ActsMainRegionsOfInterestCreatorAlg", **kwargs)
Definition: ActsRegionsOfInterestConfig.py:21
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
ActsObjectDecorationConfig.ActsStripClusterTruthDecoratorAlgCfg
ComponentAccumulator ActsStripClusterTruthDecoratorAlgCfg(flags, str name="ActsStripClusterTruthDecoratorAlg", *list[str] TrackParticles=None, **kwargs)
Definition: ActsObjectDecorationConfig.py:100
python.OutputStreamConfig.addToAOD
def addToAOD(flags, itemOrList, **kwargs)
Definition: OutputStreamConfig.py:150
ActsTruthConfig.ActsTruthAssociationAlgCfg
ComponentAccumulator ActsTruthAssociationAlgCfg(flags, **dict kwargs)
Definition: ActsTruthConfig.py:108
ActsClusterizationConfig.ActsMainClusterizationCfg
ComponentAccumulator ActsMainClusterizationCfg(flags, *str RoIs="ActsRegionOfInterest", **dict kwargs)
Definition: ActsClusterizationConfig.py:260
ActsPostIncludes.PersistifyActsEDMCfg
ComponentAccumulator PersistifyActsEDMCfg(flags)
Definition: ActsPostIncludes.py:5