ATLAS Offline Software
TileDSPThresholdConfig.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 DSP threshold conditions tool and algorithm"""
4 
5 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory import CompFactory
7 
8 
9 def TileDSP_ThresholdCondAlgCfg(flags, **kwargs):
10  """Return component accumulator with configured Tile DSP threshold conditions algorithm
11 
12  Arguments:
13  flags -- Athena configuration flags
14  Keyword arguments:
15  Source -- source of Tile auto correlation conditions (COOL, FILE). Defaults to COOL.
16  TileDSP_Threshold -- name of Tile auto correlation conditions object. Defaults to TileDSP_Threshold.
17  """
18 
19  acc = ComponentAccumulator()
20 
21  source = kwargs.get('Source', 'COOL')
22  dspThreshold = kwargs.get('TileDSP_Threshold', 'TileDSP_Threshold')
23 
24  name = dspThreshold + 'CondAlg'
25 
26  if source == 'COOL':
27  # Connect COOL Tile conditions proxies to the algorithm (default)
28 
29  from TileConditions.TileFolders import TileFolders
30  folders = TileFolders(isMC = flags.Input.isMC, isOnline = flags.Common.isOnline)
31 
32  if flags.IOVDb.DatabaseInstance == 'CONDBR2':
33  dspThresholdFolder = folders.addSplitOnline('/TILE/ONL01/DSP/THRESHOLD', '/TILE/OFL02/DSP/THRESHOLD')
34  else:
35  raise(Exception("No Tile DSP threshold folder in %s" % flags.IOVDb.DatabaseInstancea))
36 
37  TileCondProxyCoolFlt=CompFactory.getComp("TileCondProxyCool<TileCalibDrawerFlt>")
38  dspThresholdProxy = TileCondProxyCoolFlt('TileCondProxyCool_DspThreshold', Source = dspThresholdFolder)
39 
40  from IOVDbSvc.IOVDbSvcConfig import addFolderList
41  acc.merge( addFolderList(flags, folders.get()) )
42 
43  elif source == 'FILE':
44  # Connect FILE Tile conditions proxies to the algorithm
45  TileCondProxyFileFlt=CompFactory.getComp("TileCondProxyFile<TileCalibDrawerFlt>")
46  dspThresholdProxy = TileCondProxyFileFlt('TileCondProxyFile_DspThreshold', Source = 'TileDefault.dspThreshold')
47  else:
48  raise(Exception("Invalid source: %s" % source))
49 
50  TileCalibFltCondAlg=CompFactory.getComp("TileCalibCondAlg<TileCalibDrawerFlt>")
51  dspThresholdCondAlg = TileCalibFltCondAlg( name = name,
52  ConditionsProxy = dspThresholdProxy,
53  TileCalibData = dspThreshold)
54 
55  acc.addCondAlgo(dspThresholdCondAlg)
56 
57  return acc
58 
59 
60 def TileCondToolDspThresholdCfg(flags, **kwargs):
61  """Return component accumulator with configured private Tile DSP threshold tool
62  Arguments:
63  flags -- Athena configuration flags
64  Keyword arguments:
65  Source -- source of Tile DSP threshold conditions (COOL, FILE). Defaults to COOL.
66  TileDSP_Threshold -- name of Tile DSP threshold conditions object. Defaults to TileDSP_Threshold.
67  """
68 
69  acc = ComponentAccumulator()
70 
71  kwargs.setdefault('Source', 'COOL')
72  kwargs.setdefault('TileDSP_Threshold', 'TileDSP_Threshold')
73 
74  dspThreshold = kwargs['TileDSP_Threshold']
75 
76  acc.merge( TileDSP_ThresholdCondAlgCfg(flags, **kwargs) )
77 
78  TileCondToolDspThreshold=CompFactory.TileCondToolDspThreshold
79  acc.setPrivateTools( TileCondToolDspThreshold(TileDSP_Threshold = dspThreshold) )
80 
81  return acc
82 
83 
84 if __name__ == "__main__":
85 
86  from AthenaConfiguration.AllConfigFlags import initConfigFlags
87  from AthenaConfiguration.TestDefaults import defaultTestFiles
88  from AthenaCommon.Logging import log
89  from AthenaCommon.Constants import DEBUG
90 
91  # Test setup
92  log.setLevel(DEBUG)
93 
94  flags = initConfigFlags()
95  flags.Input.Files = defaultTestFiles.RAW_RUN2
96  flags.lock()
97 
99 
100  autoCorrelationTool = acc.popToolsAndMerge( TileCondToolDspThresholdCfg(flags) )
101  print(autoCorrelationTool)
102 
103  acc.printConfig(withDetails = True, summariseProps = True)
104  print(acc.getService('IOVDbSvc'))
105  acc.store( open('TileDSP_Threshold.pkl','wb') )
106 
107  print('All OK')
108 
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.IOVDbSvcConfig.addFolderList
def addFolderList(flags, listOfFolderInfoTuple, extensible=False, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:90
python.TileDSPThresholdConfig.TileCondToolDspThresholdCfg
def TileCondToolDspThresholdCfg(flags, **kwargs)
Definition: TileDSPThresholdConfig.py:60
TileCondProxyCool
The tool to get Tile conditions data from DB.
Definition: TileCondProxyCool.h:25
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
TileCondToolDspThreshold
Definition: TileCondToolDspThreshold.h:17
Muon::print
std::string print(const MuPatSegment &)
Definition: MuonTrackSteering.cxx:28
python.TileDSPThresholdConfig.TileDSP_ThresholdCondAlgCfg
def TileDSP_ThresholdCondAlgCfg(flags, **kwargs)
Definition: TileDSPThresholdConfig.py:9