55 name: str =
"ActsStripSpacePointTool",
56 **kwargs: dict) -> ComponentAccumulator:
57 acc = ComponentAccumulator()
59 kwargs.setdefault(
"useSCTLayerDep_OverlapCuts",
False)
61 kwargs.setdefault(
"useBeamSpotConstraint", flags.Acts.SpacePoints.useBeamSpotConstraintStrips)
63 if 'LorentzAngleTool' not in kwargs:
64 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
65 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags)) )
67 acc.setPrivateTools(CompFactory.ActsTrk.StripSpacePointFormationTool(name, **kwargs))
71 name: str =
"ActsCoreStripSpacePointTool",
72 **kwargs: dict) -> ComponentAccumulator:
73 acc = ComponentAccumulator()
75 kwargs.setdefault(
"useSCTLayerDep_OverlapCuts",
False)
77 if 'LorentzAngleTool' not in kwargs:
78 from SiLorentzAngleTool.ITkStripLorentzAngleConfig
import ITkStripLorentzAngleToolCfg
79 kwargs.setdefault(
"LorentzAngleTool", acc.popToolsAndMerge(ITkStripLorentzAngleToolCfg(flags)) )
81 if 'TrackingGeometryTool' not in kwargs:
82 from ActsConfig.ActsGeometryConfig
import ActsTrackingGeometryToolCfg
83 kwargs.setdefault(
'TrackingGeometryTool', acc.getPrimaryAndMerge(ActsTrackingGeometryToolCfg(flags)))
85 acc.setPrivateTools(CompFactory.ActsTrk.CoreStripSpacePointFormationTool(name, **kwargs))
89 name: str =
"ActsPixelSpacePointPreparationAlg",
91 useCache: bool =
False,
92 **kwargs: dict) -> ComponentAccumulator:
93 acc = ComponentAccumulator()
95 kwargs.setdefault(
'InputCollection',
'ITkPixelSpacePoints')
96 kwargs.setdefault(
'DetectorElements',
'ITkPixelDetectorElementCollection')
98 if 'RegSelTool' not in kwargs:
99 from RegionSelector.RegSelToolConfig
import regSelTool_ITkPixel_Cfg
100 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_ITkPixel_Cfg(flags)))
102 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
103 from ActsConfig.ActsMonitoringConfig
import ActsDataPreparationMonitoringToolCfg
104 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(ActsDataPreparationMonitoringToolCfg(flags,
105 name =
"ActsPixelSpacePointPreparationMonitoringTool")))
108 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
110 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
114 name: str =
"ActsStripSpacePointPreparationAlg",
116 useCache: bool =
False,
117 **kwargs: dict) -> ComponentAccumulator:
118 acc = ComponentAccumulator()
120 kwargs.setdefault(
'InputCollection',
'ITkStripSpacePoints')
121 kwargs.setdefault(
'DetectorElements',
'ITkStripDetectorElementCollection')
123 if 'RegSelTool' not in kwargs:
124 from RegionSelector.RegSelToolConfig
import regSelTool_ITkStrip_Cfg
125 kwargs.setdefault(
'RegSelTool', acc.popToolsAndMerge(regSelTool_ITkStrip_Cfg(flags)))
127 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
128 from ActsConfig.ActsMonitoringConfig
import ActsDataPreparationMonitoringToolCfg
129 kwargs.setdefault(
'MonTool', acc.popToolsAndMerge(ActsDataPreparationMonitoringToolCfg(flags,
130 name =
"ActsStripSpacePointPreparationMonitoringTool")))
133 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointDataPreparationAlg(name, **kwargs))
135 acc.addEventAlgo(CompFactory.ActsTrk.SpacePointCacheDataPreparationAlg(name, **kwargs))
147 name: str =
"ActsPixelSpacePointFormationAlg",
149 useCache: bool =
False,
150 **kwargs: dict) -> ComponentAccumulator:
151 acc = ComponentAccumulator()
153 from PixelGeoModelXml.ITkPixelGeoModelConfig
import ITkPixelReadoutGeometryCfg
154 acc.merge(ITkPixelReadoutGeometryCfg(flags))
156 kwargs.setdefault(
'PixelClusters',
'ITkPixelClusters')
157 kwargs.setdefault(
'PixelSpacePoints',
'ITkPixelSpacePoints')
158 kwargs.setdefault(
'ExtraOutputs',
159 [(
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["PixelSpacePoints"]}.measurements')])
162 kwargs.setdefault(
'SPCacheBackend',
'ActsPixelSpacePointCache_Back')
163 kwargs.setdefault(
'SPCache',
'ActsPixelSpacePointCache')
165 if 'SpacePointFormationTool' not in kwargs:
168 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
169 from ActsConfig.ActsMonitoringConfig
import ActsPixelSpacePointFormationMonitoringToolCfg
170 kwargs.setdefault(
"MonTool", acc.popToolsAndMerge(ActsPixelSpacePointFormationMonitoringToolCfg(flags)))
174 acc.addEventAlgo(CompFactory.ActsTrk.PixelCacheSpacePointFormationAlg(name, **kwargs))
176 acc.addEventAlgo(CompFactory.ActsTrk.PixelSpacePointFormationAlg(name, **kwargs))
181 name: str =
"ActsStripSpacePointFormationAlg",
183 useCache: bool =
False,
184 **kwargs: dict) -> ComponentAccumulator:
185 acc = ComponentAccumulator()
187 from StripGeoModelXml.ITkStripGeoModelConfig
import ITkStripReadoutGeometryCfg
188 acc.merge(ITkStripReadoutGeometryCfg(flags))
190 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
191 acc.merge(BeamSpotCondAlgCfg(flags))
193 from InDetConfig.SiSpacePointFormationConfig
import ITkSiElementPropertiesTableCondAlgCfg
194 acc.merge(ITkSiElementPropertiesTableCondAlgCfg(flags))
197 kwargs.setdefault(
'StripClusters',
'ITkStripClusters')
198 kwargs.setdefault(
'StripSpacePoints',
'ITkStripSpacePoints')
199 kwargs.setdefault(
'StripOverlapSpacePoints',
'ITkStripOverlapSpacePoints')
200 kwargs.setdefault(
'ExtraOutputs',
201 [(
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["StripSpacePoints"]}.measurements'),
202 (
'xAOD::SpacePointContainer' , f
'StoreGateSvc+{kwargs["StripOverlapSpacePoints"]}.measurements')])
206 kwargs.setdefault(
'SPCacheBackend',
'ActsStripSpacePointCache_Back')
207 kwargs.setdefault(
'SPCache',
'ActsStripSpacePointCache')
208 kwargs.setdefault(
'OSPCacheBackend',
'ActsStripOverlapSpacePointCache_Back')
209 kwargs.setdefault(
'OSPCache',
'ActsStripOverlapSpacePointCache')
211 if 'SpacePointFormationTool' not in kwargs:
212 from ActsConfig.ActsConfigFlags
import SpacePointStrategy
213 if flags.Acts.SpacePointStrategy
is SpacePointStrategy.ActsCore:
218 if flags.Acts.doMonitoring
and 'MonTool' not in kwargs:
219 from ActsConfig.ActsMonitoringConfig
import ActsStripSpacePointFormationMonitoringToolCfg
220 kwargs.setdefault(
"MonTool", acc.popToolsAndMerge(ActsStripSpacePointFormationMonitoringToolCfg(flags)))
223 acc.addEventAlgo(CompFactory.ActsTrk.StripCacheSpacePointFormationAlg(name, **kwargs))
225 acc.addEventAlgo(CompFactory.ActsTrk.StripSpacePointFormationAlg(name, **kwargs))
230 RoIs: str =
"ActsRegionOfInterest",
231 **kwargs: dict) -> ComponentAccumulator:
232 acc = ComponentAccumulator()
234 kwargs.setdefault(
'processPixels', flags.Detector.EnableITkPixel)
235 kwargs.setdefault(
'processStrips', flags.Detector.EnableITkStrip)
236 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
237 kwargs.setdefault(
'runReconstruction',
True)
238 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
239 kwargs.setdefault(
'processOverlapSpacePoints',
True)
241 if kwargs[
'runCacheCreation']:
244 if kwargs[
'runReconstruction']:
245 if kwargs[
'processPixels']:
248 if kwargs[
'processStrips']:
251 if kwargs[
'runPreparation']:
252 if kwargs[
'processPixels']:
255 **extractChildKwargs(prefix=
'PixelSpacePointPreparationAlg.', **kwargs)))
256 if kwargs[
'processStrips']:
259 **extractChildKwargs(prefix=
'StripSpacePointPreparationAlg.', **kwargs)))
260 if kwargs[
'processOverlapSpacePoints']:
263 **extractChildKwargs(prefix=
'StripOverlapSpacePointPreparationAlg.', **kwargs)))
266 if flags.Acts.SpacePoints.doAnalysis:
267 if kwargs[
'processPixels']:
268 from ActsConfig.ActsAnalysisConfig
import ActsPixelSpacePointAnalysisAlgCfg
269 acc.merge(ActsPixelSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix=
'PixelSpacePointAnalysisAlg.', **kwargs)))
270 if kwargs[
'processStrips']:
271 from ActsConfig.ActsAnalysisConfig
import ActsStripSpacePointAnalysisAlgCfg
272 acc.merge(ActsStripSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix=
'StripSpacePointAnalysisAlg.', **kwargs)))
273 if kwargs[
'processOverlapSpacePoints']:
274 from ActsConfig.ActsAnalysisConfig
import ActsStripOverlapSpacePointAnalysisAlgCfg
275 acc.merge(ActsStripOverlapSpacePointAnalysisAlgCfg(flags, **extractChildKwargs(prefix=
'StripOverlapSpacePointAnalysisAlg.', **kwargs)))
289 previousActsExtension = None) -> ComponentAccumulator:
290 acc = ComponentAccumulator()
292 processPixels = flags.Detector.EnableITkPixel
293 processStrips = flags.Detector.EnableITkStrip
297 from InDetConfig.ITkActsHelpers
import isPrimaryPass
298 if flags.Tracking.ActiveConfig.extension
in [
"ActsConversion",
"ActsLargeRadius",
"ActsValidateLargeRadiusStandalone"]:
299 processPixels =
False
300 elif isPrimaryPass(flags)
and flags.Tracking.doITkFastTracking:
302 elif flags.Tracking.ActiveConfig.extension ==
"ActsValidateF100" and flags.Tracking.doITkFastTracking:
303 processStrips =
False
305 kwargs.setdefault(
'processPixels', processPixels)
306 kwargs.setdefault(
'processStrips', processStrips)
324 from InDetConfig.ITkActsHelpers
import isValidationPass
325 if isPrimaryPass(flags)
or isValidationPass(flags):
328 kwargs.setdefault(
'runCacheCreation', flags.Acts.useCache)
329 kwargs.setdefault(
'runReconstruction',
True)
330 kwargs.setdefault(
'runPreparation', flags.Acts.useCache)
333 kwargs.setdefault(
'runCacheCreation',
False)
334 kwargs.setdefault(
'runReconstruction', flags.Acts.useCache)
335 kwargs.setdefault(
'runPreparation',
True)
338 processOverlapSpacePoints = processStrips
339 if flags.Tracking.ActiveConfig.extension
in [
'ActsConversion']:
340 processOverlapSpacePoints =
False
341 kwargs.setdefault(
'processOverlapSpacePoints', processOverlapSpacePoints)
344 roisName = f
'{flags.Tracking.ActiveConfig.extension}RegionOfInterest'
346 if flags.Tracking.ActiveConfig.extension ==
'ActsLargeRadius':
347 from InDetConfig.ITkActsHelpers
import primaryPassExtension
348 roisName = f
'{primaryPassExtension(flags)}RegionOfInterest'
352 pixelClustersName =
'ITkPixelClusters'
353 stripClustersName =
'ITkStripClusters'
354 pixelSpacePointsName =
'ITkPixelSpacePoints'
355 stripSpacePointsName =
'ITkStripSpacePoints'
356 stripOverlapSpacePointsName =
'ITkStripOverlapSpacePoints'
358 if flags.Tracking.ActiveConfig.isSecondaryPass:
359 pixelClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelClusters'
360 stripClustersName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripClusters'
361 pixelSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}PixelSpacePoints'
362 stripSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripSpacePoints'
363 stripOverlapSpacePointsName = f
'ITk{flags.Tracking.ActiveConfig.extension.replace("Acts", "")}StripOverlapSpacePoints'
365 if flags.Acts.useCache:
366 pixelClustersName +=
"_Cached"
367 stripClustersName +=
"_Cached"
370 primaryPixelSpacePointsName =
'ITkPixelSpacePoints'
371 primaryStripSpacePointsName =
'ITkStripSpacePoints'
372 primaryStripOverlapSpacePointsName =
'ITkStripOverlapSpacePoints'
375 if kwargs[
'runCacheCreation']:
376 kwargs.setdefault(
'SpacePointCacheCreatorAlg.name', f
'{flags.Tracking.ActiveConfig.extension}SpacePointCacheCreatorAlg')
379 if kwargs[
'runReconstruction']:
380 if kwargs[
'processPixels']:
381 kwargs.setdefault(
'PixelSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointFormationAlg')
382 kwargs.setdefault(
'PixelSpacePointFormationAlg.useCache', flags.Acts.useCache)
383 kwargs.setdefault(
'PixelSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
384 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelClusters', pixelClustersName)
385 kwargs.setdefault(
'PixelSpacePointFormationAlg.PixelSpacePoints', pixelSpacePointsName)
387 if kwargs[
'processStrips']:
388 kwargs.setdefault(
'StripSpacePointFormationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointFormationAlg')
389 kwargs.setdefault(
'StripSpacePointFormationAlg.useCache', flags.Acts.useCache)
390 kwargs.setdefault(
'StripSpacePointFormationAlg.SPCache', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
391 kwargs.setdefault(
'StripSpacePointFormationAlg.StripClusters', stripClustersName)
392 kwargs.setdefault(
'StripSpacePointFormationAlg.StripSpacePoints', stripSpacePointsName)
395 kwargs.setdefault(
'StripSpacePointFormationAlg.ProcessOverlapForStrip', kwargs[
'processOverlapSpacePoints'])
396 kwargs.setdefault(
'StripSpacePointFormationAlg.OSPCache', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
397 if kwargs[
'processOverlapSpacePoints']:
398 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints', stripOverlapSpacePointsName)
401 kwargs.setdefault(
'StripSpacePointFormationAlg.StripOverlapSpacePoints',
'')
404 if kwargs[
'runPreparation']:
405 if kwargs[
'processPixels']:
406 kwargs.setdefault(
'PixelSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointPreparationAlg')
407 kwargs.setdefault(
'PixelSpacePointPreparationAlg.useCache', flags.Acts.useCache)
408 kwargs.setdefault(
'PixelSpacePointPreparationAlg.OutputCollection', f
'{pixelSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else pixelSpacePointsName)
410 if not flags.Acts.useCache:
412 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection', pixelSpacePointsName
if kwargs[
'runReconstruction']
else primaryPixelSpacePointsName)
413 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC',
'')
415 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputCollection',
'')
416 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointCache')
418 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
419 kwargs.setdefault(
'PixelSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
422 if kwargs[
'processStrips']:
423 kwargs.setdefault(
'StripSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointPreparationAlg')
424 kwargs.setdefault(
'StripSpacePointPreparationAlg.useCache', flags.Acts.useCache)
425 kwargs.setdefault(
'StripSpacePointPreparationAlg.OutputCollection', f
'{stripSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripSpacePointsName)
427 if not flags.Acts.useCache:
429 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection', stripSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripSpacePointsName)
430 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC',
'')
432 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputCollection',
'')
433 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointCache')
435 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
436 kwargs.setdefault(
'StripSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
438 if kwargs[
'processOverlapSpacePoints']:
439 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointPreparationAlg')
440 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.useCache', flags.Acts.useCache)
441 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.OutputCollection', f
'{stripOverlapSpacePointsName}_Cached' if kwargs[
'runReconstruction']
else stripOverlapSpacePointsName)
443 if not flags.Acts.useCache:
445 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection', stripOverlapSpacePointsName
if kwargs[
'runReconstruction']
else primaryStripOverlapSpacePointsName)
446 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC',
'')
448 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputCollection',
'')
449 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputIDC', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointCache')
451 if flags.Tracking.ActiveConfig.isSecondaryPass
and previousActsExtension
is not None:
452 kwargs.setdefault(
'StripOverlapSpacePointPreparationAlg.InputPrdMap', f
'{previousActsExtension}PrdMap')
455 if flags.Acts.SpacePoints.doAnalysis:
458 if kwargs[
'processPixels']:
459 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}PixelSpacePointAnalysisAlg')
460 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
461 kwargs.setdefault(
'PixelSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'PixelSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints'])
463 if kwargs[
'processStrips']:
464 kwargs.setdefault(
'StripSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripSpacePointAnalysisAlg')
465 kwargs.setdefault(
'StripSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
466 kwargs.setdefault(
'StripSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripSpacePoints'])
468 if kwargs[
'processOverlapSpacePoints']:
469 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.name', f
'{flags.Tracking.ActiveConfig.extension}StripOverlapSpacePointAnalysisAlg')
470 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.extension', flags.Tracking.ActiveConfig.extension)
471 kwargs.setdefault(
'StripOverlapSpacePointAnalysisAlg.SpacePointContainerKey', kwargs[
'StripOverlapSpacePointPreparationAlg.OutputCollection']
if kwargs[
'runPreparation']
else kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints'])
477 if flags.Acts.EDM.PersistifySpacePoints
and kwargs[
'runReconstruction']:
479 pixel_spacepoint_shortlist = [
'-measurements']
480 strip_spacepoint_shortlist = [
'topHalfStripLength',
481 'bottomHalfStripLength',
483 'bottomStripDirection',
484 'stripCenterDistance',
488 pixel_spacepoint_variables =
'.'.join(pixel_spacepoint_shortlist)
489 strip_spacepoint_variables =
'.'.join(strip_spacepoint_shortlist)
491 if kwargs[
'processPixels']:
492 pixelSpacePointCollection = kwargs[
'PixelSpacePointFormationAlg.PixelSpacePoints']
493 toAOD += [f
'xAOD::SpacePointContainer#{pixelSpacePointCollection}',
494 f
"xAOD::SpacePointAuxContainer#{pixelSpacePointCollection}Aux.{pixel_spacepoint_variables}"]
496 if kwargs[
'processStrips']:
497 stripSpacePointCollection = kwargs[
'StripSpacePointFormationAlg.StripSpacePoints']
498 toAOD += [f
'xAOD::SpacePointContainer#{stripSpacePointCollection}',
499 f
"xAOD::SpacePointAuxContainer#{stripSpacePointCollection}Aux.{strip_spacepoint_variables}"]
501 if kwargs[
'processOverlapSpacePoints']:
502 stripSpacePointCollection = kwargs[
'StripSpacePointFormationAlg.StripOverlapSpacePoints']
503 toAOD += [f
'xAOD::SpacePointContainer#{stripSpacePointCollection}',
504 f
"xAOD::SpacePointAuxContainer#{stripSpacePointCollection}Aux.{strip_spacepoint_variables}"]
506 from OutputStreamAthenaPool.OutputStreamConfig
import addToAOD
507 acc.merge(addToAOD(flags, toAOD))