10 using namespace Diana;
17 fIsOnline = GetBool(
"IsOnline",
false,
false);
20 ev.Add<
QDouble>(
"MaxBaselineInRMS");
21 ev.Add<
QDouble>(
"MaxBaselineInWindow");
22 ev.Add<
QDouble>(
"MaxMinInWindow");
23 ev.Add<
QDouble>(
"MaxMinInWindowInRMS");
27 ev.Add<
QInt>(
"MaxPosInWindow");
28 fPulseLabel = GetString(
"PulseLabel",
"DAQ@Pulse",
false);
29 fBaselineOwner = GetString(
"BaselineOwner",
"BaselineModule",
false);
30 fTomV = GetBool(
"ConvertTomV",
true,
false);
35 double MaxBaselineInWindow =0.;
36 double MaxMinInWindow =0.;
37 int MaxPosInWindow = 0;
40 const int run = ev.
Get<
QHeader>(
"DAQ",
"Header").GetRun();
43 int triggerPosition = ev.
Get<
QPulseInfo>(
"DAQ",
"PulseInfo").GetMasterSample().GetSampleIndex();
49 GlobalData().Get(
"",&
rHandle,
"");
60 bData.GetBaseline()/ADC2mV,
75 bData.GetBaseline()/ADC2mV,
90 double maxInWindow = ADC2mV*(pulse.GetMax());
91 double minInWindow = ADC2mV*(pulse.GetMin());
92 MaxPosInWindow = pulse.GetMaxIndex();
94 MaxBaselineInWindow = maxInWindow-bData.GetBaseline();
95 MaxMinInWindow = maxInWindow-minInWindow;
99 ev.
Get<
QDouble>(
"MaxBaselineInRMS") = maxBaseline/bData.GetBaselineRMS();
100 ev.
Get<
QDouble>(
"MaxBaselineInWindow") = MaxBaselineInWindow;
101 ev.
Get<
QDouble>(
"MaxMinInWindow") = MaxMinInWindow;
102 ev.
Get<
QDouble>(
"RMS") = ADC2mV*(pulse.GetRMS());
103 ev.
Get<
QDouble>(
"Min") = (ADC2mV*pulse).GetMin();
104 ev.
Get<
QDouble>(
"Max") = (ADC2mV*pulse).GetMax();
105 ev.
Get<
QDouble>(
"MaxMinInWindowInRMS") = MaxMinInWindow/bData.GetBaselineRMS();
106 ev.
Get<
QInt>(
"MaxPosInWindow") = MaxPosInWindow;
QRunDataHandle rHandle(753)
QChannelRunData chanRunData
#define REGISTER_MODULE(clazz)
computes basic pulse parameters
void Do(Diana::QEvent &ev)
Do method.
base types wrapped into a QObject. Currently implemented types are QInt QDouble and QFloat....
basic channel and run based info. Used in the QRunData object.
double fSamplingFrequency
sampling frequency in Hz
int fADCMin
ADC minimum in ADC units.
int fADCMax
ADC maximum in ADC units.
double fADC2mV
conversion: mV = ADC * fADC2mV
const Q & GetByLabel(const QEventLabel &label) const
Get a QObject in read mode by label.
void Get(const char *owner, ReadHandle< Q > &handle) const
Get a QObject Handle in read mode.
QError FindMaximumPosition(const Diana::QVector &pulse)
QError ComputeHeight(const Diana::QVector &pulse)
double GetMaxPosition() const
double GetMaxBaseline() const
QError CheckSaturation(const Diana::QVector &pulse, int ADCMax, int ADCMin)
double GetSlowDecay() const
bool GetIsSaturatedHigh()
Raw event: bolometer channel, trigger positions and types.
bool fIsSaturatedLow
IsSaturatedLow.
bool fIsSaturatedHigh
IsSaturatedHigh.
double fRiseTime
RiseTime.
double fStartPosition
Start.
double fMaxPosition
MaxPosition.
double fSlowDecayTime
SlowDecay.
Raw event: sampled waveform.
global handle for QRunData
const QChannelRunData & GetChannelRunData(const int channel) const
get channel based run data quantities
the Diana namespace is needed because sometimes we use Qt libraries, that use same class names of our...