SND@LHC Software
Loading...
Searching...
No Matches
scifi_conDB.py
Go to the documentation of this file.
7from __future__ import print_function, division
8from factory import APIFactory
9import datetime, sys
10
11
12from builtins import range
13import operator
14from argparse import ArgumentParser
15from array import array
16import os,ROOT,ast
17
18api_factory = APIFactory()
19conditionsDB = api_factory.construct_DB_API("/home/eric/snd-soft-23april-2021/sndsw/conditionsDatabase/config.yml")
20
21
22scifi_n=0
23plane_n=0
24board_n=0
25#print ("conditions ",conditions)
26board_id=0
27if 1==0:
28 #add board id condition to all boards in volTarget_1/SciFi
29 for scifi_n in range(5):
30 for plane_n in range(2):
31 for board_n in range(3):
32 conditionsDB.add_condition("volTarget_1/Scifi_"+str(scifi_n)+"/plane_"+str(plane_n)+"/board_"+str(board_n), "id", "board_id", board_id,None,datetime.datetime.now(), datetime.datetime.max)
33 board_id+=1
34
35 #add all 36 boards with id, links them to subdetector they go into
36 conditionsDB.add_detector("daq")
37 for board_id in range(36):
38 conditionsDB.add_detector("board_"+str(board_id) , "daq")
39 conditionsDB.add_condition("daq/board_"+str(board_id), "id", "board_id", board_id,None,datetime.datetime.now(), datetime.datetime.max)
40
41 #check board id was correctly added
42 for board_id in range(36):
43 id = conditionsDB.get_conditions_by_tag("daq/board_"+str(board_id),"board_id")
44 print ("Board id of daq/board_"+str(board_id)," : ",id)
45
46board_id=0
47#remove board for debugging
48#conditionsDB.remove_detector("daq/board_"+str(board_id))
49#sys.exit()
50#add board_0 if it was removed for debugging
51#conditionsDB.add_detector("board_"+str(board_id) , "daq")
52#conditionsDB.add_condition("daq/board_"+str(board_id), "id", "board_id", board_id,None,datetime.datetime.now(), datetime.datetime.max)
53
54conditions={}
55input= open("daq/channels_settings.dict","r")
56contents=input.read()
57orig_conditions=ast.literal_eval(contents)
58#mongo doesn't accept integer keys - convert them to strings
59keys_values = orig_conditions.items()
60conditions = {str(key): value for key, value in keys_values}
61for skey,svalue in keys_values:
62 skey_values = svalue.items()
63 svalue= {str(key): value for key,value in skey_values}
64 conditions[str(skey)]=svalue
65
66conditionsDB.add_condition("daq/board_"+str(board_id), "settings", "Channel_settings", conditions,None,datetime.datetime.now(), datetime.datetime.max)
67
68orig_conditions={}
69input= open("daq/qdc_range.dict","r")
70contents=input.read()
71orig_conditions=ast.literal_eval(contents)
72#mongo doesn't accept integer keys - convert them to strings
73keys_values = orig_conditions.items()
74conditions = {str(key): value for key, value in keys_values}
75for skey,svalue in keys_values:
76 skey_values = svalue.items()
77 svalue= {str(key): value for key,value in skey_values}
78 conditions[str(skey)]=svalue
79
80conditionsDB.add_condition("daq/board_"+str(board_id), "qdc", "qdc_range", conditions,None,datetime.datetime.now(), datetime.datetime.max)
81#result = conditionsDB.get_conditions_by_tag("daq/board_"+str(board_id),"qdc_range")
82#print ("Conditions of board 0 qdc range:",result)
83
84
85conditions={}
86input= open("daq/thresholds_baselines.dict","r")
87contents=input.read()
88orig_conditions=ast.literal_eval(contents)
89#mongo doesn't accept integer keys - convert them to strings
90keys_values = orig_conditions.items()
91conditions = {str(key): value for key, value in keys_values}
92for skey,svalue in keys_values:
93 skey_values = svalue.items()
94 svalue= {str(key): value for key,value in skey_values}
95 conditions[str(skey)]=svalue
96conditionsDB.add_condition("daq/board_"+str(board_id), "thr_bl_cal", "thresholds_baselines", conditions,None,datetime.datetime.now(), datetime.datetime.max)
97
98
99conditions={}
100input= open("daq/thresholds.dict","r")
101contents=input.read()
102orig_conditions=ast.literal_eval(contents)
103#mongo doesn't accept integer keys - convert them to strings
104keys_values = orig_conditions.items()
105conditions = {str(key): value for key, value in keys_values}
106for skey,svalue in keys_values:
107 skey_values = svalue.items()
108 svalue= {str(key): value for key,value in skey_values}
109 conditions[str(skey)]=svalue
110conditionsDB.add_condition("daq/board_"+str(board_id), "thresholds", "thresholds", conditions,None,datetime.datetime.now(), datetime.datetime.max)
111
112conditions={}
113input= open("daq/tia-baselines.dict","r")
114contents=input.read()
115orig_conditions=ast.literal_eval(contents)
116#mongo doesn't accept integer keys - convert them to strings
117keys_values = orig_conditions.items()
118conditions = {str(key): value for key, value in keys_values}
119for skey,svalue in keys_values:
120 skey_values = svalue.items()
121 svalue= {str(key): value for key,value in skey_values}
122 conditions[str(skey)]=svalue
123conditionsDB.add_condition("daq/board_"+str(board_id), "tia_bl_cal", "tia-baselines", conditions,None,datetime.datetime.now(), datetime.datetime.max)
124
125print ("Calibration conditions for board_"+str(board_n)+" added to the database.")
This class creates an instance of the specified database API.
Definition factory.py:15