9def TileSamplingFractionCondAlgCfg(flags, **kwargs):
10 """Return component accumulator with configured Tile sampling fraction conditions algorithm
11
12 Arguments:
13 flags -- Athena configuration flags
14 Keyword arguments:
15 Source -- source of Tile SamplingFraction conditions (COOL, FILE). Defaults to COOL.
16 TileSamplingFraction -- name of Tile sampling fraction conditions object. Defaults to TileSamplingFraction.
17 """
18
19 acc = ComponentAccumulator()
20
21 source = kwargs.get('Source', 'COOL')
22 samplingFraction = kwargs.get('TileSamplingFraction', 'TileSamplingFraction')
23
24 name = samplingFraction + 'CondAlg'
25
26 if source == 'COOL':
27
28
29 samplingFractionFolder = '/TILE/OFL02/CALIB/SFR'
30
31 TileCondProxyCoolFlt = CompFactory.getComp("TileCondProxyCool<TileCalibDrawerFlt>")
32 samplingFractionProxy =
TileCondProxyCoolFlt(
'TileCondProxyCool_SamplingFraction', Source = samplingFractionFolder)
33
34 samplingFractionTag = None
35 from SimulationConfig.SimEnums import LArParameterization
36 if flags.Beam.Type is BeamType.TestBeam:
37
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'
41
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') )
45
46 elif source == 'FILE':
47
48 TileCondProxyFileFlt = CompFactory.getComp("TileCondProxyFile<TileCalibDrawerFlt>")
49 samplingFractionProxy =
TileCondProxyFileFlt(
'TileCondProxyFile_SamplingFraction', Source =
'TileDefault.sfr')
50 else:
51 raise(Exception("Invalid source: %s" % source))
52
53 G4Version = flags.Sim.G4Version
54 G4VersionMajor, G4VersionMinor = G4Version.split(".")[1:3]
55 G4V = int(G4VersionMajor) * 100 + int(G4VersionMinor)
56
57 TileSamplingFractionCondAlg = CompFactory.getComp("TileSamplingFractionCondAlg")
59 ConditionsProxy = samplingFractionProxy,
60 TileCondData = samplingFraction)
61
62 acc.addCondAlgo(samplingFractionCondAlg)
63
64 return acc
65
66
67