3 @file FPGATrackSimBankGenConfig.py
4 @author Riley Xu - rixu@cern.ch
6 @brief This file declares functions to configure components in FPGATrackSimBankGen
9 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
10 from AthenaConfiguration.ComponentFactory
import CompFactory
11 from FPGATrackSimConfTools.FPGATrackSimAnalysisConfig
import FPGATrackSimRoadUnionToolCfg,FPGATrackSimRoadUnionTool1DCfg,FPGATrackSimRoadUnionToolGenScanCfg
12 from FPGATrackSimConfTools.FPGATrackSimDataPrepConfig
import FPGATrackSimRawLogicCfg, FPGATrackSimMappingCfg, FPGATrackSimEventSelectionSvcCfg
18 SpacePointTool = CompFactory.FPGATrackSimSpacePointsTool()
19 SpacePointTool.Filtering = flags.Trigger.FPGATrackSim.ActiveConfig.spacePointFiltering
20 SpacePointTool.FilteringClosePoints =
False
21 SpacePointTool.PhiWindow = 0.004
22 SpacePointTool.Duplication =
True
23 result.setPrivateTools(SpacePointTool)
27 newFlags = flags.cloneAndReplace(
"Trigger.FPGATrackSim.ActiveConfig",
"Trigger.FPGATrackSim." + flags.Trigger.FPGATrackSim.algoTag)
33 from TrkConfig.AtlasExtrapolatorConfig
import AtlasExtrapolatorCfg
36 from TrkConfig.TrkTruthCreatorToolsConfig
import TruthToTrackToolCfg
39 FPGATrackSimSGInputTool = CompFactory.FPGATrackSimSGToRawHitsTool(maxEta=5.0, minPt=0.8 * GeV,
40 dumpHitsOnTracks=
False,
41 dumpTruthIntersections=
False,
42 ReadOfflineClusters=
False,
44 ReadOfflineTracks=
False,
45 UseNominalOrigin =
True,
46 Extrapolator = MyExtrapolator,
47 TruthToTrackTool = MyTruthToTrack )
48 result.setPrivateTools(FPGATrackSimSGInputTool)
55 theFPGATrackSimMatrixGenAlg = CompFactory.FPGATrackSimMatrixGenAlgo()
56 theFPGATrackSimMatrixGenAlg.Clustering =
True
57 theFPGATrackSimMatrixGenAlg.IdealiseGeometry = 2
58 theFPGATrackSimMatrixGenAlg.SingleSector =
False
59 theFPGATrackSimMatrixGenAlg.HoughConstants =
True
60 theFPGATrackSimMatrixGenAlg.DeltaPhiConstants =
False
61 theFPGATrackSimMatrixGenAlg.PT_THRESHOLD = 1.0
62 theFPGATrackSimMatrixGenAlg.D0_THRESHOLD = 2.0
63 theFPGATrackSimMatrixGenAlg.TRAIN_PDG = 13
64 theFPGATrackSimMatrixGenAlg.NBanks = 1
66 theFPGATrackSimMatrixGenAlg.SpacePoints = flags.Trigger.FPGATrackSim.spacePoints
67 if flags.Trigger.FPGATrackSim.spacePoints:
69 theFPGATrackSimMatrixGenAlg.minSpacePlusPixel = flags.Trigger.FPGATrackSim.minSpacePlusPixel
74 if (flags.Trigger.FPGATrackSim.ActiveConfig.secondStage):
75 from FPGATrackSimConfTools.FPGATrackSimAnalysisConfig
import FPGATrackSimTrackFitterToolCfg,FPGATrackSimOverlapRemovalToolCfg
76 from FPGATrackSimConfTools.FPGATrackSimSecondStageConfig
import FPGATrackSimWindowExtensionToolCfg
80 theFPGATrackSimMatrixGenAlg.SecondStage =
True
82 theFPGATrackSimMatrixGenAlg.SecondStage =
False
86 theFPGATrackSimMatrixGenAlg.WCmax = 2
87 theFPGATrackSimMatrixGenAlg.dropHitsAndFill = flags.dropHitsAndFill
89 theFPGATrackSimMatrixGenAlg.FPGATrackSimRawToLogicalHitsTool = acc.getPrimaryAndMerge(
FPGATrackSimRawLogicCfg(flags))
90 if (flags.Trigger.FPGATrackSim.ActiveConfig.genScan):
92 elif (flags.Trigger.FPGATrackSim.ActiveConfig.hough1D):
97 from BeamSpotConditions.BeamSpotConditionsConfig
import BeamSpotCondAlgCfg
101 theFPGATrackSimMatrixGenAlg.FPGATrackSimClusteringFTKTool = CompFactory.FPGATrackSimClusteringTool()
103 theFPGATrackSimMatrixGenAlg.sectorQPtBins = [-0.001, -0.0005, 0, 0.0005, 0.001]
104 theFPGATrackSimMatrixGenAlg.qptAbsBinning =
False
106 acc.addEventAlgo(theFPGATrackSimMatrixGenAlg)
111 if __name__ ==
"__main__":
112 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
113 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
115 flags.addFlag(
'dropHitsAndFill',
False)
117 from AthenaCommon.Logging
import logging
118 log = logging.getLogger(__name__)
121 flags.Trigger.FPGATrackSim.Hough.IdealGeoRoads =
False
130 from AthenaPoolCnvSvc.PoolReadConfig
import PoolReadCfg
134 acc.store(
open(
'FPGATrackSimMapMakerConfig.pkl',
'wb'))
136 from AthenaConfiguration.Utils
import setupLoggingLevels
139 acc.foreach_component(
"FPGATrackSim*").OutputLevel=flags.Trigger.FPGATrackSim.loglevel
140 if flags.Trigger.FPGATrackSim.msgLimit!=-1:
141 acc.getService(
"MessageSvc").debugLimit = flags.Trigger.FPGATrackSim.msgLimit
142 acc.getService(
"MessageSvc").infoLimit = flags.Trigger.FPGATrackSim.msgLimit
144 MatrixFileName=
"matrix.root"
145 acc.addService(CompFactory.THistSvc(Output = [
"TRIGFPGATrackSimMATRIXOUT DATAFILE='"+MatrixFileName+
"', OPT='RECREATE'"]))
147 statusCode = acc.run()
148 assert statusCode.isSuccess()
is True,
"Application execution did not succeed"