7def LArRTMParamsCfg(flags):
8
9
10 from LArCalibProcessing.LArCalibBaseConfig import LArCalibBaseCfg,chanSelStr
11 result=LArCalibBaseCfg(flags)
12
13
14
15 from LArCalibProcessing.utils import FolderTagResolver
16 FolderTagResolver._globalTag=flags.IOVDb.GlobalTag
17 rs=FolderTagResolver(flags.LArCalib.Input.CoolOflP1Replica)
18 DetCellParamsTag=rs.getFolderTag(flags.LArCalib.DetCellParams.Folder)
19 CaliPulseParamsTag=rs.getFolderTag(flags.LArCalib.CaliPulseParams.Folder)
20 if (flags.LArCalib.Input.Database == "LAR_OFL" and flags.LArCalib.Input.Database2 == "LAR_OFL"):
21 CaliWaveTag=rs.getFolderTag(flags.LArCalib.CaliWave.Folder)
22 else:
23 CaliWaveTag=None
24 del rs
25
26
27 from IOVDbSvc.IOVDbSvcConfig import addFolders
28 result.merge(addFolders(flags,flags.LArCalib.CaliWave.Folder,detDb=flags.LArCalib.Input.Database, tag=CaliWaveTag, modifiers=chanSelStr(flags)))
29
30 if not flags.LArCalib.RTM.ExtractAll:
31
32 result.merge(addFolders(flags,flags.LArCalib.DetCellParams.Folder,detDb=flags.LArCalib.Input.Database, tag=DetCellParamsTag))
33 result.merge(addFolders(flags,flags.LArCalib.CaliPulseParams.Folder,detDb=flags.LArCalib.Input.Database, tag=CaliPulseParamsTag))
34
35
36 LArRTMParamExtractor = CompFactory.LArRTMParamExtractor()
37
38 LArRTMParamExtractor.KeyList = ["LArCaliWave"]
39 LArRTMParamExtractor.TestMode = False
40 LArRTMParamExtractor.GroupingType = flags.LArCalib.GroupingType
41 LArRTMParamExtractor.IgnoreDACSelection = True
42 LArRTMParamExtractor.isSC = flags.LArCalib.isSC
43
44 LArRTMParamExtractor.ExtractTaur = True
45 LArRTMParamExtractor.ExtractTcal = flags.LArCalib.RTM.ExtractAll
46 LArRTMParamExtractor.ExtractFstep = flags.LArCalib.RTM.ExtractAll
47 LArRTMParamExtractor.ExtractOmega0 = flags.LArCalib.RTM.ExtractAll
48
49 LArRTMParamExtractor.FT = flags.LArCalib.Preselection.FT
50 LArRTMParamExtractor.PosNeg = 0 if len(flags.LArCalib.Preselection.Side)==0 else flags.LArCalib.Preselection.Side[0]
51 LArRTMParamExtractor.Slot = flags.LArCalib.Preselection.Slot
52
53 LArRTMParamExtractor.DumpOmegaScan = flags.LArCalib.RTM.DumpOmegaScan
54 LArRTMParamExtractor.DumpResOscill = flags.LArCalib.RTM.DumpResOscill
55
56
57 theLArWFParamTool = CompFactory.LArWFParamTool()
58 theLArWFParamTool.isSC = flags.LArCalib.isSC
59
60 theLArWFParamTool.UseOmegaScanHelper = True
61 theLArWFParamTool.CosRespScan = [ False , True , False , False ]
62 theLArWFParamTool.Omega0Min = [ 0.100 , 0.220 , 0.060 , 0.100 ]
63 theLArWFParamTool.Omega0Max = [ 0.600 , 0.310 , 0.215 , 0.700 ]
64 theLArWFParamTool.NpointScan = [ 800 , 900 , 310 , 120 ]
65 theLArWFParamTool.StoreResOscill = [True * 4] if flags.LArCalib.RTM.DumpResOscill else [False *4]
66
67 LArRTMParamExtractor.LArWFParamTool=theLArWFParamTool
68
69 result.addEventAlgo(LArRTMParamExtractor)
70
71 rootfile=flags.LArCalib.Output.ROOTFile
72 bcKey = "LArBadChannelSC" if flags.LArCalib.isSC else "LArBadChannel"
73 if rootfile != "":
74 LArWFParams2Ntuple = CompFactory.LArWFParams2Ntuple("LArWFParams2Ntuple")
75 LArWFParams2Ntuple.DumpCaliPulseParams = True
76 LArWFParams2Ntuple.DumpDetCellParams = True
77 LArWFParams2Ntuple.CaliPulseParamsKey="LArCaliPulseParams_RTM"
78 LArWFParams2Ntuple.DetCellParamsKey="LArDetCellParams_RTM"
79 LArWFParams2Ntuple.BadChanKey = bcKey
80 LArWFParams2Ntuple.isSC = flags.LArCalib.isSC
81 LArWFParams2Ntuple.AddCalib = True
82 result.addEventAlgo(LArWFParams2Ntuple)
83
84 if flags.LArCalib.RTM.DumpOmegaScan:
85 LArOmegaScans2Ntuple = CompFactory.LArCaliWaves2Ntuple("LArOmegaScans2Ntuple")
86 LArOmegaScans2Ntuple.NtupleName = "OMEGASCAN"
87 LArOmegaScans2Ntuple.BadChanKey = bcKey
88 LArOmegaScans2Ntuple.isSC = flags.LArCalib.isSC
89 LArOmegaScans2Ntuple.KeyList = ["OmegaScan"]
90 result.addEventAlgo(LArOmegaScans2Ntuple)
91
92 if ( flags.LArCalib.RTM.DumpResOscill ):
93 LArResOscillsBefore2Ntuple = CompFactory.LArCaliWaves2Ntuple("LArResOscillsBefore2Ntuple")
94 LArResOscillsBefore2Ntuple.NtupleName = "RESOSCILLBEFORE"
95 LArResOscillsBefore2Ntuple.BadChanKey = bcKey
96 LArResOscillsBefore2Ntuple.isSC = flags.LArCalib.isSC
97 LArResOscillsBefore2Ntuple.KeyList = ["ResOscillBefore"]
98 result.addEventAlgo(LArResOscillsBefore2Ntuple)
99
100 LArResOscillsAfter2Ntuple = CompFactory.LArCaliWaves2Ntuple("LArResOscillsAfter2Ntuple")
101 LArResOscillsAfter2Ntuple.NtupleName = "RESOSCILLAFTER"
102 LArResOscillsAfter2Ntuple.BadChanKey = bcKey
103 LArResOscillsAfter2Ntuple.KeyList = ["ResOscillAfter"]
104 result.addEventAlgo(LArResOscillsAfter2Ntuple)
105
106 import os
107 if os.path.exists(rootfile):
108 os.remove(rootfile)
109 result.addService(CompFactory.NTupleSvc(Output = [ "FILE1 DATAFILE='"+rootfile+"' OPT='NEW'" ]))
110 result.setAppProperty("HistogramPersistency","ROOT")
111 pass
112
113
114
115 from RegistrationServices.OutputConditionsAlgConfig import OutputConditionsAlgCfg
116 result.merge(OutputConditionsAlgCfg(flags,
117 outputFile=flags.LArCalib.Output.POOLFile,
118 ObjectList=["LArCaliPulseParamsComplete#"+"LArCaliPulseParams_RTM#"+flags.LArCalib.CaliPulseParams.Folder,
119 "LArDetCellParamsComplete#"+"LArDetCellParams_RTM#"+flags.LArCalib.DetCellParams.Folder,],
120 IOVTagList=[CaliPulseParamsTag,DetCellParamsTag],
121 Run1=flags.LArCalib.IOVStart,
122 Run2=flags.LArCalib.IOVEnd
123 ))
124
125
126 result.addService(CompFactory.IOVRegistrationSvc(RecreateFolders = False))
127 result.getService("IOVDbSvc").DBInstance=""
128
129
130
131 from McEventSelector.McEventSelectorConfig import McEventSelectorCfg
132 result.merge(McEventSelectorCfg(flags,
133 RunNumber = flags.LArCalib.Input.RunNumbers[0],
134 EventsPerRun = 1,
135 FirstEvent = 1,
136 InitialTimeStamp = 0,
137 TimeStampInterval = 1))
138
139 from PerfMonComps.PerfMonCompsConfig import PerfMonMTSvcCfg
140 result.merge(PerfMonMTSvcCfg(flags))
141
142 return result
143