11def LArRODBCIDCorrAlgCfg(flags, name="LArRODBCIDCorrAlg", **kwargs):
12 from IOVDbSvc.IOVDbSvcConfig import addFolderList
13
14
15
16 if not flags.Input.isMC:
17 raise RuntimeError(
18 "LArRODBCIDCorrAlgCfg is only supported for MC "
19 "(LAr.ROD.ApplyRODBCIDCorr must be False for data)"
20 )
21
22 acc = LArADC2MeVCondAlgCfg(flags)
23 acc.merge(LArOnOffIdMappingCfg(flags))
24
25
26
27
28 acc.merge(LArElecCalibDBCfg(flags, ("Shape",)))
29
30 acc.merge(
31 addFolderList(
32 flags,
33 (("/LAR/ElecCalibMC/LArPileupAverage", "LAR_OFL", "LArMinBiasAverageMC"),),
34 )
35 )
36
37 acc.merge(LArMCSymCondAlgCfg(flags))
38
39 LArMinBiasAverageSymAlg = CompFactory.getComp(
40 "LArSymConditionsAlg<LArMinBiasAverageMC, LArMinBiasAverageSym>"
41 )
42 acc.addCondAlgo(
43 LArMinBiasAverageSymAlg(
44 "LArPileUpAvgSymCondAlg",
45 ReadKey="LArPileupAverage",
46 WriteKey="LArPileupAverageSym",
47 )
48 )
49
50 kwargs.setdefault("ShapeKey", "LArShapeSym")
51 kwargs.setdefault("ADC2MeVKey", "LArADC2MeV")
52 kwargs.setdefault("CablingKey", "LArOnOffIdMap")
53 kwargs.setdefault("MinBiasAvgKey", "LArPileupAverageSym")
54 kwargs.setdefault("EventInfo", "EventInfo")
55
56
57
58
59
60 kwargs.setdefault(
61 "firstSample",
62 (
63 -flags.LAr.ROD.nPreceedingSamples
64 if flags.LAr.ROD.nPreceedingSamples != 0
65 else flags.LAr.ROD.FirstSample
66 ),
67 )
68
69 if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
70 kwargs.setdefault(
71 "LArDigitKey", flags.Overlay.BkgPrefix + "LArDigitContainer_MC"
72 )
73 else:
74 kwargs.setdefault("LArDigitKey", "LArDigitContainer_MC")
75
76
77
78
79
80
81
82
83
84
85 kwargs.setdefault("OutputDigitKey", "LArDigitContainer_PileupCorrected")
86
87 kwargs.setdefault("BeamIntensityPattern", flags.Digitization.PU.BeamIntensityPattern)
88
89 acc.addEventAlgo(CompFactory.LArRODBCIDCorrAlg(name, **kwargs))
90
91 return acc