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