NSCL DDAS  12.1-001
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 <vector>
11 
27 {
28 private:
29  std::vector<unsigned int> m_histogram;
30  std::vector<unsigned int> m_baseline;
32  std::vector<std::vector<unsigned int>> m_baselineHistograms;
34  std::vector<std::vector<unsigned int>> m_genHistograms;
35  bool m_runActive;
36  bool m_useGenerator;
37 
38 public:
41 
50  int BeginHistogramRun(int module);
58  int EndHistogramRun(int module);
67  int ReadHistogram(int module, int channel);
68 
74  int BeginBaselineRun(int module);
81  int EndBaselineRun(int module);
91  int ReadBaseline(int module, int channel);
99  int ReadModuleStats(int module);
104  unsigned int* GetHistogramData() { return m_histogram.data(); };
109  unsigned int* GetBaselineData() { return m_baseline.data(); };
114  bool GetRunActive() { return m_runActive; };
119  void SetUseGenerator(bool mode) { m_useGenerator = mode; };
120 
121 private:
127  void UpdateBaselineHistograms(int module);
128 };
129 
132 extern "C" {
135  {
136  return new CPixieRunUtilities();
137  }
138 
141  CPixieRunUtilities* utils, int mod
142  )
143  {
144  return utils->BeginHistogramRun(mod);
145  }
148  CPixieRunUtilities* utils, int mod
149  )
150  {
151  return utils->EndHistogramRun(mod);
152  }
155  CPixieRunUtilities* utils, int mod, int chan
156  )
157  {
158  return utils->ReadHistogram(mod, chan);
159  }
160 
163  CPixieRunUtilities* utils, int mod
164  )
165  {
166  return utils->BeginBaselineRun(mod);
167  }
170  {
171  return utils->EndBaselineRun(mod);
172  }
175  CPixieRunUtilities* utils, int mod, int chan
176  )
177  {
178  return utils->ReadBaseline(mod, chan);
179  }
180 
183  {
184  return utils->ReadModuleStats(mod);
185  }
188  CPixieRunUtilities* utils
189  )
190  {
191  return utils->GetHistogramData();
192  }
195  {
196  return utils->GetBaselineData();
197  }
200  {
201  return utils->GetRunActive();
202  }
205  CPixieRunUtilities* utils, bool mode
206  )
207  {
208  return utils->SetUseGenerator(mode);
209  }
210 
213  {
214  if(utils) {
215  delete utils;
216  utils = nullptr;
217  }
218  };
219 }
220 
221 #endif
unsigned int * CPixieRunUtilities_GetHistogramData(CPixieRunUtilities *utils)
Wrapper to marshall the histogram data.
Definition: CPixieRunUtilities.h:187
int CPixieRunUtilities_BeginHistogramRun(CPixieRunUtilities *utils, int mod)
Wrapper to begin a list-mode histogram data run.
Definition: CPixieRunUtilities.h:140
int CPixieRunUtilities_EndHistogramRun(CPixieRunUtilities *utils, int mod)
Wrapper to end a list-mode histogram data run.
Definition: CPixieRunUtilities.h:147
void CPixieRunUtilities_SetUseGenerator(CPixieRunUtilities *utils, bool mode)
Wrapper to setup the offline data generator.
Definition: CPixieRunUtilities.h:204
CPixieRunUtilities * CPixieRunUtilities_new()
Wrapper for the class constructor.
Definition: CPixieRunUtilities.h:134
void CPixieRunUtilities_delete(CPixieRunUtilities *utils)
Wrapper for the class constructor.
Definition: CPixieRunUtilities.h:212
int CPixieRunUtilities_ReadModuleStats(CPixieRunUtilities *utils, int mod)
Wrapper to read run statistics from the module.
Definition: CPixieRunUtilities.h:182
int CPixieRunUtilities_ReadHistogram(CPixieRunUtilities *utils, int mod, int chan)
Wrapper to read histogram data.
Definition: CPixieRunUtilities.h:154
bool CPixieRunUtilities_GetRunActive(CPixieRunUtilities *utils)
Wrapper to get the run active status.
Definition: CPixieRunUtilities.h:199
int CPixieRunUtilities_EndBaselineRun(CPixieRunUtilities *utils, int mod)
Wrapper to end a baseline data run.
Definition: CPixieRunUtilities.h:169
int CPixieRunUtilities_ReadBaseline(CPixieRunUtilities *utils, int mod, int chan)
Wrapper to read the baseline data.
Definition: CPixieRunUtilities.h:174
int CPixieRunUtilities_BeginBaselineRun(CPixieRunUtilities *utils, int mod)
Wrapper to begin a baseline data run.
Definition: CPixieRunUtilities.h:162
unsigned int * CPixieRunUtilities_GetBaselineData(CPixieRunUtilities *utils)
Wrapper to marshall the baseline data.
Definition: CPixieRunUtilities.h:194
Manage list-mode histogram and baseline runs for a Pixie-16 system.
Definition: CPixieRunUtilities.h:27
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:109
int ReadModuleStats(int module)
Read statistics for a single module after a run is ended.
Definition: CPixieRunUtilities.cpp:295
void SetUseGenerator(bool mode)
Set the use of the generator for offline data.
Definition: CPixieRunUtilities.h:119
int EndBaselineRun(int module)
"End" a baseline run.
Definition: CPixieRunUtilities.cpp:232
int BeginHistogramRun(int module)
Begin a histogram (MCA) run for a single module. Explicitly sets module synchronization to OFF.
Definition: CPixieRunUtilities.cpp:42
int ReadHistogram(int module, int channel)
Read energy histogram from single channel.
Definition: CPixieRunUtilities.cpp:166
unsigned int * GetBaselineData()
Get the baseline run data.
Definition: CPixieRunUtilities.h:109
unsigned int * GetHistogramData()
Get the histogram data from a list-mode run.
Definition: CPixieRunUtilities.h:104
int ReadBaseline(int module, int channel)
Acquire baselines and read baseline data from a single channel.
Definition: CPixieRunUtilities.cpp:252
CPixieRunUtilities()
Constructor.
Definition: CPixieRunUtilities.cpp:25
int BeginBaselineRun(int module)
Begin a baseline run.
Definition: CPixieRunUtilities.cpp:214
bool GetRunActive()
Get the current run status.
Definition: CPixieRunUtilities.h:114