ATLAS Offline Software
FPGATrackSimBankConstGenConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 '''
3 @file FPGATrackSimBankConstGenConfig.py
4 @author Riley Xu - rixu@cern.ch
5 @date Sept 22, 2020
6 @brief This file declares functions to configure components in FPGATrackSimBankMerge
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.FPGATrackSimDataPrepConfig import FPGATrackSimEventSelectionSvcCfg
14 
15 def FPGATrackSimConstsGenCfg(flags, **kwargs):
16 
17  acc = ComponentAccumulator()
18 
19  kwargs.setdefault("merged_file_path", flags.Trigger.FPGATrackSim.FPGATrackSimMatrixFileRegEx)
20  kwargs.setdefault("region", flags.Trigger.FPGATrackSim.region)
21  kwargs.setdefault("CheckGood2ndStage",flags.Trigger.FPGATrackSim.CheckGood2ndStage)
22  kwargs.setdefault("UseHitScaleFactor",flags.Trigger.FPGATrackSim.UseHitScaleFactor)
23  kwargs.setdefault("IsSecondStage",flags.Trigger.FPGATrackSim.Is2ndStage)
24  kwargs.setdefault("missHitsConsts",flags.Trigger.FPGATrackSim.missHitsConsts)
25 
26  from FPGATrackSimConfTools.FPGATrackSimDataPrepConfig import FPGATrackSimMappingCfg
27  FPGATrackSimMapping = acc.getPrimaryAndMerge(FPGATrackSimMappingCfg(flags))
28  theFPGATrackSimConstGenAlg = CompFactory.FPGATrackSimConstGenAlgo(**kwargs)
29  theFPGATrackSimConstGenAlg.FPGATrackSimMappingSvc = FPGATrackSimMapping
30 
31  # We need the "full" event selection service to be set up.
32  theFPGATrackSimConstGenAlg.FPGATrackSimEventSelectionSvc = acc.getPrimaryAndMerge(FPGATrackSimEventSelectionSvcCfg(flags))
33 
34  acc.addEventAlgo(theFPGATrackSimConstGenAlg)
35  return acc
36 
38  newFlags = flags.cloneAndReplace("Trigger.FPGATrackSim.ActiveConfig", "Trigger.FPGATrackSim." + flags.Trigger.FPGATrackSim.algoTag)
39  return newFlags
40 
41 if __name__ == "__main__":
42  from AthenaConfiguration.AllConfigFlags import initConfigFlags
43  from AthenaConfiguration.MainServicesConfig import MainServicesCfg
44  from AthenaCommon.Logging import logging
45  log = logging.getLogger(__name__)
46 
47  flags = initConfigFlags()
48  flags.fillFromArgs()
50  flags.lock()
51 
52  acc=MainServicesCfg(flags)
53 
54  acc.merge(FPGATrackSimConstsGenCfg(flags))
55  acc.store(open('FPGATrackSimConstsGenConfig.pkl','wb'))
56 
57  from AthenaConfiguration.Utils import setupLoggingLevels
58  setupLoggingLevels(flags, acc)
59 
60  MatrixFileName=flags.Trigger.FPGATrackSim.outputMergedFPGATrackSimMatrixFile
61  acc.addService(CompFactory.THistSvc(Output = ["TRIGFPGATrackSimTREEGOODOUT DATAFILE='"+MatrixFileName+"', OPT='RECREATE'"]))
62  acc.addService(CompFactory.THistSvc(Output = ["TRIGFPGATrackSimCTREEOUT DATAFILE='const.root', OPT='RECREATE'"]))
63 
64  statusCode = acc.run()
65  assert statusCode.isSuccess() is True, "Application execution did not succeed"
66 
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.Utils.setupLoggingLevels
def setupLoggingLevels(flags, ca)
Definition: Control/AthenaConfiguration/python/Utils.py:50
FPGATrackSimBankConstGenConfig.prepareFlagsForFPGATrackSimBankGen
def prepareFlagsForFPGATrackSimBankGen(flags)
Definition: FPGATrackSimBankConstGenConfig.py:37
python.MainServicesConfig.MainServicesCfg
def MainServicesCfg(flags, LoopMgr='AthenaEventLoopMgr')
Definition: MainServicesConfig.py:312
FPGATrackSimBankConstGenConfig.FPGATrackSimConstsGenCfg
def FPGATrackSimConstsGenCfg(flags, **kwargs)
Definition: FPGATrackSimBankConstGenConfig.py:15
python.FPGATrackSimDataPrepConfig.FPGATrackSimEventSelectionSvcCfg
def FPGATrackSimEventSelectionSvcCfg(flags, name="FPGATrackSimEventSelectionSvc")
Definition: FPGATrackSimDataPrepConfig.py:268
Trk::open
@ open
Definition: BinningType.h:40
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.FPGATrackSimDataPrepConfig.FPGATrackSimMappingCfg
def FPGATrackSimMappingCfg(flags, name="FPGATrackSimMappingSvc")
Definition: FPGATrackSimDataPrepConfig.py:298