process_tomography_circuits(circuit, measured_qubits, prepared_qubits=None, meas_labels='Pauli', meas_basis='Pauli', prep_labels='Pauli', prep_basis='Pauli')[source]

Return a list of quantum process tomography circuits.

This performs preparation in the minimial Pauli-basis eigenstates
  • "Z_p": \(|0\rangle\)

  • "Z_m": \(|1\rangle\)

  • "X_p": \(|+\rangle\)

  • "Y_m": \(|+i\rangle\)

on each qubit, and measurement in the Pauli-basis X, Y, Z resulting in \(4^n 3^n\) circuits for an n-qubit process tomography experiment.

  • circuit (QuantumCircuit) – the QuantumCircuit circuit to be tomographed.

  • measured_qubits (QuantumRegister) – the qubits to be measured. This can also be a list of whole QuantumRegisters or individual QuantumRegister qubit tuples.

  • prepared_qubits (Optional[QuantumRegister]) – the qubits to have state preparation applied, if different from measured_qubits. If None measured_qubits will be used for prepared qubits

  • meas_labels (Union[str, Tuple[str], List[Tuple[str]]]) – (default: ‘Pauli’) The measurement operator labels.

  • meas_basis (Union[str, TomographyBasis]) – (default: ‘Pauli’) The measurement basis.

  • prep_labels (Union[str, Tuple[str], List[Tuple[str]]]) – (default: ‘Pauli’) The preparation operator labels.

  • prep_basis (Union[str, TomographyBasis]) – (default: ‘Pauli’) The preparation basis.

Return type



A list of QuantumCircuit objects containing the original circuit with state preparation circuits prepended, and measurement circuits appended.

The returned circuits are named by the preparation and measurement basis.