NSCL DDAS 12.2-009
Support for XIA DDAS at FRIB
CPixieTraceUtilities.h
Go to the documentation of this file.
1
7#ifndef CPIXIETRACEUTILITIES_H
8#define CPIXIETRACEUTILITIES_H
9
10#include <memory>
11#include <string>
12#include <vector>
13
14class CDataGenerator;
15
35private:
36 bool m_useGenerator;
37 double m_validAmplitude;
38 std::unique_ptr<CDataGenerator> m_pGenerator;
39 std::vector<unsigned short> m_trace;
40 std::string m_lastErrorMessage;
41
42public:
47
58 int ReadTrace(int module, int channel);
69 int ReadFastTrace(int module, int channel);
77 int GetTraceLength(int module, int channel);
82 unsigned short *GetTraceData() { return m_trace.data(); }
87 void SetUseGenerator(bool mode) { m_useGenerator = mode; }
88
94 void SetLastErrorMessage(const char *msg) { m_lastErrorMessage = msg; };
99 const char *GetLastErrorMessage() { return m_lastErrorMessage.c_str(); };
100
101private:
112 void AcquireADCTrace(int module, int channel);
122 unsigned int AcquireTraceLength(int module, int channel);
129 template <typename T> double GetMedianValue(std::vector<T> v);
134 void ResetTrace(unsigned int len);
135};
136
139extern "C" {
144 int chan);
147 int chan);
150 int chan);
155 bool mode);
157const char *
161}
162
163#endif
void CPixieTraceUtilities_delete(CPixieTraceUtilities *utils)
Wrapper for the class destructor.
Definition: CPixieTraceUtilities.cpp:274
int CPixieTraceUtilities_ReadFastTrace(CPixieTraceUtilities *utils, int mod, int chan)
Wrapper for reading an unvalidated trace.
Definition: CPixieTraceUtilities.cpp:245
int CPixieTraceUtilities_GetTraceLength(CPixieTraceUtilities *utils, int mod, int chan)
Wrapper to get trace length.
Definition: CPixieTraceUtilities.cpp:252
CPixieTraceUtilities * CPixieTraceUtilities_new()
Wrapper for the class constructor.
Definition: CPixieTraceUtilities.cpp:233
unsigned short * CPixieTraceUtilities_GetTraceData(CPixieTraceUtilities *utils)
Wrapper to get trace data; cannot throw, unguarded.
Definition: CPixieTraceUtilities.cpp:259
int CPixieTraceUtilities_ReadTrace(CPixieTraceUtilities *utils, int mod, int chan)
Wrapper for reading a validated trace.
Definition: CPixieTraceUtilities.cpp:238
void CPixieTraceUtilities_SetUseGenerator(CPixieTraceUtilities *utils, bool mode)
Wrapper to set generator use.
Definition: CPixieTraceUtilities.cpp:263
const char * CPixieTraceUtilities_GetLastErrorMessage(CPixieTraceUtilities *utils)
Wrapper to get the last error message. Cannot throw, unguarded.
Definition: CPixieTraceUtilities.cpp:270
A class to generate test pulse, run, and baseline data for offline operation of QtScope.
Definition: CDataGenerator.h:31
A class to read and fetch trace data from Pixie-16 modules.
Definition: CPixieTraceUtilities.h:34
int ReadFastTrace(int module, int channel)
Read an unvalidated ADC trace from single channel.
Definition: CPixieTraceUtilities.cpp:95
const char * GetLastErrorMessage()
Get the reason text from the most recent failed operation.
Definition: CPixieTraceUtilities.h:99
void SetLastErrorMessage(const char *msg)
Set the last error message. Used by the extern "C" shims when their catch-all fires.
Definition: CPixieTraceUtilities.h:94
int ReadTrace(int module, int channel)
Read a validated ADC trace from single channel.
Definition: CPixieTraceUtilities.cpp:41
~CPixieTraceUtilities()
Destructor.
Definition: CPixieTraceUtilities.cpp:30
int GetTraceLength(int module, int channel)
Get the trace length for a given module/channel.
Definition: CPixieTraceUtilities.cpp:116
void SetUseGenerator(bool mode)
Set the flag for offline mode using the data generator.
Definition: CPixieTraceUtilities.h:87
CPixieTraceUtilities()
Constructor.
Definition: CPixieTraceUtilities.cpp:26
unsigned short * GetTraceData()
Return the trace data.
Definition: CPixieTraceUtilities.h:82