ATLAS Offline Software
Loading...
Searching...
No Matches
PlotCalibrationHV.py
Go to the documentation of this file.
1#!/bin/env python
2
3# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
4
5import ROOT
6import sys
7import time
8import os
9import struct
10
11from PyCool import cool
12from optparse import OptionParser
13
14from PlotCalibrationGains import L1CaloMap, L1CaloGeometryConvertor
15
16
17def isEmPresampler(layerName):
18
19# layer name 0 in EMB and overlap, name 4 in EMEC
20
21 if layerName == 0 or layerName == 4:
22 return True
23 else:
24 return False
25
26
27def isEmFront(layerName,isOverlap):
28
29# layer name 1 in EMB and overlap, name 5 in EMEC (name 5 in overlap goes with back layer)
30# EM overlap has layer names 0, 1, 2 (EMB) and 5,6 (EMEC)
31
32 isAccepted = False
33
34 if isOverlap:
35 if layerName == 1:
36 isAccepted = True
37 else:
38 if layerName == 1 or layerName == 5:
39 isAccepted = True
40
41 return isAccepted
42
43def isEmMiddle(layerName,isOverlap):
44
45# layer name 2 in EMB and overlap, name 6 in EMEC and 21 in FCAL0 (name 6 in overlap goes alone)
46 isAccepted = False
47
48 if isOverlap:
49 if layerName == 2:
50 isAccepted = True
51 else:
52 if layerName == 2 or layerName == 6 or layerName == 21:
53 isAccepted = True
54
55 return isAccepted
56
57
58def isEmBack(layerName,isOverlap):
59
60# layer number 3 in EMB and overlap, layer number 7 in EMEC, layer nr. 5 in overlap
61 isAccepted = False
62
63 if isOverlap:
64 if layerName == 5:
65 isAccepted = True
66 else:
67 if layerName == 3 or layerName == 7:
68 isAccepted = True
69
70 return isAccepted
71
72
73def isEmOverlapBack(layerName,isOverlap):
74
75# layer number 6 in EM overlap, this one doesn't fit anywhere else...
76 isAccepted = False
77
78 if isOverlap and layerName == 6:
79 isAccepted = True
80
81 return isAccepted
82
83
84def isHadFirstLayer(layerName,TT_part):
85
86# layer number 8 in HEC, low eta part of 22 (FCAL2)
87 isAccepted = False
88 if layerName == 8 or (layerName == 22 and TT_part == 'EmecFcalLowEta'):
89 isAccepted = True
90
91 return isAccepted
92
93def isHadSecondLayer(layerName,TT_part):
94
95# layer number 9 in HEC, high eta part of 22 (FCAL2)
96 isAccepted = False
97 if layerName == 9 or (layerName == 22 and TT_part == 'EmbFcalHighEta'):
98 isAccepted = True
99
100 return isAccepted
101
102def isHadThirdLayer(layerName,TT_part):
103
104# layer number 10 in HEC, low eta part of 23 (FCAL3)
105 isAccepted = False
106 if layerName == 10 or (layerName == 23 and TT_part == 'EmecFcalLowEta'):
107 isAccepted = True
108
109 return isAccepted
110
111def isHadFourthLayer(layerName,TT_part):
112
113# layer number 11 in HEC, high eta part of 23 (FCAL3)
114 isAccepted = False
115 if layerName == 11 or (layerName == 23 and TT_part == 'EmbFcalHighEta'):
116 isAccepted = True
117
118 return isAccepted
119
121
122 def __init__(self,file_name):
123
124 self.NLayers = {}
125 self.MeanCorr = {}
126
127 self.CorrLayer1 = {}
128 self.CorrLayer2 = {}
129 self.CorrLayer3 = {}
130 self.CorrLayer4 = {}
131
136
137 self.NCells1 = {}
138 self.NCells2 = {}
139 self.NCells3 = {}
140 self.NCells4 = {}
141
142 self.Name1 = {}
143 self.Name2 = {}
144 self.Name3 = {}
145 self.Name4 = {}
146
147 self.NLayers = {}
148
149 self.UNIX2COOL = 1000000000
150
151 self.read_corrections(file_name)
152 self.read_geometry(file_name)
153
154 def read_corrections(self,file_name):
155
156 # get database service and open database
157 dbSvc = cool.DatabaseSvcFactory.databaseService()
158
159 dbString='sqlite://;schema='+file_name+';dbname=L1CALO'
160 try:
161 db = dbSvc.openDatabase(dbString, False)
162 except Exception as e:
163 print(('Error: Problem opening database', e))
164 sys.exit(1)
165
166 folder_name = '/TRIGGER/L1Calo/V1/Results/HVCorrections'
167 folder=db.getFolder(folder_name)
168
169 startUtime = int(time.time())
170 endUtime = int(time.time())
171 startValKey = startUtime * self.UNIX2COOL
172 endValKey = endUtime * self.UNIX2COOL
173 chsel = cool.ChannelSelection(0,sys.maxsize)
174
175 try:
176 itr=folder.browseObjects(startValKey, endValKey, chsel)
177 except Exception as e:
178 print (e)
179 sys.exit(1)
180
181 for row in itr:
182 CoolId = hex(int(row.channelId()))
183 payload = row.payload()
184
185 self.MeanCorr[CoolId] = payload['RxMean']
186
187 self.CorrLayer1[CoolId] = payload['LayerMean1']
188 self.CorrLayer2[CoolId] = payload['LayerMean2']
189 self.CorrLayer3[CoolId] = payload['LayerMean3']
190 self.CorrLayer4[CoolId] = payload['LayerMean4']
191
192 self.AffectedCells1[CoolId] = struct.unpack('B'.encode('utf-8'),payload['AffectedCells1'].encode('utf-8'))[0]
193 self.AffectedCells2[CoolId] = struct.unpack('B'.encode('utf-8'),payload['AffectedCells2'].encode('utf-8'))[0]
194 self.AffectedCells3[CoolId] = struct.unpack('B'.encode('utf-8'),payload['AffectedCells3'].encode('utf-8'))[0]
195 self.AffectedCells4[CoolId] = struct.unpack('B'.encode('utf-8'),payload['AffectedCells4'].encode('utf-8'))[0]
196
197# print ( " CoolId", CoolId ,"AffectedCells", struct.unpack('B',self.AffectedCells1[CoolId])[0])
198
199
200 # close database
201 db.closeDatabase()
202
203 def read_geometry(self,file_name):
204
205 # get database service and open database
206 dbSvc = cool.DatabaseSvcFactory.databaseService()
207
208 dbString='sqlite://;schema='+file_name+';dbname=L1CALO'
209 try:
210 db = dbSvc.openDatabase(dbString, False)
211 except Exception as e:
212 print(('Error: Problem opening database', e))
213 sys.exit(1)
214
215 folder_name = '/TRIGGER/L1Calo/V1/Results/RxLayers'
216 folder=db.getFolder(folder_name)
217
218 startUtime = int(time.time())
219 endUtime = int(time.time())
220 startValKey = startUtime * self.UNIX2COOL
221 endValKey = endUtime * self.UNIX2COOL
222 chsel = cool.ChannelSelection(0,sys.maxsize)
223
224 try:
225 itr=folder.browseObjects(startValKey, endValKey, chsel)
226 except Exception as e:
227 print (e)
228 sys.exit(1)
229
230 for row in itr:
231 CoolId = hex(int(row.channelId()))
232 payload = row.payload()
233
234 self.NCells1[CoolId] = struct.unpack('B'.encode('utf-8'),payload['NCells1'].encode('utf-8'))[0]
235 self.NCells2[CoolId] = struct.unpack('B'.encode('utf-8'),payload['NCells2'].encode('utf-8'))[0]
236 self.NCells3[CoolId] = struct.unpack('B'.encode('utf-8'),payload['NCells3'].encode('utf-8'))[0]
237 self.NCells4[CoolId] = struct.unpack('B'.encode('utf-8'),payload['NCells4'].encode('utf-8'))[0]
238
239 self.NLayers[CoolId] = struct.unpack('B'.encode('utf-8'),payload['NLayers'].encode('utf-8'))[0]
240
241 self.Name1[CoolId] = struct.unpack('B'.encode('utf-8'),payload['Name1'].encode('utf-8'))[0]
242 self.Name2[CoolId] = struct.unpack('B'.encode('utf-8'),payload['Name2'].encode('utf-8'))[0]
243 self.Name3[CoolId] = struct.unpack('B'.encode('utf-8'),payload['Name3'].encode('utf-8'))[0]
244 self.Name4[CoolId] = struct.unpack('B'.encode('utf-8'),payload['Name4'].encode('utf-8'))[0]
245
246
247
248 # close database
249 db.closeDatabase()
250
251
253 return self.MeanCorr
254
255 def GetCorLayer1(self):
256 return self.CorrLayer1
257
258 def GetCorLayer2(self):
259 return self.CorrLayer2
260
261 def GetCorLayer3(self):
262 return self.CorrLayer3
263
264 def GetCorLayer4(self):
265 return self.CorrLayer4
266
268 return self.AffectedCells1
269
271 return self.AffectedCells2
272
274 return self.AffectedCells3
275
277 return self.AffectedCells4
278
279 def GetNCells1(self):
280 return self.NCells1
281
282 def GetNCells2(self):
283 return self.NCells2
284
285 def GetNCells3(self):
286 return self.NCells3
287
288 def GetNCells4(self):
289 return self.NCells4
290
291 def GetNLayers(self):
292 return self.NLayers
293
294 def GetName1(self):
295 return self.Name1
296
297 def GetName2(self):
298 return self.Name2
299
300 def GetName3(self):
301 return self.Name3
302
303 def GetName4(self):
304 return self.Name4
305
306
307def PlotCalibrationHV(input_file_name=None):
308
309 HVCutAverage = 1.05 # lower cut on TT-averaged HV corrections
310# HVCutAverage = 1.01 # lower cut on TT-averaged HV corrections
311 HVCutLayers = 1.001 # lower cut on layer-by-layer corrections
312
313 ROOT.gStyle.SetPalette(1)
314 ROOT.gStyle.SetOptStat(111111)
315 ROOT.gStyle.SetCanvasColor(10)
316
317 c1 = ROOT.TCanvas('c1','Example',200,10,700,500)
318
319 h_MeanCorrEmecFcalLowEta_em = L1CaloMap("Mean HV corrections for EM (EMEC in overlap) ","#eta bin","#phi bin")
320 h_MeanCorrEmecFcalLowEta_had = L1CaloMap("Mean HV corrections for HAD (FCAL low #eta)","#eta bin","#phi bin")
321
322 h_MeanCorrEmbFcalHighEta_em = L1CaloMap("Mean HV corrections for EM overlap (EMB)","#eta bin","#phi bin")
323 h_MeanCorrEmbFcalHighEta_had = L1CaloMap("Mean HV corrections for HAD FCAL (high #eta)","#eta bin","#phi bin")
324
325
326 h_LayerCorr_presampler = L1CaloMap("HV corrections for EM presampler ","#eta bin","#phi bin")
327 h_CellFraction_presampler = L1CaloMap("Fraction of HV affected cells in EM presampler","#eta bin","#phi bin")
328 h_LayerCorr_em_front = L1CaloMap("HV corrections for EM front layer ","#eta bin","#phi bin")
329 h_CellFraction_em_front = L1CaloMap("Fraction of HV affected cells in EM front layer","#eta bin","#phi bin")
330 h_LayerCorr_em_middle = L1CaloMap("HV corrections for EM middle layer ","#eta bin","#phi bin")
331 h_CellFraction_em_middle = L1CaloMap("Fraction of HV affected cells in EM middle layer","#eta bin","#phi bin")
332 h_LayerCorr_em_back = L1CaloMap("HV corrections for EM back layer","#eta bin","#phi bin")
333 h_CellFraction_em_back = L1CaloMap("Fraction of HV affected cells in EM back layer","#eta bin","#phi bin")
334
335 h_LayerCorr_em_overlap_back = L1CaloMap("HV corrections for EM overlap back layer","#eta bin","#phi bin")
336 h_CellFraction_em_overlap_back = L1CaloMap("Fraction of HV affected cells in EM overlap back layer","#eta bin","#phi bin")
337
338 h_LayerCorr_had_first = L1CaloMap("HV corrections for first HAD layer (low #eta FCAL2)","#eta bin","#phi bin")
339 h_CellFraction_had_first = L1CaloMap("Fraction of HV affected cells in first HAD layer (low #eta FCAL2)","#eta bin","#phi bin")
340 h_LayerCorr_had_second = L1CaloMap("HV corrections for second HAD layer (high #eta FCAL2)","#eta bin","#phi bin")
341 h_CellFraction_had_second = L1CaloMap("Fraction of HV affected cells in second HAD layer (high #eta FCAL2)","#eta bin","#phi bin")
342 h_LayerCorr_had_third = L1CaloMap("HV corrections for third HAD layer (low #eta FCAL3)","#eta bin","#phi bin")
343 h_CellFraction_had_third = L1CaloMap("Fraction of HV affected cells in third HAD layer (low #eta FCAL3)","#eta bin","#phi bin")
344 h_LayerCorr_had_fourth = L1CaloMap("HV corrections for fourth HAD layer (high #eta FCAL3)","#eta bin","#phi bin")
345 h_CellFraction_had_fourth = L1CaloMap("Fraction of HV affected cells in fourth HAD layer (high #eta FCAL3)","#eta bin","#phi bin")
346
347
348
349 geometry_convertor = L1CaloGeometryConvertor()
350 geometry_convertor.LoadReceiverPPMMap()
351
352
353 input_file = input_file_name
354 print(("Taking HV information from file",input_file ))
355
356 hv_status = L1CaloHVReader(input_file)
357
358 large_hv_file = open('large_hv_corr.txt','w')
359
360 for ReceiverId in list(hv_status.GetMeanCorections().keys()):
361
362 MeanHVCorrection = (hv_status.GetMeanCorections())[ReceiverId]
363 CorrLayers = [0,0,0,0]
364 CorrLayers[0] = (hv_status.GetCorLayer1())[ReceiverId]
365 CorrLayers[1] = (hv_status.GetCorLayer2())[ReceiverId]
366 CorrLayers[2] = (hv_status.GetCorLayer3())[ReceiverId]
367 CorrLayers[3] = (hv_status.GetCorLayer4())[ReceiverId]
368
369 NLayers = (hv_status.GetNLayers())[ReceiverId]
370
371 AffectedCells = [0,0,0,0]
372 AffectedCells[0] = (hv_status.GetAffectedCells1())[ReceiverId]
373 AffectedCells[1] = (hv_status.GetAffectedCells2())[ReceiverId]
374 AffectedCells[2] = (hv_status.GetAffectedCells3())[ReceiverId]
375 AffectedCells[3] = (hv_status.GetAffectedCells4())[ReceiverId]
376
377 NCells = [0,0,0,0]
378 NCells[0] = (hv_status.GetNCells1())[ReceiverId]
379 NCells[1] = (hv_status.GetNCells2())[ReceiverId]
380 NCells[2] = (hv_status.GetNCells3())[ReceiverId]
381 NCells[3] = (hv_status.GetNCells4())[ReceiverId]
382
383 LayerName = [0,0,0,0]
384 LayerName[0] = (hv_status.GetName1())[ReceiverId]
385 LayerName[1] = (hv_status.GetName2())[ReceiverId]
386 LayerName[2] = (hv_status.GetName3())[ReceiverId]
387 LayerName[3] = (hv_status.GetName4())[ReceiverId]
388
389 PPM_ID = geometry_convertor.getPPMfromReceiver(ReceiverId)
390 eta_bin = geometry_convertor.getEtaBin(PPM_ID)
391 phi_bin = geometry_convertor.getPhiBin(PPM_ID)
392
393 TT_part = 'EmecFcalLowEta'
394 if geometry_convertor.isPPMFCAL(PPM_ID) and geometry_convertor.getFCAL23RecEta(ReceiverId)=='HighEta':
395 TT_part = 'EmbFcalHighEta'
396 if geometry_convertor.isPPMOverlap(PPM_ID) and geometry_convertor.getOverlapLayer(ReceiverId)=='EMB':
397 TT_part = 'EmbFcalHighEta'
398
399# if geometry_convertor.isPPMOverlap(PPM_ID):
400# print ("Overlap tower COOL Id=%s Rx=%s layer=%s" % (PPM_ID,ReceiverId,geometry_convertor.getOverlapLayer(ReceiverId)))
401
402# if geometry_convertor.isPPMFCAL(PPM_ID):
403# print ("Overlap tower COOL Id=%s Rx=%s layer=%s" % (PPM_ID,ReceiverId,TT_part))
404
405# Mean corrections
406
407 if MeanHVCorrection > HVCutAverage and TT_part == 'EmecFcalLowEta':
408 if geometry_convertor.isCoolEm(PPM_ID):
409 h_MeanCorrEmecFcalLowEta_em.Fill(eta_bin,phi_bin,MeanHVCorrection)
410 large_hv_file.write("%3i %3i EM %12s Rx=%7s %.3f (%.3f %.3f %.3f %.3f) \n" % (eta_bin,phi_bin,PPM_ID,ReceiverId,MeanHVCorrection,CorrLayers[0],CorrLayers[1],CorrLayers[2],CorrLayers[3]))
411
412 if geometry_convertor.isCoolHad(PPM_ID):
413 h_MeanCorrEmecFcalLowEta_had.Fill(eta_bin,phi_bin,MeanHVCorrection)
414 large_hv_file.write("%3i %3i HAD %12s Rx=%7s %.3f (%.3f %.3f %.3f %.3f) \n" % (eta_bin,phi_bin,PPM_ID,ReceiverId,MeanHVCorrection,CorrLayers[0],CorrLayers[1],CorrLayers[2],CorrLayers[3]))
415
416 if MeanHVCorrection > HVCutAverage and TT_part == 'EmbFcalHighEta':
417 if geometry_convertor.isCoolEm(PPM_ID):
418 h_MeanCorrEmbFcalHighEta_em.Fill(eta_bin,phi_bin,MeanHVCorrection)
419 large_hv_file.write("%3i %3i EM %12s Rx=%7s %.3f (%.3f %.3f %.3f %.3f) \n" % (eta_bin,phi_bin,PPM_ID,ReceiverId,MeanHVCorrection,CorrLayers[0],CorrLayers[1],CorrLayers[2],CorrLayers[3]))
420
421 if geometry_convertor.isCoolHad(PPM_ID):
422 h_MeanCorrEmbFcalHighEta_had.Fill(eta_bin,phi_bin,MeanHVCorrection)
423 large_hv_file.write("%3i %3i HAD %12s Rx=%7s %.3f (%.3f %.3f %.3f %.3f) \n" % (eta_bin,phi_bin,PPM_ID,ReceiverId,MeanHVCorrection,CorrLayers[0],CorrLayers[1],CorrLayers[2],CorrLayers[3]))
424
425# Now go layer-by-layer
426
427 for ilayer in range(NLayers):
428
429# EM layers
430
431 if isEmPresampler(LayerName[ilayer]):
432 if CorrLayers[ilayer] > HVCutLayers:
433 h_LayerCorr_presampler.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
434 h_CellFraction_presampler.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
435
436 if isEmFront(LayerName[ilayer],geometry_convertor.isPPMOverlap(PPM_ID)):
437 if CorrLayers[ilayer] > HVCutLayers:
438 h_LayerCorr_em_front.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
439 h_CellFraction_em_front.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
440
441 if isEmMiddle(LayerName[ilayer],geometry_convertor.isPPMOverlap(PPM_ID)):
442 if CorrLayers[ilayer] > HVCutLayers:
443 h_LayerCorr_em_middle.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
444 h_CellFraction_em_middle.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
445
446 if isEmBack(LayerName[ilayer],geometry_convertor.isPPMOverlap(PPM_ID)):
447 if CorrLayers[ilayer] > HVCutLayers:
448 h_LayerCorr_em_back.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
449 h_CellFraction_em_back.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
450
451 if isEmOverlapBack(LayerName[ilayer],geometry_convertor.isPPMOverlap(PPM_ID)):
452 if CorrLayers[ilayer] > HVCutLayers:
453 h_LayerCorr_em_overlap_back.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
454 h_CellFraction_em_overlap_back.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
455
456# HAD layers
457
458 if isHadFirstLayer(LayerName[ilayer],TT_part):
459 if CorrLayers[ilayer] > HVCutLayers:
460 h_LayerCorr_had_first.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
461 h_CellFraction_had_first.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
462
463 if isHadSecondLayer(LayerName[ilayer],TT_part):
464 if CorrLayers[ilayer] > HVCutLayers:
465 h_LayerCorr_had_second.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
466 h_CellFraction_had_second.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
467
468 if isHadThirdLayer(LayerName[ilayer],TT_part):
469 if CorrLayers[ilayer] > HVCutLayers:
470 h_LayerCorr_had_third.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
471 h_CellFraction_had_third.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
472
473 if isHadFourthLayer(LayerName[ilayer],TT_part):
474 if CorrLayers[ilayer] > HVCutLayers:
475 h_LayerCorr_had_fourth.Fill(eta_bin,phi_bin,CorrLayers[ilayer])
476 h_CellFraction_had_fourth.Fill(eta_bin,phi_bin,float(AffectedCells[ilayer])/float(NCells[ilayer]))
477
478
479 large_hv_file.close()
480
481 # Draw mean corrections
482
483 h_MeanCorrEmecFcalLowEta_em.SetMinimum(1.)
484 h_MeanCorrEmecFcalLowEta_em.SetMaximum(2.1)
485 h_MeanCorrEmecFcalLowEta_em.Draw()
486 c1.Print("HVStatus.ps(")
487
488 h_MeanCorrEmecFcalLowEta_had.SetMinimum(1.)
489 h_MeanCorrEmecFcalLowEta_had.SetMaximum(2.1)
490 h_MeanCorrEmecFcalLowEta_had.Draw()
491 c1.Print("HVStatus.ps")
492
493
494 h_MeanCorrEmbFcalHighEta_em.SetMinimum(1.)
495 h_MeanCorrEmbFcalHighEta_em.SetMaximum(2.1)
496 h_MeanCorrEmbFcalHighEta_em.Draw()
497 c1.Print("HVStatus.ps")
498
499 h_MeanCorrEmbFcalHighEta_had.SetMinimum(1.)
500 h_MeanCorrEmbFcalHighEta_had.SetMaximum(2.1)
501 h_MeanCorrEmbFcalHighEta_had.Draw()
502 c1.Print("HVStatus.ps")
503
504
505 # Now EM layer-by-layer corrections
506
507 h_LayerCorr_presampler.SetMinimum(1.)
508 h_LayerCorr_presampler.SetMaximum(2.1)
509 h_LayerCorr_presampler.Draw()
510 c1.Print("HVStatus.ps")
511
512 h_CellFraction_presampler.SetMinimum(0.)
513 h_CellFraction_presampler.SetMaximum(1.1)
514 h_CellFraction_presampler .Draw()
515 c1.Print("HVStatus.ps")
516
517 h_LayerCorr_em_front.SetMinimum(1.)
518 h_LayerCorr_em_front.SetMaximum(2.1)
519 h_LayerCorr_em_front.Draw()
520 c1.Print("HVStatus.ps")
521
522 h_CellFraction_em_front.SetMinimum(0.)
523 h_CellFraction_em_front.SetMaximum(1.1)
524 h_CellFraction_em_front.Draw()
525 c1.Print("HVStatus.ps")
526
527 h_LayerCorr_em_middle.SetMinimum(1.)
528 h_LayerCorr_em_middle.SetMaximum(2.1)
529 h_LayerCorr_em_middle.Draw()
530 c1.Print("HVStatus.ps")
531
532 h_CellFraction_em_middle.SetMinimum(0.)
533 h_CellFraction_em_middle.SetMaximum(1.1)
534 h_CellFraction_em_middle.Draw()
535 c1.Print("HVStatus.ps")
536
537 h_LayerCorr_em_back.SetMinimum(1.)
538 h_LayerCorr_em_back.SetMaximum(2.1)
539 h_LayerCorr_em_back.Draw()
540 c1.Print("HVStatus.ps")
541
542 h_CellFraction_em_back.SetMinimum(0.)
543 h_CellFraction_em_back.SetMaximum(1.1)
544 h_CellFraction_em_back.Draw()
545 c1.Print("HVStatus.ps")
546
547 h_LayerCorr_em_overlap_back.SetMinimum(1.)
548 h_LayerCorr_em_overlap_back.SetMaximum(2.1)
549 h_LayerCorr_em_overlap_back.Draw()
550 c1.Print("HVStatus.ps")
551
552 h_CellFraction_em_overlap_back.SetMinimum(0.)
553 h_CellFraction_em_overlap_back.SetMaximum(1.1)
554 h_CellFraction_em_overlap_back.Draw()
555 c1.Print("HVStatus.ps")
556
557
558 h_LayerCorr_had_first.SetMinimum(1.)
559 h_LayerCorr_had_first.SetMaximum(2.1)
560 h_LayerCorr_had_first.Draw()
561 c1.Print("HVStatus.ps")
562
563 h_CellFraction_had_first.SetMinimum(0.)
564 h_CellFraction_had_first.SetMaximum(1.1)
565 h_CellFraction_had_first.Draw()
566 c1.Print("HVStatus.ps")
567
568 h_LayerCorr_had_second.SetMinimum(1.)
569 h_LayerCorr_had_second.SetMaximum(2.1)
570 h_LayerCorr_had_second.Draw()
571 c1.Print("HVStatus.ps")
572
573 h_CellFraction_had_second.SetMinimum(0.)
574 h_CellFraction_had_second.SetMaximum(1.1)
575 h_CellFraction_had_second.Draw()
576 c1.Print("HVStatus.ps")
577
578 h_LayerCorr_had_third.SetMinimum(1.)
579 h_LayerCorr_had_third.SetMaximum(2.1)
580 h_LayerCorr_had_third.Draw()
581 c1.Print("HVStatus.ps")
582
583 h_CellFraction_had_third.SetMinimum(0.)
584 h_CellFraction_had_third.SetMaximum(1.1)
585 h_CellFraction_had_third.Draw()
586 c1.Print("HVStatus.ps")
587
588 h_LayerCorr_had_fourth.SetMinimum(1.)
589 h_LayerCorr_had_fourth .SetMaximum(2.1)
590 h_LayerCorr_had_fourth.Draw()
591 c1.Print("HVStatus.ps")
592
593 h_CellFraction_had_fourth.SetMinimum(0.)
594 h_CellFraction_had_fourth.SetMaximum(1.1)
595 h_CellFraction_had_fourth.Draw()
596 c1.Print("HVStatus.ps)")
597
598
599 os.system("ps2pdf HVStatus.ps")
600 # os.system("cp HVStatus.pdf /home/jb/public_web/tmp ")
601
602
603 print ("Done!")
604
605if __name__ == "__main__":
606
607 print ("Starting PlotCalibrationHV")
608
609 parser = OptionParser()
610
611 parser.add_option("-f","--InputFile",action="store",type="string",dest="input_file_name",help="Name of input file")
612
613 (options, args) = parser.parse_args()
614
615 PlotCalibrationHV(options.input_file_name)
void print(char *figname, TCanvas *c1)
isEmMiddle(layerName, isOverlap)
isEmBack(layerName, isOverlap)
isHadFirstLayer(layerName, TT_part)
isHadSecondLayer(layerName, TT_part)
isEmFront(layerName, isOverlap)
isHadThirdLayer(layerName, TT_part)
isHadFourthLayer(layerName, TT_part)
isEmOverlapBack(layerName, isOverlap)