7#include <FairParamList.h>
10#include <TGenericClassInfo.h>
23 SetNameTitle(Form(
"FASP%d_%d", address / 1000, address % 1000),
"FASP definition");
30 if (
id < 0)
return nullptr;
37 if (ch_address < 0 || ch_address >=
NFASPCH)
return nullptr;
38 return &
fCalib[ch_address];
44 if (chId < 0 || chId >=
NFASPCH)
return false;
53 if (l->fill(Form(
"%dCHS",
fAddress), &value)) {
54 for (Int_t ich(0); ich <
NFASPCH; ich++) {
61 if (l->fill(Form(
"%dPUT",
fAddress), &value))
62 for (Int_t ich(0); ich <
NFASPCH; ich++)
63 fCalib[ich].fPileUpTime = value[ich];
64 if (l->fill(Form(
"%dTHR",
fAddress), &value))
65 for (Int_t ich(0); ich <
NFASPCH; ich++)
66 fCalib[ich].fThreshold = value[ich];
67 if (l->fill(Form(
"%dMDS",
fAddress), &value))
68 for (Int_t ich(0); ich <
NFASPCH; ich++)
69 fCalib[ich].fMinDelaySignal = value[ich];
78 for (Int_t ich(0); ich <
NFASPCH; ich++) {
79 int chAddress = valArray[offset++];
83 for (Int_t ich(0); ich <
NFASPCH; ich++) {
86 for (Int_t ich(0); ich <
NFASPCH; ich++) {
89 for (Int_t ich(0); ich <
NFASPCH; ich++) {
105 if (ch < 0 || ch >=
NFASPCH)
return kFALSE;
120 for (Int_t ich(0); ich <
NFASPCH; ich++) {
121 bool on = !bool((mask >> ich) & 0x1);
130 for (Int_t ich(0); ich <
NFASPCH; ich++) {
131 if (!
fCalib[ich].IsMasked()) mask |= 0x1;
155 , fMinDelaySignal(mds)
156 , fMinDelayParam(mdp)
163 printf(
"[%c]; MASK{%c}; CALIB{ PUT[ns]=%3d FT[clk]=%2d THR[ADC]=%4d MDS[ADC]=%4d }\n", (
HasPairingR() ?
'R' :
'T'),
Definition of ASIC parameters.
virtual Int_t QueryChannel(Int_t ch) const
Query ASIC for specific pad address.
std::vector< Int_t > fChannelAddresses
addresses of individual output channels
Int_t fAddress
unique ASIC ID
virtual void SetChannelAddress(Int_t address)
virtual void Print(Option_t *opt="") const
Definition of FASP channel calibration container.
CbmTrdParFaspChannel(Int_t pup=300, Int_t ft=14, Int_t thr=600, Int_t smin=2586, Float_t dtPar=4.181e-6)
Parametrization of a FASP channel based on CADENCE simulations from 12.01.2018 and parabolic parametr...
Bool_t HasPairingR() const
Query pad pairing type.
UShort_t fThreshold
Threshold in ADC units.
void SetMask(Bool_t set)
Mask channel for processing.
void Print(Option_t *opt="") const
void SetPairing(Bool_t rect)
Specify pad pairing type.
UShort_t fPileUpTime
Signal formation time in ns.
UShort_t fMinDelaySignal
Signal in ADC for minimum delay i.e. fPileUpTime.
Float_t fMinDelayParam
Factor of parabolic dependence dt=fdt*(s-s0)^2 to calculate trigger.
UChar_t fFlatTop
Length of Flat-Top in clocks.
Definition of FASP parameters.
static Double_t fgSizeY
FASP half size in y [cm].
CbmTrdParFaspChannel fCalib[NFASPCH]
calibration map for FASP channels
virtual bool IsChannelMasked(int ch) const
CbmTrdParFasp(Int_t address=0, Int_t FebGrouping=-1, Double_t x=0, Double_t y=0, Double_t z=0)
virtual void SetChannelMask(uint32_t mask)
virtual void Print(Option_t *opt="") const
const CbmTrdParFaspChannel * GetChannel(Int_t pad_address, UChar_t pair) const
Query the calibration for one FASP RO channel.
virtual Bool_t SetCalibParameters(Int_t ch, Double_t const *par)
Load FASP calibration parameters for a specific channel.
static Double_t fgSizeX
FASP half size in x [cm].
int GetPadAddress(Int_t ich) const
virtual void LoadParams(FairParamList *l)
virtual uint32_t GetChannelMask() const
static Double_t fgSizeZ
FASP half size in z [cm].
virtual Int_t GetNchannels() const