ATLAS Offline Software
Loading...
Searching...
No Matches
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
11from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
12from AthenaConfiguration.ComponentFactory import CompFactory
13from FPGATrackSimConfTools.FPGATrackSimDataPrepConfig import FPGATrackSimEventSelectionSvcCfg
14
15def 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
41if __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