-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cryoscope post-processing #1064
base: test_cryoscope
Are you sure you want to change the base?
Conversation
…nential_params need to start from 0
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## test_cryoscope #1064 +/- ##
==================================================
- Coverage 97.11% 96.97% -0.15%
==================================================
Files 101 101
Lines 8178 8255 +77
==================================================
+ Hits 7942 8005 +63
- Misses 236 250 +14
Flags with carried forward coverage won't be shown. Click here to find out more.
|
TO DO:
|
The waveform sent with cryoscope routine is defined (https://github.com/qiboteam/qibocal/blob/0fd56c283c3e99db23ca54799c69e3027bdc8f28/src/qibocal/protocols/two_qubit_interaction/cryoscope.py#L27C1-L27C60) if in the runcard the Error
Traceback (most recent call last):
File "/nfs/users/elisa.stabilini/calibration/bin/qq", line 8, in <module>
sys.exit(command())
File "/nfs/users/elisa.stabilini/calibration/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/nfs/users/elisa.stabilini/calibration/lib/python3.10/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/nfs/users/elisa.stabilini/calibration/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/nfs/users/elisa.stabilini/calibration/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/nfs/users/elisa.stabilini/calibration/lib/python3.10/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/nfs/users/elisa.stabilini/qibocal/src/qibocal/cli/_base.py", line 75, in run
protocols_execution(runcard, folder, force, update)
File "/nfs/users/elisa.stabilini/qibocal/src/qibocal/cli/run.py", line 44, in protocols_execution
history = runcard.run(
File "/nfs/users/elisa.stabilini/qibocal/src/qibocal/auto/runcard.py", line 63, in run
instance.run_protocol(
File "/nfs/users/elisa.stabilini/qibocal/src/qibocal/auto/execute.py", line 130, in run_protocol
completed = task.run(platform=self.platform, targets=self.targets, mode=mode)
File "/nfs/users/elisa.stabilini/qibocal/src/qibocal/auto/task.py", line 159, in run
completed.data, completed.data_time = operation.acquisition(
File "/nfs/users/elisa.stabilini/qibocal/src/qibocal/auto/operation.py", line 40, in wrapper
out = func(*args, **kwds)
File "/nfs/users/elisa.stabilini/qibocal/src/qibocal/protocols/two_qubit_interaction/cryoscope.py", line 187, in _acquisition
results_x = platform.execute(sequences_x, **options)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/platform/platform.py", line 290, in execute
results |= self._execute(b, options, configs, sweepers)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/platform/platform.py", line 224, in _execute
new_result = instrument.play(configs, sequences, options, sweepers)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/instruments/qm/controller.py", line 512, in play
self.register_pulses(configs, sequence)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/instruments/qm/controller.py", line 342, in register_pulses
self.register_pulse(id, configs[id], pulse)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/instruments/qm/controller.py", line 319, in register_pulse
return self.config.register_dc_pulse(channel, pulse, max_voltage)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/instruments/qm/config/config.py", line 167, in register_dc_pulse
self.pulses[op] = self.register_waveforms(pulse, max_voltage, dc=True)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/instruments/qm/config/config.py", line 149, in register_waveforms
waveforms = waveforms_from_pulse(pulse, max_voltage)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/instruments/qm/config/pulses.py", line 82, in waveforms_from_pulse
return wvtype.from_pulse(pulse, max_voltage)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/instruments/qm/config/pulses.py", line 60, in from_pulse
original_waveforms = pulse.envelopes(SAMPLING_RATE) * max_voltage
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/pulses/pulse.py", line 69, in envelopes
return np.array([self.i(sampling_rate), self.q(sampling_rate)])
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/pulses/pulse.py", line 60, in i
return self.amplitude * self.envelope.i(samples)
File "/nfs/users/elisa.stabilini/qibolab/src/qibolab/_core/pulses/envelope.py", line 351, in i
raise ValueError
ValueError |
Ok, it's true that I've been lazy, and didn't fill all the exception messages. But what is happening here is not that obscure... If you define a This is one of the limitations of using |
Thank you @alecandido, today @andrea-pasquale helped me understanding that! I posted it here also as a reminder for me to add a control on the duration or change the waveform (I also added it to the TO-DO list :) ) |
@ElStabilini perfect. Even posting known issues is welcome, since they may be a nice reference. If you already know the solution, so much the better. But at that point, you may post even that, for the future reader looking for the same problem :) |
Given what we are doing I suggest to just stick with a |
I tried to add limitations to the filter values following QM documentation |
I added the first post-processing routines to the cryoscope protocol described in #974:
parameters.json
It's still a work in progress as I still need to figure out how to determine more precisely the filters and add the FIR filters