CbmRoot
CbmStsParAsic Class Reference

Parameters of the STS readout ASIC. More...

#include <CbmStsParAsic.h>

Public Member Functions

 CbmStsParAsic ()
 Default constructor. More...
 
 CbmStsParAsic (UShort_t nAdc, Double_t dynRange, Double_t threshold, Double_t timeResol, Double_t deadTime, Double_t noise, Double_t znr)
 Constructor with parameters. More...
 
 CbmStsParAsic (const CbmStsParAsic &)
 Copy constructor (disabled) More...
 
 CbmStsParAsic (CbmStsParAsic &&)=default
 Move constructor (disabled) More...
 
CbmStsParAsicoperator= (const CbmStsParAsic &other)
 Copy assignment operator. More...
 
CbmStsParAsicoperator= (CbmStsParAsic &&)=default
 Move assignment operator (disabled) More...
 
 ~CbmStsParAsic ()
 Destructor. More...
 
Double_t AdcToCharge (UShort_t adc) const
 Charge from ADC channel (mean) More...
 
Short_t ChargeToAdc (Double_t charge) const
 ADC channel for a given charge. More...
 
Double_t GetDeadTime () const
 Single-channel dead time. More...
 
Double_t GetDynRange () const
 Dynamic range of ADC. More...
 
UShort_t GetNofAdc () const
 Number of ADC channels. More...
 
Double_t GetNoise () const
 Electronic noise RMS. More...
 
Double_t GetNoiseRate () const
 Single-channel noise rate. More...
 
Double_t GetRandomNoiseCharge () const
 Random noise charge. More...
 
Double_t GetThreshold () const
 ADC Threshold. More...
 
Double_t GetTimeResol () const
 Time resolution. More...
 
Double_t GetZeroNoiseRate () const
 Zero-crossing noise rate. More...
 
void Init ()
 Initialisation. More...
 
Bool_t IsChannelActive (UShort_t channel) const
 Check for a channel being active. More...
 
void Set (UShort_t nAdc, Double_t dynRange, Double_t threshold, Double_t timeResol, Double_t deadTime, Double_t noise, Double_t zeroNoiseRate, std::set< UShort_t > deadChannels={})
 Set parameters. More...
 
std::string ToString () const
 Info to string. More...
 

Private Member Functions

 ClassDefNV (CbmStsParAsic, 2)
 

Private Attributes

UShort_t fNofAdc = 0
 Number of ADC channels. More...
 
Double_t fDynRange = 0.
 Dynamic range [e]. More...
 
Double_t fThreshold = 0.
 Threshold [e]. More...
 
Double_t fTimeResolution = 0.
 Time resolution [ns]. More...
 
Double_t fDeadTime = 0.
 Channel dead time [ns]. More...
 
Double_t fNoise = 0.
 RMS of noise [e]. More...
 
Double_t fZeroNoiseRate = 0.
 Zero-crossing noise rate [1/ns]. More...
 
std::set< UShort_t > fDeadChannels {}
 Map of dead channels. More...
 
Bool_t fIsInit = kFALSE
 
TF1 * fNoiseCharge = nullptr
 Flag for being initialised. More...
 

Detailed Description

Parameters of the STS readout ASIC.

Author
Volker Friese v.fri.nosp@m.ese@.nosp@m.gsi.d.nosp@m.e
Since
23.03.2020

This class represents the configuration parameters of a readout ASIC of the STS (STSXYTER).

Definition at line 25 of file CbmStsParAsic.h.

Constructor & Destructor Documentation

◆ CbmStsParAsic() [1/4]

CbmStsParAsic::CbmStsParAsic ( )
inline

Default constructor.

Definition at line 29 of file CbmStsParAsic.h.

◆ CbmStsParAsic() [2/4]

CbmStsParAsic::CbmStsParAsic ( UShort_t  nAdc,
Double_t  dynRange,
Double_t  threshold,
Double_t  timeResol,
Double_t  deadTime,
Double_t  noise,
Double_t  znr 
)

Constructor with parameters.

Parameters
nAdcNumber of ADC channels
dynRangeDynamic range of ADC [e]
thresholdADC threshold [e]
timeResolTime resolution [ns]
deadTimeSingle-channel dead time [ns]
noiseNoise RMS [e]
znrZero-crossing noise rate [1/ns]

◆ CbmStsParAsic() [3/4]

CbmStsParAsic::CbmStsParAsic ( const CbmStsParAsic other)

Copy constructor (disabled)

Definition at line 29 of file CbmStsParAsic.cxx.

References fDeadTime, fDynRange, fNofAdc, fNoise, fThreshold, fTimeResolution, fZeroNoiseRate, and Set().

◆ CbmStsParAsic() [4/4]

CbmStsParAsic::CbmStsParAsic ( CbmStsParAsic &&  )
default

Move constructor (disabled)

◆ ~CbmStsParAsic()

CbmStsParAsic::~CbmStsParAsic ( )

Destructor.

Definition at line 56 of file CbmStsParAsic.cxx.

References fNoiseCharge.

Member Function Documentation

◆ AdcToCharge()

Double_t CbmStsParAsic::AdcToCharge ( UShort_t  adc) const
inline

Charge from ADC channel (mean)

Parameters
adcADC channel
Returns
Mean charge in ADC channel [e]

Definition at line 74 of file CbmStsParAsic.h.

References fDynRange, fNofAdc, and fThreshold.

Referenced by CbmStsAlgoAnaCluster::WeightedMean().

◆ ChargeToAdc()

Short_t CbmStsParAsic::ChargeToAdc ( Double_t  charge) const

ADC channel for a given charge.

Parameters
chargeCharge [e]
Returns
ADC channel number

Returns -1 for charge below threshold.

Definition at line 63 of file CbmStsParAsic.cxx.

References fDynRange, fNofAdc, and fThreshold.

◆ ClassDefNV()

CbmStsParAsic::ClassDefNV ( CbmStsParAsic  ,
 
)
private

◆ GetDeadTime()

Double_t CbmStsParAsic::GetDeadTime ( ) const
inline

Single-channel dead time.

Returns
Dead time [ns]

Definition at line 91 of file CbmStsParAsic.h.

References fDeadTime.

Referenced by CbmStsSimModule::AddSignal(), and CbmStsDigitizeQaReport::Create().

◆ GetDynRange()

Double_t CbmStsParAsic::GetDynRange ( ) const
inline

Dynamic range of ADC.

Returns
Dynamic range [e]

Definition at line 97 of file CbmStsParAsic.h.

References fDynRange.

Referenced by CbmStsDigitizeQaReport::Create().

◆ GetNofAdc()

UShort_t CbmStsParAsic::GetNofAdc ( ) const
inline

Number of ADC channels.

Returns
Number of ADC channels

Definition at line 103 of file CbmStsParAsic.h.

References fNofAdc.

Referenced by CbmStsDigitizeQaReport::Create(), and CbmStsDigitizeQa::CreateDigiHistograms().

◆ GetNoise()

Double_t CbmStsParAsic::GetNoise ( ) const
inline

Electronic noise RMS.

Returns
Noise RMS [e]

Definition at line 109 of file CbmStsParAsic.h.

References fNoise.

Referenced by CbmStsAlgoAnaCluster::AnaSizeN(), and CbmStsDigitizeQaReport::Create().

◆ GetNoiseRate()

Double_t CbmStsParAsic::GetNoiseRate ( ) const

Single-channel noise rate.

Returns
Noise rate [1/s]

Definition at line 72 of file CbmStsParAsic.cxx.

References fNoise, fThreshold, and fZeroNoiseRate.

Referenced by ToString().

◆ GetRandomNoiseCharge()

Double_t CbmStsParAsic::GetRandomNoiseCharge ( ) const

Random noise charge.

Returns
Charge of a random noise signal [e]

The noise charge is samples from a Gaussian with zero mean and width equal to the noise RMS, starting from threshold and up to 10 times the noise RMS.

Definition at line 81 of file CbmStsParAsic.cxx.

References fIsInit, and fNoiseCharge.

◆ GetThreshold()

Double_t CbmStsParAsic::GetThreshold ( ) const
inline

ADC Threshold.

Returns
Threshold [e]

Definition at line 131 of file CbmStsParAsic.h.

References fThreshold.

Referenced by CbmStsDigitizeQaReport::Create().

◆ GetTimeResol()

Double_t CbmStsParAsic::GetTimeResol ( ) const
inline

Time resolution.

Returns
Time resolution [ns]

Definition at line 137 of file CbmStsParAsic.h.

References fTimeResolution.

Referenced by CbmStsAlgoFindClusters::CheckChannel(), CbmStsDigitizeQaReport::Create(), and CbmStsSimModule::ProcessAnalogBuffer().

◆ GetZeroNoiseRate()

Double_t CbmStsParAsic::GetZeroNoiseRate ( ) const
inline

Zero-crossing noise rate.

Returns
Zero-crossing noise rate [1/ns]

Definition at line 143 of file CbmStsParAsic.h.

References fZeroNoiseRate.

◆ Init()

void CbmStsParAsic::Init ( )

Initialisation.

Calculates the noise charge distribution.

Definition at line 89 of file CbmStsParAsic.cxx.

References fIsInit, fNoise, fNoiseCharge, and fThreshold.

Referenced by Set(), and CbmStsParModule::SetAllAsics().

◆ IsChannelActive()

Bool_t CbmStsParAsic::IsChannelActive ( UShort_t  channel) const
inline

Check for a channel being active.

Parameters
channelChannel number within ASIC
Returns
True if the channel is active

Definition at line 157 of file CbmStsParAsic.h.

References fDeadChannels.

Referenced by CbmStsParModule::IsChannelActive().

◆ operator=() [1/2]

CbmStsParAsic& CbmStsParAsic::operator= ( CbmStsParAsic &&  )
default

Move assignment operator (disabled)

◆ operator=() [2/2]

CbmStsParAsic & CbmStsParAsic::operator= ( const CbmStsParAsic other)

Copy assignment operator.

Definition at line 42 of file CbmStsParAsic.cxx.

References fDeadTime, fDynRange, fNofAdc, fNoise, fThreshold, fTimeResolution, fZeroNoiseRate, and Set().

◆ Set()

void CbmStsParAsic::Set ( UShort_t  nAdc,
Double_t  dynRange,
Double_t  threshold,
Double_t  timeResol,
Double_t  deadTime,
Double_t  noise,
Double_t  zeroNoiseRate,
std::set< UShort_t >  deadChannels = {} 
)

Set parameters.

Parameters
nAdcNumber of ADC channels
dynRangeDynamic range [e]
thresholdThreshold [e]
timeResolTime resolution [ns]
deadTimeChannel dead time [ns]
noiseNoise RMS
zeroNoiseRateZero-crossing noise rate
deadChannelsSet of dead channels

Definition at line 100 of file CbmStsParAsic.cxx.

References fDeadChannels, fDeadTime, fDynRange, fNofAdc, fNoise, fThreshold, fTimeResolution, fZeroNoiseRate, and Init().

Referenced by CbmStsParAsic(), ClassImp(), and operator=().

◆ ToString()

std::string CbmStsParAsic::ToString ( ) const

Info to string.

Definition at line 132 of file CbmStsParAsic.cxx.

References fDeadTime, fDynRange, fNofAdc, fNoise, fThreshold, fTimeResolution, fZeroNoiseRate, and GetNoiseRate().

Referenced by CbmStsDigitize::InitParams().

Member Data Documentation

◆ fDeadChannels

std::set<UShort_t> CbmStsParAsic::fDeadChannels {}
private

Map of dead channels.

Definition at line 194 of file CbmStsParAsic.h.

Referenced by IsChannelActive(), and Set().

◆ fDeadTime

Double_t CbmStsParAsic::fDeadTime = 0.
private

Channel dead time [ns].

Definition at line 191 of file CbmStsParAsic.h.

Referenced by CbmStsParAsic(), GetDeadTime(), operator=(), Set(), and ToString().

◆ fDynRange

Double_t CbmStsParAsic::fDynRange = 0.
private

Dynamic range [e].

Definition at line 188 of file CbmStsParAsic.h.

Referenced by AdcToCharge(), CbmStsParAsic(), ChargeToAdc(), GetDynRange(), operator=(), Set(), and ToString().

◆ fIsInit

Bool_t CbmStsParAsic::fIsInit = kFALSE
private

Definition at line 196 of file CbmStsParAsic.h.

Referenced by GetRandomNoiseCharge(), and Init().

◆ fNofAdc

UShort_t CbmStsParAsic::fNofAdc = 0
private

Number of ADC channels.

Definition at line 187 of file CbmStsParAsic.h.

Referenced by AdcToCharge(), CbmStsParAsic(), ChargeToAdc(), GetNofAdc(), operator=(), Set(), and ToString().

◆ fNoise

Double_t CbmStsParAsic::fNoise = 0.
private

RMS of noise [e].

Definition at line 192 of file CbmStsParAsic.h.

Referenced by CbmStsParAsic(), GetNoise(), GetNoiseRate(), Init(), operator=(), Set(), and ToString().

◆ fNoiseCharge

TF1* CbmStsParAsic::fNoiseCharge = nullptr
private

Flag for being initialised.

Noise charge distribution. Is instantiated by the Init method in order to avoid frequent re-calculation.

Definition at line 200 of file CbmStsParAsic.h.

Referenced by GetRandomNoiseCharge(), Init(), and ~CbmStsParAsic().

◆ fThreshold

Double_t CbmStsParAsic::fThreshold = 0.
private

Threshold [e].

Definition at line 189 of file CbmStsParAsic.h.

Referenced by AdcToCharge(), CbmStsParAsic(), ChargeToAdc(), GetNoiseRate(), GetThreshold(), Init(), operator=(), Set(), and ToString().

◆ fTimeResolution

Double_t CbmStsParAsic::fTimeResolution = 0.
private

Time resolution [ns].

Definition at line 190 of file CbmStsParAsic.h.

Referenced by CbmStsParAsic(), GetTimeResol(), operator=(), Set(), and ToString().

◆ fZeroNoiseRate

Double_t CbmStsParAsic::fZeroNoiseRate = 0.
private

Zero-crossing noise rate [1/ns].

Definition at line 193 of file CbmStsParAsic.h.

Referenced by CbmStsParAsic(), GetNoiseRate(), GetZeroNoiseRate(), operator=(), Set(), and ToString().


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