libpappsomspp
Library for mass spectrometry
pappso::MzCalibrationStore Class Reference

#include <mzcalibrationstore.h>

Public Member Functions

 MzCalibrationStore ()
 
virtual ~MzCalibrationStore ()
 
MzCalibrationInterfaceSPtr getInstance (double T1_frame, double T2_frame, const QSqlRecord &mzcalibration_record)
 

Private Attributes

std::map< QString, MzCalibrationInterfaceSPtrm_mapMzCalibrationSPtr
 

Detailed Description

Todo:
write docs

Definition at line 39 of file mzcalibrationstore.h.

Constructor & Destructor Documentation

◆ MzCalibrationStore()

pappso::MzCalibrationStore::MzCalibrationStore ( )
Todo:
write docs

Definition at line 37 of file mzcalibrationstore.cpp.

38 {
39 }

◆ ~MzCalibrationStore()

pappso::MzCalibrationStore::~MzCalibrationStore ( )
virtual
Todo:
write docs

Definition at line 41 of file mzcalibrationstore.cpp.

42 {
43 }

Member Function Documentation

◆ getInstance()

MzCalibrationInterfaceSPtr pappso::MzCalibrationStore::getInstance ( double  T1_frame,
double  T2_frame,
const QSqlRecord &  mzcalibration_record 
)

Definition at line 46 of file mzcalibrationstore.cpp.

49 {
50  //qDebug();
51  MzCalibrationInterfaceSPtr msp_mzCalibration = nullptr;
52 
53  QString mz_calibration_key =
54  QString("%1-%2-%3-%4")
55  .arg(mz_calibration_record.value("Id").toInt())
56  .arg(mz_calibration_record.value("ModelType").toInt())
57  .arg(QString::number(T1_frame, 'g', 10))
58  .arg(QString::number(T2_frame, 'g', 10));
59 
60 
61  auto itmap = m_mapMzCalibrationSPtr.find(mz_calibration_key);
62  if(itmap != m_mapMzCalibrationSPtr.end())
63  {
64  //qDebug() << mz_calibration_key << " calibration object found";
65  msp_mzCalibration = itmap->second;
66  }
67  else
68  {
69  if(mz_calibration_record.value("ModelType").toInt() == 1)
70  {
71  msp_mzCalibration = std::make_shared<MzCalibrationModel1>(
72  T1_frame,
73  T2_frame,
74  mz_calibration_record.value("DigitizerTimebase")
75  .toDouble(), // MzCalibration.DigitizerTimebase
76  mz_calibration_record.value("DigitizerDelay")
77  .toDouble(), // MzCalibration.DigitizerDelay
78  mz_calibration_record.value("C0").toDouble(), // MzCalibration.C0
79  mz_calibration_record.value("C1").toDouble(), // MzCalibration.C1
80  mz_calibration_record.value("C2").toDouble(), // MzCalibration.C2
81  mz_calibration_record.value("C3").toDouble(), // MzCalibration.C3
82  mz_calibration_record.value("C4").toDouble(), // MzCalibration.C4
83  mz_calibration_record.value("T1").toDouble(),
84  mz_calibration_record.value("T2").toDouble(),
85  mz_calibration_record.value("dC1").toDouble(),
86  mz_calibration_record.value("dC2").toDouble());
87  }
88  else
89  {
90  //qDebug();
91  throw PappsoException(
92  QObject::tr(
93  "ERROR in MzCalibrationStore::getInstance : MzCalibration "
94  "ModelType \"%1\" not available")
95  .arg(mz_calibration_record.value("ModelType").toInt()));
96  }
97 
99  std::pair<QString, MzCalibrationInterfaceSPtr>(mz_calibration_key,
100  msp_mzCalibration));
101  }
102 
103  if(msp_mzCalibration == nullptr)
104  {
105  //qDebug();
106  throw PappsoException(QObject::tr(
107  "ERROR in MzCalibrationStore::getInstance MzCalibration is NULL"));
108  }
109 
110  //qDebug();
111  return (msp_mzCalibration);
112 }
std::map< QString, MzCalibrationInterfaceSPtr > m_mapMzCalibrationSPtr
std::shared_ptr< MzCalibrationInterface > MzCalibrationInterfaceSPtr

References m_mapMzCalibrationSPtr.

Referenced by pappso::TimsData::getTimsFrameBaseCstSPtr(), and pappso::TimsData::getTimsFrameCstSPtr().

Member Data Documentation

◆ m_mapMzCalibrationSPtr

std::map<QString, MzCalibrationInterfaceSPtr> pappso::MzCalibrationStore::m_mapMzCalibrationSPtr
private

Definition at line 56 of file mzcalibrationstore.h.

Referenced by getInstance().


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