Public Types | |
| enum | QCalibType_t { QCalibADC16, QCalibADC18, QCalibmV } |
| calibration types More... | |
Public Member Functions | |
| QApolloCalib (const QDbDetector::DetectorName detName) | |
| ctor | |
| virtual | ~QApolloCalib () |
| dtor | |
| bool | SetRun (const int run) |
| bool | SetLg (const int lg) |
| size_t | Scale (const QVector &inVector, QVector &outVector, const QCalibType_t calType, const size_t howmany, const size_t first=0) const |
| scale input vector to requested output type | |
| bool | Scale2mV (const long val, float &scaled) const |
| scale a single value to mV | |
| bool | Scale2ADC16 (const long val, unsigned short &scaled) const |
| scale a single value to 16 bit ADC units in the range 0:10 V | |
| bool | Scale2ADC18 (const long val, long &scaled) const |
| scale a single value to 18 bit ADC units in the range -10:10 V | |
Private Member Functions | |
| void | FillMaps (const int run) |
| fill maps of calibration types and valid logical channels. This method is called every time SetRun() is called | |
| bool | Scale2mVDouble (const long val, double &scaled) const |
| scale a single value to mV | |
Private Attributes | |
| std::map< int, int > | fBoards |
| map of lg ch and corresponding board id | |
|
std::map< int, std::vector< double > > | fCoeffs |
| map of board id and corresponding scaling coefficients | |
| int | fCurrentBoard |
| current board id used for calibration | |
| const std::vector< double > * | fCurrentCalibCoeffs |
| current set of calibration coefficients | |
| const QDbDetector::DetectorName | fDetectorName |
| detector identifier. This value can only be set in the constructor and cannot be modified | |
calibration types
| QApolloCalib::QApolloCalib | ( | const QDbDetector::DetectorName | detName | ) |
| bool QApolloCalib::SetRun | ( | const int | run | ) |
set run number the scaling will be applied to. Run number is needed to identfy valid logical channels and the boards they belong to.
| bool QApolloCalib::SetLg | ( | const int | lg | ) |
set lg channel the scaling will be applied to. Lg channel is needed to select the correct calibration coefficients.
| size_t QApolloCalib::Scale | ( | const QVector & | inVector, | |
| QVector & | outVector, | |||
| const QCalibType_t | calType, | |||
| const size_t | howmany, | |||
| const size_t | first = 0 | |||
| ) | const |
scale input vector to requested output type
| inVector | input vector containing unscaled 18 bit samples | |
| outVector | vector containing samples in requested range, scaled to the currently set type | |
| howmany | total number of samples to be scaled | |
| first | index of first sample to be scaled |
| bool QApolloCalib::Scale2mV | ( | const long | val, | |
| float & | scaled | |||
| ) | const |
scale a single value to mV
| val | 18 bit raw value to be scaled | |
| scaled | filled with scaled value |
| bool QApolloCalib::Scale2ADC16 | ( | const long | val, | |
| unsigned short & | scaled | |||
| ) | const |
scale a single value to 16 bit ADC units in the range 0:10 V
| val | 18 bit raw value to be scaled | |
| scaled | filled with scaled value |
| bool QApolloCalib::Scale2ADC18 | ( | const long | val, | |
| long & | scaled | |||
| ) | const |
scale a single value to 18 bit ADC units in the range -10:10 V
| val | 18 bit raw value to be scaled | |
| scaled | filled with scaled value |
| bool QApolloCalib::Scale2mVDouble | ( | const long | val, | |
| double & | scaled | |||
| ) | const [private] |
scale a single value to mV
| val | 18 bit raw value to be scaled | |
| scaled | filled with scaled value |
1.5.1