10 from LArCalibProcessing.LArCalibBaseConfig
import LArCalibBaseCfg,chanSelStr
11 result=LArCalibBaseCfg(flags)
13 from LArCalibProcessing.utils
import FolderTagResolver
14 FolderTagResolver._globalTag=flags.IOVDb.GlobalTag
15 if flags.LArCalib.isSC:
16 FolderTagResolver._defaultSuffix=
"-RUN2-UPD3-00"
17 rs=FolderTagResolver()
18 CaliWaveTag=rs.getFolderTag(flags.LArCalib.CaliWave.Folder)
19 DetCellParamsTag=rs.getFolderTag(flags.LArCalib.DetCellParams.Folder)
20 CaliPulseParamsTag=rs.getFolderTag(flags.LArCalib.CaliPulseParams.Folder)
21 MphysOverMcalTag=rs.getFolderTag(flags.LArCalib.MphysOverMcal.Folder)
22 PhysWaveTag=rs.getFolderTag(flags.LArCalib.PhysWave.Folder)
25 bcKey =
"LArBadChannelSC" if flags.LArCalib.isSC
else "LArBadChannel"
28 isHEC= (flags.LArCalib.Input.SubDet ==
"HEC")
35 TdriftVector = [ 420 , 469 , 469 , 469 ]
36 TdriftVector2 = [ 420 , 921 , 921 , 921 ]
37 TdriftWeight2 = [ 0. , 0.0672 , 0.0672 , 0.0672 ]
39 TdriftVector = [ 451.92 , 504.644 , 504.644 , 504.644 ]
40 TdriftVector2 = [ 451.92 , 990.996 , 990.996 , 990.996 ]
41 TdriftWeight2 = [ 0. , 0.0672 , 0.0672 , 0.0672 ]
45 from IOVDbSvc.IOVDbSvcConfig
import addFolders
46 result.merge(addFolders(flags,flags.LArCalib.CaliWave.Folder,detDb=flags.LArCalib.Input.Database, tag=CaliWaveTag, modifiers=chanSelStr(flags)))
47 if flags.LArCalib.isSC:
48 result.merge(addFolders(flags,
"/LAR/ElecCalibOflSC/Tdrift/Computed",detDb=
"LAR_OFL",tag=
"LARElecCalibOflSCTdriftComputed-000"))
49 result.merge(addFolders(flags,
"/LAR/ElecCalibOflSC/PhysWaves/HECIdeal",detDb=
"LAR_OFL",tag=
"LARElecCalibOflSCPhysWavesHECIdeal-calib-02"))
53 result.merge(addFolders(flags,
"/LAR/ElecCalibOflSC/PhysWaves/FCALmeasured",detDb=
"LAR_OFL",tag=
"LARElecCalibOflSCPhysWavesFCALmeasured-data-00",modifiers=
"<key>FCALFromData</key>"))
55 result.merge(addFolders(flags,
"/LAR/ElecCalibOfl/Tdrift/Computed",detDb=
"LAR_OFL",tag=
"LARElecCalibOflTdriftComputed-calib-03"))
59 result.merge(addFolders(flags,
"/LAR/ElecCalibOfl/PhysWaves/HECIdeal",detDb=
"LAR_OFL",tag=
"LARElecCalibOflPhysWavesHECIdeal-calib-02"))
60 if flags.LArCalib.isSC:
61 result.merge(addFolders(flags,flags.LArCalib.CaliPulseParams.Folder,detDb=flags.LArCalib.Input.Database, tag=CaliPulseParamsTag))
62 result.merge(addFolders(flags,flags.LArCalib.DetCellParams.Folder,detDb=flags.LArCalib.Input.Database, tag=DetCellParamsTag))
64 result.merge(addFolders(flags,flags.LArCalib.CaliPulseParams.Folder,detDb=
"LAR_OFL", tag=CaliPulseParamsTag))
66 result.merge(addFolders(flags,flags.LArCalib.CaliPulseParams.Folder,detDb=flags.LArCalib.Input.Database, tag=CaliPulseParamsTag))
67 result.merge(addFolders(flags,flags.LArCalib.DetCellParams.Folder,detDb=flags.LArCalib.Input.Database, tag=DetCellParamsTag))
69 LArPhysWavePredictor = CompFactory.LArPhysWavePredictor(
"LArPhysWavePredictor" )
70 LArPhysWavePredictor.ProblemsToMask= [
"deadCalib",
"deadReadout",
"deadPhys",
"almostDead",
"short"]
71 LArPhysWavePredictor.TestMode =
False
72 LArPhysWavePredictor.isSC = flags.LArCalib.isSC
73 LArPhysWavePredictor.KeyCaliList = [
"LArCaliWave" ]
74 LArPhysWavePredictor.UseCaliPulseParamsFromJO = isHEC
75 LArPhysWavePredictor.UseDetCellParamsFromJO = isHEC
76 LArPhysWavePredictor.UseTdriftFromJO = isHEC
77 LArPhysWavePredictor.Tdrift = TdriftVector
78 LArPhysWavePredictor.UseDoubleTriangle =
False
79 LArPhysWavePredictor.Tdrift2 = TdriftVector2
80 LArPhysWavePredictor.WeightTriangle2 = TdriftWeight2
81 LArPhysWavePredictor.UseTimeShiftFromJO =
True
82 LArPhysWavePredictor.GroupingType = flags.LArCalib.GroupingType
83 LArPhysWavePredictor.NormalizeCali =
not isHEC
84 LArPhysWavePredictor.KeyMphysMcali =
"LArMphysOverMcal"
85 LArPhysWavePredictor.DumpMphysMcali =
False
86 LArPhysWavePredictor.KeyPhys =
"LArPhysWave"
87 LArPhysWavePredictor.isHEC = isHEC
88 LArPhysWavePredictor.BadChanKey = bcKey
90 if flags.LArCalib.isSC:
91 LArPhysWavePredictor.KeyFcal =
"FCALFromData"
93 result.addEventAlgo(LArPhysWavePredictor)
95 if (flags.LArCalib.isSC
or flags.LArCalib.Input.SubDet ==
"HEC"):
96 LArPhysWaveHECTool=CompFactory.LArPhysWaveHECTool(
"LArPhysWaveHECTool")
97 LArPhysWaveHECTool.NormalizeCali =
False
98 LArPhysWaveHECTool.TimeOriginShift =
False
99 LArPhysWaveHECTool.SubtractBaseline =
False
100 LArPhysWaveHECTool.isSC = flags.LArCalib.isSC
101 result.addPublicTool(LArPhysWaveHECTool)
104 if flags.LArCalib.isSC
or flags.LArCalib.Input.SubDet !=
"HEC":
105 LArPhysWaveTool=CompFactory.LArPhysWaveTool(
"LArPhysWaveTool")
106 LArPhysWaveTool.NormalizeCali =
False
107 LArPhysWaveTool.TimeOriginShift =
False
108 LArPhysWaveTool.SubtractBaseline =
False
109 LArPhysWaveTool.InjPointCorrLayer = [ 1, 1, 1, 1 ]
110 LArPhysWaveTool.InjPointUseTauR = [ 1, 1, 1, 1 ]
111 result.addPublicTool(LArPhysWaveTool)
114 rootfile=flags.LArCalib.Output.ROOTFile
116 LArPhysWaves2Ntuple = CompFactory.LArPhysWaves2Ntuple(
"LArPhysWaves2Ntuple")
117 LArPhysWaves2Ntuple.NtupleName =
"PHYSWAVE"
118 LArPhysWaves2Ntuple.AddFEBTempInfo =
False
119 LArPhysWaves2Ntuple.KeyList = [
"LArPhysWave" ]
120 LArPhysWaves2Ntuple.isSC = flags.LArCalib.isSC
121 LArPhysWaves2Ntuple.AddCalib =
True
122 LArPhysWaves2Ntuple.BadChanKey = bcKey
123 result.addEventAlgo(LArPhysWaves2Ntuple)
125 LArMphysOverMcal2Ntuple = CompFactory.LArMphysOverMcal2Ntuple(
"LArMphysOverMcal2Ntuple" )
126 LArMphysOverMcal2Ntuple.ContainerKey =
"LArMphysOverMcal"
127 LArMphysOverMcal2Ntuple.AddFEBTempInfo =
False
128 LArMphysOverMcal2Ntuple.isSC = flags.LArCalib.isSC
129 LArMphysOverMcal2Ntuple.BadChanKey = bcKey
130 result.addEventAlgo(LArMphysOverMcal2Ntuple)
133 if os.path.exists(rootfile):
135 result.addService(CompFactory.NTupleSvc(Output = [
"FILE1 DATAFILE='"+rootfile+
"' OPT='NEW'" ]))
136 result.setAppProperty(
"HistogramPersistency",
"ROOT")
140 from RegistrationServices.OutputConditionsAlgConfig
import OutputConditionsAlgCfg
141 result.merge(OutputConditionsAlgCfg(flags,
142 outputFile=flags.LArCalib.Output.POOLFile,
143 ObjectList=[
"LArPhysWaveContainer#LArPhysWave#"+flags.LArCalib.PhysWave.Folder,
144 "LArMphysOverMcalComplete#LArMphysOverMcal#"+flags.LArCalib.MphysOverMcal.Folder,],
145 IOVTagList=[PhysWaveTag,MphysOverMcalTag],
146 Run1=flags.LArCalib.IOVStart,
147 Run2=flags.LArCalib.IOVEnd
151 result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders =
False))
152 result.getService(
"IOVDbSvc").DBInstance=
""
155 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
156 result.merge(McEventSelectorCfg(flags,
157 RunNumber = flags.LArCalib.Input.RunNumbers[0],
160 InitialTimeStamp = 0,
161 TimeStampInterval = 1))
163 from PerfMonComps.PerfMonCompsConfig
import PerfMonMTSvcCfg
164 result.merge(PerfMonMTSvcCfg(flags))