74 for app
in confmodel.session_get_all_applications(db._obj, session.id):
75 if confmodel.component_disabled(db._obj, session.id, app.id):
77 if app.class_name ==
"ReadoutApplication":
78 ru_apps.append(db.get_dal(app.class_name, app.id))
80 print(f
"No enabled readout applicatios in session")
88 for d2d
in ru.contains:
89 if d2d.className() !=
"DetectorToDaqConnection":
90 print(f
"Error {ru.id} contains a {d2d.className()} where it should have a DetectorToDaqConnection")
93 if d2d.id
in d2d_seen:
94 print(f
"Error {ru.id} contains {d2d.id}"+
95 f
" which is already read out by {d2d_seen[d2d.id]}")
101 for d2d_res
in d2d.contains:
102 if "DetDataReceiver" in d2d_res.oksTypes():
104 elif "DetDataSender" in d2d_res.oksTypes():
105 if d2d_res.id
in senders_seen:
106 print(f
"Error sender {d2d_res.id} already seen in {senders_seen[d2d_res.id]}")
109 senders_seen[d2d_res.id] = d2d.id
110 snd_dals.append(d2d_res)
112 elif "ResourceSet" in d2d_res.oksTypes():
113 for snd_res
in d2d_res.contains:
114 if "DetDataSender" in snd_res.oksTypes():
115 if snd_res.id
in senders_seen:
116 print(f
"Error sender {snd_res.id} already seen in {senders_seen[d2d_res.id]}")
119 senders_seen[snd_res.id] = d2d.id
120 snd_dals.append(snd_res)
123 print(f
"Error {d2d.id} does not have any senders")
127 print(f
"Error {d2d.id} does not have a receiver")
130 d2d_seen[d2d.id] = ru.id
134 print(f
"Error {ru.id} contains 0 detector connections")
137 print (f
"\nChecking data senders for duplicate streams");
141 print (f
"\nChecking detector connections for duplicate geio ids")
145 print (f
"Session {session.id} readout validated with {errcount} errors:"+
146 f
" contains {len(d2d_seen)} Detector connections"+
147 f
" in {len(ru_apps)} readout applications")