API CPP
Loading...
Searching...
No Matches
Macros | Functions
DPE_API.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#include <string>

Go to the source code of this file.

Macros

#define DPE_ERR_NO_ERR   0
 No error occurred.
 
#define DPE_ERR_NO_DATA_POSTPROC   -10
 No data for data post processing.
 
#define CLVAR_DETECTOR_ID   "DetectorID"
 Name of detector id.

 
#define CLVAR_EVENT_ID   "EventID"
 Name of event id (coincidence group).
 
#define CLVAR_X   "x"
 Name of x coordinated.
 
#define CLVAR_Y   "y"
 Name of y coordinated.
 
#define CLVAR_TIME   "t"
 Name of time.
 
#define CLVAR_FLAGS   "Flags"
 
#define CLVAR_SIZE   "Size"
 
#define CLVAR_ENERGY   "E"
 
#define CLVAR_HEIGHT   "Height"
 
#define CLVAR_BORDER_PIX_N   "BorderPixCount"
 
#define CLVAR_ROUND   "Roundness"
 
#define CLVAR_LIN   "Linearity"
 
#define CLVAR_ANGLE   "Angle"
 
#define CLVAR_LENGHT   "Length"
 
#define CLVAR_WIDTH   "Width"
 
#define CLVAR_THIN   "Thin"
 
#define CLVAR_THICK   "Thick"
 
#define CLVAR_CURLYTHIN   "CurlyThin"
 
#define CLVAR_LET   "LET"
 
#define CLVAR_WSTD_ALONG   "WStdAlong"
 
#define CLVAR_WSTD_PERP   "WStdPerp"
 
#define CLVAR_EPIX_MEAN   "EpixMean"
 

Functions

void DPE_Construct ()
 Construct DPE at the beginning of processing.
 
void DPE_Destruct ()
 Destruc DPE at the end of processing.
 
int DPE_LoadParamFile (std::string FileParam_Path="./", std::string FileParam_Name="ParamFile.txt")
 
int DPE_SetClusterVarOrder (std::vector< std::string > ClusterVarNames={})
 
int DPE_Init ()
 
int DPE_Reset ()
 
int DPE_ResetCurrDataStorage ()
 
int DPE_ProcessClusters (std::vector< std::vector< double > > Clusters)
 
int DPE_ProcessFile (std::string FileIn_Path="", std::string FileIn_Name="", std::string FileIn_NameEnd="")
 
int DPE_RadFieldRecognition (std::string &Name, double &Prob)
 
int DPE_GetComCamTestProjection (std::vector< double > &Projection)
 
int DPE_GetComCamProjection (std::vector< double > &Projection)
 
int DPE_GetCurrentEnergyDep (double &EnergyDep)
 
int DPE_GetCurrentDose (double &Dose)
 
int DPE_GetCurrentDoseRate (double &DoseRate, double Time=0)
 
int DPE_GetCurrentCountParticle (double &CountParticle)
 
int DPE_GetCurrentCountRate (double &CountRate, double Time=0)
 
int DPE_GetCurrentFluence (double &Fluence)
 
int DPE_GetCurrentFlux (double &Flux, double Time=0)
 
int DPE_GetCurrentEnergyDepClass (std::vector< double > &EnergyDepClass)
 
int DPE_GetCurrentDoseClass (std::vector< double > &DoseClass)
 
int DPE_GetCurrentDoseRateClass (std::vector< double > &DoseRateClass, double Time=0)
 
int DPE_GetCurrentCountParticleClass (std::vector< double > &CountParticleClass)
 
int DPE_GetCurrentCountRateClass (std::vector< double > &CountRateClass, double Time=0)
 
int DPE_GetCurrentFluenceClass (std::vector< double > &FluenceClass)
 
int DPE_GetCurrentFluxClass (std::vector< double > &FluxClass, double Time=0)
 
int DPE_GetEnergyDep (double &EnergyDep)
 
int DPE_GetDose (double &Dose)
 
int DPE_GetDoseRate (double &DoseRate)
 
int DPE_GetCountParticle (double &CountParticle)
 
int DPE_GetCountRate (double &CountRate)
 
int DPE_GetFluence (double &Fluence)
 
int DPE_GetFlux (double &Flux)
 
int DPE_GetEnergyDepTime (std::vector< double > &EnergyDepTime)
 
int DPE_GetDoseTime (std::vector< double > &DoseTime)
 
int DPE_GetDoseRateTime (std::vector< double > &DoseRateTime)
 
int DPE_GetCountParticleTime (std::vector< double > &CountParticleTime)
 
int DPE_GetCountRateTime (std::vector< double > &CountRateTime)
 
int DPE_GetFluenceTime (std::vector< double > &FluenceTime)
 
int DPE_GetFluxTime (std::vector< double > &FluxTime)
 
int DPE_GetEnergyDepTimeClass (std::vector< std::vector< double > > &EnergyDepTimeClass)
 
int DPE_GetDoseTimeClass (std::vector< std::vector< double > > &DoseTimeClass)
 
int DPE_GetDoseRateTimeClass (std::vector< std::vector< double > > &DoseRateTimeClass)
 
int DPE_GetCountParticleTimeClass (std::vector< std::vector< double > > &CountParticleTimeClass)
 
int DPE_GetCountRateTimeClass (std::vector< std::vector< double > > &CountRateTimeClass)
 
int DPE_GetFluenceTimeClass (std::vector< std::vector< double > > &FluenceTimeClass)
 
int DPE_GetFluxTimeClass (std::vector< std::vector< double > > &FluxTimeClass)
 
int DPE_GetComCamProjectionNBins (int &ComCamProjNBinX, int &ComCamProjNBinY)
 
int DPE_GetComCamProjectionMaxVal (double &MaxVal)
 
int DPE_SetTimeSampling (double TimeSampling)
 
int DPE_SetTimeAcquisition (double TimeAcquisition)
 
int DPE_SetComCamProjectionDist (double ProjectionDist)
 

Detailed Description

API c++ for DPE (Data Processing Engine). Copyright (C) 2022 Lukas Marek

Author
Lukas Marek lukas.nosp@m..mar.nosp@m.ek@ad.nosp@m.vaca.nosp@m.m.cz

Function Documentation

◆ DPE_GetComCamProjection()

int DPE_GetComCamProjection ( std::vector< double > &  Projection)

Retrieves projection results from Compton camera directional analysis.

Parameters
Projectionis an image defined in config file of Compton cam. It includes back projection of Compton cones.
Returns
0 if OK, otherwise error code.

◆ DPE_GetComCamProjectionMaxVal()

int DPE_GetComCamProjectionMaxVal ( double &  MaxVal)

Gets Compton camera maximum value in its projection.

Parameters
ComCamProjNBinXmaximum value.
Returns
0 if OK, otherwise error code.

◆ DPE_GetComCamProjectionNBins()

int DPE_GetComCamProjectionNBins ( int &  ComCamProjNBinX,
int &  ComCamProjNBinY 
)

Gets Compton camera count of bins on X and Y axis for its projection.

Parameters
ComCamProjNBinXis count of bins on X axis.
ComCamProjNBinYis count of bins on Y axis.
Returns
0 if OK, otherwise error code.

◆ DPE_GetComCamTestProjection()

int DPE_GetComCamTestProjection ( std::vector< double > &  Projection)

Retrieves test projection results from Compton camera directional analysis.

Parameters
Projectionis an image defined in config file of Compton cam. It includes back projection of Compton cones.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCountParticle()

int DPE_GetCountParticle ( double &  CountParticle)

Gets count of particles.

Parameters
CountParticlesum of count of particles is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCountParticleTime()

int DPE_GetCountParticleTime ( std::vector< double > &  CountParticleTime)

Gets count of particles for time sample.

Parameters
CountParticleTimevector is over time samples (based on time sapling and elapsed time). Example: {TimeSample1, TimeSample2,...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetCountParticleTimeClass()

int DPE_GetCountParticleTimeClass ( std::vector< std::vector< double > > &  CountParticleTimeClass)

Gets count of particles for time sample and class.

Parameters
CountParticleTimeClassinner vector is over particle classes and the outer is over time samples (based on time sapling and elapsed time). Example: {TimeSample1={Class1, Class2, ...}, TimeSample2={Class1, Class2, ...},...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetCountRate()

int DPE_GetCountRate ( double &  CountRate)

Gets count of rate of particles for time sample.

Parameters
CountRatemean of count rate is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCountRateTime()

int DPE_GetCountRateTime ( std::vector< double > &  CountRateTime)

Gets count of rate of particles for time sample.

Parameters
CountRateTimevector is over time samples (based on time sapling and elapsed time). Example: {TimeSample1, TimeSample2,...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetCountRateTimeClass()

int DPE_GetCountRateTimeClass ( std::vector< std::vector< double > > &  CountRateTimeClass)

Gets count of rate of particles for time sample and class.

Parameters
CountRateTimeClassinner vector is over particle classes and the outer is over time samples (based on time sapling and elapsed time). Example: {TimeSample1={Class1, Class2, ...}, TimeSample2={Class1, Class2, ...},...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentCountParticle()

int DPE_GetCurrentCountParticle ( double &  CountParticle)

Gets current count of particles.

Parameters
CountParticlesum of count of particles is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentCountParticleClass()

int DPE_GetCurrentCountParticleClass ( std::vector< double > &  CountParticleClass)

Gets current count of particles for individual particle classes.

Parameters
CountParticleClasssum of count of particles for individual particle classes is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentCountRate()

int DPE_GetCurrentCountRate ( double &  CountRate,
double  Time = 0 
)

Gets current count of rate of particles for time sample.

Parameters
CountRatemean of count rate is stored there.
Timeused for calculation.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentCountRateClass()

int DPE_GetCurrentCountRateClass ( std::vector< double > &  CountRateClass,
double  Time = 0 
)

Gets current count of rate of particles for time sample.

Parameters
CountRateClassmean of count rate for individual particle classes is stored there.
Timeused for calculation for individual particle classes.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentDose()

int DPE_GetCurrentDose ( double &  Dose)

Gets current dose.

Parameters
Dosesum of dose is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentDoseClass()

int DPE_GetCurrentDoseClass ( std::vector< double > &  DoseClass)

Gets current dose for individual particle classes.

Parameters
DoseClasssum of dose for individual particle classes is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentDoseRate()

int DPE_GetCurrentDoseRate ( double &  DoseRate,
double  Time = 0 
)

Gets current dose rate.

Parameters
DoseRatemean of dose rate is stored there.
Timeused for calculation.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentDoseRateClass()

int DPE_GetCurrentDoseRateClass ( std::vector< double > &  DoseRateClass,
double  Time = 0 
)

Gets current dose rate for individual particle classes.

Parameters
DoseRateClassmean of dose rate for individual particle classes is stored there.
Timeused for calculation.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentEnergyDep()

int DPE_GetCurrentEnergyDep ( double &  EnergyDep)

Gets current deposited energy.

Parameters
EnergyDepsum of deposited energy is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentEnergyDepClass()

int DPE_GetCurrentEnergyDepClass ( std::vector< double > &  EnergyDepClass)

Gets current deposited energy for individual particle classes.

Parameters
EnergyDepClasssum of deposited energy for individual particle classes is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentFluence()

int DPE_GetCurrentFluence ( double &  Fluence)

Gets current fluence.

Parameters
Fluencesum of fluence is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentFluenceClass()

int DPE_GetCurrentFluenceClass ( std::vector< double > &  FluenceClass)

Gets current fluence for individual particle classes.

Parameters
FluenceClasssum of fluence for individual particle classes is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentFlux()

int DPE_GetCurrentFlux ( double &  Flux,
double  Time = 0 
)

Gets current flux.

Parameters
Fluxsum of flux is stored there.
Timeused for calculation.
Returns
0 if OK, otherwise error code.

◆ DPE_GetCurrentFluxClass()

int DPE_GetCurrentFluxClass ( std::vector< double > &  FluxClass,
double  Time = 0 
)

Gets current flux for individual particle classes.

Parameters
FluxClasssum of flux for individual particle classes is stored there.
Timeused for calculation.
Returns
0 if OK, otherwise error code.

◆ DPE_GetDose()

int DPE_GetDose ( double &  Dose)

Gets dose.

Parameters
Dosesum of dose is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetDoseRate()

int DPE_GetDoseRate ( double &  DoseRate)

Gets dose rate.

Parameters
DoseRatemean of dose rate is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetDoseRateTime()

int DPE_GetDoseRateTime ( std::vector< double > &  DoseRateTime)

Gets dose rate for time sample.

Parameters
DoseRateTimevector is over time samples (based on time sapling and elapsed time). Example: {TimeSample1, TimeSample2,...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetDoseRateTimeClass()

int DPE_GetDoseRateTimeClass ( std::vector< std::vector< double > > &  DoseRateTimeClass)

Gets dose rate for time sample and class.

Parameters
DoseRateTimeClassinner vector is over particle classes and the outer is over time samples (based on time sapling and elapsed time). Example: {TimeSample1={Class1, Class2, ...}, TimeSample2={Class1, Class2, ...},...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetDoseTime()

int DPE_GetDoseTime ( std::vector< double > &  DoseTime)

Gets dose for time sample.

Parameters
DoseTimevector is over time samples (based on time sapling and elapsed time). Example: {TimeSample1, TimeSample2,...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetDoseTimeClass()

int DPE_GetDoseTimeClass ( std::vector< std::vector< double > > &  DoseTimeClass)

Gets dose for time sample and class.

Parameters
DoseTimeClassinner vector is over particle classes and the outer is over time samples (based on time sapling and elapsed time). Example: {TimeSample1={Class1, Class2, ...}, TimeSample2={Class1, Class2, ...},...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetEnergyDep()

int DPE_GetEnergyDep ( double &  EnergyDep)

Gets deposited energy.

Parameters
EnergyDepsum of deposited energy is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetEnergyDepTime()

int DPE_GetEnergyDepTime ( std::vector< double > &  EnergyDepTime)

Gets deposited energy for time sample.

Parameters
EnergyDepTimevector is over time samples (based on time sapling and elapsed time). Example: {TimeSample1, TimeSample2,...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetEnergyDepTimeClass()

int DPE_GetEnergyDepTimeClass ( std::vector< std::vector< double > > &  EnergyDepTimeClass)

Gets deposited energy for time sample and class.

Parameters
EnergyDepTimeClassinner vector is over particle classes and the outer is over time samples (based on time sapling and elapsed time). Example: {TimeSample1={Class1, Class2, ...}, TimeSample2={Class1, Class2, ...},...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetFluence()

int DPE_GetFluence ( double &  Fluence)

Gets fluence.

Parameters
Fluencesum of fluence is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetFluenceTime()

int DPE_GetFluenceTime ( std::vector< double > &  FluenceTime)

Gets fluence of particles for time sample.

Parameters
FluenceTimevector is over time samples (based on time sapling and elapsed time). Example: {TimeSample1, TimeSample2,...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetFluenceTimeClass()

int DPE_GetFluenceTimeClass ( std::vector< std::vector< double > > &  FluenceTimeClass)

Gets fluence of particles for time sample and class.

Parameters
FluenceTimeClassinner vector is over particle classes and the outer is over time samples (based on time sapling and elapsed time). Example: {TimeSample1={Class1, Class2, ...}, TimeSample2={Class1, Class2, ...},...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetFlux()

int DPE_GetFlux ( double &  Flux)

Gets flux.

Parameters
Fluxvector sum of flux is stored there.
Returns
0 if OK, otherwise error code.

◆ DPE_GetFluxTime()

int DPE_GetFluxTime ( std::vector< double > &  FluxTime)

Gets flux for time sample.

Parameters
FluxTimevector is over time samples (based on time sapling and elapsed time). Example: {TimeSample1, TimeSample2,...}
Returns
0 if OK, otherwise error code.

◆ DPE_GetFluxTimeClass()

int DPE_GetFluxTimeClass ( std::vector< std::vector< double > > &  FluxTimeClass)

Gets flux for time sample and class.

Parameters
FluxTimeClassinner vector is over particle classes and the outer is over time samples (based on time sapling and elapsed time). Example: {TimeSample1={Class1, Class2, ...}, TimeSample2={Class1, Class2, ...},...}
Returns
0 if OK, otherwise error code.

◆ DPE_Init()

int DPE_Init ( )

Init DPE after setting its parameters. It is mainly for modules initialization and propagation of parameters into them. Export directories are also created (if needed).

Returns
0 if OK, otherwise error code.

◆ DPE_LoadParamFile()

int DPE_LoadParamFile ( std::string  FileParam_Path = "./",
std::string  FileParam_Name = "ParamFile.txt" 
)

Load file with parameters of DPE.

Parameters
FileParam_Pathfull path to file with parameters.
FileParam_Namename of file with parameters.
Returns
0 if OK, otherwise error code.

◆ DPE_ProcessClusters()

int DPE_ProcessClusters ( std::vector< std::vector< double > >  Clusters)

Process given clustersDPE_AddClusters. This includes also calculation of physical products as dose, flux etc. Clusters are after processing deleted from DPE to avoid several processing of the same data.

Parameters
Clustersvector of vectors with cluster variables which should be processed. Inner vectors include variables of clusters in order given by function DPE_SetClusterVarOrder.
See also
DPE_SetClusterVarOrder
Returns
0 if OK, otherwise error code.

◆ DPE_ProcessFile()

int DPE_ProcessFile ( std::string  FileIn_Path = "",
std::string  FileIn_Name = "",
std::string  FileIn_NameEnd = "" 
)

Process data file. If input parameters are not set then the function uses values given in the parameters file (if loaded).

Parameters
FileIn_Pathfull path to the data file.
FileIn_Namename of the data file.d
FileIn_NameEndname end (e.g. extension ".txt") of the data file.
Returns
0 if OK, otherwise error code.

◆ DPE_RadFieldRecognition()

int DPE_RadFieldRecognition ( std::string &  Name,
double &  Prob 
)

Recognition of radiation field with distance comparator and significant vectors.

Parameters
Nameof the recognized radiation field (e.g. Cs137).
Probprobability of recognition success.
Returns
0 if OK, otherwise error code.

◆ DPE_Reset()

int DPE_Reset ( )

Reset DPE data storage and physical products (includes mainly reset of modules). Settings remains the same as set with the parameters file or individual sets.

Returns
0 if OK, otherwise error code.

◆ DPE_ResetCurrDataStorage()

int DPE_ResetCurrDataStorage ( )

Reset DPE current data storage (sets them to 0). The total and other storage are not influenced. If the storage should be reset between cluster processing then this function should be called between them (DPE_ProcessClusters(); DPE_ResetCurrDataStorage(); ;DPE_ProcessClusters();)

Returns
0 if OK, otherwise error code.

◆ DPE_SetClusterVarOrder()

int DPE_SetClusterVarOrder ( std::vector< std::string >  ClusterVarNames = {})

Set order of cluster variable names as they will be given in the cluster add. It has to be used before init as part of DPE general setting or load of param. file.

Parameters
ClusterVarNamesnames of cluster variables in intended order for cluster add function. Names of cluster variables should be taken from macros (CLVAR_...) Example: ClusterVarNames = {CLVAR_DETECTOR_ID, CLVAR_EVENT_ID, CLVAR_SIZE}. If not used before init or empty vector given, default order is used as listed: CLVAR_DETECTOR_ID, CLVAR_EVENT_ID, CLVAR_X, CLVAR_Y, CLVAR_TIME, CLVAR_FLAGS, CLVAR_SIZE, CLVAR_ENERGY, CLVAR_HEIGHT, CLVAR_BORDER_PIX_N, CLVAR_ROUND, CLVAR_LIN, CLVAR_ANGLE, CLVAR_LENGHT, CLVAR_WIDTH.
Returns
0 if OK, otherwise error code.

◆ DPE_SetComCamProjectionDist()

int DPE_SetComCamProjectionDist ( double  ProjectionDist)

Sets Compton camera distance for projection.

Parameters
ProjectionDistin which projection is calculated. It is in mm.
Returns
0 if OK, otherwise error code.

◆ DPE_SetTimeAcquisition()

int DPE_SetTimeAcquisition ( double  TimeAcquisition)

Sets time acquisition.

Parameters
TimeAcquisitionacquisition time which is used for calculation of physical products. Default is set during processing based on given data.
Returns
0 if OK, otherwise error code.

◆ DPE_SetTimeSampling()

int DPE_SetTimeSampling ( double  TimeSampling)

Sets time sampling.

Parameters
TimeSamplingsampling time which defines a sample evaluation. Its unit is in seconds. Defaults value is 1 second.
Returns
0 if OK, otherwise error code.