Skip to content

Commit 917e9ba

Browse files
author
THuckemann
committed
Commiting changes that were not pushed properly again
1 parent 067adfa commit 917e9ba

File tree

1 file changed

+42
-48
lines changed

1 file changed

+42
-48
lines changed

src/qumada/measurement/measurement.py

+42-48
Original file line numberDiff line numberDiff line change
@@ -277,13 +277,20 @@ def generate_lists(self) -> None:
277277
self.compensating_leverarms: list[list[float]] = []
278278
self.compensated_parameters: list[list[str]] = []
279279
self.compensating_limits: list[list] = []
280+
self.abstract_parameters: list[str] = []
281+
self.abstract_setpoints: list[list] = []
280282
self.groups: dict[dict] = {}
281283
self.buffers: set = set() # All buffers of gettable parameters
282284
self.trigger_ins: set = set() # All trigger inputs that do not belong to buffers
283285
self.priorities: dict = {}
286+
self.loop: int = 0 #For usage with looped measurements
284287

285288
for gate, parameters in self.gate_parameters.items():
286289
for parameter, channel in parameters.items():
290+
if gate == "abstract":
291+
self.abstract_parameters.append()
292+
self.abstract_setpoints.append(self.properties[gate][parameter]["setpoints"])
293+
287294
if self.properties[gate][parameter]["type"].find("static") >= 0:
288295
self.static_parameters.append({"gate": gate, "parameter": parameter})
289296
self.static_channels.append(channel)
@@ -302,32 +309,34 @@ def generate_lists(self) -> None:
302309
try:
303310
self.compensating_parameters_values.append(self.properties[gate][parameter]["value"])
304311
except KeyError as e:
305-
print(f"No value assigned for compensating parameter {self.compensating_parameters[-1]}")
312+
print(f"No value assigned for compensating parameter \
313+
{self.compensating_parameters[-1]}")
306314
raise e
307315
try:
308316
leverarms = self.properties[gate][parameter]["leverarms"]
309-
assert type(leverarms) == list
317+
assert isinstance(leverarms, list)
310318
self.compensating_leverarms.append(self.properties[gate][parameter]["leverarms"])
311319
except KeyError as e:
312320
print(f"No leverarm specified for parameters {self.compensating_parameters[-1]}!")
313321
raise e
314322
try:
315-
comp_list = []
323+
comp_list= []
316324
for entry in self.properties[gate][parameter]["compensated_gates"]:
317-
assert type(entry) == dict
318-
comp_list.append({"gate": entry["terminal"], "parameter": entry["parameter"]})
325+
assert isinstance(entry, dict)
326+
comp_list.append({"gate": entry["terminal"],
327+
"parameter": entry["parameter"]})
319328
self.compensated_parameters.append(comp_list)
320329
except KeyError as e:
321-
print(
322-
f"The terminal to be compensated for with {self.compensating_parameters[-1]} \
323-
is not properly specified! Make sure to define a dictionary with terminal and parameter as keys."
324-
)
330+
print(f"The terminal to be compensated for with {self.compensating_parameters[-1]} \
331+
is not properly specified! Make sure to define a dictionary with \
332+
terminal and parameter as keys.")
325333
raise e
326334
try:
327335
limits = self.properties[gate][parameter]["limits"]
328336
self.compensating_limits.append(limits)
329337
except KeyError as e:
330-
print(f"No limits assigned to compensating parameter {self.compensating_parameters[-1]}!")
338+
print(f"No limits assigned to compensating parameter \
339+
{self.compensating_parameters[-1]}!")
331340
raise e
332341

333342
elif self.properties[gate][parameter]["type"].find("dynamic") >= 0:
@@ -336,7 +345,8 @@ def generate_lists(self) -> None:
336345
if self.properties[gate][parameter].get("_is_triggered", False) and self.buffered:
337346
if "num_points" in self.properties[gate][parameter].keys():
338347
try:
339-
assert self.properties[gate][parameter]["num_points"] == self.buffered_num_points
348+
assert self.properties[
349+
gate][parameter]["num_points"] == self.buffered_num_points
340350
except AssertionError:
341351
logger.warning(
342352
f"Number of datapoints from buffer_settings\
@@ -346,7 +356,8 @@ def generate_lists(self) -> None:
346356
)
347357
elif "setpoints" in self.properties[gate][parameter].keys():
348358
try:
349-
assert len(self.properties[gate][parameter]["setpoints"]) == self.buffered_num_points
359+
assert len(
360+
self.properties[gate][parameter]["setpoints"]) == self.buffered_num_points
350361
except AssertionError:
351362
logger.warning(
352363
f"Number of datapoints from buffer_settings\
@@ -412,7 +423,8 @@ def generate_lists(self) -> None:
412423
if self.groups[group]["priority"] in self.priorities.keys():
413424
raise Exception("Assigned the same priority to multiple groups")
414425
elif self.groups[group]["priority"] is None:
415-
self.groups[group]["priority"] = int(self.properties[gate][parameter]["priority"])
426+
self.groups[group]["priority"] = int(
427+
self.properties[gate][parameter]["priority"])
416428
self.priorities[int(self.groups[group]["priority"])] = self.groups[group]
417429
else:
418430
try:
@@ -605,13 +617,11 @@ def initialize(self, dyn_ramp_to_val=False, inactive_dyn_channels: list | None =
605617
try:
606618
i = self.compensating_parameters.index({"gate": gate, "parameter": parameter})
607619
leverarms = self.compensating_leverarms[i]
608-
comped_params = copy.deepcopy(
609-
self.compensated_parameters[i]
610-
) # list of parameters compensated by the current parameter
620+
comped_params = copy.deepcopy(self.compensated_parameters[i]) #list of parameters compensated by the current parameter
611621
comped_sweeps = [] # Sweeps that are compensated by current param
612-
comped_leverarms = [] # Leverarms of the current param
613-
comping_sweeps = [] # List to store only the sweeps for the current param
614-
k = 0
622+
comped_leverarms = [] # Leverarms of the current param
623+
comping_sweeps = [] # List to store only the sweeps for the current param
624+
k=0
615625
for comped_param in comped_params.copy():
616626
# Check if the parameter is actually ramped in this part of the measurement
617627
if comped_param in inactive_dyn_params:
@@ -621,15 +631,13 @@ def initialize(self, dyn_ramp_to_val=False, inactive_dyn_channels: list | None =
621631
try:
622632
comped_index = self.dynamic_parameters.index(comped_param)
623633
except ValueError as e:
624-
logger.exception(
625-
"Watch out, there is an Exception incoming!"
626-
+ "Did you try to compensate for a not dynamic parameter?"
627-
)
634+
logger.exception("Watch out, there is an Exception incoming!" +
635+
"Did you try to compensate for a not dynamic parameter?")
628636
raise e
629637
comped_sweeps.append(self.dynamic_sweeps[comped_index])
630638
comped_leverarms.append(leverarms[k])
631639
self.active_compensated_channels.append(self.dynamic_channels[comped_index])
632-
k += 1
640+
k+=1
633641
compensating_param = self.compensating_parameters[i]
634642
self.active_compensating_parameters.append(compensating_param)
635643
if len(comped_params) > 0:
@@ -638,34 +646,20 @@ def initialize(self, dyn_ramp_to_val=False, inactive_dyn_channels: list | None =
638646
# Here we create lists/sweeps only containing the difference required for compensation.
639647
# Still has to be substracted from the set value in the measurement script as this can depend
640648
# on the measurement script used (e.g. 1D vs 2D sweeps)
641-
comping_setpoints = (
642-
-1
643-
* float(comped_leverarms[j])
644-
* (np.array(comped_sweeps[j].get_setpoints()) - comped_sweeps[j].get_setpoints()[0])
645-
)
649+
comping_setpoints = -1*float(comped_leverarms[j])*(np.array(comped_sweeps[j].get_setpoints()) - comped_sweeps[j].get_setpoints()[0])
646650
# This creates an inner list of required setpoint differences only for the param that is currently iterated over!
647651
# The final self.compensating_sweeps list will contain list for each compensating parameters with one sweep per
648652
# parameter that is compensated by this compensating parameters.
649-
comping_sweeps.append(
650-
CustomSweep(
651-
channel,
652-
comping_setpoints,
653-
delay=self.properties[gate][parameter].setdefault("delay", 0),
654-
)
653+
comping_sweeps.append(CustomSweep(
654+
channel,
655+
comping_setpoints,
656+
delay=self.properties[gate][parameter].setdefault("delay", 0))
655657
)
656658
self.compensating_sweeps.append(comping_sweeps)
657-
if (
658-
any(
659-
[
660-
self.properties[param["gate"]][param["parameter"]].get("_is_triggered", False)
661-
for param in comped_params
662-
]
663-
)
664-
and self.buffered
665-
):
666-
self.properties[compensating_param["gate"]][compensating_param["parameter"]][
667-
"_is_triggered"
668-
] = True
659+
if any(
660+
[self.properties[param["gate"]][param["parameter"]].get(
661+
"_is_triggered", False) for param in comped_params]) and self.buffered:
662+
self.properties[compensating_param["gate"]][compensating_param["parameter"]]["_is_triggered"] = True
669663
# TODO: This part has to be moved into the measurement script, as the final setpoints for the comping params
670664
# are now set at the measurement script. A helper method would be nice to have.
671665
# if min(self.compensating_sweeps[-1].get_setpoints()) < min(*self.compensating_limits[i]) or max(
@@ -680,7 +674,7 @@ def initialize(self, dyn_ramp_to_val=False, inactive_dyn_channels: list | None =
680674
)
681675
except ValueError as e:
682676
raise e
683-
677+
684678
if self.buffered:
685679
for gettable_param in list(set(self.gettable_channels) - set(self.static_gettable_channels)):
686680
if is_bufferable(gettable_param):

0 commit comments

Comments
 (0)