3 """Define methods to construct configured Tile sampling fraction conditions algorithm"""
5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
7 from AthenaConfiguration.Enums
import LHCPeriod, BeamType
10 """Return component accumulator with configured Tile sampling fraction conditions algorithm
13 flags -- Athena configuration flags
15 Source -- source of Tile SamplingFraction conditions (COOL, FILE). Defaults to COOL.
16 TileSamplingFraction -- name of Tile sampling fraction conditions object. Defaults to TileSamplingFraction.
21 source = kwargs.get(
'Source',
'COOL')
22 samplingFraction = kwargs.get(
'TileSamplingFraction',
'TileSamplingFraction')
24 name = samplingFraction +
'CondAlg'
29 samplingFractionFolder =
'/TILE/OFL02/CALIB/SFR'
31 TileCondProxyCoolFlt = CompFactory.getComp(
"TileCondProxyCool<TileCalibDrawerFlt>")
32 samplingFractionProxy =
TileCondProxyCoolFlt(
'TileCondProxyCool_SamplingFraction', Source = samplingFractionFolder)
34 samplingFractionTag =
None
35 from SimulationConfig.SimEnums
import LArParameterization
36 if flags.Beam.Type
is BeamType.TestBeam:
38 samplingFractionTag =
'TileOfl02CalibSfr-SIM-06'
39 elif flags.GeoModel.Run >= LHCPeriod.Run4
or flags.Sim.ISF.Simulator.usesFastCaloSim()
or flags.Sim.LArParameterization
is LArParameterization.FastCaloSim:
40 samplingFractionTag =
'TileOfl02CalibSfr-SIM-07'
42 from IOVDbSvc.IOVDbSvcConfig
import addFolders
43 acc.merge(
addFolders(flags, samplingFractionFolder + f
'<key>{samplingFractionFolder}</key>',
44 detDb=
'TILE_OFL', className=
'CondAttrListCollection', tag=samplingFractionTag, db=
'OFLP200') )
46 elif source ==
'FILE':
48 TileCondProxyFileFlt = CompFactory.getComp(
"TileCondProxyFile<TileCalibDrawerFlt>")
49 samplingFractionProxy =
TileCondProxyFileFlt(
'TileCondProxyFile_SamplingFraction', Source =
'TileDefault.sfr')
51 raise(Exception(
"Invalid source: %s" % source))
53 G4Version = flags.Sim.G4Version
54 G4VersionMajor, G4VersionMinor = G4Version.split(
".")[1:3]
55 G4V =
int(G4VersionMajor) * 100 +
int(G4VersionMinor)
57 TileSamplingFractionCondAlg = CompFactory.getComp(
"TileSamplingFractionCondAlg")
59 ConditionsProxy = samplingFractionProxy,
60 TileCondData = samplingFraction)
62 acc.addCondAlgo(samplingFractionCondAlg)
68 if __name__ ==
"__main__":
70 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
71 from AthenaConfiguration.TestDefaults
import defaultTestFiles
72 from AthenaCommon.Logging
import log
79 flags.Input.Files = defaultTestFiles.HITS_RUN2
86 acc.printConfig(withDetails =
True, summariseProps =
True)
87 print(acc.getService(
'IOVDbSvc'))
88 acc.store(
open(
'TileSamplingFraction.pkl',
'wb') )