DUNE-DAQ
DUNE Trigger and Data Acquisition software
Toggle main menu visibility
Loading...
Searching...
No Matches
dunedaq
sourcecode
ctbmodules
python
ctbmodules
update_ctb_settings.py
Go to the documentation of this file.
1
from
pathlib
import
Path
2
import
json
3
4
import
conffwk
5
import
daqconf.enable
as
enable
6
7
def
update_ctb_settings(db_file:Path, jsonfile:Path, session_name:str|
None
) ->
None
:
8
print
(f
"Setting {db_file} to {jsonfile}"
)
9
10
json_data = json.load(open(jsonfile))
11
ctb = json_data[
"ctb"
]
12
13
db =
conffwk.Configuration
(
'oksconflibs:'
+ db_file)
14
set_sockets
(db, ctb[
"sockets"
])
15
16
17
to_be_enabled =
set_misc
( db, ctb[
"misc"
])
18
to_be_enabled +=
set_hlts
( db, ctb[
"HLT"
][
"trigger"
])
19
to_be_enabled +=
set_subsystems
( db, ctb[
"subsystems"
])
20
21
db.commit()
22
23
triggers = db.get_dals(
"CTBTrigger"
)
24
all_triggers = [t.id
for
t
in
triggers]
25
to_be_disabled = []
26
for
t
in
all_triggers :
27
if
t
not
in
to_be_enabled :
28
to_be_disabled.append(t)
29
30
print(
"Enabling:"
,to_be_enabled)
31
print(
"Disabling:"
,to_be_disabled)
32
33
if
not
session_name :
34
session_name = db.get_dals(
"Session"
)[0].id
35
36
enable.enable
(db_file,
False
, to_be_enabled, session_name)
37
enable.enable
(db_file,
True
, to_be_disabled, session_name)
38
39
40
def
set_subsystems
(db:conffwk.Configuration, systems:dict) -> list[str] :
41
42
set_pds
(db, systems[
"pds"
])
43
44
enable = []
45
enable +=
set_crt
(db, systems[
"crt"
])
46
enable +=
set_beam
(db, systems[
"beam"
])
47
return
enable
48
49
def
set_beam
(db:conffwk.Configuration, beam:dict) -> list[str] :
50
51
board = db.get_dals(
"CTBoardConf"
)[0]
52
oks = board.beam
53
oks.channel_mask = beam[
"channel_mask"
]
54
oks.reshape_lengths = beam[
"reshape_lengths"
]
55
oks.delays = beam[
"delays"
]
56
db.update_dal(oks)
57
58
return
set_beam_llts
(db, beam[
"triggers"
])
59
60
61
def
set_beam_llts
(db:conffwk.Configuration, triggers:dict) -> list[str] :
62
63
enable = []
64
for
t
in
triggers :
65
oks = db.get_dal(
"CTBLLT"
, t[
"id"
])
66
oks.mask = t[
"mask"
]
67
oks.description = t[
"description"
]
68
db.update_dal(oks)
69
if
t[
"enable"
] :
70
enable.append(t[
"id"
])
71
return
enable
72
73
74
def
set_crt
(db:conffwk.Configuration, crt:dict) -> list[str] :
75
76
oks = db.get_dals(
"CTBCRTSubsystem"
)[0]
77
oks.pixelate = crt[
"pixelate"
]
78
oks.channel_mask = crt[
"channel_mask"
]
79
oks.reshape_lengths = crt[
"reshape_lengths"
]
80
oks.delays = crt[
"delays"
]
81
db.update_dal(oks)
82
83
return
set_crt_llts
(db, crt[
"triggers"
])
84
85
def
set_crt_llts
(db:conffwk.Configuration, triggers:dict) -> list[str] :
86
87
enable = []
88
for
t
in
triggers :
89
oks = db.get_dal(
"CTBCountLLT"
, t[
"id"
])
90
oks.count = t[
"count"
]
91
oks.type = t[
"type"
]
92
oks.mask = t[
"mask"
]
93
oks.description = t[
"description"
]
94
db.update_dal(oks)
95
if
t[
"enable"
] :
96
enable.append(t[
"id"
])
97
return
enable
98
99
100
def
set_pds
(db:conffwk.Configuration, pds:dict) ->
None
:
101
oks = db.get_dals(
"CTBPDSSubsystem"
)[0]
102
oks.dac_thresholds = pds[
"dac_thresholds"
]
103
oks.channel_mask = pds[
"channel_mask"
]
104
oks.reshape_lengths = pds[
"reshape_lengths"
]
105
oks.delays = pds[
"delays"
]
106
db.update_dal(oks)
107
108
set_pds_llts
(db, pds[
"triggers"
])
109
110
111
def
set_pds_llts
(db:conffwk.Configuration, triggers:dict) ->
None
:
112
for
t
in
triggers :
113
oks = db.get_dal(
"CTBPDSLLT"
, t[
"id"
])
114
oks.id = t[
"id"
]
115
oks.description = t[
"description"
]
116
oks.enable = t[
"enable"
]
117
oks.mask= t[
"mask"
]
118
oks.type = t[
"mask"
]
119
oks.count = t[
"count"
]
120
db.update_dal(oks)
121
122
def
set_hlts
(db:conffwk.Configuration, hlts:dict) -> list[str] :
123
124
enable = []
125
for
d
in
hlts :
126
set_hlt
(db, d)
127
if
d[
"enable"
] :
128
enable.append(d[
"id"
])
129
130
return
enable
131
132
def
set_hlt
(db:conffwk.Configuration, hlt:dict) ->
None
:
133
oks = db.get_dal(
"CTBHLT"
, hlt[
"id"
])
134
oks.minc = hlt[
"minc"
]
135
oks.mexc = hlt[
"mexc"
]
136
oks.prescale = hlt[
"prescale"
]
137
oks.description = hlt[
"description"
]
138
db.update_dal(oks)
139
140
def
set_misc
(db:conffwk.Configuration, misc:dict) -> list[str] :
141
142
oks_misc = db.get_dals(
"CTBMisc"
)[0]
143
oks_misc.ch_status = misc[
"ch_status"
]
144
db.update_dal(oks_misc)
145
146
pulser = misc[
"pulser"
]
147
oks_pulser = oks_misc.pulser
148
oks_pulser.enable = pulser[
"enable"
]
149
oks_pulser.frequency = pulser[
"frequency"
]
150
db.update_dal(oks_pulser)
151
152
timing = misc[
"timing"
]
153
oks_timing = oks_misc.timing
154
oks_timing.address = timing[
"address"
]
155
oks_timing.triggers = timing[
"triggers"
]
156
oks_timing.lockout = timing[
"lockout"
]
157
158
db.update_dal(oks_timing)
159
160
to_be_enabled = []
161
to_be_enabled +=
set_random_trigger
(db,
"HLT_0"
, misc[
"randomtrigger_1"
])
162
to_be_enabled +=
set_random_trigger
(db,
"LLT_0"
, misc[
"randomtrigger_2"
])
163
164
return
to_be_enabled
165
166
def
set_random_trigger
(db:conffwk.Configuration, trigger_id:str, trigger:dict) -> list[str] :
167
oks_trigger=db.get_dal(
"CTBRandomTrigger"
, trigger_id)
168
oks_trigger.fixed_freq=trigger[
"fixed_freq"
]
169
oks_trigger.beam_mode=trigger[
"beam_mode"
]
170
oks_trigger.period=trigger[
"period"
]
171
oks_trigger.description=trigger[
"description"
]
172
db.update_dal(oks_trigger)
173
174
if
trigger[
"enable"
] :
175
return
[trigger_id]
176
return
[]
177
178
179
def
set_sockets
(db:conffwk.Configuration, sockets:dict) ->
None
:
180
181
oks_sockets = db.get_dals(
"CTBSockets"
)[0]
182
183
oks_receiver = oks_sockets.receiver
184
receiver = sockets[
"receiver"
]
185
oks_receiver.rollover = receiver[
"rollover"
]
186
oks_receiver.port = receiver[
"port"
]
187
db.update_dal(oks_receiver)
188
189
oks_monitor = oks_sockets.monitor
190
monitor = sockets[
"monitor"
]
191
oks_monitor.enable = monitor[
"enable"
]
192
oks_monitor.port = monitor[
"port"
]
193
db.update_dal(oks_monitor)
194
195
oks_statistics = oks_sockets.statistics
196
stat = sockets[
"statistics"
]
197
oks_statistics.enable= stat[
"enable"
]
198
oks_statistics.port = stat[
"port"
]
199
oks_statistics.updt_period = stat[
"updt_period"
]
200
db.update_dal(oks_statistics)
201
202
203
204
conffwk.Configuration.Configuration
Definition
Configuration.py:29
ctbmodules.update_ctb_settings.set_pds
None set_pds(conffwk.Configuration db, dict pds)
Definition
update_ctb_settings.py:100
ctbmodules.update_ctb_settings.set_misc
list[str] set_misc(conffwk.Configuration db, dict misc)
Definition
update_ctb_settings.py:140
ctbmodules.update_ctb_settings.set_crt_llts
list[str] set_crt_llts(conffwk.Configuration db, dict triggers)
Definition
update_ctb_settings.py:85
ctbmodules.update_ctb_settings.set_random_trigger
list[str] set_random_trigger(conffwk.Configuration db, str trigger_id, dict trigger)
Definition
update_ctb_settings.py:166
ctbmodules.update_ctb_settings.set_crt
list[str] set_crt(conffwk.Configuration db, dict crt)
Definition
update_ctb_settings.py:74
ctbmodules.update_ctb_settings.set_subsystems
list[str] set_subsystems(conffwk.Configuration db, dict systems)
Definition
update_ctb_settings.py:40
ctbmodules.update_ctb_settings.set_hlt
None set_hlt(conffwk.Configuration db, dict hlt)
Definition
update_ctb_settings.py:132
ctbmodules.update_ctb_settings.set_pds_llts
None set_pds_llts(conffwk.Configuration db, dict triggers)
Definition
update_ctb_settings.py:111
ctbmodules.update_ctb_settings.set_sockets
None set_sockets(conffwk.Configuration db, dict sockets)
Definition
update_ctb_settings.py:179
ctbmodules.update_ctb_settings.set_beam_llts
list[str] set_beam_llts(conffwk.Configuration db, dict triggers)
Definition
update_ctb_settings.py:61
ctbmodules.update_ctb_settings.set_hlts
list[str] set_hlts(conffwk.Configuration db, dict hlts)
Definition
update_ctb_settings.py:122
ctbmodules.update_ctb_settings.set_beam
list[str] set_beam(conffwk.Configuration db, dict beam)
Definition
update_ctb_settings.py:49
enable.enable
enable(oksfile, disable, resource, session_name)
Definition
enable.py:8
Generated on
for DUNE-DAQ by
1.17.0