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;
45 return fCalib[chId].IsMasked();
53 if (l->fill(Form(
"%dCHS",
fAddress), &value)) {
58 fCalib[ich].SetPairing(pair);
61 if (l->fill(Form(
"%dPUT",
fAddress), &value))
63 fCalib[ich].fPileUpTime = value[ich];
64 if (l->fill(Form(
"%dTHR",
fAddress), &value))
66 fCalib[ich].fThreshold = value[ich];
67 if (l->fill(Form(
"%dMDS",
fAddress), &value))
69 fCalib[ich].fMinDelaySignal = value[ich];
79 int chAddress = valArray[offset++];
81 fCalib[ich].SetPairing(
bool(chAddress > 0));
84 fCalib[ich].fPileUpTime = valArray[offset++];
87 fCalib[ich].fThreshold = valArray[offset++];
90 fCalib[ich].fMinDelaySignal = valArray[offset++];
105 if (ch < 0 || ch >=
NFASPCH)
return kFALSE;
106 fCalib[ch].fPileUpTime = UShort_t(par[0]);
107 fCalib[ch].fFlatTop = UChar_t(par[1]);
108 fCalib[ch].fThreshold = UShort_t(par[2]);
109 fCalib[ch].fMinDelaySignal = UShort_t(par[3]);
110 fCalib[ch].fMinDelayParam = par[4];
111 if (par[5] > 0)
fCalib[ch].SetPairing(kTRUE);
113 fCalib[ch].SetPairing(kFALSE);
121 bool on = !bool((mask >> ich) & 0x1);
131 if (!
fCalib[ich].IsMasked()) mask |= 0x1;
163 printf(
"[%c]; MASK{%c}; CALIB{ PUT[ns]=%3d FT[clk]=%2d THR[ADC]=%4d MDS[ADC]=%4d }\n", (
HasPairingR() ?
'R' :
'T'),
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
CbmTrdParAsic(Int_t address=0, Int_t FebGrouping=-1, Double_t x=0, Double_t y=0, Double_t z=0, size_t compId=0)
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 Print(Option_t *opt="") const
UChar_t fConfig
configuration bit map
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