QuISP
Loading...
Searching...
No Matches
quisp::modules::BellStateAnalyzer Class Reference

BellStateAnalyzer. More...

#include <BellStateAnalyzer.cc>

Inheritance diagram for quisp::modules::BellStateAnalyzer:
Collaboration diagram for quisp::modules::BellStateAnalyzer:

Public Member Functions

 BellStateAnalyzer ()
 
void resetState ()
 

Protected Member Functions

virtual void initialize () override
 
virtual void finish () override
 
virtual void handleMessage (omnetpp::cMessage *msg) override
 Handle the flying photonic qubits coming in to the BSA. If the two photons arrive at the same time (within indistinguishable time window), it will be entangled. We assume that we can distinguish between Psi+/- while we cannot Phi+/- cannot be distinguished. Gate operations will be applied on the photons.
 

Private Member Functions

void discardPhoton (PhotonRecord &photon)
 
PhotonRecord getPhotonRecordFromMessage (messages::PhotonicQubit *)
 
void processPhotonRecords ()
 
physical::types::BSAClickResult processIndistinguishPhotons (PhotonRecord &left_photon, PhotonRecord &right_photon)
 
void measureSuccessfully (PhotonRecord &left_photon, PhotonRecord &right_photon, bool is_psi_plus)
 
void validateProperties ()
 

Private Attributes

double collection_efficiency
 
double darkcount_probability
 
double detection_efficiency
 
omnetpp::simtime_t indistinguishability_window
 
BSAState state
 
std::vector< PhotonRecordfirst_port_records
 
std::vector< PhotonRecordsecond_port_records
 
utils::ComponentProvider provider
 
backends::IQuantumBackendbackend
 
long long no_error_count = 0
 
long long x_error_count = 0
 
long long y_error_count = 0
 
long long z_error_count = 0
 

Detailed Description

Constructor & Destructor Documentation

◆ BellStateAnalyzer()

quisp::modules::BellStateAnalyzer::BellStateAnalyzer ( )

Member Function Documentation

◆ discardPhoton()

void quisp::modules::BellStateAnalyzer::discardPhoton ( PhotonRecord & photon)
private

◆ finish()

void quisp::modules::BellStateAnalyzer::finish ( )
overrideprotectedvirtual

◆ getPhotonRecordFromMessage()

PhotonRecord quisp::modules::BellStateAnalyzer::getPhotonRecordFromMessage ( messages::PhotonicQubit * )
private

◆ handleMessage()

void quisp::modules::BellStateAnalyzer::handleMessage ( omnetpp::cMessage * msg)
overrideprotectedvirtual

Handle the flying photonic qubits coming in to the BSA. If the two photons arrive at the same time (within indistinguishable time window), it will be entangled. We assume that we can distinguish between Psi+/- while we cannot Phi+/- cannot be distinguished. Gate operations will be applied on the photons.

Parameters
msgmust be of type PhotonicQubit message

◆ initialize()

void quisp::modules::BellStateAnalyzer::initialize ( )
overrideprotectedvirtual

◆ measureSuccessfully()

void quisp::modules::BellStateAnalyzer::measureSuccessfully ( PhotonRecord & left_photon,
PhotonRecord & right_photon,
bool is_psi_plus )
private

◆ processIndistinguishPhotons()

BSAClickResult quisp::modules::BellStateAnalyzer::processIndistinguishPhotons ( PhotonRecord & left_photon,
PhotonRecord & right_photon )
private

◆ processPhotonRecords()

void quisp::modules::BellStateAnalyzer::processPhotonRecords ( )
private

◆ resetState()

void quisp::modules::BellStateAnalyzer::resetState ( )

◆ validateProperties()

void quisp::modules::BellStateAnalyzer::validateProperties ( )
private

Member Data Documentation

◆ backend

backends::IQuantumBackend* quisp::modules::BellStateAnalyzer::backend
private

◆ collection_efficiency

double quisp::modules::BellStateAnalyzer::collection_efficiency
private

◆ darkcount_probability

double quisp::modules::BellStateAnalyzer::darkcount_probability
private

◆ detection_efficiency

double quisp::modules::BellStateAnalyzer::detection_efficiency
private

◆ first_port_records

std::vector<PhotonRecord> quisp::modules::BellStateAnalyzer::first_port_records
private

◆ indistinguishability_window

omnetpp::simtime_t quisp::modules::BellStateAnalyzer::indistinguishability_window
private

◆ no_error_count

long long quisp::modules::BellStateAnalyzer::no_error_count = 0
private

◆ provider

utils::ComponentProvider quisp::modules::BellStateAnalyzer::provider
private

◆ second_port_records

std::vector<PhotonRecord> quisp::modules::BellStateAnalyzer::second_port_records
private

◆ state

BSAState quisp::modules::BellStateAnalyzer::state
private

◆ x_error_count

long long quisp::modules::BellStateAnalyzer::x_error_count = 0
private

◆ y_error_count

long long quisp::modules::BellStateAnalyzer::y_error_count = 0
private

◆ z_error_count

long long quisp::modules::BellStateAnalyzer::z_error_count = 0
private

The documentation for this class was generated from the following files: