ATLAS Offline Software
Loading...
Searching...
No Matches
CalibDbCool2Calib.py
Go to the documentation of this file.
1#!/usr/bin/env python
2
3
4import getopt
5import sys
6import os
7import CalibDbDefaults
8
9cool_database_string = CalibDbDefaults.cool_database_string
10dbname = CalibDbDefaults.cool_dbname
11t0_cool_folder=None
12rt_cool_folder=None
13cool_tag='CURRENT'
14
15
16def printhelp(argv0):
17 sys.stderr.write("Usage: " + argv0 + " [-h] [-s <cool database string>] [-o <t0 cool folder>] [-r <rt cool folder>] [-t <cool tag>] <run nr>\n")
18 sys.exit(1)
19
20optlist, args = getopt.gnu_getopt(sys.argv, 'hs:o:r:t:')
21
22for 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=='-o':
31 t0_cool_folder=oa
32 continue
33 if opt=='-r':
34 rt_cool_folder=oa
35 continue
36 if opt=='-t':
37 cool_tag=oa
38 continue
39 if opt=='-h':
40 printhelp(sys.argv[0])
41
42if not len(args)==2:
43 sys.stderr.write("Need Run Number\n")
44 print (len(args), args)
45 printhelp(sys.argv[0])
46
47try:
48 run_number=int(args[1])
49except ValueError:
50 sys.stderr.write("Cannot parse run number " + run_number + "\n")
51 printhelp(sys.argv[0])
52
53sys.argv=[ sys.argv[0], '-b' ]
56from ROOT import *
57
58
59def dump_rt(ident, rt):
60 up=MuonFixedIdUnpack(ident)
61 if up.stationNameString()=="XXX":
62 sys.stderr.write("WARNING: Unknown station found!\n")
63 return
64 f=file("calibration/rts/Rt_" + str(up.stationNameString()) + "_" + str(up.stationPhi()) + "_" + str(up.stationEta()) + ".dat", "w")
65 f.write("v1.0 1 Resolution 1 20000 0 0 0 0 dummy 800 ")
66 f.write(str(rt.GetN()))
67 f.write("\n")
68 for i in range(rt.GetN()):
69 f.write(str(rt.GetX()[i]) + " " + str(rt.GetY()[i]) + " " + str(rt.GetEY()[i]))
70 f.write("\n")
71
72
73
74
75
76if rt_cool_folder:
77 graphs=ReadRtCool(cool_database_string, rt_cool_folder, cool_tag, run_number)[0]
78 try:
79 os.makedirs("calibration/rts")
80 except OSError:
81 try:
82 os.stat("calibration/rts")
83 except OSError:
84 sys.stderr.write("ERROR: Cannot create calibration directory!\n")
85 sys.exit(1)
86 for ident, rt in graphs.items():
87 dump_rt(ident, rt)
88
89
TFile * file