ATLAS Offline Software
TileMuIDConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 """Define methods to construct configured Tile MuID conditions tool and algorithm"""
4 
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 
8 def TileMuIDCondAlgCfg(flags, **kwargs):
9  """Return component accumulator with configured Tile MuID conditions algorithm
10 
11  Arguments:
12  flags -- Athena configuration flags
13  Keyword arguments:
14  Source -- source of Tile MuID conditions (COOL, FILE). Defaults to COOL.
15  TileMuID -- name of Tile MuID conditions object. Defaults to TileMuID.
16  """
17 
18  acc = ComponentAccumulator()
19 
20  source = kwargs.get('Source', 'COOL')
21  muID = kwargs.get('TileMuID', 'TileMuID')
22 
23  name = muID + 'CondAlg'
24 
25  if source == 'COOL':
26  # Connect COOL Tile conditions proxies to the algorithm (default)
27 
28  from TileConditions.TileFolders import TileFolders
29  folders = TileFolders(isMC = flags.Input.isMC, isOnline = flags.Common.isOnline)
30 
31  muIDFolder = folders.addSplitMC('/TILE/ONL01/MUID', '/TILE/ONL01/MUID')
32 
33  TileCondProxyCoolFlt=CompFactory.getComp("TileCondProxyCool<TileCalibDrawerFlt>")
34  muIDProxy = TileCondProxyCoolFlt('TileCondProxyCool_MuID', Source = muIDFolder)
35 
36  from IOVDbSvc.IOVDbSvcConfig import addFolderList
37  acc.merge( addFolderList(flags, folders.get()) )
38 
39  elif source == 'FILE':
40  # Connect FILE Tile conditions proxies to the algorithm
41  TileCondProxyFileFlt=CompFactory.getComp("TileCondProxyFile<TileCalibDrawerFlt>")
42  muIDProxy = TileCondProxyFileFlt('TileCondProxyFile_MuID', Source = 'TileDefault.muid')
43  else:
44  raise(Exception("Invalid source: %s" % source))
45 
46  TileCalibFltCondAlg=CompFactory.getComp("TileCalibCondAlg<TileCalibDrawerFlt>")
47  muIDCondAlg = TileCalibFltCondAlg( name = name,
48  ConditionsProxy = muIDProxy,
49  TileCalibData = muID)
50 
51  acc.addCondAlgo(muIDCondAlg)
52 
53  return acc
54 
55 
56 def TileCondToolMuIDCfg(flags, **kwargs):
57  """Return component accumulator with configured private Tile MuID conditions tool
58  Arguments:
59  flags -- Athena configuration flags
60  Keyword arguments:
61  Source -- source of Tile MuID conditions (COOL, FILE). Defaults to COOL.
62  TileMuID -- name of Tile MuID conditions object. Defaults to TileMuID.
63  """
64 
65  acc = ComponentAccumulator()
66 
67  kwargs.setdefault('Source', 'COOL')
68  kwargs.setdefault('TileMuID', 'TileMuID')
69 
70  muID = kwargs['TileMuID']
71  name = 'TileCondToolMuID'
72 
73  acc.merge( TileMuIDCondAlgCfg(flags, **kwargs) )
74 
75  TileCondToolMuID=CompFactory.TileCondToolMuID
76  acc.setPrivateTools( TileCondToolMuID(name, TileMuID = muID) )
77 
78  return acc
79 
80 
81 if __name__ == "__main__":
82 
83  from AthenaConfiguration.AllConfigFlags import initConfigFlags
84  from AthenaConfiguration.TestDefaults import defaultTestFiles
85  from AthenaCommon.Logging import log
86  from AthenaCommon.Constants import DEBUG
87 
88  # Test setup
89  log.setLevel(DEBUG)
90 
91  flags = initConfigFlags()
92  flags.Input.Files = defaultTestFiles.RAW_RUN2
93  flags.lock()
94 
96 
97  muIDTool = acc.popToolsAndMerge( TileCondToolMuIDCfg(flags) )
98  print(muIDTool)
99 
100  acc.printConfig(withDetails = True, summariseProps = True)
101  print(acc.getService('IOVDbSvc'))
102  acc.store( open('TileMuID.pkl','wb') )
103 
104  print('All OK')
105 
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.IOVDbSvcConfig.addFolderList
def addFolderList(flags, listOfFolderInfoTuple, extensible=False, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:90
TileCondProxyCool
The tool to get Tile conditions data from DB.
Definition: TileCondProxyCool.h:25
TileCondToolMuID
Definition: TileCondToolMuID.h:21
python.TileMuIDConfig.TileCondToolMuIDCfg
def TileCondToolMuIDCfg(flags, **kwargs)
Definition: TileMuIDConfig.py:56
TileCondProxyFile
The tool to get Tile conditions data from file.
Definition: TileCondProxyFile.h:28
Constants
some useful constants -------------------------------------------------—
Trk::open
@ open
Definition: BinningType.h:40
TileCalibCondAlg
Condition algorithm to prepare TileCalibData object and put it into condition store.
Definition: TileCalibCondAlg.h:24
python.AllConfigFlags.initConfigFlags
def initConfigFlags()
Definition: AllConfigFlags.py:19
python.TileMuIDConfig.TileMuIDCondAlgCfg
def TileMuIDCondAlgCfg(flags, **kwargs)
Definition: TileMuIDConfig.py:8
dbg::print
void print(std::FILE *stream, std::format_string< Args... > fmt, Args &&... args)
Definition: SGImplSvc.cxx:70