ATLAS Offline Software
FPGATrackSimBankGenConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 '''
3 @file FPGATrackSimBankGenConfig.py
4 @author Riley Xu - rixu@cern.ch
5 @date Sept 22, 2020
6 @brief This file declares functions to configure components in FPGATrackSimBankGen
7 '''
8 
9 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
10 
11 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12 from AthenaConfiguration.ComponentFactory import CompFactory
13 from FPGATrackSimConfTools.FPGATrackSimAnalysisConfig import FPGATrackSimRoadUnionToolCfg,FPGATrackSimRoadUnionTool1DCfg,FPGATrackSimRawLogicCfg
14 from AthenaCommon.SystemOfUnits import GeV
15 
16 
18  result=ComponentAccumulator()
19  SpacePointTool = CompFactory.FPGATrackSimSpacePointsTool()
20  SpacePointTool.Filtering = flags.Trigger.FPGATrackSim.ActiveConfig.spacePointFiltering
21  SpacePointTool.FilteringClosePoints = False
22  SpacePointTool.PhiWindow = 0.004
23  SpacePointTool.Duplication = True
24  result.setPrivateTools(SpacePointTool)
25  return result
26 
28  newFlags = flags.cloneAndReplace("Trigger.FPGATrackSim.ActiveConfig", "Trigger.FPGATrackSim." + flags.Trigger.FPGATrackSim.algoTag)
29  return newFlags
30 
32  result=ComponentAccumulator()
33 
34  from TrkConfig.AtlasExtrapolatorConfig import AtlasExtrapolatorCfg
35  MyExtrapolator = result.popToolsAndMerge(AtlasExtrapolatorCfg(flags))
36 
37  from TrkConfig.TrkTruthCreatorToolsConfig import TruthToTrackToolCfg
38  MyTruthToTrack = result.popToolsAndMerge(TruthToTrackToolCfg(flags))
39 
40  FPGATrackSimSGInputTool = CompFactory.FPGATrackSimSGToRawHitsTool(maxEta=5.0, minPt=0.8 * GeV,
41  dumpHitsOnTracks=False,
42  dumpTruthIntersections=False,
43  ReadOfflineClusters=False,
44  ReadTruthTracks=True,
45  ReadOfflineTracks=False,
46  UseNominalOrigin = True,
47  Extrapolator = MyExtrapolator,
48  TruthToTrackTool = MyTruthToTrack )
49  result.setPrivateTools(FPGATrackSimSGInputTool)
50  return result
51 
52 def FPGATrackSimBankGenCfg(flags, **kwargs):
53 
54  acc = ComponentAccumulator()
55 
56  theFPGATrackSimMatrixGenAlg = CompFactory.FPGATrackSimMatrixGenAlgo()
57  theFPGATrackSimMatrixGenAlg.Clustering = True
58  theFPGATrackSimMatrixGenAlg.IdealiseGeometry = 2
59  theFPGATrackSimMatrixGenAlg.SingleSector = False
60  theFPGATrackSimMatrixGenAlg.HoughConstants = True
61  theFPGATrackSimMatrixGenAlg.DeltaPhiConstants = False
62  theFPGATrackSimMatrixGenAlg.PT_THRESHOLD = 1.0 # GeV
63  theFPGATrackSimMatrixGenAlg.D0_THRESHOLD = 2.0 # mm
64  theFPGATrackSimMatrixGenAlg.TRAIN_PDG = 13
65  theFPGATrackSimMatrixGenAlg.NBanks = 1
66 
67  theFPGATrackSimMatrixGenAlg.SpacePoints = True
68  theFPGATrackSimMatrixGenAlg.SpacePointTool = acc.getPrimaryAndMerge(FPGATrackSimSpacePointsToolCfg(flags))
69  theFPGATrackSimMatrixGenAlg.minSpacePlusPixel = flags.Trigger.FPGATrackSim.minSpacePlusPixel
70 
71  # Override this. It gets set somewhere from bank_tag.
72  theFPGATrackSimMatrixGenAlg.WCmax = 2
73 
74  theFPGATrackSimMatrixGenAlg.FPGATrackSimRawToLogicalHitsTool = acc.getPrimaryAndMerge(FPGATrackSimRawLogicCfg(flags))
75 
76  if (flags.Trigger.FPGATrackSim.ActiveConfig.hough1D):
77  theFPGATrackSimMatrixGenAlg.RoadFinder = acc.getPrimaryAndMerge(FPGATrackSimRoadUnionTool1DCfg(flags))
78  else:
79 
80  theFPGATrackSimMatrixGenAlg.RoadFinder = acc.getPrimaryAndMerge(FPGATrackSimRoadUnionToolCfg(flags))
81 
82  from BeamSpotConditions.BeamSpotConditionsConfig import BeamSpotCondAlgCfg
83  acc.merge(BeamSpotCondAlgCfg(flags))
84 
85  theFPGATrackSimMatrixGenAlg.FPGATrackSimSGToRawHitsTool = acc.popToolsAndMerge(FPGATrackSimSGToRawHitsToolCfg(flags))
86  theFPGATrackSimMatrixGenAlg.FPGATrackSimClusteringFTKTool = CompFactory.FPGATrackSimClusteringTool()
87 
88  # Do we really want to use the tag system for this? I think so but unsure if modernization needed.
89  import FPGATrackSimConfTools.FPGATrackSimTagConfig as FPGATrackSimTagConfig
90  bank_tag = FPGATrackSimTagConfig.getTags(stage='bank')['bank']
91  theFPGATrackSimMatrixGenAlg.sectorQPtBins = bank_tag['sectorQPtBins']
92  theFPGATrackSimMatrixGenAlg.qptAbsBinning = bank_tag['qptAbsBinning']
93 
94  acc.addEventAlgo(theFPGATrackSimMatrixGenAlg)
95 
96  return acc
97 
98 
99 if __name__ == "__main__":
100  from AthenaConfiguration.AllConfigFlags import initConfigFlags
101  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
102  flags = initConfigFlags()
103  from AthenaCommon.Logging import logging
104  log = logging.getLogger(__name__)
105 
106  flags.fillFromArgs()
107  flags.Trigger.FPGATrackSim.Hough.IdealGeoRoads = False
109 
110 
111 
112  flags.lock()
113 
114  acc=MainServicesCfg(flags)
115 
116  from AthenaPoolCnvSvc.PoolReadConfig import PoolReadCfg
117  acc.merge(PoolReadCfg(flags))
118 
119  acc.merge(FPGATrackSimBankGenCfg(flags))
120  acc.store(open('FPGATrackSimMapMakerConfig.pkl','wb'))
121 
122  from AthenaConfiguration.Utils import setupLoggingLevels
123  setupLoggingLevels(flags, acc)
124 
125  MatrixFileName="matrix.root"
126  acc.addService(CompFactory.THistSvc(Output = ["TRIGFPGATrackSimMATRIXOUT DATAFILE='"+MatrixFileName+"', OPT='RECREATE'"]))
127 
128  statusCode = acc.run()
129  assert statusCode.isSuccess() is True, "Application execution did not succeed"
130 
SystemOfUnits
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.BeamSpotConditionsConfig.BeamSpotCondAlgCfg
def BeamSpotCondAlgCfg(flags, name="BeamSpotCondAlg", **kwargs)
Definition: BeamSpotConditionsConfig.py:7
python.FPGATrackSimAnalysisConfig.FPGATrackSimRawLogicCfg
def FPGATrackSimRawLogicCfg(flags)
Definition: FPGATrackSimAnalysisConfig.py:202
python.AtlasExtrapolatorConfig.AtlasExtrapolatorCfg
def AtlasExtrapolatorCfg(flags, name='AtlasExtrapolator')
Definition: AtlasExtrapolatorConfig.py:63
python.Utils.setupLoggingLevels
def setupLoggingLevels(flags, ca)
Definition: Control/AthenaConfiguration/python/Utils.py:46
FPGATrackSimBankGenConfig.FPGATrackSimSGToRawHitsToolCfg
def FPGATrackSimSGToRawHitsToolCfg(flags)
Definition: FPGATrackSimBankGenConfig.py:31
python.FPGATrackSimAnalysisConfig.FPGATrackSimRoadUnionTool1DCfg
def FPGATrackSimRoadUnionTool1DCfg(flags)
Definition: FPGATrackSimAnalysisConfig.py:157
python.TrkTruthCreatorToolsConfig.TruthToTrackToolCfg
def TruthToTrackToolCfg(flags, name="TruthToTrack", **kwargs)
Definition: TrkTruthCreatorToolsConfig.py:25
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:256
FPGATrackSimBankGenConfig.FPGATrackSimSpacePointsToolCfg
def FPGATrackSimSpacePointsToolCfg(flags)
Definition: FPGATrackSimBankGenConfig.py:17
python.FPGATrackSimAnalysisConfig.FPGATrackSimRoadUnionToolCfg
def FPGATrackSimRoadUnionToolCfg(flags)
Definition: FPGATrackSimAnalysisConfig.py:103
FPGATrackSimBankGenConfig.prepareFlagsForFPGATrackSimBankGen
def prepareFlagsForFPGATrackSimBankGen(flags)
Definition: FPGATrackSimBankGenConfig.py:27
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.PoolReadConfig.PoolReadCfg
def PoolReadCfg(flags)
Definition: PoolReadConfig.py:69
FPGATrackSimBankGenConfig.FPGATrackSimBankGenCfg
def FPGATrackSimBankGenCfg(flags, **kwargs)
Definition: FPGATrackSimBankGenConfig.py:52