CbmRoot
Loading...
Searching...
No Matches
CbmTrdSpadic Class Reference

#include <CbmTrdSpadic.h>

Collaboration diagram for CbmTrdSpadic:
[legend]

Public Types

enum class  eResponsePars : size_t {
  kShapingTime = 0 , kShapingOrder , kInputCharge , kBinTimeshift ,
  kNrPresamples , kChargeToMaxAdcCal , kMipCal
}
 enum for response parameters More...
 

Public Member Functions

 CbmTrdSpadic ()
 Construct a new CbmTrdSpadic object Default and standard c'tor for a CbmTrdSpadic object.
 
 CbmTrdSpadic (const CbmTrdSpadic &)=delete
 Copy construct a new CbmTrdSpadic object (not implemented!)
 
CbmTrdSpadicoperator= (const CbmTrdSpadic &)
 Assignment of CbmTrdSpadic objects (not implemented!)
 
virtual ~CbmTrdSpadic ()
 Destroy the Cbm Trd Spadic object.
 
Double_t GetParameter (eResponsePars partype)
 Get the Parameter value.
 
std::vector< std::int16_t > GetAnalogResponsePulse (Double_t inputCharge, Double_t binTimeshift=0.0)
 Get the Analog Response to a given input charge per adc time bin.
 
Int_t GetNoise (Double_t sigmaNoise)
 Get a Noise value based on the width of the noise distribution in sigmas.
 
UInt_t GetBaselineLvl ()
 Get the Baseline Lvl value.
 
template<class Pulse >
void ApplyClipping (Pulse *pulse)
 Check the passed pulse for samples in clipping and reduce the value of those to fClippingStart.
 
Double_t GetAnalyticTimeshift (Double_t absolutetime)
 Get the Analytic Timeshift value ns precision Calculate the timeshift within the spadic response based on the idea that on an analytical base it is only related to the offset between the clock cycle and the absolute time.
 
UInt_t GetDynamicRange ()
 Get the Dynamic Range value.
 
UInt_t GetPeakingSamplePos ()
 Get the Peaking Sample Pos.
 
Int_t GetClippingStart ()
 Get the Clipping Start value.
 
Float_t GetAdcNoiseLevel ()
 Get the Adc Noise Level value.
 
Float_t GetMaxAdcToEnergyCal ()
 Get the Max Adc To Energy Cal value.
 
Double_t GetMipCalibration ()
 Get the MaxAdc to Mip Calibration value.
 
Float_t GetModuleThickness ()
 Get the Module Thickness value.
 
bool GetUseBaselineAvg ()
 Get the Use Baseline Avg flag.
 
Float_t MaxAdcToEnergyCal (Float_t maxadc)
 Return energy [keV (MC input GeV)] for a given max adc value, based on max adc to energy calibration.
 
template<class precision >
CbmTrdDigi::eTriggerType GetTriggerDecision (std::vector< precision > *pulse, UInt_t *sndtriggersample=nullptr)
 Get the Trigger Decision Get the trigger decision for the spadic. Currently this is based on the & differential trigger approach.
 
void SetDynamicRange (UInt_t value)
 Set the Dynamic Range value.
 
void SetClippingStart (Int_t value)
 Set the Clipping Start value.
 
void SetNoiseLevel (Double_t value)
 
void SetFstTriggerSlopeCondition (Double_t value)
 Set the Trigger Slope Condition value.
 
void SetSndTriggerSlopeCondition (Double_t value)
 Set the Trigger Slope Condition value.
 
void SetMaxAdcToEnergyCal (Double_t value)
 Set the Max Adc To Energy Cal value.
 
void SetMipCalibration (Double_t value)
 Set the max adc to mip calibration value.
 
void SetModuleThickness (Double_t value)
 Set the Module Thickness value.
 
void SetBaselineLvl (UInt_t value)
 Set the Baseline Lvl value.
 
void SetUseBaselineAverage (bool value=true)
 Set the Use Baseline Average flag.
 
Double_t Response (UInt_t samplenr)
 Response of the SPADIC v2.2 to an input charge, for a given timesample.
 
void SetParameter (eResponsePars ipar, Double_t value)
 
 ClassDef (CbmTrdSpadic, 2)
 

Static Public Member Functions

static UInt_t GetNrChannels ()
 
static std::shared_ptr< TF1 > GetResponseFunc ()
 Get a TF1 response function object.
 
static constexpr UInt_t GetNrOfAdcSamples ()
 Get the Nr Of Adc Samples (Spadic default)
 
static constexpr UInt_t GetNrOfPresamples ()
 Get the Nr Of Preamples.
 
static constexpr UInt_t GetShapingOrder ()
 Get the Shaping Order.
 
static Float_t GetShapingTime ()
 Get the Shaping Time (Spadic default)
 
static Double_t GetClockCycle ()
 Get the Clock Cycle.
 
static Double_t GetChargeToMaxAdcCal ()
 Get the Charge To Max Adc Calibration value.
 
static Double_t Response (Double_t *samplenr, Double_t *par)
 Response of the SPADIC v2.2 to an input charge, for a given timesample.
 

Private Attributes

std::vector< Double_t > fvecResponsePars
 Vector for the response parameters. Order based on eResponsePars. The given values here correspond to the design/default values for SPADIC v2.2.
 
UInt_t fDynamicRange = std::pow(2, 9)
 Dynamic range of the spadic The Spadic uses a 9-Bit ADC.
 
Int_t fClippingStart = fDynamicRange
 Value where a analog and or digital clipping appears By default it is set to the dynamic range of Spadic.
 
Int_t fTriggerSlopeConditionFst = 15
 Slope trigger condition for a two stage differential triggger.
 
Int_t fTriggerSlopeConditionSnd = 9
 Slope trigger condition for a two stage differential triggger.
 
Float_t fModuleThickness = 1.20
 Thickness of the module [cm] this spadic is mounted on. Should be setted during runtime from parameters. For the time being the default 1.2 cm should be fine, since all modules with spadics have the same thickness.
 
UInt_t fBaselineLvl = 0
 Baseline level of the current Spadic Used for MaxAdcToMip calibration and baseline placement in Analogue Response.
 
Float_t fMaxAdcToMipCal
 Calibration for MIP to 7% of MaxAdc dynamic range. 0.65 = charge from PRF broad distribution on central pad fModuleThickness * CbmTrdMipDeDx() = mean deposited mip energy per chamber fgChargeToMaxAdcCal = Factor between input charge for spadic response and max adc value handled in response function 0.08 * (fDynamicRange - 10) = 8% of the dynamic range with 10 ADU as baseline approximation.
 
Float_t fMaxAdcToEnergyCal = fMaxAdcToMipCal
 Calibration value to calculate energy in keV based on the max adc value. Default = Simulation calibration.
 
Float_t fNoiseLvl = 1
 Noise level for signal response simulation [gaus sigmas].
 
bool fDoUseBaselineAvg = false
 Flag wether we have n standard presamples or the average baseline in a single presamples.
 

Static Private Attributes

static const Double_t fgClockCycleLength = CbmTrdDigi::Clk(CbmTrdDigi::eCbmTrdAsicType::kSPADIC)
 Clockcycle length of SPADIC v2.2.
 
static constexpr UInt_t fgNrOfAdcSamples = 32
 Number of ADC samples.
 
static const Double_t fgShapingTime = 120.0
 Spadic shaping time.
 
static constexpr UInt_t fgShapingOrder = 1
 Spadic Shaping order.
 
static constexpr UInt_t fgNrOfPresamples = 1
 Number of presamples in the ADC signal in front of the actual signal.
 
static const Double_t fgChargeToMaxAdcCal = 2.73
 Calibration factor for input charges.
 

Detailed Description

Definition at line 36 of file CbmTrdSpadic.h.

Member Enumeration Documentation

◆ eResponsePars

enum class CbmTrdSpadic::eResponsePars : size_t
strong

enum for response parameters

Enumerator
kShapingTime 
kShapingOrder 
kInputCharge 
kBinTimeshift 
kNrPresamples 
kChargeToMaxAdcCal 
kMipCal 

Definition at line 70 of file CbmTrdSpadic.h.

Constructor & Destructor Documentation

◆ CbmTrdSpadic() [1/2]

CbmTrdSpadic::CbmTrdSpadic ( )

Construct a new CbmTrdSpadic object Default and standard c'tor for a CbmTrdSpadic object.

Definition at line 24 of file CbmTrdSpadic.cxx.

◆ CbmTrdSpadic() [2/2]

CbmTrdSpadic::CbmTrdSpadic ( const CbmTrdSpadic & )
delete

Copy construct a new CbmTrdSpadic object (not implemented!)

◆ ~CbmTrdSpadic()

CbmTrdSpadic::~CbmTrdSpadic ( )
virtual

Destroy the Cbm Trd Spadic object.

Definition at line 25 of file CbmTrdSpadic.cxx.

Member Function Documentation

◆ ApplyClipping()

template<class Pulse >
void CbmTrdSpadic::ApplyClipping ( Pulse * pulse)
inline

Check the passed pulse for samples in clipping and reduce the value of those to fClippingStart.

Template Parameters
Pulse
Parameters
pulse

Definition at line 187 of file CbmTrdSpadic.h.

References fClippingStart.

◆ ClassDef()

CbmTrdSpadic::ClassDef ( CbmTrdSpadic ,
2  )

◆ GetAdcNoiseLevel()

Float_t CbmTrdSpadic::GetAdcNoiseLevel ( )
inline

Get the Adc Noise Level value.

Returns
Float_t

Definition at line 232 of file CbmTrdSpadic.h.

References fNoiseLvl.

◆ GetAnalogResponsePulse()

std::vector< std::int16_t > CbmTrdSpadic::GetAnalogResponsePulse ( Double_t inputCharge,
Double_t binTimeshift = 0.0 )

Get the Analog Response to a given input charge per adc time bin.

If fNoiseLvl is set to a value above 0 it is automatically added to the response.

Parameters
inputCharge[keV] and not calibrated to MIP see fgMaxAdcMipCalibration
binTimeshifttimeshift of the signal within a CC [ns]
Returns
std::vector<std::int16_t> calibrated to keV and MIP

Definition at line 71 of file CbmTrdSpadic.cxx.

References fBaselineLvl, fClippingStart, fMaxAdcToMipCal, fNoiseLvl, fvecResponsePars, GetNoise(), GetNrOfAdcSamples(), kBinTimeshift, kInputCharge, kNrPresamples, Response(), and SetParameter().

◆ GetAnalyticTimeshift()

Double_t CbmTrdSpadic::GetAnalyticTimeshift ( Double_t absolutetime)

Get the Analytic Timeshift value ns precision Calculate the timeshift within the spadic response based on the idea that on an analytical base it is only related to the offset between the clock cycle and the absolute time.

Parameters
absolutetime
Returns
Double_t

Definition at line 107 of file CbmTrdSpadic.cxx.

References GetClockCycle().

◆ GetBaselineLvl()

UInt_t CbmTrdSpadic::GetBaselineLvl ( )
inline

Get the Baseline Lvl value.

Returns
UInt_t

Definition at line 177 of file CbmTrdSpadic.h.

References fBaselineLvl.

◆ GetChargeToMaxAdcCal()

static Double_t CbmTrdSpadic::GetChargeToMaxAdcCal ( )
inlinestatic

Get the Charge To Max Adc Calibration value.

Returns
Double_t

Definition at line 138 of file CbmTrdSpadic.h.

References fgChargeToMaxAdcCal.

◆ GetClippingStart()

Int_t CbmTrdSpadic::GetClippingStart ( )
inline

Get the Clipping Start value.

Returns
Int_t

Definition at line 225 of file CbmTrdSpadic.h.

References fClippingStart.

◆ GetClockCycle()

static Double_t CbmTrdSpadic::GetClockCycle ( )
inlinestatic

Get the Clock Cycle.

Returns
Double_t

Definition at line 131 of file CbmTrdSpadic.h.

References fgClockCycleLength.

Referenced by CbmTrdRawToDigiFitR::fixExtractionPars(), and GetAnalyticTimeshift().

◆ GetDynamicRange()

UInt_t CbmTrdSpadic::GetDynamicRange ( )
inline

Get the Dynamic Range value.

Returns
UInt_t

Definition at line 209 of file CbmTrdSpadic.h.

References fDynamicRange.

◆ GetMaxAdcToEnergyCal()

Float_t CbmTrdSpadic::GetMaxAdcToEnergyCal ( )
inline

Get the Max Adc To Energy Cal value.

Returns
Float_t

Definition at line 239 of file CbmTrdSpadic.h.

References fMaxAdcToEnergyCal.

◆ GetMipCalibration()

Double_t CbmTrdSpadic::GetMipCalibration ( )
inline

Get the MaxAdc to Mip Calibration value.

Returns
Double_t

Definition at line 246 of file CbmTrdSpadic.h.

References fMaxAdcToMipCal.

◆ GetModuleThickness()

Float_t CbmTrdSpadic::GetModuleThickness ( )
inline

Get the Module Thickness value.

Returns
Float_t

Definition at line 254 of file CbmTrdSpadic.h.

References fModuleThickness.

◆ GetNoise()

Int_t CbmTrdSpadic::GetNoise ( Double_t sigmaNoise)

Get a Noise value based on the width of the noise distribution in sigmas.

Parameters
sigmaNoise
Returns
Int_t

Definition at line 100 of file CbmTrdSpadic.cxx.

Referenced by GetAnalogResponsePulse().

◆ GetNrChannels()

static UInt_t CbmTrdSpadic::GetNrChannels ( )
inlinestatic

◆ GetNrOfAdcSamples()

static constexpr UInt_t CbmTrdSpadic::GetNrOfAdcSamples ( )
inlinestaticconstexpr

Get the Nr Of Adc Samples (Spadic default)

Returns
constexpr UInt_t

Definition at line 103 of file CbmTrdSpadic.h.

References fgNrOfAdcSamples.

Referenced by GetAnalogResponsePulse().

◆ GetNrOfPresamples()

static constexpr UInt_t CbmTrdSpadic::GetNrOfPresamples ( )
inlinestaticconstexpr

Get the Nr Of Preamples.

Returns
constexpr UInt_t

Definition at line 110 of file CbmTrdSpadic.h.

References fgNrOfPresamples.

◆ GetParameter()

Double_t CbmTrdSpadic::GetParameter ( eResponsePars partype)
inline

Get the Parameter value.

Parameters
partype
Returns
Double_t

Definition at line 86 of file CbmTrdSpadic.h.

References fvecResponsePars.

◆ GetPeakingSamplePos()

UInt_t CbmTrdSpadic::GetPeakingSamplePos ( )

Get the Peaking Sample Pos.

Returns the sample posisiton were the response function peaks, based on the number of presamples and shaping time.

Returns
UInt_t

Definition at line 117 of file CbmTrdSpadic.cxx.

References fgClockCycleLength, fvecResponsePars, kNrPresamples, and kShapingTime.

◆ GetResponseFunc()

std::shared_ptr< TF1 > CbmTrdSpadic::GetResponseFunc ( )
static

Get a TF1 response function object.

Returns
std::shared_ptr<TF1>

Definition at line 28 of file CbmTrdSpadic.cxx.

References fgChargeToMaxAdcCal, fgClockCycleLength, fgNrOfAdcSamples, fgNrOfPresamples, fgShapingOrder, fgShapingTime, and Response().

◆ GetShapingOrder()

static constexpr UInt_t CbmTrdSpadic::GetShapingOrder ( )
inlinestaticconstexpr

Get the Shaping Order.

Returns
constexpr UInt_t

Definition at line 117 of file CbmTrdSpadic.h.

References fgShapingOrder.

◆ GetShapingTime()

static Float_t CbmTrdSpadic::GetShapingTime ( )
inlinestatic

Get the Shaping Time (Spadic default)

Returns
Float_t

Definition at line 124 of file CbmTrdSpadic.h.

References fgShapingTime.

◆ GetTriggerDecision()

template<class precision >
CbmTrdDigi::eTriggerType CbmTrdSpadic::GetTriggerDecision ( std::vector< precision > * pulse,
UInt_t * sndtriggersample = nullptr )
inline

Get the Trigger Decision Get the trigger decision for the spadic. Currently this is based on the & differential trigger approach.

Todo
Write a trigger base and derived class to allow for easy interchange between different trigger modes. This part can than be dropped.
Template Parameters
Pulse
Parameters
pulse
multitriggersample
Returns
CbmTrdDigi::eTriggerType

Definition at line 288 of file CbmTrdSpadic.h.

References fTriggerSlopeConditionFst, fTriggerSlopeConditionSnd, CbmTrdDigi::kMulti, CbmTrdDigi::kNeighbor, CbmTrdDigi::kNTrg, and CbmTrdDigi::kSelf.

◆ GetUseBaselineAvg()

bool CbmTrdSpadic::GetUseBaselineAvg ( )
inline

Get the Use Baseline Avg flag.

The spadic either simply delievers n presamples or an average baseline as a single presample.

Returns
true
false

Definition at line 264 of file CbmTrdSpadic.h.

References fDoUseBaselineAvg.

◆ MaxAdcToEnergyCal()

Float_t CbmTrdSpadic::MaxAdcToEnergyCal ( Float_t maxadc)

Return energy [keV (MC input GeV)] for a given max adc value, based on max adc to energy calibration.

Parameters
maxadc
Returns
Float_t

Definition at line 126 of file CbmTrdSpadic.cxx.

References fMaxAdcToEnergyCal.

◆ operator=()

CbmTrdSpadic & CbmTrdSpadic::operator= ( const CbmTrdSpadic & )

Assignment of CbmTrdSpadic objects (not implemented!)

Returns
CbmTrdSpadic&

◆ Response() [1/2]

Double_t CbmTrdSpadic::Response ( Double_t * samplenr,
Double_t * par )
static

Response of the SPADIC v2.2 to an input charge, for a given timesample.

In the parameter array thinks like shaping time, order, input charge and so on * can and have to be passed. Use this function for fitting for exampl. Use SpadicResponse(UInt_t samplenr) to get the response for the paramters setted in the given CbmTrdSpadic object.

Parameters
samplenr
par
Returns
Double_t

Definition at line 43 of file CbmTrdSpadic.cxx.

References fgClockCycleLength.

Referenced by GetAnalogResponsePulse(), GetResponseFunc(), and Response().

◆ Response() [2/2]

Double_t CbmTrdSpadic::Response ( UInt_t samplenr)

Response of the SPADIC v2.2 to an input charge, for a given timesample.

Return the spadic response based on the parameters setted in this CbmTrdSpadic object.

Parameters
samplenr
Returns
Double_t

Definition at line 63 of file CbmTrdSpadic.cxx.

References fvecResponsePars, and Response().

◆ SetBaselineLvl()

void CbmTrdSpadic::SetBaselineLvl ( UInt_t value)
inline

Set the Baseline Lvl value.

Parameters
value

Definition at line 386 of file CbmTrdSpadic.h.

References fBaselineLvl.

◆ SetClippingStart()

void CbmTrdSpadic::SetClippingStart ( Int_t value)
inline

Set the Clipping Start value.

Parameters
value

Definition at line 341 of file CbmTrdSpadic.h.

References fClippingStart.

◆ SetDynamicRange()

void CbmTrdSpadic::SetDynamicRange ( UInt_t value)
inline

Set the Dynamic Range value.

Returns
UInt_t

Definition at line 334 of file CbmTrdSpadic.h.

References fDynamicRange.

◆ SetFstTriggerSlopeCondition()

void CbmTrdSpadic::SetFstTriggerSlopeCondition ( Double_t value)
inline

Set the Trigger Slope Condition value.

Parameters
value

Definition at line 350 of file CbmTrdSpadic.h.

References fTriggerSlopeConditionFst.

◆ SetMaxAdcToEnergyCal()

void CbmTrdSpadic::SetMaxAdcToEnergyCal ( Double_t value)
inline

Set the Max Adc To Energy Cal value.

Parameters
value

Definition at line 364 of file CbmTrdSpadic.h.

References fMaxAdcToEnergyCal.

◆ SetMipCalibration()

void CbmTrdSpadic::SetMipCalibration ( Double_t value)
inline

Set the max adc to mip calibration value.

Parameters
value

Definition at line 371 of file CbmTrdSpadic.h.

References fMaxAdcToMipCal.

◆ SetModuleThickness()

void CbmTrdSpadic::SetModuleThickness ( Double_t value)
inline

Set the Module Thickness value.

Parameters
value

Definition at line 379 of file CbmTrdSpadic.h.

References fModuleThickness.

◆ SetNoiseLevel()

void CbmTrdSpadic::SetNoiseLevel ( Double_t value)
inline

Definition at line 343 of file CbmTrdSpadic.h.

References fNoiseLvl.

◆ SetParameter()

void CbmTrdSpadic::SetParameter ( eResponsePars ipar,
Double_t value )
inline

Definition at line 406 of file CbmTrdSpadic.h.

References fvecResponsePars.

Referenced by GetAnalogResponsePulse().

◆ SetSndTriggerSlopeCondition()

void CbmTrdSpadic::SetSndTriggerSlopeCondition ( Double_t value)
inline

Set the Trigger Slope Condition value.

Parameters
value

Definition at line 357 of file CbmTrdSpadic.h.

References fTriggerSlopeConditionSnd.

◆ SetUseBaselineAverage()

void CbmTrdSpadic::SetUseBaselineAverage ( bool value = true)
inline

Set the Use Baseline Average flag.

Parameters
value

Definition at line 393 of file CbmTrdSpadic.h.

References fDoUseBaselineAvg.

Member Data Documentation

◆ fBaselineLvl

UInt_t CbmTrdSpadic::fBaselineLvl = 0
private

Baseline level of the current Spadic Used for MaxAdcToMip calibration and baseline placement in Analogue Response.

Definition at line 524 of file CbmTrdSpadic.h.

Referenced by GetAnalogResponsePulse(), GetBaselineLvl(), and SetBaselineLvl().

◆ fClippingStart

Int_t CbmTrdSpadic::fClippingStart = fDynamicRange
private

Value where a analog and or digital clipping appears By default it is set to the dynamic range of Spadic.

Definition at line 482 of file CbmTrdSpadic.h.

Referenced by ApplyClipping(), GetAnalogResponsePulse(), GetClippingStart(), and SetClippingStart().

◆ fDoUseBaselineAvg

bool CbmTrdSpadic::fDoUseBaselineAvg = false
private

Flag wether we have n standard presamples or the average baseline in a single presamples.

Definition at line 546 of file CbmTrdSpadic.h.

Referenced by GetUseBaselineAvg(), and SetUseBaselineAverage().

◆ fDynamicRange

UInt_t CbmTrdSpadic::fDynamicRange = std::pow(2, 9)
private

Dynamic range of the spadic The Spadic uses a 9-Bit ADC.

Definition at line 476 of file CbmTrdSpadic.h.

Referenced by GetDynamicRange(), and SetDynamicRange().

◆ fgChargeToMaxAdcCal

const Double_t CbmTrdSpadic::fgChargeToMaxAdcCal = 2.73
staticprivate

Calibration factor for input charges.

Charge calibration for fit response to max adc, i.e. this scales the response * for a given input charge to match the corresponding max adc value. Default Spadic value = 2.73 extracted from fits to desy2019 and lab data (status 23.02.2021 PR) please update if this changes.

Definition at line 470 of file CbmTrdSpadic.h.

Referenced by GetChargeToMaxAdcCal(), and GetResponseFunc().

◆ fgClockCycleLength

const Double_t CbmTrdSpadic::fgClockCycleLength = CbmTrdDigi::Clk(CbmTrdDigi::eCbmTrdAsicType::kSPADIC)
staticprivate

Clockcycle length of SPADIC v2.2.

Definition at line 413 of file CbmTrdSpadic.h.

Referenced by GetClockCycle(), GetPeakingSamplePos(), GetResponseFunc(), and Response().

◆ fgNrOfAdcSamples

UInt_t CbmTrdSpadic::fgNrOfAdcSamples = 32
staticconstexprprivate

Number of ADC samples.

Number of ADC samples available. Default (32) corresponds to the maximum number of samples for SPADIC v2.2

Definition at line 436 of file CbmTrdSpadic.h.

Referenced by GetNrOfAdcSamples(), and GetResponseFunc().

◆ fgNrOfPresamples

UInt_t CbmTrdSpadic::fgNrOfPresamples = 1
staticconstexprprivate

Number of presamples in the ADC signal in front of the actual signal.

Default Spadic value = 2 (status 23.02.2021 PR) please update if this changes. Default Spadic value = 1 (status 16.06.2021 PR) please update if this changes.

Definition at line 461 of file CbmTrdSpadic.h.

Referenced by GetNrOfPresamples(), and GetResponseFunc().

◆ fgShapingOrder

UInt_t CbmTrdSpadic::fgShapingOrder = 1
staticconstexprprivate

Spadic Shaping order.

Default value of the Spadic shaping order = 1 (status 23.02.2021 PR)

Definition at line 453 of file CbmTrdSpadic.h.

Referenced by GetResponseFunc(), and GetShapingOrder().

◆ fgShapingTime

const Double_t CbmTrdSpadic::fgShapingTime = 120.0
staticprivate

Spadic shaping time.

Shaping time of the Spadic signal shaper, value corresponds to the best knowledge from measurements (status 23.02.2021 PR) please update if newer results are available

Definition at line 446 of file CbmTrdSpadic.h.

Referenced by GetResponseFunc(), and GetShapingTime().

◆ fMaxAdcToEnergyCal

Float_t CbmTrdSpadic::fMaxAdcToEnergyCal = fMaxAdcToMipCal
private

Calibration value to calculate energy in keV based on the max adc value. Default = Simulation calibration.

Definition at line 540 of file CbmTrdSpadic.h.

Referenced by GetMaxAdcToEnergyCal(), MaxAdcToEnergyCal(), and SetMaxAdcToEnergyCal().

◆ fMaxAdcToMipCal

Float_t CbmTrdSpadic::fMaxAdcToMipCal
private
Initial value:
Float_t fModuleThickness
Thickness of the module [cm] this spadic is mounted on. Should be setted during runtime from paramete...
UInt_t fDynamicRange
Dynamic range of the spadic The Spadic uses a 9-Bit ADC.
UInt_t fBaselineLvl
Baseline level of the current Spadic Used for MaxAdcToMip calibration and baseline placement in Analo...
static Double_t MeanChargeCentrPadPRF()
Mean charge fraction on the central pad assuming a flat distrubtion all over the pad.
static Double_t MipDeDx()
Mip De Dx kev/cm for XeC02 8020 see https://cbm-wiki.gsi.de/foswiki/bin/view/TRD/ TrdParameterList.
static Double_t MipCaliTarget()
Target percentage of the dynamic range for the MIP energy deposition on the central pad.

Calibration for MIP to 7% of MaxAdc dynamic range. 0.65 = charge from PRF broad distribution on central pad fModuleThickness * CbmTrdMipDeDx() = mean deposited mip energy per chamber fgChargeToMaxAdcCal = Factor between input charge for spadic response and max adc value handled in response function 0.08 * (fDynamicRange - 10) = 8% of the dynamic range with 10 ADU as baseline approximation.

Definition at line 535 of file CbmTrdSpadic.h.

Referenced by GetAnalogResponsePulse(), GetMipCalibration(), and SetMipCalibration().

◆ fModuleThickness

Float_t CbmTrdSpadic::fModuleThickness = 1.20
private

Thickness of the module [cm] this spadic is mounted on. Should be setted during runtime from parameters. For the time being the default 1.2 cm should be fine, since all modules with spadics have the same thickness.

Todo
connect this to the parameters in runtime usage.

Definition at line 517 of file CbmTrdSpadic.h.

Referenced by GetModuleThickness(), and SetModuleThickness().

◆ fNoiseLvl

Float_t CbmTrdSpadic::fNoiseLvl = 1
private

Noise level for signal response simulation [gaus sigmas].

Definition at line 543 of file CbmTrdSpadic.h.

Referenced by GetAdcNoiseLevel(), GetAnalogResponsePulse(), and SetNoiseLevel().

◆ fTriggerSlopeConditionFst

Int_t CbmTrdSpadic::fTriggerSlopeConditionFst = 15
private

Slope trigger condition for a two stage differential triggger.

This defines the min diff between the first two consecutive rising samples in the pulse, to mark the pulse with CbmTrdDigi::eTriggerType::kSelf. An analytical MIP pulse with a conservative shaping time of 300 ns (keep in mind that a pulse is not a delta input) has a diff of 16 at the first relevant step. Based on response definition status March 2021 - PR.

Definition at line 494 of file CbmTrdSpadic.h.

Referenced by GetTriggerDecision(), and SetFstTriggerSlopeCondition().

◆ fTriggerSlopeConditionSnd

Int_t CbmTrdSpadic::fTriggerSlopeConditionSnd = 9
private

Slope trigger condition for a two stage differential triggger.

This defines the min diff between the second pair of two consecutive rising samples in the pulse, to mark the pulse with CbmTrdDigi::eTriggerType::kSelf. An analytical MIP pulse with a conservative shaping time of 300 ns (keep in mind that a pulse is not a delta input) has a diff of 10 at the second (this) relevant step. Based on response definition status March 2021 - PR. Remark: There is an ignore switch for this condition if the slope of the first check exceeds the condition by 2. Since, a 120 ns shaping time pulse will have the combination of 30 and 5 as slopes.

Definition at line 508 of file CbmTrdSpadic.h.

Referenced by GetTriggerDecision(), and SetSndTriggerSlopeCondition().

◆ fvecResponsePars

std::vector<Double_t> CbmTrdSpadic::fvecResponsePars
private
Initial value:
static const Double_t fgClockCycleLength
Clockcycle length of SPADIC v2.2.
static const Double_t fgChargeToMaxAdcCal
Calibration factor for input charges.
static const Double_t fgShapingTime
Spadic shaping time.
static constexpr UInt_t fgNrOfPresamples
Number of presamples in the ADC signal in front of the actual signal.
static constexpr UInt_t fgShapingOrder
Spadic Shaping order.

Vector for the response parameters. Order based on eResponsePars. The given values here correspond to the design/default values for SPADIC v2.2.

  • Shaping time = 142 ns (measured value from desy2019/lab2020) (design value = 120 ns).
  • Shaping order for the signal shaper. The default value (=1) corresponds to SPADIC v2.2 standard settings.
  • Input charge, default = 0 ADC units, charge to which the Spadic responses
  • Bin timeshift = ClockCycleLength / 2 ns shift placed at the sample center
  • Number of presamples = 2 standard value of presamples before the signal response starts

Definition at line 427 of file CbmTrdSpadic.h.

Referenced by GetAnalogResponsePulse(), GetParameter(), GetPeakingSamplePos(), Response(), and SetParameter().


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