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