10 from LArCalibProcessing.LArCalibBaseConfig
import LArCalibBaseCfg,chanSelStr
11 result=LArCalibBaseCfg(flags)
14 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
15 result.merge(ByteStreamReadCfg(flags))
19 gainStrMap={0:
"HIGH",1:
"MEDIUM",2:
"LOW"}
20 digKey=gainStrMap[flags.LArCalib.Gain]
22 from LArCalibProcessing.utils
import FolderTagResolver
23 FolderTagResolver._globalTag=flags.IOVDb.GlobalTag
24 tagResolver=FolderTagResolver(dbname=flags.LArCalib.Input.CoolOflP1Replica)
25 caliWaveTag=tagResolver.getFolderTag(flags.LArCalib.CaliWave.Folder)
26 caliOFCTag=tagResolver.getFolderTag(flags.LArCalib.OFCCali.Folder)
27 if (flags.LArCalib.Input.Database ==
"LAR_OFL" and flags.LArCalib.Input.Database2 ==
"LAR_OFL"):
28 pedestalTag=tagResolver.getFolderTag(flags.LArCalib.Pedestal.Folder)
29 acTag=tagResolver.getFolderTag(flags.LArCalib.AutoCorr.Folder)
35 from IOVDbSvc.IOVDbSvcConfig
import addFolders
36 result.merge(addFolders(flags,flags.LArCalib.Pedestal.Folder,detDb=flags.LArCalib.Input.Database, tag=pedestalTag, modifiers=chanSelStr(flags),
37 className=
"LArPedestalComplete"))
38 result.merge(addFolders(flags,flags.LArCalib.AutoCorr.Folder,detDb=flags.LArCalib.Input.Database, tag=acTag,modifiers=chanSelStr(flags)))
40 if not flags.LArCalib.isSC:
41 if flags.LArCalib.Input.isRawData:
42 result.addEventAlgo(CompFactory.LArRawDataReadingAlg(LArRawChannelKey=
"", LArDigitKey=digKey, LArFebHeaderKey=
"LArFebHeader"))
43 from LArCalibProcessing.LArCalib_CalibDigitsMakerConfig
import LArCalibDigitsMakerCfg
44 result.merge(LArCalibDigitsMakerCfg(flags,digKey))
46 result.addEventAlgo(CompFactory.LArRawCalibDataReadingAlg(LArAccCalibDigitKey=digKey,
47 LArFebHeaderKey=
"LArFebHeader",
48 SubCaloPreselection=flags.LArCalib.Input.SubDet,
49 PosNegPreselection=flags.LArCalib.Preselection.Side,
50 BEPreselection=flags.LArCalib.Preselection.BEC,
51 FTNumPreselection=flags.LArCalib.Preselection.FT))
53 from LArROD.LArFebErrorSummaryMakerConfig
import LArFebErrorSummaryMakerCfg
54 result.merge(LArFebErrorSummaryMakerCfg(flags))
55 result.getEventAlgo(
"LArFebErrorSummaryMaker").CheckAllFEB=
False
57 if flags.LArCalib.Input.SubDet ==
"EM":
58 theLArCalibShortCorrector = CompFactory.LArCalibShortCorrector(KeyList = [digKey,])
59 result.addEventAlgo(theLArCalibShortCorrector)
61 from LArCalibProcessing.LArStripsXtalkCorrConfig
import LArStripsXtalkCorrCfg
62 result.merge(LArStripsXtalkCorrCfg(flags,[digKey,]))
65 theLArLATOMEDecoder = CompFactory.LArLATOMEDecoder(
"LArLATOMEDecoder")
66 if flags.LArCalib.Input.isRawData:
67 result.addEventAlgo(CompFactory.LArRawSCDataReadingAlg(adcCollKey = digKey, adcBasCollKey =
"", etCollKey =
"",
68 etIdCollKey =
"", LATOMEDecoder = theLArLATOMEDecoder))
69 from LArCalibProcessing.LArCalib_CalibDigitsMakerConfig
import LArCalibDigitsMakerCfg
70 result.merge(LArCalibDigitsMakerCfg(flags,digKey))
74 from LArCabling.LArCablingConfig
import LArCalibIdMappingCfg,LArOnOffIdMappingCfg
75 result.merge(LArOnOffIdMappingCfg(flags))
76 result.merge(LArCalibIdMappingCfg(flags))
77 result.addEventAlgo(CompFactory.LArRawSCCalibDataReadingAlg(LArSCAccCalibDigitKey = digKey,
78 CalibCablingKeyLeg=
"LArCalibLineMap",
79 OnOffMapLeg=
"LArOnOffIdMap",
80 LATOMEDecoder = theLArLATOMEDecoder, ))
82 bcKey =
"LArBadChannelSC" if flags.LArCalib.isSC
else "LArBadChannel"
84 theLArCaliWaveBuilder = CompFactory.LArCaliWaveBuilder()
85 theLArCaliWaveBuilder.KeyList= [digKey,]
86 theLArCaliWaveBuilder.KeyOutput=
"LArCaliWave"
87 theLArCaliWaveBuilder.GroupingType = flags.LArCalib.GroupingType
88 theLArCaliWaveBuilder.SubtractPed =
True
89 theLArCaliWaveBuilder.NSteps = flags.LArCalib.CaliWave.Nsteps
90 theLArCaliWaveBuilder.CheckEmptyPhases =
not flags.LArCalib.isSC
91 theLArCaliWaveBuilder.NBaseline = 0
92 theLArCaliWaveBuilder.UseDacAndIsPulsedIndex =
False
93 theLArCaliWaveBuilder.RecAllCells =
False
94 theLArCaliWaveBuilder.isSC = flags.LArCalib.isSC
95 result.addEventAlgo(theLArCaliWaveBuilder)
98 if flags.LArCalib.Input.SubDet ==
"HEC" or flags.LArCalib.Input.SubDet ==
"HECFCAL":
99 theLArCaliWaveBuilder.KeyOutput=
"LArCaliWave_multi"
100 theLArCaliWaveSelector = CompFactory.LArCaliWaveSelector(
"LArCaliWaveSelector")
101 theLArCaliWaveSelector.KeyList = [
"LArCaliWave_multi",]
102 theLArCaliWaveSelector.KeyOutput =
"LArCaliWave"
103 theLArCaliWaveSelector.GroupingType = flags.LArCalib.GroupingType
104 if flags.LArCalib.Gain==0:
105 theLArCaliWaveSelector.SelectionList = [
"HEC/0/0/460",
"HEC/1/0/460",
"HEC/2/0/230",
"HEC/3/0/230" ]
106 theLArCaliWaveSelector.SelectionList += [
"FCAL/0/0/500",
"FCAL/1/0/500",
"FCAL/2/0/500",
"FCAL/3/0/500" ]
108 elif flags.LArCalib.Gain==1:
109 theLArCaliWaveSelector.SelectionList = [
"HEC/0/1/3600",
"HEC/1/1/3600",
"HEC/2/1/1800",
"HEC/3/1/1800"]
110 theLArCaliWaveSelector.SelectionList += [
"FCAL/0/1/5000",
"FCAL/1/1/5000",
"FCAL/2/1/5000",
"FCAL/3/1/5000" ]
112 elif flags.LArCalib.Gain==2:
113 theLArCaliWaveSelector.SelectionList = [
"HEC/0/2/24000",
"HEC/1/2/24000",
"HEC/2/2/18000",
"HEC/3/2/18000" ]
114 theLArCaliWaveSelector.SelectionList += [
"FCAL/0/2/40000",
"FCAL/1/2/40000",
"FCAL/2/2/40000",
"FCAL/3/2/40000" ]
116 result.addEventAlgo(theLArCaliWaveSelector)
119 if flags.LArCalib.CorrectBadChannels:
120 theLArCaliWavePatcher=CompFactory.getComp(
"LArCalibPatchingAlg<LArCaliWaveContainer>")(
"LArCaliWavePatch")
121 theLArCaliWavePatcher.ContainerKey =
"LArCaliWave"
122 theLArCaliWavePatcher.BadChanKey = bcKey
123 theLArCaliWavePatcher.SuperCells = flags.LArCalib.isSC
125 theLArCaliWavePatcher.PatchMethod =
"PhiAverage"
126 if flags.LArCalib.isSC:
127 theLArCaliWavePatcher.ProblemsToPatch = [
128 "deadCalib",
"deadReadout",
"deadPhys",
"maskedOSUM",
"OffOFCs",
"transmissionErrorFibre",]
129 theLArCaliWavePatcher.OnOffMap=
"LArOnOffIdMapSC"
130 theLArCaliWavePatcher.CalibLineKey=
"LArCalibIdMapSC"
132 theLArCaliWavePatcher.ProblemsToPatch = [
133 "deadCalib",
"deadReadout",
"deadPhys",
"almostDead",
"short", ]
135 result.addEventAlgo(theLArCaliWavePatcher)
138 if flags.LArCalib.doValidation:
140 result.merge(addFolders(flags,flags.LArCalib.CaliWave.Folder+
"<key>LArCaliWaveRef</key>",
"LAR_OFL"))
142 from LArCalibDataQuality.Thresholds
import cwAmpThr,cwFWHMThr,cwAmpThrFEB,cwFWHMThrFEB
145 theCaliWaveValidationAlg=CompFactory.LArCaliWaveValidationAlg(
"CaliWaveVal")
146 if flags.LArCalib.isSC:
147 theCaliWaveValidationAlg.ProblemsToMask=[
"deadCalib",
"deadReadout",
"deadPhys",
"maskedOSUM",
148 "OffOFCs",
"transmissionErrorFibre",]
150 theCaliWaveValidationAlg.ProblemsToMask=[
"deadReadout",
"deadCalib",
"deadPhys",
"almostDead",
151 "highNoiseHG",
"highNoiseMG",
"highNoiseLG"]
152 theCaliWaveValidationAlg.ValidationKey=
"LArCaliWave"
153 theCaliWaveValidationAlg.ReferenceKey=
"LArCaliWaveRef"
154 theCaliWaveValidationAlg.MsgLevelForDeviations=WARNING
155 theCaliWaveValidationAlg.ListOfDevFEBs=
"caliWaveFebs.txt"
156 theCaliWaveValidationAlg.AmplitudeTolerance=cwAmpThr
157 theCaliWaveValidationAlg.CaliWaveFWHMTolerance=cwFWHMThr
158 theCaliWaveValidationAlg.AmplitudeToleranceFEB=cwAmpThrFEB
159 theCaliWaveValidationAlg.CaliWaveFWHMToleranceFEB=cwFWHMThrFEB
160 theCaliWaveValidationAlg.TimeShiftDetection=
True
161 theCaliWaveValidationAlg.PatchMissingFEBs=
True
162 theCaliWaveValidationAlg.UseCorrChannels=
False
163 theCaliWaveValidationAlg.BadChanKey = bcKey
164 theCaliWaveValidationAlg.SuperCells = flags.LArCalib.isSC
166 if flags.LArCalib.isSC:
167 theCaliWaveValidationAlg.CablingKey =
"LArOnOffIdMapSC"
168 theCaliWaveValidationAlg.CalibLineKey =
"LArCalibIdMapSC"
170 result.addEventAlgo(theCaliWaveValidationAlg)
173 if flags.LArCalib.doOFCCali:
175 LArCaliOFCAlg = CompFactory.LArOFCAlg(
"LArCaliOFCAlg")
176 LArCaliOFCAlg.ReadCaliWave =
True
177 LArCaliOFCAlg.KeyList = [
"LArCaliWave" ]
178 LArCaliOFCAlg.Nphase = 50
179 LArCaliOFCAlg.Dphase = 1
180 LArCaliOFCAlg.Ndelay = 24
181 LArCaliOFCAlg.Nsample = 5
182 LArCaliOFCAlg.Normalize =
True
183 LArCaliOFCAlg.TimeShift =
False
184 LArCaliOFCAlg.TimeShiftByIndex = -1
185 LArCaliOFCAlg.Verify =
True
186 LArCaliOFCAlg.FillShape =
False
188 LArCaliOFCAlg.GroupingType = flags.LArCalib.GroupingType
189 LArCaliOFCAlg.isSC = flags.LArCalib.isSC
190 LArCaliOFCAlg.DecoderTool=CompFactory.LArAutoCorrDecoderTool(isSC=flags.LArCalib.isSC)
191 result.addEventAlgo(LArCaliOFCAlg)
195 rootfile=flags.LArCalib.Output.ROOTFile
196 rootfile2=flags.LArCalib.Output.ROOTFile2
198 result.addEventAlgo(CompFactory.LArCaliWaves2Ntuple(KeyList = [
"LArCaliWave",],
199 NtupleName =
"CALIWAVE",
200 AddFEBTempInfo =
False,
202 SaveDerivedInfo =
True,
203 ApplyCorrection =
True,
204 isSC = flags.LArCalib.isSC,
208 SaveJitter=
True if flags.LArCalib.CaliWave.Nsteps >= 24
else False
212 if os.path.exists(rootfile):
214 result.addService(CompFactory.NTupleSvc(Output = [
"FILE1 DATAFILE='"+rootfile+
"' OPT='NEW'" ]))
215 result.setAppProperty(
"HistogramPersistency",
"ROOT")
218 if rootfile2 !=
"" and flags.LArCalib.doOFCCali:
219 result.addEventAlgo(CompFactory.LArOFC2Ntuple(ContainerKey =
"LArOFC",
220 AddFEBTempInfo =
False,
221 NtupleFile =
"FILE2",
223 isSC = flags.LArCalib.isSC,
228 if os.path.exists(rootfile2):
231 result.addService(CompFactory.NTupleSvc(Output = [
"FILE2 DATAFILE='"+rootfile2+
"' OPT='NEW'" ]))
233 result.getService(
"NTupleSvc").Output += [
"FILE2 DATAFILE='"+rootfile2+
"' OPT='NEW'" ]
234 result.setAppProperty(
"HistogramPersistency",
"ROOT")
238 from RegistrationServices.OutputConditionsAlgConfig
import OutputConditionsAlgCfg
239 result.merge(OutputConditionsAlgCfg(flags,
240 outputFile=flags.LArCalib.Output.POOLFile,
241 ObjectList=[
"LArCaliWaveContainer#LArCaliWave#"+flags.LArCalib.CaliWave.Folder,],
242 IOVTagList=[caliWaveTag,],
243 Run1=flags.LArCalib.IOVStart,
244 Run2=flags.LArCalib.IOVEnd
246 if flags.LArCalib.doOFCCali:
247 result.getEventAlgo(
"OutputConditionsAlg").ObjectList += [
"LArOFCComplete#LArOFC#"+flags.LArCalib.OFCCali.Folder]
248 result.getEventAlgo(
"OutputConditionsAlg").IOVTagList += [caliOFCTag]
251 result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders =
False))
254 from PerfMonComps.PerfMonCompsConfig
import PerfMonMTSvcCfg
255 result.merge(PerfMonMTSvcCfg(flags))
333 from LArCalibProcessing.LArCalibBaseConfig
import LArCalibBaseCfg,chanSelStr
334 result=LArCalibBaseCfg(flags)
337 from ByteStreamCnvSvc.ByteStreamConfig
import ByteStreamReadCfg
338 result.merge(ByteStreamReadCfg(flags))
342 gainStrMap={0:
"HIGH",1:
"MEDIUM",2:
"LOW"}
343 digKey=gainStrMap[flags.LArCalib.Gain]
345 from IOVDbSvc.IOVDbSvcConfig
import addFolders
346 if "ONL" in flags.LArCalib.Input.Database:
347 result.merge(addFolders(flags,flags.LArCalib.Pedestal.Folder,detDb=flags.LArCalib.Input.Database, className=
"CondAttrListCollection", db=
"CONDBR2"))
348 LArPedestalCondAlg = CompFactory.getComp(
"LArFlatConditionsAlg<LArPedestalFlat>")
349 result.addCondAlgo(LArPedestalCondAlg(ReadKey=flags.LArCalib.Pedestal.Folder, WriteKey=
"Pedestal"))
351 from LArCalibProcessing.utils
import FolderTagResolver
352 FolderTagResolver._globalTag=flags.IOVDb.GlobalTag
353 tagResolver=FolderTagResolver()
354 pedestalTag=tagResolver.getFolderTag(flags.LArCalib.Pedestal.Folder)
355 result.merge(addFolders(flags,flags.LArCalib.Pedestal.Folder,detDb=flags.LArCalib.Input.Database, tag=pedestalTag, modifiers=chanSelStr(flags),
356 className=
"LArPedestalComplete"))
359 from LArCalibProcessing.LArCalib_CalibDigitsMakerConfig
import LArCalibDigitsMakerCfg
360 result.merge(LArCalibDigitsMakerCfg(flags,DigitsKey=digKey,ntrigg=flags.LArCalib.OFC.Ncoll,notrun=
True))
362 if not flags.LArCalib.isSC:
363 if flags.LArCalib.Input.isRawData:
364 result.addEventAlgo(CompFactory.LArRawDataReadingAlg(LArRawChannelKey=
"", LArDigitKey=digKey, LArFebHeaderKey=
"LArFebHeader"))
366 result.addEventAlgo(CompFactory.LArRawCalibDataReadingAlg(LArAccCalibDigitKey=digKey,
367 LArFebHeaderKey=
"LArFebHeader",
368 SubCaloPreselection=flags.LArCalib.Input.SubDet,
369 PosNegPreselection=flags.LArCalib.Preselection.Side,
370 BEPreselection=flags.LArCalib.Preselection.BEC,
371 FTNumPreselection=flags.LArCalib.Preselection.FT))
373 from LArROD.LArFebErrorSummaryMakerConfig
import LArFebErrorSummaryMakerCfg
374 result.merge(LArFebErrorSummaryMakerCfg(flags))
375 result.getEventAlgo(
"LArFebErrorSummaryMaker").CheckAllFEB=
False
379 theLArLATOMEDecoder = CompFactory.LArLATOMEDecoder(
"LArLATOMEDecoder")
380 if flags.LArCalib.Input.isRawData:
381 result.addEventAlgo(CompFactory.LArRawSCDataReadingAlg(adcCollKey = digKey, adcBasCollKey =
"", etCollKey =
"",
382 etIdCollKey =
"", LATOMEDecoder = theLArLATOMEDecoder))
383 from LArCalibProcessing.LArCalib_CalibDigitsMakerConfig
import LArCalibDigitsMakerCfg
384 result.merge(LArCalibDigitsMakerCfg(flags,digKey))
388 from LArCabling.LArCablingConfig
import LArCalibIdMappingCfg,LArOnOffIdMappingCfg
389 result.merge(LArOnOffIdMappingCfg(flags))
390 result.merge(LArCalibIdMappingCfg(flags))
391 result.addEventAlgo(CompFactory.LArRawSCCalibDataReadingAlg(LArSCAccCalibDigitKey = digKey,
392 CalibCablingKeyLeg=
"LArCalibLineMap",
393 OnOffMapLeg=
"LArOnOffIdMap",
394 LATOMEDecoder = theLArLATOMEDecoder, ))
396 bcKey =
"LArBadChannelSC" if flags.LArCalib.isSC
else "LArBadChannel"
398 theLArCaliWaveBuilder = CompFactory.LArCaliWaveBuilder()
399 theLArCaliWaveBuilder.KeyList= [digKey,]
400 theLArCaliWaveBuilder.KeyOutput=
"LArCaliWave"
401 theLArCaliWaveBuilder.GroupingType = flags.LArCalib.GroupingType
402 theLArCaliWaveBuilder.SubtractPed =
True
403 theLArCaliWaveBuilder.NSteps = flags.LArCalib.CaliWave.Nsteps
404 theLArCaliWaveBuilder.CheckEmptyPhases =
False
405 theLArCaliWaveBuilder.NBaseline = 0
406 theLArCaliWaveBuilder.UseDacAndIsPulsedIndex =
False
407 theLArCaliWaveBuilder.RecAllCells =
True
408 theLArCaliWaveBuilder.UseParamsSel =
True
409 theLArCaliWaveBuilder.UsePattern = flags.LArCalib.OFC.Nsamples
410 theLArCaliWaveBuilder.NumSubStep = flags.LArCalib.CaliWave.NSubSteps
411 theLArCaliWaveBuilder.isSC = flags.LArCalib.isSC
412 result.addEventAlgo(theLArCaliWaveBuilder)
417 rootfile=flags.LArCalib.Output.ROOTFile
419 result.addEventAlgo(CompFactory.LArCaliWaves2Ntuple(KeyList = [
"LArCaliWave",],
420 NtupleName =
"CALIWAVE",
421 AddFEBTempInfo =
False,
423 SaveDerivedInfo =
True,
424 ApplyCorrection =
False,
425 isSC = flags.LArCalib.isSC,
429 SaveJitter=
True if flags.LArCalib.CaliWave.Nsteps >= 24
else False
433 if os.path.exists(rootfile):
435 result.addService(CompFactory.NTupleSvc(Output = [
"FILE1 DATAFILE='"+rootfile+
"' OPT='NEW'" ]))
436 result.setAppProperty(
"HistogramPersistency",
"ROOT")
439 from PerfMonComps.PerfMonCompsConfig
import PerfMonMTSvcCfg
440 result.merge(PerfMonMTSvcCfg(flags))