3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.Enums
import BeamType, Format
5 from TrkConfig.TrackingPassFlags
import printActiveConfig
19 flags = flags.cloneAndReplace(
20 "Tracking.ActiveConfig",
21 f
"Tracking.{flags.Tracking.PrimaryPassConfig.value}Pass",
28 if flags.Tracking.doLargeD0
or flags.Tracking.doLowPtLargeD0:
30 if flags.Tracking.doLowPtLargeD0:
31 flagsLRT = flags.cloneAndReplace(
"Tracking.ActiveConfig",
32 "Tracking.LowPtLargeD0Pass")
33 elif flags.Tracking.doLargeD0:
34 flagsLRT = flags.cloneAndReplace(
"Tracking.ActiveConfig",
35 "Tracking.R3LargeD0Pass")
37 flags_set += [flagsLRT]
40 if flags.Tracking.doLowPtRoI:
41 flagsLowPtRoI = flags.cloneAndReplace(
"Tracking.ActiveConfig",
42 "Tracking.LowPtRoIPass")
43 flags_set += [flagsLowPtRoI]
46 if flags.Tracking.doLowPt:
47 flagsLowPt = flags.cloneAndReplace(
"Tracking.ActiveConfig",
49 flags_set += [flagsLowPt]
52 if flags.Tracking.doVeryLowPt:
53 flagsVeryLowPt = flags.cloneAndReplace(
"Tracking.ActiveConfig",
54 "Tracking.VeryLowPtPass")
55 flags_set += [flagsVeryLowPt]
58 if flags.Tracking.doTRTStandalone:
59 flagsTRTStandalone = flags.cloneAndReplace(
"Tracking.ActiveConfig",
60 "Tracking.TRTStandalonePass")
61 flags_set += [flagsTRTStandalone]
64 if flags.Tracking.doForwardTracks:
65 flagsForward = flags.cloneAndReplace(
"Tracking.ActiveConfig",
66 "Tracking.ForwardPass")
67 flags_set += [flagsForward]
70 if flags.Tracking.doTrackSegmentsDisappearing:
71 flagsDisappearing = flags.cloneAndReplace(
"Tracking.ActiveConfig",
72 "Tracking.DisappearingPass")
73 flags_set += [flagsDisappearing]
76 if flags.Tracking.doBeamGas:
77 flagsBeamGas = flags.cloneAndReplace(
"Tracking.ActiveConfig",
78 "Tracking.BeamGasPass")
79 flags_set += [flagsBeamGas]
81 _flags_set = flags_set
87 if flags.Detector.GeometryITk:
88 from InDetConfig.ITkTrackRecoConfig
import (
89 ITkClusterSplitProbabilityContainerName)
93 extension = flags_set[-1].Tracking.ActiveConfig.extension
96 if extension ==
"TRTStandalone":
97 extension = flags_set[-2].Tracking.ActiveConfig.extension
99 ClusterSplitProbContainer =
"InDetAmbiguityProcessorSplitProb" + extension
102 if len(flags_set) == 1
and flags.Tracking.doBackTracking:
103 ClusterSplitProbContainer = (
104 "InDetTRT_SeededAmbiguityProcessorSplitProb" + extension)
105 return ClusterSplitProbContainer
113 from InDetConfig.TrackingSiPatternConfig
import TrackingSiPatternCfg
117 ResolvedTrackCollectionKey=
"ResolvedTracks",
118 SiSPSeededTrackCollectionKey=
"SiSPSeededTracks"))
120 if flags.Detector.EnableTRT:
121 from InDetConfig.TRTExtensionConfig
import NewTrackingTRTExtensionPhaseCfg
124 SiTrackCollection=
"ResolvedTracks",
125 ExtendedTrackCollection=
"ExtendedTracksPhase",
126 ExtendedTracksMap=
"ExtendedTracksMapPhase"))
128 from InDetConfig.TRTSegmentFindingConfig
import TRTSegmentFinding_Phase_Cfg
131 from InDetConfig.InDetTrackPRD_AssociationConfig
import (
132 InDetTrackPRD_AssociationCfg)
134 flags, name=
'InDetTRTonly_TrackPRD_AssociationPhase',
135 AssociationMapName=
'InDetTRTonly_PRDtoTrackMapPhase',
138 from InDetConfig.TRT_SegmentsToTrackConfig
import (
139 TRT_Cosmics_SegmentsToTrackCfg)
141 flags, name=
'InDetTRT_Cosmics_SegmentsToTrack_Phase',
142 InputSegmentsCollection=
"TRTSegments_Phase",
143 OutputTrackCollection=
"TRT_Tracks_Phase"))
145 from InDetConfig.InDetCosmicsEventPhaseConfig
import (
146 InDetCosmicsEventPhaseCfg)
149 InputTracksNames=[
"TRT_Tracks_Phase"]))
151 from InDetConfig.InDetPrepRawDataFormationConfig
import (
152 InDetTRT_Phase_RIO_MakerCfg)
162 if flags.Input.Format
is Format.BS:
163 if flags.Detector.EnablePixel:
164 from PixelRawDataByteStreamCnv.PixelRawDataByteStreamCnvConfig
import (
165 PixelRawDataProviderAlgCfg)
168 if flags.Detector.EnableSCT:
169 from SCT_RawDataByteStreamCnv.SCT_RawDataByteStreamCnvConfig
import (
170 SCTRawDataProviderCfg, SCTEventFlagWriterCfg)
174 if flags.Detector.EnableTRT:
175 from TRT_RawDataByteStreamCnv.TRT_RawDataByteStreamCnvConfig
import (
176 TRTRawDataProviderCfg)
179 if flags.Detector.EnablePixel
or flags.Detector.EnableSCT:
180 from InDetConfig.SiliconPreProcessing
import InDetRecPreProcessingSiliconCfg
182 if flags.Detector.EnableTRT:
183 from InDetConfig.TRTPreProcessing
import TRTPreProcessingCfg
191 extensions_list=None,
192 ClusterSplitProbContainer=""):
195 if extensions_list
is None:
198 flagsDet = flags.cloneAndReplace(
"Tracking.ActiveConfig",
199 f
"Tracking.{detector}Pass")
200 TrackContainer = f
"Resolved{detector}Tracks"
201 extensions_list.append(flagsDet.Tracking.ActiveConfig.extension)
204 from InDetConfig.TrackingSiPatternConfig
import TrackingSiPatternCfg
208 ResolvedTrackCollectionKey=TrackContainer,
209 SiSPSeededTrackCollectionKey=f
"SiSPSeeded{detector}Tracks",
210 ClusterSplitProbContainer=ClusterSplitProbContainer))
212 ClusterSplitProbContainer = (
213 "InDetAmbiguityProcessorSplitProb" +
214 flagsDet.Tracking.ActiveConfig.extension)
216 if flags.Tracking.doTruth:
217 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
220 Tracks=TrackContainer,
221 DetailedTruth=TrackContainer+
"DetailedTruth",
222 TracksTruth=TrackContainer+
"TruthCollection"))
224 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
225 TrackParticleCnvAlgPIDCheckCfg)
228 name=TrackContainer+
"CnvAlg",
229 TrackContainerName=TrackContainer,
230 xAODTrackParticlesFromTracksContainerName=(
231 f
"InDet{detector}TrackParticles")))
233 return result, ClusterSplitProbContainer
239 if extensions_list
is None:
242 flagsTRT = flags.cloneAndReplace(
"Tracking.ActiveConfig",
244 extensions_list.append(flagsTRT.Tracking.ActiveConfig.extension)
247 from InDetConfig.TRTSegmentFindingConfig
import (
248 TRTSegmentFinding_TrackSegments_Cfg)
251 from InDetConfig.TRTStandaloneConfig
import TRT_TrackSegment_Cfg
258 InputCombinedInDetTracks=None,
259 InputExtendedInDetTracks=None,
260 StatTrackCollections=None,
261 StatTrackTruthCollections=None):
264 if InputCombinedInDetTracks
is None:
265 InputCombinedInDetTracks = []
266 if InputExtendedInDetTracks
is None:
267 InputExtendedInDetTracks = []
268 if StatTrackCollections
is None:
269 StatTrackCollections = []
270 if StatTrackTruthCollections
is None:
271 StatTrackTruthCollections = []
273 from InDetConfig.TRTStandaloneConfig
import TRTStandaloneCfg
275 InputCollections=InputCombinedInDetTracks))
277 TRTTrackContainer =
"TRTStandaloneTracks"
278 InputCombinedInDetTracks += [TRTTrackContainer]
279 InputExtendedInDetTracks += [TRTTrackContainer]
280 StatTrackCollections += [TRTTrackContainer]
281 StatTrackTruthCollections += [TRTTrackContainer+
"TruthCollection"]
283 if flags.Tracking.doTrackSegmentsTRT:
284 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
285 TrackParticleCnvAlgNoPIDCfg)
287 flags, TRTTrackContainer+
"CnvAlg",
288 TrackContainerName=TRTTrackContainer,
289 xAODTrackParticlesFromTracksContainerName=(
290 "InDetTRTTrackParticles")))
297 ClusterSplitProbContainer=""):
299 if hasattr(flags.TrackOverlay,
"ActiveConfig"):
300 doTrackOverlay = getattr(flags.TrackOverlay.ActiveConfig,
"doTrackOverlay",
None)
302 doTrackOverlay = flags.Overlay.doTrackOverlay
309 AssociationMapName =
""
310 extension = flags.Tracking.ActiveConfig.extension
312 if extension ==
"Disappearing" or doTrackOverlay:
313 if extension ==
"Disappearing":
314 InputTracks = [TrackContainer]
316 InputTracks += [flags.Overlay.BkgPrefix +
317 extension +
"Tracks"]
318 TrackContainer = extension+
"Tracks"
319 AssociationMapName =
"PRDtoTrackMapMerge_" + TrackContainer
320 MergerOutputTracks = TrackContainer
323 InputTracks = [flags.Overlay.SigPrefix+TrackContainer,
324 flags.Overlay.BkgPrefix+TrackContainer]
325 AssociationMapName = (
"PRDtoTrackMapMerge_Resolved" +
326 extension +
"Tracks")
327 MergerOutputTracks = TrackContainer
329 from TrkConfig.TrkTrackCollectionMergerConfig
import (
330 TrackCollectionMergerAlgCfg)
333 name =
"TrackCollectionMergerAlgCfg"+extension,
334 InputCombinedTracks=InputTracks,
335 OutputCombinedTracks=MergerOutputTracks,
336 AssociationMapName=AssociationMapName))
338 if flags.Tracking.doTruth:
339 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
342 Tracks=TrackContainer,
343 DetailedTruth=TrackContainer+
"DetailedTruth",
344 TracksTruth=TrackContainer+
"TruthCollection"))
348 xAODTrackParticlesName = (
349 "InDetLargeD0TrackParticles" if "LargeD0" in extension
else
350 "InDet" + extension +
"TrackParticles")
352 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
353 TrackParticleCnvAlgPIDCheckCfg)
356 name = extension +
"TrackParticleCnvAlg",
357 TrackContainerName=TrackContainer,
358 xAODTrackParticlesFromTracksContainerName=xAODTrackParticlesName,
359 ClusterSplitProbabilityName=ClusterSplitProbContainer,
360 AssociationMapName=AssociationMapName))
362 return result, TrackContainer
367 InputCombinedInDetTracks=None,
368 InputExtendedInDetTracks=None,
369 StatTrackCollections=None,
370 StatTrackTruthCollections=None,
371 ClusterSplitProbContainer=""):
374 if InputCombinedInDetTracks
is None:
375 InputCombinedInDetTracks = []
376 if InputExtendedInDetTracks
is None:
377 InputExtendedInDetTracks = []
378 if StatTrackCollections
is None:
379 StatTrackCollections = []
380 if StatTrackTruthCollections
is None:
381 StatTrackTruthCollections = []
383 from InDetConfig.BackTrackingConfig
import BackTrackingCfg
386 InputCollections=InputCombinedInDetTracks,
387 ClusterSplitProbContainer=ClusterSplitProbContainer))
389 ClusterSplitProbContainer = (
390 "InDetTRT_SeededAmbiguityProcessorSplitProb" +
391 flags.Tracking.ActiveConfig.extension)
392 TRTSeededTracks =
"TRTSeededTracks"
393 ResolvedTRTSeededTracks =
"ResolvedTRTSeededTracks"
394 InputCombinedInDetTracks += [ResolvedTRTSeededTracks]
395 InputExtendedInDetTracks += [ResolvedTRTSeededTracks]
396 StatTrackCollections += [TRTSeededTracks,
397 ResolvedTRTSeededTracks]
398 StatTrackTruthCollections += [TRTSeededTracks+
"TruthCollection",
399 ResolvedTRTSeededTracks+
"TruthCollection"]
401 return result, ClusterSplitProbContainer
406 doTrackingSiPattern=True,
407 InputCombinedInDetTracks=None,
408 InputExtendedInDetTracks=None,
409 StatTrackCollections=None,
410 StatTrackTruthCollections=None,
411 ClusterSplitProbContainer=""):
413 if hasattr(flags.TrackOverlay,
"ActiveConfig"):
414 doTrackOverlay = getattr(flags.TrackOverlay.ActiveConfig,
"doTrackOverlay",
None)
416 doTrackOverlay = flags.Overlay.doTrackOverlay
417 if InputCombinedInDetTracks
is None:
418 InputCombinedInDetTracks = []
419 if InputExtendedInDetTracks
is None:
420 InputExtendedInDetTracks = []
421 if StatTrackCollections
is None:
422 StatTrackCollections = []
423 if StatTrackTruthCollections
is None:
424 StatTrackTruthCollections = []
426 ResolvedTracks =
"Resolved" + extension +
"Tracks"
430 if (doTrackOverlay
and
431 flags.Tracking.ActiveConfig.storeSeparateContainer
and
432 not flags.Tracking.ActiveConfig.useTRTExtension):
433 ResolvedTracks = flags.Overlay.SigPrefix + ResolvedTracks
436 if "LargeD0" in extension:
437 ResolvedTracks =
"ResolvedLargeD0Tracks"
443 if doTrackingSiPattern:
444 SiSPSeededTracks =
"SiSPSeeded" + extension +
"Tracks"
445 from InDetConfig.TrackingSiPatternConfig
import TrackingSiPatternCfg
448 InputCollections=InputExtendedInDetTracks,
449 ResolvedTrackCollectionKey=ResolvedTracks,
450 SiSPSeededTrackCollectionKey=SiSPSeededTracks,
451 ClusterSplitProbContainer=ClusterSplitProbContainer))
452 StatTrackCollections += [SiSPSeededTracks, ResolvedTracks]
453 StatTrackTruthCollections += [SiSPSeededTracks+
"TruthCollection",
454 ResolvedTracks+
"TruthCollection"]
456 TrackContainer = ResolvedTracks
457 if (doTrackOverlay
and
458 flags.Tracking.ActiveConfig.storeSeparateContainer):
459 TrackContainer =
"Resolved" + extension +
"Tracks"
465 if flags.Tracking.ActiveConfig.useTRTExtension:
466 ExtendedTracks =
"Extended" + extension +
"Tracks"
468 if extension ==
"Disappearing":
469 ExtendedTracks =
"ExtendedTracksDisappearing"
470 elif "LargeD0" in extension:
471 ExtendedTracks =
"ExtendedLargeD0Tracks"
473 ExtendedTracks = flags.Overlay.SigPrefix+
"ExtendedLargeD0Tracks"
474 ExtendedTracksMap =
"ExtendedTracksMap" + extension
476 from InDetConfig.TRTExtensionConfig
import NewTrackingTRTExtensionCfg
479 SiTrackCollection=ResolvedTracks,
480 ExtendedTrackCollection=ExtendedTracks,
481 ExtendedTracksMap=ExtendedTracksMap))
483 TrackContainer = ExtendedTracks
484 if doTrackOverlay
and "LargeD0" in extension:
485 TrackContainer =
"ExtendedLargeD0Tracks"
486 StatTrackCollections += [ExtendedTracks]
487 StatTrackTruthCollections += [ExtendedTracks+
"TruthCollection"]
493 if flags.Tracking.ActiveConfig.storeSeparateContainer:
496 TrackContainer=TrackContainer,
497 ClusterSplitProbContainer=ClusterSplitProbContainer)
501 ClusterSplitProbContainer = (
502 "InDetAmbiguityProcessorSplitProb" +
503 flags.Tracking.ActiveConfig.extension)
504 InputCombinedInDetTracks += [TrackContainer]
506 InputExtendedInDetTracks += [TrackContainer]
508 return result, ClusterSplitProbContainer
512 InputCombinedInDetTracks=None,
513 StatTrackCollections=None,
514 StatTrackTruthCollections=None):
516 if hasattr(flags.TrackOverlay,
"ActiveConfig"):
517 doTrackOverlay = getattr(flags.TrackOverlay.ActiveConfig,
"doTrackOverlay",
None)
519 doTrackOverlay = flags.Overlay.doTrackOverlay
521 if InputCombinedInDetTracks
is None:
522 InputCombinedInDetTracks = []
523 if StatTrackCollections
is None:
524 StatTrackCollections = []
525 if StatTrackTruthCollections
is None:
526 StatTrackTruthCollections = []
529 InputCombinedInDetTracks += [flags.Overlay.BkgPrefix +
530 "CombinedInDetTracks"]
532 TrackContainer =
"CombinedInDetTracks"
534 from TrkConfig.TrkTrackCollectionMergerConfig
import (
535 TrackCollectionMergerAlgCfg)
538 InputCombinedTracks=InputCombinedInDetTracks,
539 OutputCombinedTracks=TrackContainer,
540 AssociationMapName=f
"PRDtoTrackMapMerge_{TrackContainer}"))
542 if flags.Tracking.doTruth:
543 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
546 Tracks=TrackContainer,
547 DetailedTruth=f
"{TrackContainer}DetailedTruth",
548 TracksTruth=f
"{TrackContainer}TruthCollection"))
550 StatTrackCollections += [TrackContainer]
551 StatTrackTruthCollections += [f
"{TrackContainer}TruthCollection"]
553 if flags.Tracking.doSlimming:
554 from TrkConfig.TrkTrackSlimmerConfig
import TrackSlimmerCfg
557 TrackLocation=[TrackContainer]))
559 if flags.Tracking.perigeeExpression ==
"BeamLine":
560 from xAODTrackingCnv.xAODTrackingCnvConfig
import TrackParticleCnvAlgCfg
565 AssociationMapName=f
"PRDtoTrackMapMerge_{TrackContainer}"))
573 TrackContainer =
"InDetPseudoTracks"
574 if flags.Tracking.doTruth:
575 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
578 Tracks=TrackContainer,
579 DetailedTruth=TrackContainer +
"DetailedTruth",
580 TracksTruth=TrackContainer +
"TruthCollection"))
582 from xAODTrackingCnv.xAODTrackingCnvConfig
import TrackParticleCnvAlgCfg
585 name=
"PseudoTrackParticleCnvAlg",
586 TrackContainerName=TrackContainer,
587 xAODTrackParticlesFromTracksContainerName=(
588 "InDetPseudoTrackParticles"),
590 "PRDtoTrackMapMerge_CombinedInDetTracks")))
598 TrackContainer =
"ObservedTracksCollection"
599 if flags.Tracking.doTruth:
600 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
603 Tracks=TrackContainer,
604 DetailedTruth=TrackContainer +
"DetailedTruth",
605 TracksTruth=TrackContainer +
"TruthCollection"))
607 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
608 ObserverTrackParticleCnvAlgCfg)
611 AssociationMapName = (
612 "PRDtoTrackMapMerge_CombinedInDetTracks")))
622 listOfExtensionsRequesting = [
623 e
for e
in _extensions_list
624 if (e ==
'' or flags.Tracking.__getattr__(e+
'Pass').storeTrackSeeds) ]
626 for extension
in listOfExtensionsRequesting:
627 TrackContainer =
"SiSPSeedSegments"+extension
629 if flags.Tracking.doTruth:
630 from InDetConfig.TrackTruthConfig
import InDetTrackTruthCfg
633 Tracks=TrackContainer,
634 DetailedTruth=f
"{TrackContainer}DetailedTruth",
635 TracksTruth=f
"{TrackContainer}TruthCollection"))
637 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
638 TrackParticleCnvAlgNoPIDCfg)
641 name=f
"{TrackContainer}CnvAlg",
642 TrackContainerName=TrackContainer,
643 xAODTrackParticlesFromTracksContainerName=(
644 f
"{TrackContainer}TrackParticles")))
652 primaryPassExtension = flags.Tracking.__getattr__(f
"{flags.Tracking.PrimaryPassConfig.value}Pass").extension
656 listOfExtensionsRequesting = [
657 e
for e
in _extensions_list
658 if (e==
'' or flags.Tracking.__getattr__(e+
'Pass').storeSiSPSeededTracks) ]
660 for extension
in listOfExtensionsRequesting:
661 AssociationMapNameKey=
"PRDtoTrackMapMerge_CombinedInDetTracks"
662 if extension==
'Disappearing':
663 AssociationMapNameKey =
"PRDtoTrackMapMerge_DisappearingTracks"
664 elif not (extension == primaryPassExtension):
665 AssociationMapNameKey = f
"InDetPRDtoTrackMap{extension}"
667 from xAODTrackingCnv.xAODTrackingCnvConfig
import (
668 TrackParticleCnvAlgNoPIDCfg)
671 name = f
"SiSPSeededTracks{extension}CnvAlg",
672 TrackContainerName = f
"SiSPSeeded{extension}Tracks",
673 xAODTrackParticlesFromTracksContainerName=(
674 f
"SiSPSeededTracks{extension}TrackParticles"),
675 AssociationMapName=AssociationMapNameKey))
681 StatTrackTruthCollections=None):
684 from InDetConfig.InDetRecStatisticsConfig
import (
685 InDetRecStatisticsAlgCfg)
688 TrackCollectionKeys=StatTrackCollections,
689 TrackTruthCollectionKeys=(
690 StatTrackTruthCollections
if flags.Tracking.doTruth
else [])))
692 if flags.Tracking.doTruth:
693 from InDetConfig.InDetTrackClusterAssValidationConfig
import (
694 InDetTrackClusterAssValidationCfg)
697 TracksLocation=StatTrackCollections))
705 if (flags.Tracking.doTIDE_AmbiTrackMonitoring
or
706 flags.Tracking.doPseudoTracking):
707 from InDetConfig.InDetPrepRawDataToxAODConfig
import (
708 InDetPixelPrepDataToxAOD_ExtraTruthCfg
as PixelPrepDataToxAODCfg,
709 InDetSCT_PrepDataToxAOD_ExtraTruthCfg
as SCT_PrepDataToxAODCfg,
710 InDetTRT_PrepDataToxAOD_ExtraTruthCfg
as TRT_PrepDataToxAODCfg)
712 from InDetConfig.InDetPrepRawDataToxAODConfig
import (
713 InDetPixelPrepDataToxAODCfg
as PixelPrepDataToxAODCfg,
714 InDetSCT_PrepDataToxAODCfg
as SCT_PrepDataToxAODCfg,
715 InDetTRT_PrepDataToxAODCfg
as TRT_PrepDataToxAODCfg)
717 if flags.Tracking.writeExtendedSi_PRDInfo:
718 result.merge(PixelPrepDataToxAODCfg(
720 ClusterSplitProbabilityName=(
722 result.merge(SCT_PrepDataToxAODCfg(flags))
724 if flags.Tracking.writeExtendedTRT_PRDInfo:
725 result.merge(TRT_PrepDataToxAODCfg(flags))
727 from DerivationFrameworkInDet.InDetToolsConfig
import TSOS_CommonKernelCfg
729 listOfExtensionsRequesting = [
730 e
for e
in _extensions_list
if (e ==
'')
or
731 (flags.Tracking.__getattr__(e+
'Pass').storeSiSPSeededTracks
and
732 flags.Tracking.__getattr__(e+
'Pass').storeSeparateContainer) ]
734 flags, listOfExtensions = listOfExtensionsRequesting))
736 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
737 from DerivationFrameworkInDet.InDetToolsConfig
import (
738 ObserverTSOS_CommonKernelCfg)
741 if flags.Tracking.doPseudoTracking:
742 from DerivationFrameworkInDet.InDetToolsConfig
import (
743 PseudoTSOS_CommonKernelCfg)
746 if flags.Tracking.doStoreSiSPSeededTracks:
747 from DerivationFrameworkInDet.InDetToolsConfig
import (
748 SiSPTSOS_CommonKernelCfg)
750 listOfExtensionsRequesting = [
751 e
for e
in _extensions_list
if (e ==
'')
or
752 flags.Tracking.__getattr__(e+
'Pass').storeSiSPSeededTracks ]
754 flags, listOfExtensions = listOfExtensionsRequesting))
758 listOfExtensionsRequesting = [
759 e
for e
in _extensions_list
if (e ==
'')
or
760 (flags.Tracking.__getattr__(e+
'Pass').storeSiSPSeededTracks
and
761 flags.Tracking.__getattr__(e+
'Pass').storeSeparateContainer) ]
762 from InDetPhysValMonitoring.InDetPhysValDecorationConfig
import (
763 InDetPhysHitDecoratorAlgCfg)
764 for extension
in listOfExtensionsRequesting:
767 name=f
"InDetPhysHit{extension}DecoratorAlg",
768 TrackParticleContainerName=f
"InDet{extension}TrackParticles"))
780 if flags.Detector.GeometryITk:
781 from InDetConfig.ITkTrackRecoConfig
import ITkTrackRecoCfg
784 """Configures complete ID tracking """
788 ClusterSplitProbContainer =
''
797 if flags.Tracking.doTrackSegmentsPixel:
798 acc, ClusterSplitProbContainer = (
800 extensions_list=_extensions_list,
801 ClusterSplitProbContainer=ClusterSplitProbContainer))
805 if flags.Tracking.doTrackSegmentsSCT:
806 acc, ClusterSplitProbContainer = (
808 extensions_list=_extensions_list,
809 ClusterSplitProbContainer=ClusterSplitProbContainer))
813 if flags.Tracking.doTrackSegmentsTRT:
819 if flags.Beam.Type
is BeamType.Cosmics:
820 flagsCosmics = flags_set[0]
830 InputCombinedInDetTracks = []
832 InputExtendedInDetTracks = []
833 ClusterSplitProbContainer =
""
834 StatTrackCollections = []
835 StatTrackTruthCollections = []
838 for current_flags
in flags_set:
842 "" if isPrimaryPass
else
843 current_flags.Tracking.ActiveConfig.extension)
844 _extensions_list.append(extension)
850 if flags.Tracking.doTRTStandalone
and extension ==
"TRTStandalone":
853 InputCombinedInDetTracks=InputCombinedInDetTracks,
854 InputExtendedInDetTracks=InputExtendedInDetTracks,
855 StatTrackCollections=StatTrackCollections,
856 StatTrackTruthCollections=StatTrackTruthCollections))
865 current_flags, extension=extension,
866 doTrackingSiPattern=not(isPrimaryPass
and
867 flags.Beam.Type
is BeamType.Cosmics),
868 InputCombinedInDetTracks=InputCombinedInDetTracks,
869 InputExtendedInDetTracks=InputExtendedInDetTracks,
870 StatTrackCollections=StatTrackCollections,
871 StatTrackTruthCollections=StatTrackTruthCollections,
872 ClusterSplitProbContainer=ClusterSplitProbContainer)
885 if flags.Tracking.doTRTSegments:
886 from InDetConfig.TRTSegmentFindingConfig
import (
887 TRTSegmentFindingCfg)
890 InputCollections=InputCombinedInDetTracks))
896 if flags.Tracking.doBackTracking:
899 InputCombinedInDetTracks=InputCombinedInDetTracks,
900 InputExtendedInDetTracks=InputExtendedInDetTracks,
901 StatTrackCollections=StatTrackCollections,
902 StatTrackTruthCollections=StatTrackTruthCollections,
903 ClusterSplitProbContainer=ClusterSplitProbContainer)
910 if (flags.Tracking.doTruth
and
911 (flags.Tracking.doPseudoTracking
or
912 flags.Tracking.doIdealPseudoTracking)):
914 from TrkConfig.TrkTruthTrackAlgsConfig
import TruthTrackingCfg
917 isPrimaryPass =
False
925 InputCombinedInDetTracks=InputCombinedInDetTracks,
926 StatTrackCollections=StatTrackCollections,
927 StatTrackTruthCollections=StatTrackTruthCollections))
929 if (flags.Tracking.doPseudoTracking
or
930 flags.Tracking.doIdealPseudoTracking):
933 if flags.Tracking.doTIDE_AmbiTrackMonitoring:
936 if flags.Tracking.doStoreTrackSeeds:
939 if flags.Tracking.doStoreSiSPSeededTracks:
946 if flags.Tracking.doVertexFinding:
947 from InDetConfig.InDetPriVxFinderConfig
import primaryVertexFindingCfg
950 if flags.Tracking.doStats:
953 StatTrackCollections=StatTrackCollections,
954 StatTrackTruthCollections=StatTrackTruthCollections))
960 if flags.Tracking.doV0Finder:
961 from InDetConfig.InDetV0FinderConfig
import InDetV0FinderCfg
964 if (flags.Tracking.writeExtendedSi_PRDInfo
or
965 flags.Tracking.writeExtendedTRT_PRDInfo):
969 from InDetConfig.InDetTrackOutputConfig
import InDetTrackRecoOutputCfg
976 if __name__ ==
"__main__":
977 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
981 flags.Detector.EnableCalo =
False
983 from AthenaConfiguration.TestDefaults
import defaultTestFiles
984 flags.Input.Files = defaultTestFiles.RDO_RUN2
987 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
990 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
995 if "EventInfo" not in flags.Input.Collections:
996 from xAODEventInfoCnv.xAODEventInfoCnvConfig
import EventInfoCnvAlgCfg
1000 from xAODTruthCnv.xAODTruthCnvConfig
import GEN_AOD2xAODCfg
1005 top_acc.foreach_component(
"AthEventSeq/*").OutputLevel = DEBUG
1006 top_acc.printConfig(withDetails=
True, summariseProps=
True)
1007 top_acc.store(
open(
"TrackRecoConfig.pkl",
"wb"))
1010 if "--norun" not in sys.argv: