23#ifndef RestDAQ_TRestRawSignalEvent
24#define RestDAQ_TRestRawSignalEvent
29#include <TRestEvent.h>
30#include <TRestRawReadoutMetadata.h>
37#include "TRestRawSignal.h"
48 TVector2 fBaseLineRange = TVector2(-1, -1);
49 TVector2 fRange = TVector2(-1, -1);
51 std::vector<TRestRawSignal> fSignal;
57 Bool_t signalIDExists(Int_t sID) {
58 if (GetSignalIndex(sID) == -1)
return false;
62 std::vector<TRestRawSignal> GetSignals()
const {
return fSignal; }
67 void RemoveSignalWithId(Int_t sId);
71 void SetTailPoints(Int_t p) {
72 for (
int n = 0; n < GetNumberOfSignals(); n++) fSignal[n].SetTailPoints(p);
84 fBaseLineRange = TVector2(from, to);
85 for (
int n = 0; n < GetNumberOfSignals(); n++) fSignal[n].CalculateBaseLine(from, to, option);
88 void SetRange(TVector2 range) { SetRange(range.X(), range.Y()); }
90 void SetRange(Int_t from, Int_t to) {
91 fRange = TVector2(from, to);
92 for (
int n = 0; n < GetNumberOfSignals(); n++) fSignal[n].SetRange(fRange);
96 inline Int_t GetNumberOfSignals()
const {
return fSignal.size(); }
99 void PrintSignalIds() {
100 for (
int n = 0; n < GetNumberOfSignals(); n++) {
101 if (n > 0) std::cout <<
" , ";
104 std::cout << std::endl;
107 std::vector<int> GetSignalIds() {
108 std::vector<int> ids;
109 for (
int n = 0; n < GetNumberOfSignals(); n++) ids.push_back(GetSignal(n)->
GetSignalID());
113 Bool_t isBaseLineInitialized() {
115 for (
int n = 0; n < GetNumberOfSignals(); n++)
116 if (fSignal[n].isBaseLineInitialized())
return true;
121 Int_t index = GetSignalIndex(sid);
122 if (index < 0)
return nullptr;
124 return &fSignal[index];
133 Int_t GetLowestWidth(Double_t minPeakAmplitude = 0);
134 Double_t GetLowAverageWidth(Int_t nSignals = 5, Double_t minPeakAmplitude = 0);
135 Double_t GetAverageWidth(Double_t minPeakAmplitude = 0);
137 Int_t GetSignalIndex(Int_t signalID);
139 Double_t GetBaseLineAverage();
140 Double_t GetBaseLineSigmaAverage();
142 Double_t GetIntegral();
145 Double_t GetSlopeIntegral();
146 Double_t GetRiseSlope();
147 Double_t GetRiseTime();
148 Double_t GetTripleMaxIntegral();
150 Double_t GetMaxValue();
151 Double_t GetMinValue();
152 Double_t GetMinTime();
153 Double_t GetMaxTime();
159 TPad*
DrawEvent(
const TString& option =
"");
160 void DrawSignals(TPad* pad,
const std::vector<Int_t>& signals);
161 TPad*
DrawSignal(Int_t signalID,
const TString& option =
"");
A base class for any REST event.
An event container for time rawdata signals with fixed length.
void DrawSignals(TPad *pad, const std::vector< Int_t > &signals)
This method draws selected signal IDs, given by the vector passed as reference.
TPad * DrawEvent(const TString &option="")
This method draws current raw signal event in a TPad.
void SetBaseLineRange(Int_t from, Int_t to, std::string option="")
TPad * DrawSignal(Int_t signalID, const TString &option="")
This method draws selected signalID by ID, with baseline range and points over threshold highlighted.
void SetBaseLineRange(TVector2 blRange, std::string option="")
void AddChargeToSignal(Int_t sgnlID, Int_t bin, Short_t value)
Double_t GetThresholdIntegral()
It defines a Short_t array with a physical parameter that evolves in time using a fixed time bin.
Int_t GetSignalID() const
Returns the value of signal ID.