NSCL DDAS 12.2-009
Support for XIA DDAS at FRIB
CPixieRunUtilities.h
Go to the documentation of this file.
1
7#ifndef CPIXIERUNUTILITIES_H
8#define CPIXIERUNUTILITIES_H
9
10#include <memory>
11#include <string>
12#include <vector>
13
14class CDataGenerator;
15
31private:
32 unsigned int m_histogramLength;
34 unsigned int m_maxBaselines;
35 bool m_runActive;
36 bool m_useGenerator;
37 std::unique_ptr<CDataGenerator> m_pGenerator;
38 std::vector<unsigned int> m_histogram;
39 std::vector<unsigned int> m_baseline;
41 std::vector<std::vector<unsigned int>> m_baselineHistograms;
43 std::vector<std::vector<unsigned int>> m_genHistograms;
44 std::string m_lastErrorMessage;
45
46public:
51
61 int BeginHistogramRun(int module, int nChannels);
71 int EndHistogramRun(int module);
80 int ReadHistogram(int module, int channel);
88 int BeginBaselineRun(int module, int nChannels);
95 int EndBaselineRun(int module);
104 int ReadBaseline(int module, int channel);
112 int ReadModuleStats(int module);
113
118 void SetUseGenerator(bool mode) { m_useGenerator = mode; };
124 void SetLastErrorMessage(const char *msg) { m_lastErrorMessage = msg; };
125
130 unsigned int *GetHistogramData() { return m_histogram.data(); };
135 unsigned int *GetBaselineData() { return m_baseline.data(); };
140 bool GetRunActive() { return m_runActive; };
146 int GetHistogramLength(int module);
153 int GetMaxBaselines(int module);
158 const char *GetLastErrorMessage() { return m_lastErrorMessage.c_str(); };
159
160private:
166 void UpdateBaselineHistograms(int module);
175 void SetHistogramLength(int module) {
176 m_histogramLength = static_cast<unsigned int>(GetHistogramLength(module));
177 };
185 void SetMaxBaselines(int module) {
186 m_maxBaselines = static_cast<unsigned int>(GetMaxBaselines(module));
187 };
188};
189
192extern "C" {
197 unsigned nchan);
202 int chan);
205 unsigned nchan);
210 int chan);
231}
232
233#endif
int CPixieRunUtilities_EndHistogramRun(CPixieRunUtilities *utils, int mod)
Wrapper to end a list-mode histogram data run.
Definition: CPixieRunUtilities.cpp:444
int CPixieRunUtilities_BeginHistogramRun(CPixieRunUtilities *utils, int mod, unsigned nchan)
Wrapper to begin a list-mode histogram data run.
Definition: CPixieRunUtilities.cpp:437
int CPixieRunUtilities_GetMaxBaselines(CPixieRunUtilities *utils, int mod)
Wrapper to get the maximum number of baselines for a single module.
Definition: CPixieRunUtilities.cpp:507
void CPixieRunUtilities_SetUseGenerator(CPixieRunUtilities *utils, bool mode)
Wrapper to setup the offline data generator; no return value, unguarded.
Definition: CPixieRunUtilities.cpp:496
int CPixieRunUtilities_BeginBaselineRun(CPixieRunUtilities *utils, int mod, unsigned nchan)
Wrapper to begin a baseline data run.
Definition: CPixieRunUtilities.cpp:457
void CPixieRunUtilities_delete(CPixieRunUtilities *utils)
Wrapper for the class destructor.
Definition: CPixieRunUtilities.cpp:517
unsigned int * CPixieRunUtilities_GetBaselineData(CPixieRunUtilities *utils)
Wrapper to marshall the baseline data; cannot throw, unguarded.
Definition: CPixieRunUtilities.cpp:487
CPixieRunUtilities * CPixieRunUtilities_new()
Wrapper for the class constructor.
Definition: CPixieRunUtilities.cpp:432
int CPixieRunUtilities_ReadModuleStats(CPixieRunUtilities *utils, int mod)
Wrapper to read run statistics from the module.
Definition: CPixieRunUtilities.cpp:477
int CPixieRunUtilities_ReadHistogram(CPixieRunUtilities *utils, int mod, int chan)
Wrapper to read histogram data.
Definition: CPixieRunUtilities.cpp:450
bool CPixieRunUtilities_GetRunActive(CPixieRunUtilities *utils)
Wrapper to get the run active status.
Definition: CPixieRunUtilities.cpp:491
int CPixieRunUtilities_GetHistogramLength(CPixieRunUtilities *utils, int mod)
Wrapper to get histogram length for a single module.
Definition: CPixieRunUtilities.cpp:501
unsigned int * CPixieRunUtilities_GetHistogramData(CPixieRunUtilities *utils)
Wrapper to marshall the histogram data; cannot throw, unguarded.
Definition: CPixieRunUtilities.cpp:483
int CPixieRunUtilities_EndBaselineRun(CPixieRunUtilities *utils, int mod)
Wrapper to end a baseline data run.
Definition: CPixieRunUtilities.cpp:464
const char * CPixieRunUtilities_GetLastErrorMessage(CPixieRunUtilities *utils)
Wrapper to get the last error message. Cannot throw; unguarded.
Definition: CPixieRunUtilities.cpp:513
int CPixieRunUtilities_ReadBaseline(CPixieRunUtilities *utils, int mod, int chan)
Wrapper to read the baseline data.
Definition: CPixieRunUtilities.cpp:470
A class to generate test pulse, run, and baseline data for offline operation of QtScope.
Definition: CDataGenerator.h:31
Manage list-mode histogram and baseline runs for a Pixie-16 system.
Definition: CPixieRunUtilities.h:30
int EndHistogramRun(int module)
End a histogram (MCA) run for a single module. Assumes module synchronization is OFF but only stops a...
Definition: CPixieRunUtilities.cpp:97
const char * GetLastErrorMessage()
Get the reason text from the most recent failed operation.
Definition: CPixieRunUtilities.h:158
int ReadModuleStats(int module)
Read statistics for a single module after a run is ended.
Definition: CPixieRunUtilities.cpp:277
void SetUseGenerator(bool mode)
Set the use of the generator for offline data.
Definition: CPixieRunUtilities.h:118
int EndBaselineRun(int module)
"End" a baseline run.
Definition: CPixieRunUtilities.cpp:221
int BeginBaselineRun(int module, int nChannels)
Begin a baseline run.
Definition: CPixieRunUtilities.cpp:197
int GetHistogramLength(int module)
Get the histogram length for a module.
Definition: CPixieRunUtilities.cpp:329
int ReadHistogram(int module, int channel)
Read energy histogram from single channel.
Definition: CPixieRunUtilities.cpp:155
int BeginHistogramRun(int module, int nChannels)
Begin a histogram (MCA) run for a single module. Explicitly sets module synchronization to OFF.
Definition: CPixieRunUtilities.cpp:36
int ReadBaseline(int module, int channel)
Acquire baselines and read baseline data from a single channel.
Definition: CPixieRunUtilities.cpp:239
unsigned int * GetBaselineData()
Get the baseline run data.
Definition: CPixieRunUtilities.h:135
CPixieRunUtilities()
Constructor.
Definition: CPixieRunUtilities.cpp:27
~CPixieRunUtilities()
Destructor.
Definition: CPixieRunUtilities.cpp:31
void SetLastErrorMessage(const char *msg)
Set the last error message. Used by the extern "C" shims when their catch-all fires.
Definition: CPixieRunUtilities.h:124
unsigned int * GetHistogramData()
Get the histogram data from a list-mode run.
Definition: CPixieRunUtilities.h:130
bool GetRunActive()
Get the current run status.
Definition: CPixieRunUtilities.h:140
int GetMaxBaselines(int module)
Get the maximum number of baselines for a module.
Definition: CPixieRunUtilities.cpp:356