31def LUCID_PileUpToolCfg(flags, name="LUCID_PileUpTool",**kwargs):
32 acc = ComponentAccumulator()
33
34 if flags.Digitization.PileUp:
35 intervals = []
36 if flags.Digitization.DoXingByXingPileUp:
37 kwargs.setdefault("FirstXing", LUCID_FirstXing() )
38 kwargs.setdefault("LastXing", LUCID_LastXing() )
39 else:
40 intervals += [acc.popToolsAndMerge(LucidRangeCfg(flags))]
41 kwargs.setdefault("mergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
42
43 else:
44 kwargs.setdefault("mergeSvc", '')
45
46
47 from RngComps.RngCompsConfig import AthRNGSvcCfg
48 kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
49
50 kwargs.setdefault('pmtSmearing', [0.317, 0.000, 0.292, 0.316, 0.208, 0.178, 0.204, 0.281, 0.233, 0.261, 0.223, 0.250, 0.254, 0.239, 0.202, 0.224, 1, 1, 1, 1,
51 0.268, 0.277, 0.297, 0.310, 0.203, 0.347, 0.269, 0.241, 0.234, 0.234, 0.277, 0.297, 0.225, 0.297, 0.238, 0.000, 1, 1, 1, 1] )
52 kwargs.setdefault('pmtScaling', [1.010, 0.000, 0.991, 0.948, 1.152, 1.221, 1.160, 0.988, 1.092, 1.063, 1.143, 1.091, 1.109, 1.117, 1.185, 1.142, 1, 1, 1, 1,
53 1.023, 1.127, 1.043, 0.986, 1.148, 0.899, 0.898, 1.098, 1.115, 1.109, 1.127, 1.043, 1.085, 1.043, 1.063, 0.000, 1, 1, 1, 1] )
54 kwargs.setdefault('gasScaling', [1.176, 0.000, 1.217, 1.101, 1.143, 1.105, 1.103, 1.144, 1.075, 1.069, 1.100, 1.208, 1.212, 1.125, 1.026, 1.037, 1, 1, 1, 1,
55 1.064, 0.956, 0.975, 0.938, 1.205, 1.095, 1.137, 1.222, 1.262, 1.160, 0.923, 0.969, 1.132, 0.969, 1.174, 0.000, 1, 1, 1, 1] )
56 kwargs.setdefault('npeThreshold', [ 17, 15, 16, 16, 18, 16, 16, 18, 17, 16, 16, 17, 19, 16, 16, 17, 15, 15, 15, 15,
57 17, 16, 16, 17, 17, 15, 16, 16, 17, 16, 15, 17, 17, 15, 16, 15, 15, 15, 15, 15] )
58
59 acc.setPrivateTools(CompFactory.LUCID_PileUpTool(name,**kwargs))
60 return acc
61
62