ATLAS Offline Software
CalibDbCompareRT.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 
3 
4 import getopt
5 import sys
6 import CalibDbDefaults
7 
8 calibtype = 'rt'
9 cool_database_string = CalibDbDefaults.cool_database_string
10 cool_folder = CalibDbDefaults.cool_folders[calibtype]
11 cool_tag = CalibDbDefaults.cool_tags[calibtype]
12 dbname = CalibDbDefaults.cool_dbname
13 
14 def printhelp(argv0):
15  sys.stderr.write("Usage: " + argv0 + " [-h] [-s <cool database string>] [-f <cool folder>] [-t <cool tag>] <run number> <calib db>/<head id> <reader password> <root file>\n")
16  sys.exit(1)
17 
18 optlist, args = getopt.gnu_getopt(sys.argv, 'hs:f:t:')
19 if not len(args)==5:
20  printhelp(args[0])
21 
22 for opt, oa in optlist:
23  if opt=='-s':
24  if oa[-2:]=='db':
25  cool_database_string = 'sqlite://;schema=' + oa + ';dbname=' + dbname
26  cool_tag=''
27  else:
28  cool_database_string = oa
29  continue
30  if opt=='-f':
31  cool_folder=oa
32  continue
33  if opt=='-t':
34  cool_tag=oa
35  continue
36 
37 run_number=int(args[1])
38 asp=args[2].split("/")
39 db=asp[0]
40 head_id=int(asp[1])
41 reader_password=args[3]
42 root_filename=args[4]
43 
44 sys.argv=[ sys.argv[0], '-b' ]
45 from ROOT import *
46 from array import *
50 
51 
52 outfile=TFile(root_filename, "RECREATE")
53 
54 if not cool_tag:
55  cool_tag = GetFolderTag(cool_database_string, cool_folder)
56 
57 outfile.mkdir("cool").cd()
58 print ("Cool database: " + cool_database_string + " " + cool_folder + " " + cool_tag + " " + str(run_number))
59 cool_gr, cool_sp, dummy=ReadRtCool(cool_database_string, cool_folder, cool_tag, run_number)
60 
61 outfile.mkdir("calibdb").cd()
62 print ("Calibration database: " + db + "/" + str(head_id))
63 calib_gr, calib_sp=ReadRtCalibDb(db, reader_password, head_id)
64 
65 outfile.cd()
66 tree=TTree("tree", "rt differences")
67 region_id=array('i', [0])
68 station_nm=array('c', "BIL\0")
69 station_phi=array('i', [0])
70 station_eta=array('i', [0])
71 tree.Branch("region_id", region_id, "region_id/I")
72 tree.Branch("station_nm", station_nm, "station_nm/C")
73 tree.Branch("station_phi", station_phi, "station_phi/I")
74 tree.Branch("station_eta", station_eta, "station_eta/I")
75 n_points=array('i', [0])
76 n_points_calib=array('i', [0])
77 n_points_cool=array('i', [0])
78 dt13=array('f', [0.0])
79 dr13=array('f', [0.0])
80 dr=array('f', 100*[0.0])
81 dt=array('f', 100*[0.0])
82 tree.Branch("n_points", n_points, "n_points/I")
83 tree.Branch("n_points_calib", n_points_calib, "n_points_calib/I")
84 tree.Branch("n_points_cool", n_points_cool, "n_points_cool/I")
85 tree.Branch("dt13", dt13, "dt13/F")
86 tree.Branch("dr13", dr13, "dr13/F")
87 
88 for chamber_id in cool_gr:
89  if chamber_id not in calib_gr:
90  continue
91  region_id[0]=chamber_id
92  up=MuonFixedIdUnpack(chamber_id)
93  st_str=up.stationNameString()
94  for i in range(0,3):
95  station_nm[i]=st_str[i]
96  station_phi[0]=up.stationPhi()
97  station_eta[0]=up.stationEta()
98  co_gr=cool_gr[chamber_id]
99  co_sp=cool_sp[chamber_id]
100  ca_gr=calib_gr[chamber_id]
101  ca_sp=calib_sp[chamber_id]
102  n_points[0] = min(co_gr.GetN(), ca_gr.GetN(), 100)
103  n_points_calib[0] = ca_gr.GetN()
104  n_points_cool[0] = co_gr.GetN()
105  for i in range(i, n_points[0]):
106  dr[i]=ca_gr.GetX()[i]
107  dt[i]=ca_gr.GetY()[i]
108  dt13[0] = ca_sp.Eval(13.0) - co_sp.Eval(13.0)
109  dr13[0] = dt13[0] / ca_sp.Derivative(13.0)
110  tree.Fill()
111 
112 outfile.Write()
113 
min
constexpr double min()
Definition: ap_fixedTest.cxx:26
MuonFixedIdUnpack
Definition: MuonFixedIdUnpack.py:1
ReadCalibDb.ReadRtCalibDb
def ReadRtCalibDb(db, reader_passwd, head_id)
Definition: ReadCalibDb.py:32
MuonFixedIdUnpack
CalibDbCompareRT.printhelp
def printhelp(argv0)
Definition: CalibDbCompareRT.py:14
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
array
ReadCool.GetFolderTag
def GetFolderTag(db_string, folder)
Definition: MuonSpectrometer/MuonCalib/MuonCalibDbOperations/python/ReadCool.py:158
ReadCalibDb
python.CaloAddPedShiftConfig.int
int
Definition: CaloAddPedShiftConfig.py:45
ReadCool
calibdata.cd
cd
Definition: calibdata.py:50
str
Definition: BTagTrackIpAccessor.cxx:11
ReadCool.ReadRtCool
def ReadRtCool(db_string, folder, tag, run_number)
Definition: MuonSpectrometer/MuonCalib/MuonCalibDbOperations/python/ReadCool.py:69
Trk::split
@ split
Definition: LayerMaterialProperties.h:38