1 |
yiiyama |
1.1 |
from optparse import OptionParser
|
2 |
yiiyama |
1.2 |
import sys,os
|
3 |
yiiyama |
1.1 |
from dqmlayouts import *
|
4 |
|
|
|
5 |
|
|
genLists = {
|
6 |
|
|
'shift': ('shift_ecal_layout', 'shift_ecal_T0_layout', 'shift_ecal_relval_layout'),
|
7 |
|
|
'ecal': ('ecal-layouts', 'ecal_T0_layouts'),
|
8 |
|
|
'overview': ('ecal_overview_layouts'),
|
9 |
|
|
'online': ('ecal-layouts', 'shift_ecal_layout', 'ecal_overview_layouts'),
|
10 |
|
|
'offline': ('ecal_T0_layouts', 'shift_ecal_T0_layout', 'ecal_overview_layouts'),
|
11 |
|
|
'relval': ('ecal_relval-layouts', 'ecalmc_relval-layouts', 'shift_ecal_relval_layout'),
|
12 |
|
|
'all': ('shift_ecal_layout', 'shift_ecal_T0_layout', 'shift_ecal_relval_layout',
|
13 |
|
|
'ecal-layouts', 'ecal_T0_layouts', 'ecal_overview_layouts',
|
14 |
|
|
'ecal_relval-layouts', 'ecalmc_relval-layouts', 'shift_ecal_relval_layout'),
|
15 |
|
|
'priv': ('ecalpriv-layouts', 'ecal_overview_layouts')
|
16 |
|
|
}
|
17 |
|
|
|
18 |
|
|
optparser = OptionParser()
|
19 |
|
|
optparser.add_option('-l', '--list', dest = 'list', help = 'LIST=(shift|ecal|overview|online|offline|relval|all)', metavar = 'LIST', default = 'all')
|
20 |
yiiyama |
1.2 |
optparser.add_option('-t', '--target-dir', dest = 'targetDir', help = '', metavar = '')
|
21 |
yiiyama |
1.1 |
|
22 |
|
|
(options, args) = optparser.parse_args()
|
23 |
|
|
|
24 |
yiiyama |
1.2 |
if 'CMSSW_BASE' not in os.environ:
|
25 |
|
|
print "CMSSW environment not set"
|
26 |
|
|
sys.exit()
|
27 |
|
|
|
28 |
yiiyama |
1.1 |
if options.list not in genLists:
|
29 |
|
|
optparser.print_usage()
|
30 |
yiiyama |
1.2 |
sys.exit()
|
31 |
yiiyama |
1.1 |
|
32 |
yiiyama |
1.2 |
if not options.targetDir:
|
33 |
yiiyama |
1.1 |
optparser.print_usage()
|
34 |
yiiyama |
1.2 |
sys.exit()
|
35 |
yiiyama |
1.1 |
|
36 |
|
|
genList = genLists[options.list]
|
37 |
|
|
targetDir = options.targetDir
|
38 |
|
|
|
39 |
|
|
#### BEGIN path definitions / utility functions ####
|
40 |
|
|
|
41 |
|
|
from DQM.EcalBarrelMonitorTasks.ClusterTask_cfi import ecalClusterTask
|
42 |
|
|
from DQM.EcalBarrelMonitorTasks.EnergyTask_cfi import ecalEnergyTask
|
43 |
|
|
from DQM.EcalBarrelMonitorTasks.IntegrityTask_cfi import ecalIntegrityTask
|
44 |
|
|
from DQM.EcalBarrelMonitorTasks.LaserTask_cfi import ecalLaserTask
|
45 |
|
|
from DQM.EcalBarrelMonitorTasks.LedTask_cfi import ecalLedTask
|
46 |
|
|
from DQM.EcalBarrelMonitorTasks.OccupancyTask_cfi import ecalOccupancyTask
|
47 |
|
|
from DQM.EcalBarrelMonitorTasks.PedestalTask_cfi import ecalPedestalTask
|
48 |
|
|
from DQM.EcalBarrelMonitorTasks.PNDiodeTask_cfi import ecalPnDiodeTask
|
49 |
|
|
from DQM.EcalBarrelMonitorTasks.PresampleTask_cfi import ecalPresampleTask
|
50 |
|
|
from DQM.EcalBarrelMonitorTasks.RawDataTask_cfi import ecalRawDataTask
|
51 |
|
|
from DQM.EcalBarrelMonitorTasks.SelectiveReadoutTask_cfi import ecalSelectiveReadoutTask
|
52 |
|
|
from DQM.EcalBarrelMonitorTasks.TestPulseTask_cfi import ecalTestPulseTask
|
53 |
|
|
from DQM.EcalBarrelMonitorTasks.TimingTask_cfi import ecalTimingTask
|
54 |
|
|
from DQM.EcalBarrelMonitorTasks.TrigPrimTask_cfi import ecalTrigPrimTask
|
55 |
|
|
|
56 |
|
|
from DQM.EcalBarrelMonitorClient.IntegrityClient_cfi import ecalIntegrityClient
|
57 |
|
|
from DQM.EcalBarrelMonitorClient.LaserClient_cfi import ecalLaserClient
|
58 |
|
|
from DQM.EcalBarrelMonitorClient.LedClient_cfi import ecalLedClient
|
59 |
|
|
from DQM.EcalBarrelMonitorClient.OccupancyClient_cfi import ecalOccupancyClient
|
60 |
|
|
from DQM.EcalBarrelMonitorClient.PedestalClient_cfi import ecalPedestalClient
|
61 |
|
|
from DQM.EcalBarrelMonitorClient.PNIntegrityClient_cfi import ecalPnIntegrityClient
|
62 |
|
|
from DQM.EcalBarrelMonitorClient.PresampleClient_cfi import ecalPresampleClient
|
63 |
|
|
from DQM.EcalBarrelMonitorClient.RawDataClient_cfi import ecalRawDataClient
|
64 |
|
|
from DQM.EcalBarrelMonitorClient.SelectiveReadoutClient_cfi import ecalSelectiveReadoutClient
|
65 |
|
|
from DQM.EcalBarrelMonitorClient.SummaryClient_cfi import ecalSummaryClient
|
66 |
|
|
from DQM.EcalBarrelMonitorClient.TestPulseClient_cfi import ecalTestPulseClient
|
67 |
|
|
from DQM.EcalBarrelMonitorClient.TimingClient_cfi import ecalTimingClient
|
68 |
|
|
from DQM.EcalBarrelMonitorClient.TrigPrimClient_cfi import ecalTrigPrimClient
|
69 |
|
|
from DQM.EcalBarrelMonitorClient.CalibrationSummaryClient_cfi import ecalCalibrationSummaryClient
|
70 |
|
|
|
71 |
yiiyama |
1.2 |
clusterTask = ecalClusterTask.MEs
|
72 |
|
|
energyTask = ecalEnergyTask.MEs
|
73 |
|
|
integrityTask = ecalIntegrityTask.MEs
|
74 |
|
|
laserTask = ecalLaserTask.MEs
|
75 |
|
|
ledTask = ecalLedTask.MEs
|
76 |
|
|
occupancyTask = ecalOccupancyTask.MEs
|
77 |
|
|
pedestalTask = ecalPedestalTask.MEs
|
78 |
|
|
pnDiodeTask = ecalPnDiodeTask.MEs
|
79 |
|
|
presampleTask = ecalPresampleTask.MEs
|
80 |
|
|
rawDataTask = ecalRawDataTask.MEs
|
81 |
|
|
selectiveReadoutTask = ecalSelectiveReadoutTask.MEs
|
82 |
|
|
testPulseTask = ecalTestPulseTask.MEs
|
83 |
|
|
timingTask = ecalTimingTask.MEs
|
84 |
|
|
trigPrimTask = ecalTrigPrimTask.MEs
|
85 |
|
|
integrityClient = ecalIntegrityClient.MEs
|
86 |
|
|
laserClient = ecalLaserClient.MEs
|
87 |
|
|
ledClient = ecalLedClient.MEs
|
88 |
|
|
occupancyClient = ecalOccupancyClient.MEs
|
89 |
|
|
pedestalClient = ecalPedestalClient.MEs
|
90 |
|
|
pnIntegrityClient = ecalPnIntegrityClient.MEs
|
91 |
|
|
presampleClient = ecalPresampleClient.MEs
|
92 |
|
|
rawDataClient = ecalRawDataClient.MEs
|
93 |
|
|
selectiveReadoutClient = ecalSelectiveReadoutClient.MEs
|
94 |
|
|
summaryClient = ecalSummaryClient.MEs
|
95 |
|
|
testPulseClient = ecalTestPulseClient.MEs
|
96 |
|
|
timingClient = ecalTimingClient.MEs
|
97 |
|
|
trigPrimClient = ecalTrigPrimClient.MEs
|
98 |
|
|
calibrationSummaryClient = ecalCalibrationSummaryClient.MEs
|
99 |
yiiyama |
1.1 |
|
100 |
|
|
smNamesEE = [
|
101 |
|
|
"EE-01", "EE-02", "EE-03", "EE-04", "EE-05", "EE-06", "EE-07", "EE-08", "EE-09",
|
102 |
|
|
"EE+01", "EE+02", "EE+03", "EE+04", "EE+05", "EE+06", "EE+07", "EE+08", "EE+09"]
|
103 |
|
|
|
104 |
|
|
smNamesEB = [
|
105 |
|
|
"EB-01", "EB-02", "EB-03", "EB-04", "EB-05", "EB-06", "EB-07", "EB-08", "EB-09",
|
106 |
|
|
"EB-10", "EB-11", "EB-12", "EB-13", "EB-14", "EB-15", "EB-16", "EB-17", "EB-18",
|
107 |
|
|
"EB+01", "EB+02", "EB+03", "EB+04", "EB+05", "EB+06", "EB+07", "EB+08", "EB+09",
|
108 |
|
|
"EB+10", "EB+11", "EB+12", "EB+13", "EB+14", "EB+15", "EB+16", "EB+17", "EB+18"]
|
109 |
|
|
|
110 |
|
|
smMEMNamesEE = ["EE-02", "EE-03", "EE-07", "EE-08", "EE+02", "EE+03", "EE+07", "EE+08"]
|
111 |
|
|
|
112 |
|
|
laserWavelengths = ['1', '2', '3']
|
113 |
|
|
|
114 |
|
|
laserNames = ['Quantronics', 'Green', 'Photonics']
|
115 |
|
|
|
116 |
|
|
ledWavelengths = ['1', '2']
|
117 |
|
|
|
118 |
yiiyama |
1.3 |
mgpaGainsFull = ['01', '06', '12']
|
119 |
yiiyama |
1.1 |
mgpaGains = ['12']
|
120 |
|
|
|
121 |
yiiyama |
1.3 |
pnMGPAGainsFull = ['01', '16']
|
122 |
yiiyama |
1.1 |
pnMGPAGains = ['16']
|
123 |
|
|
|
124 |
|
|
ebRep = {'subdet': 'EcalBarrel', 'prefix': 'EB', 'suffix': ''}
|
125 |
|
|
eeRep = {'subdet': 'EcalEndcap', 'prefix': 'EE'}
|
126 |
|
|
eemRep = {'subdet': 'EcalEndcap', 'prefix': 'EE', 'suffix': ' EE -'}
|
127 |
|
|
eepRep = {'subdet': 'EcalEndcap', 'prefix': 'EE', 'suffix': ' EE +'}
|
128 |
|
|
|
129 |
yiiyama |
1.2 |
def formRep(rep, setRep):
|
130 |
|
|
for key, value in setRep.items():
|
131 |
|
|
if type(value) is ListType:
|
132 |
|
|
rep.update({key: '%(' + key + ')s'})
|
133 |
|
|
|
134 |
|
|
def prepareRepAndME(m, rep):
|
135 |
|
|
me = {}
|
136 |
|
|
if type(m) is TupleType:
|
137 |
|
|
rep.update(m[1])
|
138 |
|
|
me = m[0]
|
139 |
|
|
else:
|
140 |
|
|
me = m
|
141 |
|
|
|
142 |
yiiyama |
1.4 |
for ph in findall(r'\%\(([^\)]+)\)s', me.path.value()):
|
143 |
yiiyama |
1.2 |
if ph not in rep:
|
144 |
|
|
rep.update({ph: '%(' + ph + ')s'})
|
145 |
|
|
|
146 |
|
|
return me
|
147 |
yiiyama |
1.1 |
|
148 |
yiiyama |
1.2 |
def single(name, *mes, **keywords) :
|
149 |
yiiyama |
1.1 |
rows = []
|
150 |
yiiyama |
1.2 |
returnSet = False
|
151 |
|
|
rep = {}
|
152 |
|
|
setRep = {}
|
153 |
|
|
|
154 |
|
|
if 'rep' in keywords:
|
155 |
|
|
setRep = keywords['rep']
|
156 |
|
|
formRep(rep, setRep)
|
157 |
|
|
|
158 |
|
|
for m in mes :
|
159 |
|
|
me = prepareRepAndME(m, rep)
|
160 |
|
|
|
161 |
yiiyama |
1.4 |
rows.append([(me.path.value() % rep, me.description.value() % rep)])
|
162 |
yiiyama |
1.2 |
|
163 |
|
|
if len(setRep) > 0:
|
164 |
|
|
return LayoutElemSet(name, rows, setRep)
|
165 |
yiiyama |
1.1 |
else:
|
166 |
|
|
return LayoutElem(name, rows)
|
167 |
|
|
|
168 |
yiiyama |
1.2 |
def eb(name, *mes, **keywords) :
|
169 |
|
|
rows = []
|
170 |
|
|
rep = {}
|
171 |
|
|
setRep = {}
|
172 |
|
|
|
173 |
|
|
if 'rep' in keywords:
|
174 |
|
|
setRep = keywords['rep']
|
175 |
|
|
formRep(rep, setRep)
|
176 |
yiiyama |
1.1 |
|
177 |
yiiyama |
1.2 |
for m in mes:
|
178 |
|
|
me = prepareRepAndME(m, rep)
|
179 |
|
|
|
180 |
|
|
rep.update(ebRep)
|
181 |
yiiyama |
1.4 |
rows.append([(me.path.value() % rep, me.description.value() % rep)])
|
182 |
yiiyama |
1.2 |
|
183 |
|
|
if len(setRep) > 0:
|
184 |
|
|
return LayoutElemSet(name, rows, setRep)
|
185 |
|
|
else:
|
186 |
|
|
return LayoutElem(name, rows)
|
187 |
|
|
|
188 |
|
|
def ee(name, *mes, **keywords) :
|
189 |
yiiyama |
1.1 |
rows = []
|
190 |
yiiyama |
1.2 |
rep = {}
|
191 |
|
|
setRep = {}
|
192 |
|
|
|
193 |
|
|
if 'rep' in keywords:
|
194 |
|
|
setRep = keywords['rep']
|
195 |
|
|
formRep(rep, setRep)
|
196 |
|
|
|
197 |
|
|
for m in mes :
|
198 |
|
|
me = prepareRepAndME(m, rep)
|
199 |
|
|
|
200 |
|
|
rep.update(eeRep)
|
201 |
yiiyama |
1.4 |
rows.append([(me.path.value() % rep, me.description.value() % rep)])
|
202 |
yiiyama |
1.2 |
|
203 |
|
|
if len(setRep) > 0:
|
204 |
|
|
return LayoutElemSet(name, rows, setRep)
|
205 |
|
|
else:
|
206 |
|
|
return LayoutElem(name, rows)
|
207 |
|
|
|
208 |
|
|
def ecal2P(name, *mes, **keywords) :
|
209 |
|
|
rows = [list(), list()]
|
210 |
|
|
rep = {}
|
211 |
|
|
setRep = {}
|
212 |
|
|
|
213 |
|
|
if 'rep' in keywords:
|
214 |
|
|
setRep = keywords['rep']
|
215 |
|
|
formRep(rep, setRep)
|
216 |
|
|
|
217 |
|
|
for m in mes :
|
218 |
|
|
me = prepareRepAndME(m, rep)
|
219 |
|
|
|
220 |
|
|
rep.update(ebRep)
|
221 |
yiiyama |
1.4 |
rows[0].append((me.path.value() % rep, me.description.value() % rep))
|
222 |
yiiyama |
1.2 |
rep.update(eeRep)
|
223 |
yiiyama |
1.4 |
rows[1].append((me.path.value() % rep, me.description.value() % rep))
|
224 |
yiiyama |
1.2 |
|
225 |
|
|
if len(setRep) > 0:
|
226 |
|
|
return LayoutElemSet(name, rows, setRep)
|
227 |
|
|
else:
|
228 |
|
|
return LayoutElem(name, rows)
|
229 |
|
|
|
230 |
|
|
def ecal3P(name, *mes, **keywords) :
|
231 |
|
|
rep = {}
|
232 |
|
|
setRep = {}
|
233 |
|
|
|
234 |
|
|
if 'rep' in keywords:
|
235 |
|
|
setRep = keywords['rep']
|
236 |
|
|
formRep(rep, setRep)
|
237 |
|
|
|
238 |
|
|
ebrows = []
|
239 |
|
|
eerows = []
|
240 |
|
|
for m in mes :
|
241 |
|
|
me = prepareRepAndME(m, rep)
|
242 |
|
|
|
243 |
|
|
rep.update(ebRep)
|
244 |
yiiyama |
1.4 |
ebrows.append([(me.path.value() % rep, me.description.value() % rep)])
|
245 |
yiiyama |
1.2 |
cols = []
|
246 |
|
|
rep.update(eemRep)
|
247 |
yiiyama |
1.4 |
cols.append((me.path.value() % rep, me.description.value() % rep))
|
248 |
yiiyama |
1.2 |
rep.update(eepRep)
|
249 |
yiiyama |
1.4 |
cols.append((me.path.value() % rep, me.description.value() % rep))
|
250 |
yiiyama |
1.2 |
eerows.append(cols)
|
251 |
|
|
|
252 |
|
|
rows = ebrows + eerows
|
253 |
|
|
|
254 |
|
|
if len(setRep) > 0:
|
255 |
|
|
return LayoutElemSet(name, rows, setRep)
|
256 |
yiiyama |
1.1 |
else:
|
257 |
|
|
return LayoutElem(name, rows)
|
258 |
|
|
|
259 |
yiiyama |
1.2 |
def ee2P(name, *mes, **keywords) :
|
260 |
|
|
rows = []
|
261 |
|
|
rep = {}
|
262 |
|
|
setRep = {}
|
263 |
yiiyama |
1.1 |
|
264 |
yiiyama |
1.2 |
if 'rep' in keywords:
|
265 |
|
|
setRep = keywords['rep']
|
266 |
|
|
formRep(rep, setRep)
|
267 |
|
|
|
268 |
|
|
for m in mes :
|
269 |
|
|
me = prepareRepAndME(m, rep)
|
270 |
|
|
|
271 |
|
|
rep.update(ebRep)
|
272 |
|
|
cols = []
|
273 |
|
|
rep.update(eemRep)
|
274 |
yiiyama |
1.4 |
cols.append((me.path.value() % rep, me.description.value() % rep))
|
275 |
yiiyama |
1.2 |
rep.update(eepRep)
|
276 |
yiiyama |
1.4 |
cols.append((me.path.value() % rep, me.description.value() % rep))
|
277 |
yiiyama |
1.2 |
rows.append(cols)
|
278 |
|
|
|
279 |
|
|
if len(setRep) > 0:
|
280 |
|
|
return LayoutElemSet(name, rows, setRep)
|
281 |
yiiyama |
1.1 |
else:
|
282 |
yiiyama |
1.2 |
return LayoutElem(name, rows)
|
283 |
yiiyama |
1.1 |
|
284 |
yiiyama |
1.2 |
def subdetSet_produce(subdet, mes) :
|
285 |
yiiyama |
1.1 |
rep = {'subdet': subdet[0], 'prefix': subdet[1]}
|
286 |
yiiyama |
1.2 |
tmpList = []
|
287 |
|
|
for m in mes:
|
288 |
|
|
me = prepareRepAndME(m, rep)
|
289 |
|
|
|
290 |
yiiyama |
1.4 |
for ph in findall(r'\%\(([^\)]+)\)s', me.path.value()):
|
291 |
yiiyama |
1.2 |
if ph not in rep:
|
292 |
|
|
rep.update({ph: '%(' + ph + ')s'})
|
293 |
yiiyama |
1.1 |
|
294 |
yiiyama |
1.4 |
tmpList.append((me.path.value() % rep, me.description.value() % rep))
|
295 |
yiiyama |
1.2 |
|
296 |
|
|
if len(tmpList) == 1:
|
297 |
|
|
return [[tmpList[0]]]
|
298 |
|
|
elif len(tmpList) == 2:
|
299 |
|
|
return [[tmpList[0]], [tmpList[1]]]
|
300 |
yiiyama |
1.1 |
else:
|
301 |
yiiyama |
1.2 |
rows = []
|
302 |
|
|
cols = []
|
303 |
|
|
for i in range(0, len(tmpList)):
|
304 |
|
|
cols.append(tmpList[i])
|
305 |
|
|
if len(cols) == 2:
|
306 |
|
|
rows.append(cols)
|
307 |
|
|
cols = []
|
308 |
yiiyama |
1.1 |
|
309 |
|
|
return rows
|
310 |
|
|
|
311 |
yiiyama |
1.2 |
def eeSMSet(name, *mes) :
|
312 |
|
|
rows = subdetSet_produce(('EcalEndcap', 'EE'), mes)
|
313 |
yiiyama |
1.1 |
return [LayoutElemSet(name + ' %(sm)s', rows, {'sm': smNamesEE}, addSerial = False)]
|
314 |
|
|
|
315 |
yiiyama |
1.2 |
def eeSMMEMSet(name, *mes) :
|
316 |
|
|
rows = subdetSet_produce(('EcalEndcap', 'EE'), mes)
|
317 |
yiiyama |
1.1 |
return [LayoutElemSet(name + ' %(sm)s', rows, {'sm': smMEMNamesEE}, addSerial = False)]
|
318 |
|
|
|
319 |
yiiyama |
1.2 |
def ebSMSet(name, *mes) :
|
320 |
|
|
rows = subdetSet_produce(('EcalBarrel', 'EB'), mes)
|
321 |
yiiyama |
1.1 |
return [LayoutElemSet(name + ' %(sm)s', rows, {'sm': smNamesEB}, addSerial = False)]
|
322 |
|
|
|
323 |
yiiyama |
1.2 |
def smSet(name, *mes) :
|
324 |
|
|
return eeSMSet(name, *mes) + ebSMSet(name, *mes)
|
325 |
yiiyama |
1.1 |
|
326 |
yiiyama |
1.2 |
def smMEMSet(name, *mes) :
|
327 |
|
|
return eeSMMEMSet(name, *mes) + ebSMSet(name, *mes)
|
328 |
yiiyama |
1.1 |
|
329 |
yiiyama |
1.2 |
def subdetEtaPhi(name, me, meEta, mePhi) :
|
330 |
|
|
elems = [
|
331 |
yiiyama |
1.4 |
LayoutElem(name + " EB", [[(me.path.value() % ebRep, me.description.value() % ebRep)], [(meEta.path.value() % ebRep, meEta.description.value() % ebRep), (mePhi.path.value() % ebRep, mePhi.description.value() % ebRep)]]),
|
332 |
|
|
LayoutElem(name + " EE -", [[(me.path.value() % eemRep, me.description.value() % eemRep)], [(meEta.path.value() % eemRep, meEta.description.value() % eemRep), (mePhi.path.value() % eemRep, mePhi.description.value() % eemRep)]]),
|
333 |
|
|
LayoutElem(name + " EE +", [[(me.path.value() % eepRep, me.description.value() % eepRep)], [(meEta.path.value() % eepRep, meEta.description.value() % eepRep), (mePhi.path.value() % eepRep, mePhi.description.value() % eepRep)]])
|
334 |
yiiyama |
1.2 |
]
|
335 |
yiiyama |
1.1 |
|
336 |
|
|
return elems
|
337 |
|
|
|
338 |
|
|
#### END path definitions / utility functions ####
|
339 |
|
|
|
340 |
|
|
layouts = {}
|
341 |
|
|
|
342 |
|
|
#### BEGIN shift_ecal_layout / shift_ecal_T0_layout ####
|
343 |
|
|
|
344 |
|
|
layouts['shift_ecal_layout'] = LayoutDir("00 Shift/Ecal", [
|
345 |
yiiyama |
1.2 |
ecal3P('Summary', summaryClient.QualitySummary),
|
346 |
|
|
ecal3P('FE Status', rawDataClient.QualitySummary),
|
347 |
|
|
ecal3P('Integrity', integrityClient.QualitySummary),
|
348 |
|
|
ecal3P('Occupancy', occupancyTask.DigiAll),
|
349 |
|
|
ecal3P('Noise', presampleClient.QualitySummary),
|
350 |
|
|
ecal3P('RecHit Energy', energyTask.HitMapAll),
|
351 |
|
|
ecal3P('Timing', timingClient.QualitySummary),
|
352 |
|
|
ecal3P('TriggerPrimitives', trigPrimClient.EmulQualitySummary),
|
353 |
|
|
ecal3P('Hot Cells', occupancyClient.QualitySummary),
|
354 |
|
|
ecal3P('Laser 3 (Photonics)', (laserClient.QualitySummary, {'wl': '3'})), #online
|
355 |
|
|
ecal2P('Laser 3 PN', (laserClient.PNQualitySummary, {'wl': '3'})), #online
|
356 |
|
|
ecal3P('Test Pulse', (testPulseClient.QualitySummary, {'gain': '12'})), #online
|
357 |
|
|
ecal2P('Test Pulse PN', (testPulseClient.PNQualitySummary, {'pngain': '16'})), #online
|
358 |
|
|
ecal2P('Pedestal', (pedestalClient.QualitySummary, {'gain': '12'})), #online - not used in 2012
|
359 |
|
|
ecal2P('Pedestal PN', (pedestalClient.PNQualitySummary, {'pngain': '16'})), #online - not used in 2012
|
360 |
|
|
ee2P('Led 1', (ledClient.QualitySummary, {'wl': '1'})), #online
|
361 |
|
|
ee('Led 1 PN', (ledClient.PNQualitySummary, {'wl': '1'})) #online
|
362 |
yiiyama |
1.1 |
])
|
363 |
|
|
|
364 |
yiiyama |
1.2 |
layouts['shift_ecal_layout'].remove('Pedestal')
|
365 |
|
|
layouts['shift_ecal_layout'].remove('Pedestal PN')
|
366 |
|
|
|
367 |
yiiyama |
1.1 |
layouts['shift_ecal_T0_layout'] = layouts['shift_ecal_layout'].clone()
|
368 |
yiiyama |
1.2 |
layouts['shift_ecal_T0_layout'].remove("Laser 3 (Photonics)")
|
369 |
|
|
layouts['shift_ecal_T0_layout'].remove("Laser 3 PN")
|
370 |
yiiyama |
1.1 |
layouts['shift_ecal_T0_layout'].remove("Test Pulse")
|
371 |
|
|
layouts['shift_ecal_T0_layout'].remove("Test Pulse PN")
|
372 |
yiiyama |
1.2 |
layouts['shift_ecal_T0_layout'].remove("Pedestal")
|
373 |
|
|
layouts['shift_ecal_T0_layout'].remove("Pedestal PN")
|
374 |
|
|
layouts['shift_ecal_T0_layout'].remove("Led 1")
|
375 |
|
|
layouts['shift_ecal_T0_layout'].remove("Led 1 PN")
|
376 |
yiiyama |
1.1 |
|
377 |
|
|
#### END shift_ecal_layout / shift_ecal_T0_layout ####
|
378 |
|
|
|
379 |
|
|
#### BEGIN ecal-layouts.py / ecal_T0_layouts.py / ecalpriv-layouts.py ####
|
380 |
|
|
|
381 |
|
|
layouts['ecal-layouts'] = LayoutDir("Ecal/Layouts", [
|
382 |
yiiyama |
1.2 |
ecal3P('Summary', summaryClient.QualitySummary),
|
383 |
|
|
ecal3P('Occupancy Summary', occupancyTask.DigiAll),
|
384 |
|
|
ecal3P('Calibration Summary', calibrationSummaryClient.QualitySummary),
|
385 |
|
|
LayoutDir("Overview", [], addSerial = True),
|
386 |
|
|
LayoutDir("Raw Data", [], addSerial = True),
|
387 |
|
|
LayoutDir("Occupancy", [], addSerial = True),
|
388 |
|
|
LayoutDir("Noise", [], addSerial = True),
|
389 |
|
|
LayoutDir("Energy", [], addSerial = True),
|
390 |
|
|
LayoutDir("Timing", [], addSerial = True),
|
391 |
|
|
LayoutDir("Trigger Primitives", [], addSerial = True),
|
392 |
|
|
LayoutDir("Selective Readout", [], addSerial = True),
|
393 |
|
|
LayoutDir("Laser", [], addSerial = True), #online
|
394 |
|
|
LayoutDir("Led", [], addSerial = True), #online
|
395 |
|
|
LayoutDir('Test Pulse', [], addSerial = True), #online
|
396 |
|
|
LayoutDir('Pedestal', [], addSerial = True), #online - not used in 2012
|
397 |
|
|
LayoutDir('Trend', [], addSerial = True), #online
|
398 |
|
|
LayoutDir("By SuperModule", [], addSerial = True)
|
399 |
yiiyama |
1.1 |
])
|
400 |
|
|
|
401 |
|
|
layouts['ecal-layouts'].get('Overview').append([
|
402 |
yiiyama |
1.2 |
ecal3P('Summary', summaryClient.QualitySummary),
|
403 |
|
|
ecal3P('FE Status', rawDataClient.QualitySummary),
|
404 |
|
|
ecal3P('Integrity', integrityClient.QualitySummary),
|
405 |
|
|
ecal3P('Occupancy', occupancyTask.DigiAll),
|
406 |
|
|
ecal3P('Noise', presampleClient.QualitySummary),
|
407 |
|
|
ecal3P('RecHit Energy', energyTask.HitMapAll),
|
408 |
|
|
ecal3P('Timing', timingClient.QualitySummary),
|
409 |
|
|
ecal3P('Trigger Primitives', trigPrimClient.EmulQualitySummary),
|
410 |
|
|
ecal3P('Hot Cells', occupancyClient.QualitySummary),
|
411 |
|
|
ecal3P('Laser %(wl)s (%(lname)s)', laserClient.QualitySummary, rep = {'wl': laserWavelengths, 'lname': laserNames}), #online
|
412 |
|
|
ecal2P('Laser %(wl)s PN', laserClient.PNQualitySummary, rep = {'wl': laserWavelengths}), #online
|
413 |
|
|
ecal3P('Test Pulse G%(gain)s', testPulseClient.QualitySummary, rep = {'gain': mgpaGains}), #online
|
414 |
|
|
ecal2P('Test Pulse PN G%(pngain)s', testPulseClient.PNQualitySummary, rep = {'pngain': pnMGPAGains}), #online
|
415 |
|
|
ecal3P('Pedestal G%(gain)s', pedestalClient.QualitySummary, rep = {'gain': mgpaGains}), #online - not used in 2012
|
416 |
|
|
ecal3P('Pedestal PN G%(pngain)s', pedestalClient.PNQualitySummary, rep = {'pngain': pnMGPAGains}), #online - not used in 2012
|
417 |
|
|
ee2P('Led %(wl)s', ledClient.QualitySummary, rep = {'wl': ledWavelengths}), #online
|
418 |
|
|
ee('Led %(wl)s PN', ledClient.PNQualitySummary, rep = {'wl': ledWavelengths}), #online
|
419 |
|
|
single('Error Trends', rawDataTask.TrendNSyncErrors, integrityTask.TrendNErrors) #online
|
420 |
|
|
])
|
421 |
|
|
|
422 |
|
|
layouts['ecal-layouts'].get("Raw Data").append([
|
423 |
|
|
ecal3P('FEStatus Summary', rawDataClient.QualitySummary),
|
424 |
|
|
ecal3P('Total FE Sync Errors', rawDataTask.DesyncTotal),
|
425 |
|
|
ecal3P('FE Errors in this LS', rawDataTask.DesyncByLumi, rawDataTask.FEByLumi),
|
426 |
|
|
ecal3P('Integrity Summary', integrityClient.QualitySummary),
|
427 |
|
|
ecal3P('Total Integrity Errors', integrityTask.Total),
|
428 |
|
|
ecal3P('Integrity Errors in this LS', integrityTask.ByLumi), #online
|
429 |
|
|
single('Error Trends', rawDataTask.TrendNSyncErrors, integrityTask.TrendNErrors), #online
|
430 |
|
|
ecal2P('Event Type', rawDataTask.EventTypePreCalib, rawDataTask.EventTypeCalib, rawDataTask.EventTypePostCalib),
|
431 |
|
|
ecal2P('FED Entries', rawDataTask.Entries),
|
432 |
|
|
LayoutDir('Desync Errors', [
|
433 |
|
|
ecal2P('CRC', rawDataTask.CRC),
|
434 |
|
|
ecal2P('DCC-GT Mismatch', rawDataTask.RunNumber, rawDataTask.Orbit),
|
435 |
|
|
ecal2P('DCC-GT Mismatch', rawDataTask.BXDCC, rawDataTask.L1ADCC, rawDataTask.TriggerType),
|
436 |
|
|
ecal2P('DCC-TCC Mismatch', rawDataTask.BXTCC, rawDataTask.L1ATCC),
|
437 |
|
|
ecal2P('DCC-SRP Mismatch', rawDataTask.BXSRP, rawDataTask.L1ASRP),
|
438 |
|
|
ecal2P('DCC-FE Mismatch', rawDataTask.BXFE, rawDataTask.L1AFE)
|
439 |
|
|
]),
|
440 |
|
|
LayoutDir('By SuperModule', [
|
441 |
|
|
LayoutDir('Integrity Quality', smSet('Integrity', integrityClient.Quality)),
|
442 |
|
|
LayoutDir('FEStatus', smSet('FE Status Flags', rawDataTask.FEStatus))
|
443 |
|
|
])
|
444 |
yiiyama |
1.1 |
])
|
445 |
|
|
|
446 |
|
|
layouts['ecal-layouts'].get("Occupancy").append([
|
447 |
yiiyama |
1.2 |
ecal3P('Hot Cells', occupancyClient.QualitySummary)
|
448 |
yiiyama |
1.1 |
])
|
449 |
|
|
layouts['ecal-layouts'].get("Occupancy").append(
|
450 |
yiiyama |
1.2 |
subdetEtaPhi("Digi", occupancyTask.DigiAll, occupancyTask.DigiProjEta, occupancyTask.DigiProjPhi) +
|
451 |
|
|
subdetEtaPhi("RecHit", occupancyTask.RecHitAll, occupancyTask.RecHitProjEta, occupancyTask.RecHitProjPhi) +
|
452 |
|
|
subdetEtaPhi("RecHit (Filtered)", occupancyTask.RecHitThrAll, occupancyTask.RecHitThrProjEta, occupancyTask.RecHitThrProjPhi) +
|
453 |
|
|
subdetEtaPhi("Trigger Primitive", occupancyTask.TPDigiAll, occupancyTask.TPDigiProjEta, occupancyTask.TPDigiProjPhi) +
|
454 |
|
|
subdetEtaPhi("Trigger Primitive (Filtered)", occupancyTask.TPDigiThrAll, occupancyTask.TPDigiThrProjEta, occupancyTask.TPDigiThrProjPhi) +
|
455 |
|
|
subdetEtaPhi("Basic Cluster", clusterTask.BCOccupancy, clusterTask.BCOccupancyProjEta, clusterTask.BCOccupancyProjPhi)
|
456 |
yiiyama |
1.1 |
)
|
457 |
|
|
layouts['ecal-layouts'].get("Occupancy").append([
|
458 |
yiiyama |
1.2 |
ecal2P('Hit Multiplicity', occupancyTask.Digi1D, occupancyTask.RecHitThr1D),
|
459 |
|
|
ecal2P('Multiplicity Trend', occupancyTask.TrendNDigi, occupancyTask.TrendNRecHitThr, occupancyTask.TrendNTPDigi), #online
|
460 |
|
|
ecal2P('FED Total', occupancyTask.DigiDCC),
|
461 |
|
|
ecal2P('Basic Cluster Multiplicity', clusterTask.BCNum),
|
462 |
|
|
ecal3P('Super Cluster Seed', clusterTask.SCSeedOccupancy),
|
463 |
|
|
ecal2P('Super Cluster Multiplicity', clusterTask.SCNum),
|
464 |
|
|
ecal3P('Single Crystal Cluster', clusterTask.SingleCrystalCluster),
|
465 |
|
|
ecal2P('Cluster Multiplicity Trends', clusterTask.TrendNBC, clusterTask.TrendNSC), #online
|
466 |
|
|
ecal3P('Laser', laserTask.Occupancy), #online
|
467 |
|
|
ee2P('Led', ledTask.Occupancy), #online
|
468 |
|
|
ecal3P('Test Pulse', testPulseTask.Occupancy), #online
|
469 |
|
|
ecal3P('Pedestal', pedestalTask.Occupancy), #online - not used in 2012
|
470 |
|
|
ecal2P('PN Digi', pnDiodeTask.OccupancySummary), #online
|
471 |
|
|
LayoutDir('SR and TT Flags', [
|
472 |
|
|
ecal3P('Zero Suppression', selectiveReadoutTask.ZS1Map, selectiveReadoutTask.ZSMap),
|
473 |
|
|
ecal3P('Full Readout', selectiveReadoutTask.FullReadoutMap),
|
474 |
|
|
ecal3P('Forced Readout', selectiveReadoutTask.RUForcedMap),
|
475 |
|
|
ecal3P('All SR Flags', selectiveReadoutTask.FlagCounterMap),
|
476 |
|
|
ecal3P('TT High Interest', trigPrimTask.HighIntMap),
|
477 |
|
|
ecal3P('TT Medium Interest', trigPrimTask.MedIntMap),
|
478 |
|
|
ecal3P('TT Low Interest', trigPrimTask.LowIntMap)
|
479 |
|
|
]),
|
480 |
|
|
LayoutDir('By SuperModule', [
|
481 |
|
|
LayoutDir('Digi', smSet('Digi Occupancy', occupancyTask.Digi)),
|
482 |
|
|
LayoutDir('PN Digi', smMEMSet('PN Digi Occupancy', pnDiodeTask.Occupancy)) #online
|
483 |
|
|
])
|
484 |
|
|
])
|
485 |
|
|
|
486 |
|
|
layouts['ecal-layouts'].get("Noise").append([
|
487 |
|
|
ecal3P('Presample Quality', presampleClient.QualitySummary),
|
488 |
|
|
ecal3P('RMS Map', presampleClient.RMSMap),
|
489 |
|
|
ecal3P('Reconstructed', occupancyTask.RecHitAll, clusterTask.SingleCrystalCluster),
|
490 |
|
|
ecal2P('Trend', presampleClient.TrendMean, presampleClient.TrendRMS), #online
|
491 |
|
|
LayoutDir('By SuperModule', [
|
492 |
|
|
LayoutDir('Quality', smSet('Quality', presampleClient.Quality)),
|
493 |
|
|
LayoutDir('Mean', smSet('Mean', presampleTask.Pedestal, presampleClient.Mean)),
|
494 |
|
|
LayoutDir('RMS', smSet('RMS', presampleClient.RMS)),
|
495 |
|
|
LayoutDir('PN', smMEMSet('PN Presample', pnDiodeTask.Pedestal)) #online
|
496 |
|
|
])
|
497 |
yiiyama |
1.1 |
])
|
498 |
|
|
|
499 |
|
|
layouts['ecal-layouts'].get("Energy").append([
|
500 |
yiiyama |
1.2 |
ecal3P('RecHit Energy', energyTask.HitMapAll),
|
501 |
|
|
ecal3P('RecHit Energy Spectrum', energyTask.HitAll)
|
502 |
yiiyama |
1.1 |
])
|
503 |
|
|
layouts['ecal-layouts'].get("Energy").append(
|
504 |
yiiyama |
1.2 |
subdetEtaPhi("Basic Cluster Energy", clusterTask.BCEMap, clusterTask.BCEMapProjEta, clusterTask.BCEMapProjPhi) +
|
505 |
|
|
subdetEtaPhi("Basic Cluster Size", clusterTask.BCSizeMap, clusterTask.BCSizeMapProjEta, clusterTask.BCSizeMapProjPhi)
|
506 |
yiiyama |
1.1 |
)
|
507 |
|
|
layouts['ecal-layouts'].get("Energy").append([
|
508 |
yiiyama |
1.2 |
ecal2P('Basic Cluster Energy', clusterTask.BCE),
|
509 |
|
|
ecal2P('Basic Cluster Size', clusterTask.BCSize),
|
510 |
|
|
ecal2P('Basic Cluster Size Trend', clusterTask.TrendBCSize), #online
|
511 |
|
|
ecal2P('Super Cluster Energy', clusterTask.SCE),
|
512 |
|
|
ecal2P('Super Cluster Energy Low', clusterTask.SCELow),
|
513 |
|
|
ecal2P('Super Cluster Seed Energy', clusterTask.SCSeedEnergy),
|
514 |
|
|
ecal2P('Super Cluster R9', clusterTask.SCR9),
|
515 |
|
|
ecal2P('Super Cluster Size', clusterTask.SCNBCs, clusterTask.SCNcrystals),
|
516 |
|
|
ecal2P('Cluster Energy vs Seed Energy', clusterTask.SCClusterVsSeed),
|
517 |
|
|
LayoutDir('By SuperModule',
|
518 |
|
|
smSet('RecHit', energyTask.HitMap, energyTask.Hit)
|
519 |
|
|
)
|
520 |
yiiyama |
1.1 |
## LayoutDir('DiClusterMass', [
|
521 |
yiiyama |
1.2 |
## single('Pi0', clusterTask.Pi0),
|
522 |
|
|
## single('JPsi', clusterTask.JPsi),
|
523 |
|
|
## single('Z', clusterTask.Z),
|
524 |
|
|
## single('High Mass', clusterTask.HighMass)
|
525 |
yiiyama |
1.1 |
## ])
|
526 |
|
|
])
|
527 |
|
|
|
528 |
|
|
layouts['ecal-layouts'].get("Timing").append([
|
529 |
yiiyama |
1.2 |
ecal3P('Quality Summary', timingClient.QualitySummary),
|
530 |
|
|
ecal3P('Mean', timingClient.MeanAll),
|
531 |
|
|
ecal3P('RMS', timingClient.RMSAll)
|
532 |
yiiyama |
1.1 |
])
|
533 |
|
|
layouts['ecal-layouts'].get("Timing").append(
|
534 |
yiiyama |
1.2 |
subdetEtaPhi("Map", timingTask.TimeAllMap, timingClient.ProjEta, timingClient.ProjPhi)
|
535 |
yiiyama |
1.1 |
)
|
536 |
|
|
layouts['ecal-layouts'].get("Timing").append([
|
537 |
yiiyama |
1.2 |
ecal2P("Forward-Backward", timingClient.FwdBkwdDiff, timingClient.FwdvBkwd),
|
538 |
|
|
ecal3P('Distribution', timingTask.TimeAll),
|
539 |
|
|
ecal3P('Vs Amptlitude', timingTask.TimeAmpAll),
|
540 |
|
|
LayoutDir('By SuperModule', [
|
541 |
|
|
LayoutDir('Quality', smSet('Quality', timingClient.Quality)),
|
542 |
|
|
LayoutDir('Distribution', smSet('Distribution', timingTask.Time1D)),
|
543 |
|
|
LayoutDir('Mean', smSet('Mean', timingTask.TimeMap, timingClient.MeanSM)),
|
544 |
|
|
LayoutDir('RMS', smSet('RMS', timingClient.RMSMap)),
|
545 |
|
|
LayoutDir('Vs Amplitude', smSet('Time vs Amplitude', timingTask.TimeAmp)),
|
546 |
|
|
LayoutDir('Laser', smSet('Photonics Laser', (laserTask.Timing, {'wl': '3'}))), #online
|
547 |
|
|
LayoutDir('Led', eeSMSet('Led 1', (ledTask.Timing, {'wl': '1'}))) #online
|
548 |
|
|
])
|
549 |
yiiyama |
1.1 |
])
|
550 |
|
|
|
551 |
|
|
layouts['ecal-layouts'].get("Trigger Primitives").append([
|
552 |
yiiyama |
1.2 |
ecal3P('Emulation Quality', trigPrimClient.EmulQualitySummary),
|
553 |
|
|
ecal3P('Occupancy', occupancyTask.TPDigiAll),
|
554 |
|
|
ecal3P('Occupancy (Filtered)', occupancyTask.TPDigiThrAll),
|
555 |
|
|
ecal3P('Et Spectrum', trigPrimTask.EtReal),
|
556 |
|
|
ecal3P('Emulation Et Spectrum', trigPrimTask.EtMaxEmul),
|
557 |
|
|
ecal3P('Et Map', trigPrimTask.EtSummary),
|
558 |
|
|
ecal3P('Timing', trigPrimClient.TimingSummary, trigPrimClient.NonSingleSummary),
|
559 |
|
|
ecal3P("Occupancy vs BX", trigPrimTask.OccVsBx),
|
560 |
|
|
ecal3P("Et vs BX", trigPrimTask.EtVsBx),
|
561 |
|
|
ecal3P('Emululation Timing', trigPrimTask.EmulMaxIndex),
|
562 |
|
|
LayoutDir('By SuperModule', [
|
563 |
|
|
LayoutDir('EmulMatching', smSet('Match', trigPrimTask.MatchedIndex)),
|
564 |
|
|
LayoutDir('Et', smSet('TP Et', trigPrimTask.EtRealMap))
|
565 |
|
|
])
|
566 |
yiiyama |
1.1 |
])
|
567 |
|
|
|
568 |
|
|
layouts['ecal-layouts'].get("Selective Readout").append([
|
569 |
yiiyama |
1.2 |
ecal2P('DCC Data Size', selectiveReadoutTask.DCCSize),
|
570 |
|
|
ecal3P('DCC Data Size', selectiveReadoutTask.EventSize),
|
571 |
|
|
ecal3P('Tower Data Size', selectiveReadoutTask.TowerSize),
|
572 |
|
|
ecal3P('Payload High Interest', selectiveReadoutTask.HighIntPayload),
|
573 |
|
|
ecal3P('Payload Low Interest', selectiveReadoutTask.LowIntPayload),
|
574 |
|
|
ecal3P("ZS Filter Output (High Int.)", selectiveReadoutTask.HighIntOutput),
|
575 |
|
|
ecal3P("ZS Filter Output (Low Int.)", selectiveReadoutTask.LowIntOutput),
|
576 |
|
|
ecal3P('High Interest Rate', selectiveReadoutClient.HighInterest),
|
577 |
|
|
ecal3P('Medium Interest Rate', selectiveReadoutClient.MedInterest),
|
578 |
|
|
ecal3P('Low Interest Rate', selectiveReadoutClient.LowInterest),
|
579 |
|
|
ecal3P('TT Flags', trigPrimTask.TTFlags),
|
580 |
|
|
ecal3P('Full Readout Flags', selectiveReadoutClient.FR),
|
581 |
|
|
ecal3P('Zero Suppression Flags', selectiveReadoutClient.ZS1),
|
582 |
|
|
ecal3P('Forced Readout Flags', selectiveReadoutClient.RUForced),
|
583 |
|
|
ecal3P('Full Readout Flag Dropped', selectiveReadoutClient.FRDropped),
|
584 |
|
|
ecal3P('ZS Flag Readout', selectiveReadoutClient.ZSReadout)
|
585 |
yiiyama |
1.1 |
])
|
586 |
|
|
|
587 |
|
|
layouts['ecal-layouts'].get("Laser").append([
|
588 |
yiiyama |
1.2 |
ecal3P("Quality Summary L%(wl)s (%(lname)s)", laserClient.QualitySummary, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
589 |
|
|
ecal3P('Amplitude L%(wl)s (%(lname)s)', laserTask.AmplitudeSummary, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
590 |
|
|
ecal2P('Amplitude RMS L%(wl)s (%(lname)s)', laserClient.AmplitudeRMS, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
591 |
|
|
ecal3P('Occupancy', laserTask.Occupancy),
|
592 |
|
|
ecal2P('Timing Spread L%(wl)s (%(lname)s)', laserClient.TimingRMSMap, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
593 |
|
|
ecal2P('PN Quality Summary L%(wl)s (%(lname)s)', laserClient.PNQualitySummary, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
594 |
yiiyama |
1.1 |
LayoutDirSet('Laser%(wl)s (%(lname)s)', [
|
595 |
yiiyama |
1.2 |
LayoutDir('Quality', smSet('Quality', laserClient.Quality)),
|
596 |
|
|
LayoutDir('Amplitude', smSet('Amplitude', laserTask.Amplitude, laserClient.AmplitudeMean)),
|
597 |
|
|
LayoutDir('Timing', smSet('Timing', laserTask.Timing, laserClient.TimingMean, laserClient.TimingRMS)),
|
598 |
|
|
LayoutDir('APD Over PN', smSet('APD Over PN', laserTask.AOverP)),
|
599 |
|
|
LayoutDir('Shape', smSet('Shape', laserTask.Shape)),
|
600 |
|
|
LayoutDir('PN Amplitude', smMEMSet('Amplitude', laserTask.PNAmplitude))
|
601 |
|
|
], {'wl': laserWavelengths, 'lname': laserNames})
|
602 |
yiiyama |
1.1 |
])
|
603 |
|
|
|
604 |
|
|
layouts['ecal-layouts'].get("Led").append([
|
605 |
yiiyama |
1.2 |
ee2P("Quality Summary L%(wl)s", ledClient.QualitySummary, rep = {'wl': ledWavelengths}),
|
606 |
|
|
ee2P('Amplitude L%(wl)s', ledTask.AmplitudeSummary, rep = {'wl': ledWavelengths}),
|
607 |
|
|
single('Amplitude RMS L%(wl)s', ledClient.AmplitudeRMS, rep = {'wl': ledWavelengths}),
|
608 |
|
|
ee2P('Occupancy', ledTask.Occupancy),
|
609 |
|
|
single('Timing Spread L%(wl)s', ledClient.TimingRMSMap, rep = {'wl': ledWavelengths}),
|
610 |
|
|
single('PN Quality Summary L%(wl)s', ledClient.PNQualitySummary, rep = {'wl': ledWavelengths}),
|
611 |
yiiyama |
1.1 |
LayoutDirSet('Led%(wl)s', [
|
612 |
yiiyama |
1.2 |
LayoutDir('Quality', eeSMSet('Quality', ledClient.Quality)),
|
613 |
|
|
LayoutDir('Amplitude', eeSMSet('Amplitude', ledTask.Amplitude, ledClient.AmplitudeMean)),
|
614 |
|
|
LayoutDir('Timing', eeSMSet('Timing', ledTask.Timing, ledClient.TimingMean)),
|
615 |
|
|
LayoutDir('APD Over PN', eeSMSet('APD Over PN', ledTask.AOverP)),
|
616 |
|
|
LayoutDir('Shape', eeSMSet('Shape', ledTask.Shape)),
|
617 |
|
|
LayoutDir('PN Amplitude', eeSMMEMSet('Amplitude', ledTask.PNAmplitude))
|
618 |
|
|
], {'wl': ledWavelengths})
|
619 |
yiiyama |
1.1 |
])
|
620 |
|
|
|
621 |
|
|
layouts['ecal-layouts'].get("Test Pulse").append([
|
622 |
yiiyama |
1.2 |
ecal3P('Quality Summary G%(gain)s', testPulseClient.QualitySummary, rep = {'gain': mgpaGains}),
|
623 |
|
|
ecal3P('Occupancy', testPulseTask.Occupancy),
|
624 |
|
|
ecal2P('PN Quality Summary G%(pngain)s', testPulseClient.PNQualitySummary, rep = {'pngain': pnMGPAGains}),
|
625 |
yiiyama |
1.1 |
LayoutDirSet('Gain%(gain)s', [
|
626 |
yiiyama |
1.2 |
LayoutDir('Quality', smSet('Quality', testPulseClient.Quality)),
|
627 |
|
|
LayoutDir('Amplitude', smSet('Amplitude', testPulseTask.Amplitude)),
|
628 |
|
|
LayoutDir('Amplitude RMS', smSet('RMS', testPulseClient.AmplitudeRMS)),
|
629 |
|
|
LayoutDir('Shape', smSet('Shape', testPulseTask.Shape))
|
630 |
|
|
], {'gain': mgpaGains}),
|
631 |
|
|
LayoutDirSet('PNGain%(pngain)s',
|
632 |
|
|
smMEMSet('Amplitude', testPulseTask.PNAmplitude),
|
633 |
|
|
{'pngain': pnMGPAGains})
|
634 |
|
|
])
|
635 |
|
|
|
636 |
|
|
layouts['ecal-layouts'].get('Pedestal').append([
|
637 |
|
|
ecal3P('Quality Summary G%(gain)s', pedestalClient.QualitySummary, rep = {'gain': mgpaGains}),
|
638 |
|
|
ecal3P('Occupancy', pedestalTask.Occupancy),
|
639 |
|
|
ecal2P('PN Quality Summary G%(pngain)s', pedestalClient.PNQualitySummary, rep = {'pngain': pnMGPAGains}),
|
640 |
|
|
LayoutDirSet('Gain%(gain)s', [
|
641 |
|
|
LayoutDir('Quality', smSet('Quality', pedestalClient.Quality)),
|
642 |
|
|
LayoutDir('Mean', smSet('Mean', pedestalTask.Pedestal, pedestalClient.Mean)),
|
643 |
|
|
LayoutDir('RMS', smSet('RMS', pedestalClient.RMS))
|
644 |
|
|
], {'gain': mgpaGains}),
|
645 |
|
|
LayoutDirSet('PNGain%(pngain)s', [
|
646 |
|
|
LayoutDir('Mean', smMEMSet('Mean', pedestalTask.PNPedestal)),
|
647 |
|
|
LayoutDir('RMS', smMEMSet('RMS', pedestalClient.PNRMS))
|
648 |
|
|
], {'pngain': pnMGPAGains})
|
649 |
yiiyama |
1.1 |
])
|
650 |
|
|
|
651 |
|
|
layouts['ecal-layouts'].get("Trend").append([
|
652 |
yiiyama |
1.2 |
single('Errors', rawDataTask.TrendNSyncErrors, integrityTask.TrendNErrors),
|
653 |
|
|
ecal2P('Number of Digis', occupancyTask.TrendNDigi),
|
654 |
|
|
ecal2P('Number of RecHits', occupancyTask.TrendNRecHitThr),
|
655 |
|
|
ecal2P('Number of TPs', occupancyTask.TrendNTPDigi),
|
656 |
|
|
ecal2P('Presample Mean', presampleClient.TrendMean),
|
657 |
|
|
ecal2P('Presample RMS', presampleClient.TrendRMS),
|
658 |
|
|
ecal2P('Basic Clusters', clusterTask.TrendNBC, clusterTask.TrendBCSize),
|
659 |
|
|
ecal2P('Super Clusters', clusterTask.TrendNSC, clusterTask.TrendSCSize)
|
660 |
yiiyama |
1.1 |
])
|
661 |
|
|
|
662 |
yiiyama |
1.2 |
ebSMRep = {'sm': smNamesEB}
|
663 |
|
|
ebSMRep.update(ebRep)
|
664 |
|
|
ebSMSet = LayoutDirSet("%(sm)s", [
|
665 |
|
|
single("Integrity", integrityClient.Quality),
|
666 |
|
|
single("FEStatus", rawDataTask.FEStatus),
|
667 |
|
|
single("Digi Occupancy", occupancyTask.Digi),
|
668 |
|
|
single("Presample Quality", presampleClient.Quality),
|
669 |
|
|
single("Presample Mean", presampleTask.Pedestal, presampleClient.Mean),
|
670 |
|
|
single("Presample RMS", presampleClient.RMS),
|
671 |
|
|
single("Energy", energyTask.HitMap, energyTask.Hit),
|
672 |
|
|
single("Timing Quality", timingClient.Quality),
|
673 |
|
|
single("Timing All", timingTask.Time1D),
|
674 |
|
|
single("Timing Mean", timingTask.TimeMap, timingClient.MeanSM),
|
675 |
|
|
single("Timing RMS", timingClient.RMSMap),
|
676 |
|
|
single("Timing Vs Amplitude", timingTask.TimeAmp),
|
677 |
|
|
single("Trigger Primitives", trigPrimTask.EtRealMap, trigPrimTask.MatchedIndex),
|
678 |
yiiyama |
1.1 |
LayoutDir('Laser', [
|
679 |
yiiyama |
1.2 |
single('Quality L%(wl)s (%(lname)s)', laserClient.Quality, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
680 |
|
|
single('Amplitude L%(wl)s (%(lname)s)', laserTask.Amplitude, laserClient.AmplitudeMean, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
681 |
|
|
single('Timing L%(wl)s (%(lname)s)', laserTask.Timing, laserClient.TimingMean, laserClient.TimingRMS, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
682 |
|
|
single('APD Over PN L%(wl)s (%(lname)s)', laserTask.AOverP, rep = {'wl': laserWavelengths, 'lname': laserNames}),
|
683 |
|
|
single('Shape L%(wl)s (%(lname)s)', laserTask.Shape, rep = {'wl': laserWavelengths, 'lname': laserNames})
|
684 |
|
|
]), #online
|
685 |
yiiyama |
1.1 |
LayoutDir('Test Pulse', [
|
686 |
yiiyama |
1.2 |
single('Quality G%(gain)s', testPulseClient.Quality, rep = {'gain': mgpaGains}),
|
687 |
|
|
single('Amplitude G%(gain)s', testPulseTask.Amplitude, testPulseClient.AmplitudeRMS, rep = {'gain': mgpaGains}),
|
688 |
|
|
single('Shape G%(gain)s', testPulseTask.Shape, rep = {'gain': mgpaGains})
|
689 |
|
|
]), #online
|
690 |
|
|
LayoutDir('Pedestal', [
|
691 |
|
|
single('Quality G%(gain)s', pedestalClient.Quality, rep = {'gain': mgpaGains}),
|
692 |
|
|
single('Mean G%(gain)s', pedestalTask.Pedestal, pedestalClient.Mean, rep = {'gain': mgpaGains}),
|
693 |
|
|
single('RMS G%(gain)s', pedestalClient.RMS, rep = {'gain': mgpaGains})
|
694 |
|
|
]) #online
|
695 |
|
|
], ebSMRep)
|
696 |
|
|
eeSMRep = {'sm': smNamesEE}
|
697 |
|
|
eeSMRep.update(eeRep)
|
698 |
|
|
eeSMSet = ebSMSet.clone()
|
699 |
|
|
eeSMSet.setReplacement(eeSMRep)
|
700 |
|
|
eeSMSet.append(
|
701 |
|
|
LayoutDir('Led', [
|
702 |
|
|
single('Quality L%(wl)s', ledClient.Quality, rep = {'wl': ledWavelengths}),
|
703 |
|
|
single('Amplitude L%(wl)s', ledTask.Amplitude, ledClient.AmplitudeMean, rep = {'wl': ledWavelengths}),
|
704 |
|
|
single('Timing L%(wl)s', ledTask.Timing, ledClient.TimingMean, rep = {'wl': ledWavelengths}),
|
705 |
|
|
single('APD Over PN L%(wl)s', ledTask.AOverP, rep = {'wl': ledWavelengths}),
|
706 |
|
|
single('Shape L%(wl)s', ledTask.Shape, rep = {'wl': ledWavelengths})
|
707 |
|
|
]) #online
|
708 |
|
|
)
|
709 |
|
|
ebSMMEMRep = {'sm': smNamesEB}
|
710 |
|
|
ebSMMEMRep.update(ebRep)
|
711 |
|
|
ebSMMEMSet = LayoutDirSet("%(sm)s", [
|
712 |
|
|
single('PN Digi Occupancy', pnDiodeTask.Occupancy), #online
|
713 |
|
|
single('PN Presample', pnDiodeTask.Pedestal), #online
|
714 |
|
|
LayoutDir('Laser', [single('PN Amplitude L%(wl)s', laserTask.PNAmplitude, rep = {'wl': laserWavelengths})]), #online
|
715 |
|
|
LayoutDir('Test Pulse', [single('PN Amplitude G%(pngain)s', testPulseTask.PNAmplitude, rep = {'pngain': pnMGPAGains})]), #online
|
716 |
|
|
LayoutDir('Pedestal', [single('PN Pedestal G%(pngain)s', pedestalTask.PNPedestal, pedestalClient.PNRMS, rep = {'pngain': pnMGPAGains})]) #online
|
717 |
|
|
], ebSMMEMRep)
|
718 |
|
|
eeSMMEMRep = {'sm': smMEMNamesEE}
|
719 |
|
|
eeSMMEMRep.update(eeRep)
|
720 |
|
|
eeSMMEMSet = ebSMMEMSet.clone()
|
721 |
|
|
eeSMMEMSet.setReplacement(eeSMMEMRep)
|
722 |
|
|
eeSMMEMSet.append(
|
723 |
|
|
LayoutDir('Led', [
|
724 |
|
|
single('PN Amplitude L%(wl)s', ledTask.PNAmplitude, rep = {'wl': ledWavelengths})
|
725 |
yiiyama |
1.1 |
])
|
726 |
|
|
)
|
727 |
yiiyama |
1.2 |
|
728 |
|
|
layouts['ecal-layouts'].get("By SuperModule").append([
|
729 |
|
|
ebSMSet,
|
730 |
|
|
eeSMSet,
|
731 |
|
|
ebSMMEMSet,
|
732 |
|
|
eeSMMEMSet
|
733 |
|
|
])
|
734 |
|
|
|
735 |
|
|
layouts['ecalpriv-layouts'] = layouts['ecal-layouts'].clone()
|
736 |
|
|
layouts['ecalpriv-layouts'].get('Test Pulse/Quality Summary G%(gain)s').setReplacement({'gain': mgpaGainsFull})
|
737 |
|
|
layouts['ecalpriv-layouts'].get('Test Pulse/PN Quality Summary G%(pngain)s').setReplacement({'pngain': pnMGPAGainsFull})
|
738 |
|
|
layouts['ecalpriv-layouts'].get('Test Pulse/Gain%(gain)s').setReplacement({'gain': mgpaGainsFull})
|
739 |
|
|
layouts['ecalpriv-layouts'].get('Test Pulse/PNGain%(pngain)s').setReplacement({'pngain': pnMGPAGainsFull})
|
740 |
|
|
layouts['ecalpriv-layouts'].get('Pedestal/Quality Summary G%(gain)s').setReplacement({'gain': mgpaGainsFull})
|
741 |
|
|
layouts['ecalpriv-layouts'].get('Pedestal/PN Quality Summary G%(pngain)s').setReplacement({'pngain': pnMGPAGainsFull})
|
742 |
|
|
layouts['ecalpriv-layouts'].get('Pedestal/Gain%(gain)s').setReplacement({'gain': mgpaGainsFull})
|
743 |
|
|
layouts['ecalpriv-layouts'].get('Pedestal/PNGain%(pngain)s').setReplacement({'pngain': pnMGPAGainsFull})
|
744 |
|
|
layouts['ecalpriv-layouts'].remove('By SuperModule')
|
745 |
|
|
ebSMSet.get("Test Pulse/Quality G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
746 |
|
|
ebSMSet.get("Test Pulse/Amplitude G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
747 |
|
|
ebSMSet.get("Test Pulse/Shape G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
748 |
|
|
ebSMSet.get("Pedestal/Quality G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
749 |
|
|
ebSMSet.get("Pedestal/Mean G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
750 |
|
|
ebSMSet.get("Pedestal/RMS G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
751 |
|
|
ebSMMEMSet.get("Test Pulse/PN Amplitude G%(pngain)s").setReplacement({'pngain': pnMGPAGainsFull})
|
752 |
|
|
ebSMMEMSet.get("Pedestal/PN Pedestal G%(pngain)s").setReplacement({'pngain': pnMGPAGainsFull})
|
753 |
|
|
eeSMSet.get("Test Pulse/Quality G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
754 |
|
|
eeSMSet.get("Test Pulse/Amplitude G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
755 |
|
|
eeSMSet.get("Test Pulse/Shape G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
756 |
|
|
eeSMSet.get("Pedestal/Quality G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
757 |
|
|
eeSMSet.get("Pedestal/Mean G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
758 |
|
|
eeSMSet.get("Pedestal/RMS G%(gain)s").setReplacement({'gain': mgpaGainsFull})
|
759 |
|
|
eeSMMEMSet.get("Test Pulse/PN Amplitude G%(pngain)s").setReplacement({'pngain': pnMGPAGainsFull})
|
760 |
|
|
eeSMMEMSet.get("Pedestal/PN Pedestal G%(pngain)s").setReplacement({'pngain': pnMGPAGainsFull})
|
761 |
|
|
layouts['ecalpriv-layouts'].append(
|
762 |
|
|
LayoutDir("By SuperModule", [
|
763 |
|
|
ebSMSet,
|
764 |
|
|
eeSMSet,
|
765 |
|
|
ebSMMEMSet,
|
766 |
|
|
eeSMMEMSet
|
767 |
yiiyama |
1.1 |
])
|
768 |
|
|
)
|
769 |
yiiyama |
1.2 |
|
770 |
|
|
#removing pedestal from central DQM layouts (2012)
|
771 |
|
|
layouts['ecal-layouts'].remove('Pedestal')
|
772 |
|
|
layouts['ecal-layouts'].remove('Overview/Pedestal G%(gain)s')
|
773 |
|
|
layouts['ecal-layouts'].remove('Overview/Pedestal PN G%(pngain)s')
|
774 |
|
|
layouts['ecal-layouts'].remove('Occupancy/Pedestal')
|
775 |
|
|
layouts['ecal-layouts'].remove('By SuperModule/Pedestal')
|
776 |
yiiyama |
1.1 |
|
777 |
|
|
layouts['ecal_T0_layouts'] = layouts['ecal-layouts'].clone()
|
778 |
|
|
layouts['ecal_T0_layouts'].remove('Calibration Summary')
|
779 |
|
|
layouts['ecal_T0_layouts'].remove('Selective Readout')
|
780 |
|
|
layouts['ecal_T0_layouts'].remove('Laser')
|
781 |
|
|
layouts['ecal_T0_layouts'].remove('Led')
|
782 |
|
|
layouts['ecal_T0_layouts'].remove('Test Pulse')
|
783 |
|
|
layouts['ecal_T0_layouts'].remove('Pedestal')
|
784 |
|
|
layouts['ecal_T0_layouts'].remove('Trend')
|
785 |
yiiyama |
1.2 |
layouts['ecal_T0_layouts'].remove('Overview/Laser %(wl)s (%(lname)s)')
|
786 |
|
|
layouts['ecal_T0_layouts'].remove('Overview/Laser %(wl)s PN')
|
787 |
|
|
layouts['ecal_T0_layouts'].remove('Overview/Test Pulse G%(gain)s')
|
788 |
|
|
layouts['ecal_T0_layouts'].remove('Overview/Test Pulse PN G%(pngain)s')
|
789 |
|
|
layouts['ecal_T0_layouts'].remove('Overview/Pedestal G%(gain)s')
|
790 |
|
|
layouts['ecal_T0_layouts'].remove('Overview/Pedestal PN G%(pngain)s')
|
791 |
|
|
layouts['ecal_T0_layouts'].remove('Overview/Led %(wl)s')
|
792 |
|
|
layouts['ecal_T0_layouts'].remove('Overview/Led %(wl)s PN')
|
793 |
yiiyama |
1.1 |
layouts['ecal_T0_layouts'].remove('Overview/Error Trends')
|
794 |
yiiyama |
1.2 |
layouts['ecal_T0_layouts'].remove('Raw Data/Integrity Errors in this LS')
|
795 |
|
|
layouts['ecal_T0_layouts'].remove('Raw Data/Error Trends')
|
796 |
|
|
layouts['ecal_T0_layouts'].remove('Occupancy/Cluster Multiplicity Trends')
|
797 |
|
|
layouts['ecal_T0_layouts'].remove('Occupancy/Laser')
|
798 |
yiiyama |
1.1 |
layouts['ecal_T0_layouts'].remove('Occupancy/Led')
|
799 |
|
|
layouts['ecal_T0_layouts'].remove('Occupancy/Test Pulse')
|
800 |
yiiyama |
1.2 |
layouts['ecal_T0_layouts'].remove('Occupancy/Pedestal')
|
801 |
|
|
layouts['ecal_T0_layouts'].remove('Occupancy/PN Digi')
|
802 |
|
|
layouts['ecal_T0_layouts'].remove('Occupancy/By SuperModule/PN Digi')
|
803 |
|
|
layouts['ecal_T0_layouts'].remove('Noise/Trend')
|
804 |
|
|
layouts['ecal_T0_layouts'].remove('Noise/By SuperModule/PN')
|
805 |
|
|
layouts['ecal_T0_layouts'].remove('Energy/Basic Cluster Size Trend')
|
806 |
|
|
layouts['ecal_T0_layouts'].remove('Timing/Laser')
|
807 |
|
|
layouts['ecal_T0_layouts'].remove('Timing/Led')
|
808 |
yiiyama |
1.1 |
layouts['ecal_T0_layouts'].remove('By SuperModule/%(sm)s/Laser')
|
809 |
|
|
layouts['ecal_T0_layouts'].remove('By SuperModule/%(sm)s/Test Pulse')
|
810 |
|
|
layouts['ecal_T0_layouts'].remove('By SuperModule/%(sm)s/Pedestal')
|
811 |
|
|
layouts['ecal_T0_layouts'].remove('By SuperModule/%(sm)s/Led')
|
812 |
|
|
|
813 |
|
|
#### END ecal-layouts.py / ecal_T0_layouts.py / ecalpriv-layouts.py ####
|
814 |
|
|
|
815 |
|
|
#### BEGIN ecal_overview_layouts ####
|
816 |
|
|
|
817 |
|
|
layouts['ecal_overview_layouts'] = LayoutDir("Collisions/EcalFeedBack", [
|
818 |
yiiyama |
1.2 |
ecal2P("Single Event Timing", timingTask.TimeAll),
|
819 |
|
|
eb("Forward-Backward EB", timingClient.FwdBkwdDiff, timingClient.FwdvBkwd),
|
820 |
|
|
ee("Forward-Backward EE", timingClient.FwdBkwdDiff, timingClient.FwdvBkwd),
|
821 |
yiiyama |
1.1 |
])
|
822 |
|
|
layouts['ecal_overview_layouts'].append(
|
823 |
yiiyama |
1.2 |
subdetEtaPhi("Timing Map", timingTask.TimeAllMap, timingClient.ProjEta, timingClient.ProjPhi)
|
824 |
yiiyama |
1.1 |
)
|
825 |
|
|
layouts['ecal_overview_layouts'].append(
|
826 |
|
|
LayoutElem("Timing ES", [
|
827 |
|
|
[["EcalPreshower/ESTimingTask/ES Timing Z 1 P 1"], ["EcalPreshower/ESTimingTask/ES Timing Z -1 P 1"]],
|
828 |
|
|
[["EcalPreshower/ESTimingTask/ES Timing Z 1 P 2"], ["EcalPreshower/ESTimingTask/ES Timing Z -1 P 2"]]
|
829 |
|
|
])
|
830 |
|
|
)
|
831 |
|
|
layouts['ecal_overview_layouts'].append(
|
832 |
yiiyama |
1.2 |
subdetEtaPhi("Occupancy", occupancyTask.RecHitThrAll, occupancyTask.RecHitThrProjEta, occupancyTask.RecHitThrProjPhi)
|
833 |
yiiyama |
1.1 |
)
|
834 |
|
|
layouts['ecal_overview_layouts'].append([
|
835 |
|
|
LayoutElem("Occupancy ES", [
|
836 |
|
|
[["EcalPreshower/ESOccupancyTask/ES Occupancy with selected hits Z 1 P 1"], ["EcalPreshower/ESOccupancyTask/ES Occupancy with selected hits Z -1 P 1"]],
|
837 |
|
|
[["EcalPreshower/ESOccupancyTask/ES Occupancy with selected hits Z 1 P 2"], ["EcalPreshower/ESOccupancyTask/ES Occupancy with selected hits Z -1 P 2"]]
|
838 |
|
|
]),
|
839 |
yiiyama |
1.2 |
eb("RecHit Energy EB", energyTask.HitMapAll, energyTask.HitAll),
|
840 |
|
|
ee2P("RecHit Energy EE", energyTask.HitMapAll, energyTask.HitMapAll),
|
841 |
yiiyama |
1.1 |
LayoutElem("RecHit Energy ES", [
|
842 |
|
|
[["EcalPreshower/ESOccupancyTask/ES Energy Density with selected hits Z 1 P 1"], ["EcalPreshower/ESOccupancyTask/ES Energy Density with selected hits Z -1 P 1"]],
|
843 |
|
|
[["EcalPreshower/ESOccupancyTask/ES Energy Density with selected hits Z 1 P 2"], ["EcalPreshower/ESOccupancyTask/ES Energy Density with selected hits Z -1 P 2"]]
|
844 |
|
|
])
|
845 |
|
|
])
|
846 |
|
|
|
847 |
|
|
#### END ecal_overview_layouts ####
|
848 |
|
|
|
849 |
|
|
#### BEGIN ecal_relval-layouts / ecalmc_relval-layouts ####
|
850 |
|
|
|
851 |
|
|
layouts['ecal_relval-layouts'] = LayoutDir("DataLayouts/Ecal", [
|
852 |
yiiyama |
1.2 |
ecal2P("Number of Ecal RecHits", occupancyTask.RecHitThr1D),
|
853 |
yiiyama |
1.1 |
LayoutElem("Number of ES RecHits", [
|
854 |
|
|
[["EcalPreshower/ESOccupancyTask/ES Num of RecHits Z 1 P 1"], ["EcalPreshower/ESOccupancyTask/ES Num of RecHits Z -1 P 1"]],
|
855 |
|
|
[["EcalPreshower/ESOccupancyTask/ES Num of RecHits Z 1 P 2"], ["EcalPreshower/ESOccupancyTask/ES Num of RecHits Z -1 P 2"]]
|
856 |
yiiyama |
1.2 |
])
|
857 |
|
|
] + subdetEtaPhi("Ecal RecHit Occupancy", occupancyTask.RecHitThrAll, occupancyTask.RecHitThrProjEta, occupancyTask.RecHitThrProjPhi) + [
|
858 |
|
|
ecal3P("Ecal Spectrum", energyTask.HitAll),
|
859 |
yiiyama |
1.1 |
LayoutElem("ES Spectrum", [
|
860 |
|
|
[["EcalPreshower/ESOccupancyTask/ES RecHit Energy Z 1 P 1"], ["EcalPreshower/ESOccupancyTask/ES RecHit Energy Z -1 P 1"]],
|
861 |
|
|
[["EcalPreshower/ESOccupancyTask/ES RecHit Energy Z 1 P 2"], ["EcalPreshower/ESOccupancyTask/ES RecHit Energy Z -1 P 2"]]
|
862 |
|
|
]),
|
863 |
|
|
LayoutElem("Ecal Max Energy", [
|
864 |
|
|
[["EcalBarrel/EBRecoSummary/recHits_EB_energyMax"]],
|
865 |
|
|
[["EcalEndcap/EERecoSummary/recHits_EEP_energyMax"], ["EcalEndcap/EERecoSummary/recHits_EEM_energyMax"]]
|
866 |
|
|
]),
|
867 |
|
|
LayoutElem("ES Max Energy", [
|
868 |
|
|
[["EcalPreshower/ESRecoSummary/recHits_ES_energyMax"]]
|
869 |
|
|
]),
|
870 |
|
|
LayoutElem("Ecal Timing", [
|
871 |
|
|
[["EcalBarrel/EBRecoSummary/recHits_EB_time"]],
|
872 |
|
|
[["EcalEndcap/EERecoSummary/recHits_EEP_time"], ["EcalEndcap/EERecoSummary/recHits_EEM_time"]]
|
873 |
|
|
]),
|
874 |
|
|
LayoutElem("ES Timing", [
|
875 |
|
|
[["EcalPreshower/ESRecoSummary/recHits_ES_time"]]
|
876 |
|
|
]),
|
877 |
|
|
LayoutElem("Ecal Chi2", [
|
878 |
|
|
[["EcalBarrel/EBRecoSummary/recHits_EB_Chi2"]],
|
879 |
|
|
[["EcalEndcap/EERecoSummary/recHits_EEP_Chi2"], ["EcalEndcap/EERecoSummary/recHits_EEM_Chi2"]]
|
880 |
|
|
]),
|
881 |
|
|
LayoutElem("EB SwissCross", [
|
882 |
yiiyama |
1.2 |
[["EcalBarrel/EBRecoSummary/recHits_EB_E1oE4"]]
|
883 |
yiiyama |
1.1 |
]),
|
884 |
|
|
LayoutElem("RecHit Flags", [
|
885 |
yiiyama |
1.2 |
[["EcalBarrel/EBRecoSummary/recHits_EB_recoFlag"]],
|
886 |
yiiyama |
1.1 |
[["EcalEndcap/EERecoSummary/recHits_EE_recoFlag"]]
|
887 |
|
|
]),
|
888 |
|
|
LayoutElem("ReducedRecHit Flags", [
|
889 |
yiiyama |
1.2 |
[["EcalBarrel/EBRecoSummary/redRecHits_EB_recoFlag"]],
|
890 |
yiiyama |
1.1 |
[["EcalEndcap/EERecoSummary/redRecHits_EE_recoFlag"]]
|
891 |
|
|
]),
|
892 |
|
|
LayoutElem("Basic Cluster RecHit Flags", [
|
893 |
yiiyama |
1.2 |
[["EcalBarrel/EBRecoSummary/basicClusters_recHits_EB_recoFlag"]],
|
894 |
yiiyama |
1.1 |
[["EcalEndcap/EERecoSummary/basicClusters_recHits_EE_recoFlag"]]
|
895 |
|
|
]),
|
896 |
yiiyama |
1.2 |
ecal2P("Number of Basic Clusters", clusterTask.BCNum),
|
897 |
|
|
ecal2P("Number of Super Clusters", clusterTask.SCNum),
|
898 |
|
|
ecal2P("Super Cluster Energy", clusterTask.SCE),
|
899 |
yiiyama |
1.1 |
LayoutElem("Super Cluster Occupancy Eta", [
|
900 |
yiiyama |
1.2 |
[["EcalBarrel/EBRecoSummary/superClusters_EB_eta"]],
|
901 |
yiiyama |
1.1 |
[["EcalEndcap/EERecoSummary/superClusters_EE_eta"]]
|
902 |
|
|
]),
|
903 |
|
|
LayoutElem("Super Cluster Occupancy Phi", [
|
904 |
yiiyama |
1.2 |
[["EcalBarrel/EBRecoSummary/superClusters_EB_phi"]],
|
905 |
yiiyama |
1.1 |
[["EcalEndcap/EERecoSummary/superClusters_EE_phi"]]
|
906 |
|
|
]),
|
907 |
yiiyama |
1.2 |
ecal2P("Super Cluster Size (Crystals)", clusterTask.SCNcrystals),
|
908 |
|
|
ecal2P("Super Cluster Size (Basic Clusters)", clusterTask.SCNBCs),
|
909 |
yiiyama |
1.1 |
LayoutElem("Super Cluster Seed SwissCross", [
|
910 |
yiiyama |
1.2 |
[["EcalBarrel/EBRecoSummary/superClusters_EB_E1oE4"]]
|
911 |
yiiyama |
1.1 |
]),
|
912 |
|
|
LayoutElem("Preshower Planes Energy", [
|
913 |
|
|
[["EcalPreshower/ESRecoSummary/esClusters_energy_plane1"], ["EcalPreshower/ESRecoSummary/esClusters_energy_plane2"]],
|
914 |
|
|
[["EcalPreshower/ESRecoSummary/esClusters_energy_ratio"]]
|
915 |
|
|
])
|
916 |
|
|
])
|
917 |
|
|
|
918 |
|
|
layouts['ecalmc_relval-layouts'] = layouts['ecal_relval-layouts'].clone('MCLayouts/Ecal')
|
919 |
|
|
|
920 |
|
|
#### END ecal_relval-layouts / ecalmc_relval-layouts ####
|
921 |
|
|
|
922 |
|
|
#### BEGIN shift_ecal_relval_layout ####
|
923 |
|
|
|
924 |
|
|
layouts['shift_ecal_relval_layout'] = LayoutDir("00 Shift/Ecal", [
|
925 |
yiiyama |
1.2 |
ecal3P("RecHit Spectra", energyTask.HitAll),
|
926 |
|
|
ecal2P("Number of RecHits", occupancyTask.RecHitThr1D),
|
927 |
|
|
ecal3P("Mean Timing", timingClient.MeanAll)
|
928 |
yiiyama |
1.1 |
])
|
929 |
|
|
|
930 |
|
|
#### END shift_ecal_relval_layout ####
|
931 |
|
|
|
932 |
|
|
for lo in genList:
|
933 |
|
|
filename = lo
|
934 |
|
|
if lo == 'ecalpriv-layouts' :
|
935 |
|
|
filename = 'ecal-layouts'
|
936 |
|
|
|
937 |
|
|
output = file(targetDir + '/' + filename + '.py', 'w')
|
938 |
|
|
layouts[lo].expand(output)
|
939 |
|
|
output.close()
|
940 |
yiiyama |
1.2 |
|
941 |
|
|
|