10def LArOFFCRawChannelBuilderCfg(flags, name="LArOFFCRawChannelBuilder", **kwargs):
11
12 acc = LArADC2MeVCondAlgCfg(flags)
13
14
15 kwargs.setdefault("BelowThreshold", flags.LAr.ROD.OFFCBelowThreshold)
16 kwargs.setdefault("BelowTillReset", flags.LAr.ROD.OFFCBelowTillReset)
17 kwargs.setdefault("NPulse", flags.LAr.ROD.OFFCNPulse)
18 kwargs.setdefault("Q3Cut", flags.LAr.ROD.OFFCQ3Cut)
19 kwargs.setdefault("FilterThreshold", flags.LAr.ROD.OFFCFilterThreshold)
20
21 kwargs.setdefault(
22 "firstSample",
23 (
24 (flags.LAr.ROD.nPreceedingSamples - 1)
25 if flags.LAr.ROD.nPreceedingSamples != 0
26 else flags.LAr.ROD.FirstSample
27 ),
28 )
29 obj = "AthenaAttributeList"
30 dspkey = "Run2DSPThresholdsKey"
31 from IOVDbSvc.IOVDbSvcConfig import addFolders
32
33 kwargs.setdefault("ShapeKey", "LArShapeSym")
34
35 if flags.Input.isMC:
36 acc.merge(LArOFCCondAlgCfg(flags))
37 kwargs.setdefault("LArRawChannelKey", "LArRawChannels")
38
39 if flags.GeoModel.Run is LHCPeriod.Run1:
40 kwargs.setdefault("useDB", False)
41 dspkey = ""
42 else:
43 fld = "/LAR/NoiseOfl/DSPThresholds"
44 sgkey = fld
45 dbString = "OFLP200"
46 dbInstance = "LAR_OFL"
47 acc.merge(
48 addFolders(flags, fld, dbInstance, className=obj, db=dbString)
49 )
50
51 if flags.Common.ProductionStep is ProductionStep.PileUpPresampling:
52 kwargs.setdefault(
53 "LArDigitKey", flags.Overlay.BkgPrefix + "LArDigitContainer_MC"
54 )
55 else:
56 kwargs.setdefault("LArDigitKey", "LArDigitContainer_MC")
57 else:
58 acc.merge(LArElecCalibDBCfg(flags, ("OFC", "Shape", "Pedestal")))
59 if flags.Overlay.DataOverlay:
60 kwargs.setdefault("LArDigitKey", "LArDigitContainer_MC")
61 kwargs.setdefault("LArRawChannelKey", "LArRawChannels")
62 else:
63 kwargs.setdefault("LArRawChannelKey", "LArRawChannels_FromDigits")
64
65 if "COMP200" in flags.IOVDb.DatabaseInstance:
66 fld = "/LAR/Configuration/DSPThreshold/Thresholds"
67 obj = "LArDSPThresholdsComplete"
68 dspkey = "Run1DSPThresholdsKey"
69 sgkey = "LArDSPThresholds"
70 dbString = "COMP200"
71 else:
72 fld = "/LAR/Configuration/DSPThresholdFlat/Thresholds"
73 sgkey = fld
74 dbString = "CONDBR2"
75 dbInstance = "LAR_ONL"
76 acc.merge(addFolders(flags, fld, dbInstance, className=obj, db=dbString))
77
78 kwargs.setdefault(dspkey, sgkey)
79
80 if (
81 flags.LAr.ROD.forceIter
82 or flags.LAr.RawChannelSource is RawChannelSource.Calculated
83 ):
84
85 kwargs.setdefault("minSample", 2)
86 kwargs.setdefault("maxSample", 12)
87 kwargs.setdefault("minADCforIterInSigma", 4)
88 kwargs.setdefault("minADCforIter", 15)
89 kwargs.setdefault("defaultPhase", 12)
90 nominalPeakSample = 2
92
93 larformat = getLArFormatForRun(
94 flags.Input.RunNumber[0],
95 connstring="COOLONL_LAR/" + flags.IOVDb.DatabaseInstance,
96 )
97 if larformat is not None:
98 nominalPeakSample = larformat.firstSample()
99 else:
100 print(
"WARNING: larformat not found, use nominalPeakSample = 2")
101 nominalPeakSample = 2
102 if nominalPeakSample > 1:
103 kwargs.setdefault("DefaultShiftTimeSample", nominalPeakSample - 2)
104 else:
105 kwargs.setdefault("DefaultShiftTimeSample", 0)
106
107 acc.addEventAlgo(CompFactory.LArRawChannelBuilderIterAlg(**kwargs))
108 else:
109
110 acc.addEventAlgo(CompFactory.LArOFFCRawChannelBuilder(name, **kwargs))
111
112 return acc
113
114
void print(char *figname, TCanvas *c1)