Public Types | Public Member Functions | Private Attributes | List of all members
raw::RawDigit Class Reference

Collection of charge vs time digitized from a single readout channel. More...

#include <RawDigit.h>

Public Types

typedef std::vector< short > ADCvector_t
 Type representing a (compressed) vector of ADC counts. More...
 

Public Member Functions

 RawDigit ()
 Default constructor: an empty raw digit. More...
 
 RawDigit (ChannelID_t channel, ULong64_t samples, ADCvector_t const &adclist, raw::Compress_t compression=raw::kNone)
 Constructor: sets all the fields. More...
 
 RawDigit (ChannelID_t channel, ULong64_t samples, ADCvector_t &&adclist, raw::Compress_t compression=raw::kNone)
 Constructor: sets all the fields. More...
 
void SetPedestal (float ped, float sigma=1.)
 Set pedestal and its RMS (the latter is 0 by default) More...
 
Accessors
const ADCvector_tADCs () const
 Reference to the compressed ADC count vector. More...
 
size_t NADC () const
 Number of elements in the compressed ADC sample vector. More...
 
short ADC (int i) const
 ADC vector element number i; no decompression is applied. More...
 
ChannelID_t Channel () const
 DAQ channel this raw data was read from. More...
 
ULong64_t Samples () const
 Number of samples in the uncompressed ADC data. More...
 
float GetPedestal () const
 
float GetSigma () const
 TODO RMS of the pedestal level? More...
 
raw::Compress_t Compression () const
 Compression algorithm used to store the ADC counts. More...
 

Private Attributes

std::vector< short > fADC
 ADC readout per tick, before pedestal subtraction. More...
 
ChannelID_t fChannel
 channel number in the readout More...
 
ULong64_t fSamples
 number of ticks of the clock More...
 
float fPedestal
 pedestal for this channel More...
 
float fSigma
 sigma of the pedestal counts for this channel More...
 
Compress_t fCompression
 compression scheme used for the ADC vector More...
 

Detailed Description

Collection of charge vs time digitized from a single readout channel.

This class hosts potentially compressed data. It does not provide methods to uncompress it, not the same object can become compressed/uncompressed or change compression type: to use a compressed RawDigit, one has to create a new buffer, fill and use it:

raw::RawDigit::ADCvector_t ADCs(digits.Samples()); // fix the size!
raw::Uncompress(digits.ADCs(), ADCs, digits.Compression());

(remember that you have to provide raw::Uncompress() with a buffer large enough to contain the uncompressed data).

The class provides some flags, defined in FlagIndices_t. The construction of a RawDigit should be for example in the form:

raw::RawDigit::ADCvector_t ADCs;
// ... fill the digits etc.
raw::RawDigit saturatedDigit(
  channel, ADCs.size(), ADCs, raw::kNone,
  DefaultFlags | SaturationBit
  );
raw::RawDigit unsaturatedDigit(
  channel, ADCs.size(), ADCs, raw::kNone,
  DefaultFlags & ~SaturationBit
  );

Definition at line 69 of file RawDigit.h.

Member Typedef Documentation

Type representing a (compressed) vector of ADC counts.

Definition at line 73 of file RawDigit.h.

Constructor & Destructor Documentation

raw::RawDigit::RawDigit ( )

Default constructor: an empty raw digit.

Definition at line 20 of file RawDigit.cxx.

21  : fADC(0)
23  , fSamples(0)
24  , fPedestal(0.)
25  , fSigma(0.)
27  // , fFlags(DefaultFlags)
28  {}
std::vector< short > fADC
ADC readout per tick, before pedestal subtraction.
Definition: RawDigit.h:183
float fSigma
sigma of the pedestal counts for this channel
Definition: RawDigit.h:189
no compression
Definition: RawTypes.h:9
constexpr ChannelID_t InvalidChannelID
ID of an invalid channel.
Definition: RawTypes.h:32
Compress_t fCompression
compression scheme used for the ADC vector
Definition: RawDigit.h:191
ULong64_t fSamples
number of ticks of the clock
Definition: RawDigit.h:186
float fPedestal
pedestal for this channel
Definition: RawDigit.h:188
ChannelID_t fChannel
channel number in the readout
Definition: RawDigit.h:185
raw::RawDigit::RawDigit ( ChannelID_t  channel,
ULong64_t  samples,
ADCvector_t const &  adclist,
raw::Compress_t  compression = raw::kNone 
)

Constructor: sets all the fields.

Parameters
channelID of the channel the digits were acquired from
samplesnumber of ADC samples in the uncompressed collection
adclistlist of ADC counts vs. time, compressed
compressioncompression algorithm used in adclist

Data from the adclist is copied into the raw digits. Pedestal is set to 0 by default.

Definition at line 32 of file RawDigit.cxx.

39  : fADC(adclist)
40  , fChannel(channel)
41  , fSamples(samples)
42  , fPedestal(0.)
43  , fSigma(0.)
44  , fCompression(compression)
45  // , fFlags(flags)
46  {}
std::vector< short > fADC
ADC readout per tick, before pedestal subtraction.
Definition: RawDigit.h:183
float fSigma
sigma of the pedestal counts for this channel
Definition: RawDigit.h:189
uint8_t channel
Definition: CRTFragment.hh:201
Compress_t fCompression
compression scheme used for the ADC vector
Definition: RawDigit.h:191
ULong64_t fSamples
number of ticks of the clock
Definition: RawDigit.h:186
float fPedestal
pedestal for this channel
Definition: RawDigit.h:188
ChannelID_t fChannel
channel number in the readout
Definition: RawDigit.h:185
raw::RawDigit::RawDigit ( ChannelID_t  channel,
ULong64_t  samples,
ADCvector_t &&  adclist,
raw::Compress_t  compression = raw::kNone 
)

Constructor: sets all the fields.

Parameters
channelID of the channel the digits were acquired from
samplesnumber of ADC samples in the uncompressed collection
adclistlist of ADC counts vs. time, compressed
compressioncompression algorithm used in adclist

Data from the adclist is moved into the raw digits. Pedestal is set to 0 by default.

Definition at line 50 of file RawDigit.cxx.

57  : fADC(std::move(adclist))
58  , fChannel(channel)
59  , fSamples(samples)
60  , fPedestal(0.)
61  , fSigma(0.)
62  , fCompression(compression)
63  // , fFlags(flags)
64  {}
std::vector< short > fADC
ADC readout per tick, before pedestal subtraction.
Definition: RawDigit.h:183
float fSigma
sigma of the pedestal counts for this channel
Definition: RawDigit.h:189
uint8_t channel
Definition: CRTFragment.hh:201
def move(depos, offset)
Definition: depos.py:107
Compress_t fCompression
compression scheme used for the ADC vector
Definition: RawDigit.h:191
ULong64_t fSamples
number of ticks of the clock
Definition: RawDigit.h:186
float fPedestal
pedestal for this channel
Definition: RawDigit.h:188
ChannelID_t fChannel
channel number in the readout
Definition: RawDigit.h:185

Member Function Documentation

short raw::RawDigit::ADC ( int  i) const
inline

ADC vector element number i; no decompression is applied.

Definition at line 208 of file RawDigit.h.

208 { return fADC.at(i); }
std::vector< short > fADC
ADC readout per tick, before pedestal subtraction.
Definition: RawDigit.h:183
const raw::RawDigit::ADCvector_t & raw::RawDigit::ADCs ( ) const
inline

Reference to the compressed ADC count vector.

Definition at line 210 of file RawDigit.h.

210 { return fADC; }
std::vector< short > fADC
ADC readout per tick, before pedestal subtraction.
Definition: RawDigit.h:183
raw::ChannelID_t raw::RawDigit::Channel ( ) const
inline

DAQ channel this raw data was read from.

Definition at line 212 of file RawDigit.h.

212 { return fChannel; }
ChannelID_t fChannel
channel number in the readout
Definition: RawDigit.h:185
raw::Compress_t raw::RawDigit::Compression ( ) const
inline

Compression algorithm used to store the ADC counts.

Definition at line 216 of file RawDigit.h.

216 { return fCompression; }
Compress_t fCompression
compression scheme used for the ADC vector
Definition: RawDigit.h:191
float raw::RawDigit::GetPedestal ( ) const
inline

Pedestal level (ADC counts)

Deprecated:
Might be removed soon

Definition at line 214 of file RawDigit.h.

214 { return fPedestal; }
float fPedestal
pedestal for this channel
Definition: RawDigit.h:188
float raw::RawDigit::GetSigma ( ) const
inline

TODO RMS of the pedestal level?

Definition at line 215 of file RawDigit.h.

215 { return fSigma; }
float fSigma
sigma of the pedestal counts for this channel
Definition: RawDigit.h:189
size_t raw::RawDigit::NADC ( ) const
inline

Number of elements in the compressed ADC sample vector.

Definition at line 207 of file RawDigit.h.

207 { return fADC.size(); }
std::vector< short > fADC
ADC readout per tick, before pedestal subtraction.
Definition: RawDigit.h:183
ULong64_t raw::RawDigit::Samples ( ) const
inline

Number of samples in the uncompressed ADC data.

Definition at line 213 of file RawDigit.h.

213 { return fSamples; }
ULong64_t fSamples
number of ticks of the clock
Definition: RawDigit.h:186
void raw::RawDigit::SetPedestal ( float  ped,
float  sigma = 1. 
)

Set pedestal and its RMS (the latter is 0 by default)

Definition at line 68 of file RawDigit.cxx.

69  {
70 
71  fPedestal = ped;
72  fSigma = sigma;
73 
74  } // RawDigit::SetPedestal()
float fSigma
sigma of the pedestal counts for this channel
Definition: RawDigit.h:189
float fPedestal
pedestal for this channel
Definition: RawDigit.h:188

Member Data Documentation

std::vector<short> raw::RawDigit::fADC
private

ADC readout per tick, before pedestal subtraction.

Definition at line 183 of file RawDigit.h.

ChannelID_t raw::RawDigit::fChannel
private

channel number in the readout

Definition at line 185 of file RawDigit.h.

Compress_t raw::RawDigit::fCompression
private

compression scheme used for the ADC vector

Definition at line 191 of file RawDigit.h.

float raw::RawDigit::fPedestal
private

pedestal for this channel

Definition at line 188 of file RawDigit.h.

ULong64_t raw::RawDigit::fSamples
private

number of ticks of the clock

Definition at line 186 of file RawDigit.h.

float raw::RawDigit::fSigma
private

sigma of the pedestal counts for this channel

Definition at line 189 of file RawDigit.h.


The documentation for this class was generated from the following files: