NSCL DDAS  12.1-001
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 <vector>
11 
31 {
32 private:
33  bool m_useGenerator;
34  std::vector<unsigned short> m_trace;
35  double m_validAmplitude;
36 
37 public:
40 
51  int ReadTrace(int module, int channel);
60  int ReadFastTrace(int module, int channel);
65  unsigned short* GetTraceData() {return m_trace.data();}
70  void SetUseGenerator(bool mode) {m_useGenerator = mode;}
71 
72 private:
82  void AcquireADCTrace(int module, int channel);
89  template<typename T> double GetMedianValue(std::vector<T> v);
94  void ResetTrace(unsigned int len);
95 };
96 
99 extern "C" {
102  {
103  return new CPixieTraceUtilities();
104  }
107  CPixieTraceUtilities* utils, int mod, int chan
108  )
109  {
110  return utils->ReadTrace(mod, chan);
111  }
114  CPixieTraceUtilities* utils, int mod, int chan
115  )
116  {
117  return utils->ReadFastTrace(mod, chan);
118  }
121  CPixieTraceUtilities* utils
122  )
123  {
124  return utils->GetTraceData();
125  }
128  CPixieTraceUtilities* utils, bool mode
129  )
130  {
131  return utils->SetUseGenerator(mode);
132  }
133 
136  {
137  if(utils) {
138  delete utils;
139  utils = nullptr;
140  }
141  }
142 }
143 
144 #endif
CPixieTraceUtilities * CPixieTraceUtilities_new()
Wrapper for the class constructor.
Definition: CPixieTraceUtilities.h:101
void CPixieTraceUtilities_delete(CPixieTraceUtilities *utils)
Wrapper for the class destructor.
Definition: CPixieTraceUtilities.h:135
int CPixieTraceUtilities_ReadFastTrace(CPixieTraceUtilities *utils, int mod, int chan)
Wrapper for reading an unvalidated trace.
Definition: CPixieTraceUtilities.h:113
int CPixieTraceUtilities_ReadTrace(CPixieTraceUtilities *utils, int mod, int chan)
Wrapper for reading a validated trace.
Definition: CPixieTraceUtilities.h:106
void CPixieTraceUtilities_SetUseGenerator(CPixieTraceUtilities *utils, bool mode)
Wrapper to set generator use.
Definition: CPixieTraceUtilities.h:127
unsigned short * CPixieTraceUtilities_GetTraceData(CPixieTraceUtilities *utils)
Wrapper to get trace data.
Definition: CPixieTraceUtilities.h:120
A class to read and fetch trace data from Pixie-16 modules.
Definition: CPixieTraceUtilities.h:31
int ReadFastTrace(int module, int channel)
Read a validated ADC trace from single channel.
Definition: CPixieTraceUtilities.cpp:98
unsigned short * GetTraceData()
Return the trace data.
Definition: CPixieTraceUtilities.h:65
int ReadTrace(int module, int channel)
Read a validated ADC trace from single channel.
Definition: CPixieTraceUtilities.cpp:39
void SetUseGenerator(bool mode)
Set the flag for offline mode using the data generator.
Definition: CPixieTraceUtilities.h:70
CPixieTraceUtilities()
Constructor.
Definition: CPixieTraceUtilities.cpp:24