3 from AthenaConfiguration.ComponentFactory
import CompFactory
4 from AthenaConfiguration.MainServicesConfig
import MainServicesCfg
9 from LArCalibProcessing.LArCalibBaseConfig
import LArCalibBaseCfg,chanSelStr
12 from LArCalibProcessing.utils
import FolderTagResolver
13 FolderTagResolver._globalTag=flags.IOVDb.GlobalTag
14 if flags.LArCalib.isSC:
15 FolderTagResolver._defaultSuffix=
"-RUN2-UPD3-00"
16 rs=FolderTagResolver()
17 CaliWaveTag=rs.getFolderTag(flags.LArCalib.CaliWave.Folder)
18 DetCellParamsTag=rs.getFolderTag(flags.LArCalib.DetCellParams.Folder)
19 CaliPulseParamsTag=rs.getFolderTag(flags.LArCalib.CaliPulseParams.Folder)
20 MphysOverMcalTag=rs.getFolderTag(flags.LArCalib.MphysOverMcal.Folder)
21 PhysWaveTag=rs.getFolderTag(flags.LArCalib.PhysWave.Folder)
24 bcKey =
"LArBadChannelSC" if flags.LArCalib.isSC
else "LArBadChannel"
27 isHEC= (flags.LArCalib.Input.SubDet ==
"HEC")
34 TdriftVector = [ 420 , 469 , 469 , 469 ]
35 TdriftVector2 = [ 420 , 921 , 921 , 921 ]
36 TdriftWeight2 = [ 0. , 0.0672 , 0.0672 , 0.0672 ]
38 TdriftVector = [ 451.92 , 504.644 , 504.644 , 504.644 ]
39 TdriftVector2 = [ 451.92 , 990.996 , 990.996 , 990.996 ]
40 TdriftWeight2 = [ 0. , 0.0672 , 0.0672 , 0.0672 ]
44 from IOVDbSvc.IOVDbSvcConfig
import addFolders
45 result.merge(
addFolders(flags,flags.LArCalib.CaliWave.Folder,detDb=flags.LArCalib.Input.Database, tag=CaliWaveTag, modifiers=
chanSelStr(flags)))
46 if flags.LArCalib.isSC:
47 result.merge(
addFolders(flags,
"/LAR/ElecCalibOflSC/Tdrift/Computed",detDb=
"LAR_OFL",tag=
"LARElecCalibOflSCTdriftComputed-000"))
48 result.merge(
addFolders(flags,
"/LAR/ElecCalibOflSC/PhysWaves/HECIdeal",detDb=
"LAR_OFL",tag=
"LARElecCalibOflSCPhysWavesHECIdeal-calib-02"))
49 result.merge(
addFolders(flags,flags.LArCalib.FCALPhysWave.Folder,detDb=
"LAR_OFL",tag=
"LARElecCalibOflPhysWavesFCALFromTB-calib-01",modifiers=
"<key>FCALFromTB</key>"))
51 result.merge(
addFolders(flags,
"/LAR/ElecCalibOfl/Tdrift/Computed",detDb=
"LAR_OFL",tag=
"LARElecCalibOflTdriftComputed-calib-03"))
55 result.merge(
addFolders(flags,
"/LAR/ElecCalibOfl/PhysWaves/HECIdeal",detDb=
"LAR_OFL",tag=
"LARElecCalibOflPhysWavesHECIdeal-calib-02"))
56 if flags.LArCalib.isSC:
57 result.merge(
addFolders(flags,flags.LArCalib.CaliPulseParams.Folder,detDb=flags.LArCalib.Input.Database, tag=CaliPulseParamsTag))
58 result.merge(
addFolders(flags,flags.LArCalib.DetCellParams.Folder,detDb=flags.LArCalib.Input.Database, tag=DetCellParamsTag))
60 result.merge(
addFolders(flags,flags.LArCalib.CaliPulseParams.Folder,detDb=
"LAR_OFL", tag=CaliPulseParamsTag))
62 result.merge(
addFolders(flags,flags.LArCalib.CaliPulseParams.Folder,detDb=flags.LArCalib.Input.Database, tag=CaliPulseParamsTag))
63 result.merge(
addFolders(flags,flags.LArCalib.DetCellParams.Folder,detDb=flags.LArCalib.Input.Database, tag=DetCellParamsTag))
65 LArPhysWavePredictor = CompFactory.LArPhysWavePredictor(
"LArPhysWavePredictor" )
66 LArPhysWavePredictor.ProblemsToMask= [
"deadCalib",
"deadReadout",
"deadPhys",
"almostDead",
"short"]
67 LArPhysWavePredictor.TestMode =
False
68 LArPhysWavePredictor.isSC = flags.LArCalib.isSC
69 LArPhysWavePredictor.KeyCaliList = [
"LArCaliWave" ]
70 LArPhysWavePredictor.UseCaliPulseParamsFromJO = isHEC
71 LArPhysWavePredictor.UseDetCellParamsFromJO = isHEC
72 LArPhysWavePredictor.UseTdriftFromJO = isHEC
73 LArPhysWavePredictor.Tdrift = TdriftVector
74 LArPhysWavePredictor.UseDoubleTriangle =
False
75 LArPhysWavePredictor.Tdrift2 = TdriftVector2
76 LArPhysWavePredictor.WeightTriangle2 = TdriftWeight2
77 LArPhysWavePredictor.UseTimeShiftFromJO =
True
78 LArPhysWavePredictor.GroupingType = flags.LArCalib.GroupingType
79 LArPhysWavePredictor.NormalizeCali =
not isHEC
80 LArPhysWavePredictor.KeyMphysMcali =
"LArMphysOverMcal"
81 LArPhysWavePredictor.DumpMphysMcali =
False
82 LArPhysWavePredictor.KeyPhys =
"LArPhysWave"
83 LArPhysWavePredictor.isHEC = isHEC
84 LArPhysWavePredictor.BadChanKey = bcKey
87 result.addEventAlgo(LArPhysWavePredictor)
89 if (flags.LArCalib.isSC
or flags.LArCalib.Input.SubDet ==
"HEC"):
90 LArPhysWaveHECTool=CompFactory.LArPhysWaveHECTool(
"LArPhysWaveHECTool")
91 LArPhysWaveHECTool.NormalizeCali =
False
92 LArPhysWaveHECTool.TimeOriginShift =
False
93 LArPhysWaveHECTool.SubtractBaseline =
False
94 LArPhysWaveHECTool.isSC = flags.LArCalib.isSC
95 result.addPublicTool(LArPhysWaveHECTool)
98 if flags.LArCalib.isSC
or flags.LArCalib.Input.SubDet !=
"HEC":
99 LArPhysWaveTool=CompFactory.LArPhysWaveTool(
"LArPhysWaveTool")
100 LArPhysWaveTool.NormalizeCali =
False
101 LArPhysWaveTool.TimeOriginShift =
False
102 LArPhysWaveTool.SubtractBaseline =
False
103 LArPhysWaveTool.InjPointCorrLayer = [ 1, 1, 1, 1 ]
104 LArPhysWaveTool.InjPointUseTauR = [ 1, 1, 1, 1 ]
105 result.addPublicTool(LArPhysWaveTool)
108 rootfile=flags.LArCalib.Output.ROOTFile
110 LArPhysWaves2Ntuple = CompFactory.LArPhysWaves2Ntuple(
"LArPhysWaves2Ntuple")
111 LArPhysWaves2Ntuple.NtupleName =
"PHYSWAVE"
112 LArPhysWaves2Ntuple.AddFEBTempInfo =
False
113 LArPhysWaves2Ntuple.KeyList = [
"LArPhysWave" ]
114 LArPhysWaves2Ntuple.isSC = flags.LArCalib.isSC
115 LArPhysWaves2Ntuple.AddCalib =
True
116 LArPhysWaves2Ntuple.BadChanKey = bcKey
117 result.addEventAlgo(LArPhysWaves2Ntuple)
119 LArMphysOverMcal2Ntuple = CompFactory.LArMphysOverMcal2Ntuple(
"LArMphysOverMcal2Ntuple" )
120 LArMphysOverMcal2Ntuple.ContainerKey =
"LArMphysOverMcal"
121 LArMphysOverMcal2Ntuple.AddFEBTempInfo =
False
122 LArMphysOverMcal2Ntuple.isSC = flags.LArCalib.isSC
123 LArMphysOverMcal2Ntuple.BadChanKey = bcKey
124 result.addEventAlgo(LArMphysOverMcal2Ntuple)
127 if os.path.exists(rootfile):
129 result.addService(CompFactory.NTupleSvc(Output = [
"FILE1 DATAFILE='"+rootfile+
"' OPT='NEW'" ]))
130 result.setAppProperty(
"HistogramPersistency",
"ROOT")
134 from RegistrationServices.OutputConditionsAlgConfig
import OutputConditionsAlgCfg
136 outputFile=flags.LArCalib.Output.POOLFile,
137 ObjectList=[
"LArPhysWaveContainer#LArPhysWave#"+flags.LArCalib.PhysWave.Folder,
138 "LArMphysOverMcalComplete#LArMphysOverMcal#"+flags.LArCalib.MphysOverMcal.Folder,],
139 IOVTagList=[PhysWaveTag,MphysOverMcalTag],
140 Run1=flags.LArCalib.IOVStart,
141 Run2=flags.LArCalib.IOVEnd
145 result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders =
False))
146 result.getService(
"IOVDbSvc").DBInstance=
""
149 from McEventSelector.McEventSelectorConfig
import McEventSelectorCfg
151 RunNumber = flags.LArCalib.Input.RunNumbers[0],
154 InitialTimeStamp = 0,
155 TimeStampInterval = 1))
157 from PerfMonComps.PerfMonCompsConfig
import PerfMonMTSvcCfg
164 if __name__ ==
"__main__":
167 from AthenaConfiguration.AllConfigFlags
import initConfigFlags
169 from LArCalibProcessing.LArCalibConfigFlags
import addLArCalibFlags
172 ConfigFlags.Input.Files=[]
173 ConfigFlags.LArCalib.Input.RunNumbers=[401351,]
174 ConfigFlags.LArCalib.Input.Database=
"/home/wlampl/calibTest/00400939_00400943_00400945_Barrel-EMB-EMEC_HIGH_40_21.0.20_1/poolFiles/myDB200_00400939_00400943_00400945_EB-EMBA_one.db_Delay"
175 ConfigFlags.LArCalib.Input.SubDet=
"EM"
176 ConfigFlags.LArCalib.BadChannelDB=
"/home/wlampl/calibTest/00400939_00400943_00400945_Barrel-EMB-EMEC_HIGH_40_21.0.20_1/poolFiles/SnapshotBadChannel_00400939_00400943_00400945_EB-EMBA.db"
177 ConfigFlags.LArCalib.BadChannelTag=
"-RUN2-UPD3-00"
178 ConfigFlags.LArCalib.Output.ROOTFile=
"physwave.root"
179 ConfigFlags.IOVDb.DatabaseInstance=
"CONDBR2"
180 ConfigFlags.IOVDb.DBConnection=
"sqlite://;schema=output.sqlite;dbname=CONDBR2"
181 ConfigFlags.IOVDb.GlobalTag=
"LARCALIB-RUN2-02"
182 from AthenaConfiguration.TestDefaults
import defaultGeometryTags
183 ConfigFlags.GeoModel.AtlasVersion=defaultGeometryTags.RUN3
184 ConfigFlags.IOVDb.DatabaseInstance=
"CONDBR2"
185 ConfigFlags.LAr.doAlign=
False
186 ConfigFlags.Input.RunNumbers=ConfigFlags.LArCalib.Input.RunNumbers
189 ConfigFlags.fillFromArgs()
194 print(
"Start running...")
195 sys.exit(cfg.run(1).isFailure())