Go to the documentation of this file. 1 #ifndef CBMTRDMODULESIMR_H
2 #define CBMTRDMODULESIMR_H
23 void GetCounters(Int_t& nEl, Int_t& nLattice, Int_t& nOverThr)
const {
67 MakePulse(Double_t charge, std::vector<Double_t> pulse, Int_t address);
71 std::vector<Double_t> pulse);
72 Bool_t
CheckMulti(Int_t address, std::vector<Double_t> pulse);
103 Double_t pointout[3],
110 Double_t
GetStep(Double_t dist, Int_t roll);
111 std::pair<Int_t, std::vector<Double_t>>
112 GetTotalSteps(Double_t In[3], Double_t Out[3], Double_t dist);
120 Double_t
CalcPRF(Double_t
x, Double_t W, Double_t
h);
129 Double_t clusterELoss,
130 Double_t clusterELossTR,
137 35. / 1.1107 / 0.8 * 1.5;
189 std::map<Int_t, std::vector<std::pair<CbmTrdDigi*, CbmMatch*>>>
fAnalogBuffer;
194 std::map<Int_t, std::vector<std::map<TString, Int_t>>>
fLinkQA;
196 std::map<Int_t, std::vector<std::vector<Int_t>>>
fMCBuffer;
void SetNCluster(Int_t nCluster)
void AddToPulse(Int_t address, Double_t charge, Double_t reldrift, std::vector< Double_t > pulse)
void SetSpadicResponse(Double_t calibration, Double_t tau)
void SetAsicPar(CbmTrdParSetAsic *p=NULL)
CbmTrdModuleSimR(Int_t mod, Int_t ly, Int_t rot)
Double_t CalcPRF(Double_t x, Double_t W, Double_t h)
Double_t AddDrifttime(Double_t x, Double_t z)
void SetPadPlaneScanArea(Int_t row)
Int_t CheckTrigger(std::vector< Double_t > pulse)
Describe TRD module ASIC settings (electronic gain, delays, etc)
void SetGamma(Double_t gamma)
void ProcessPulseBuffer(Int_t address, Bool_t FNcall, Bool_t MultiCall, Bool_t down, Bool_t up)
Bool_t DistributeCharge(Double_t pointin[3], Double_t pointout[3], Double_t delta[3], Double_t pos[3], Int_t ipoints)
CbmTimeSlice * fTimeSlice
link to CBM time slice
std::vector< Double_t > MakePulse(Double_t charge, std::vector< Double_t > pulse, Int_t address)
Bool_t CheckMulti(Int_t address, std::vector< Double_t > pulse)
Int_t FlushBuffer(ULong64_t time=0)
Flush local digi buffer.
std::map< Int_t, std::vector< std::map< TString, Int_t > > > fLinkQA
void CheckBuffer(Bool_t EB)
Int_t GetMultiBin(std::vector< Double_t > pulse)
void SetNoiseLevel(Double_t sigma_keV)
Abstract class for module wise digitization and raw format producing.
void ProcessBuffer(Int_t address)
void GetModuleType(CbmTrdRawToDigiR *conv)
std::map< Int_t, std::vector< std::vector< Int_t > > > fMCBuffer
Double_t GetStep(Double_t dist, Int_t roll)
Double_t fMinimumChargeTH
Data class with information on a STS local track.
void SetQA(CbmTrdCheckUtil *qa)
void ScanPadPlane(const Double_t *local_point, Double_t reldrift, Double_t clusterELoss, Double_t clusterELossTR, Int_t epoints, Int_t ipoint)
Double_t fSigma_noise_keV
Bool_t MakeRaw()
Steering routine for converting MC point to raw format.
void SetDistributionPoints(Int_t points)
std::vector< Double_t > AddCorrelatedNoise(std::vector< Double_t > pulse)
void SetRadiator(CbmTrdRadiator *radiator)
void NoiseTime(ULong64_t eventTime)
virtual ~CbmTrdModuleSimR()
Int_t nofPointsAboveThreshold
void AddDigitoBuffer(Int_t address, Double_t charge, Double_t chargeTR, Double_t time, Int_t trigger)
void AddDigitoPulseBuffer(Int_t address, Double_t reldrift, Double_t charge, Double_t chargeTR, Double_t time, Int_t trigger, Int_t epoints, Int_t ipoint)
CbmTrdModuleSimR & operator=(const CbmTrdModuleSimR &)
std::map< Int_t, std::pair< Double_t, Int_t > > fMultiBuffer
std::map< Int_t, std::vector< std::pair< CbmTrdDigi *, CbmMatch * > > > fAnalogBuffer
void SetPulseMode(Bool_t pulsed)
void CheckTime(Int_t address)
void SetMessageConverter(CbmTrdRawToDigiR *conv)
CbmTrdRadiator * fRadiator
Pointer to digitizer.
Bookkeeping of time-slice content.
Bool_t MakeDigi(CbmTrdPoint *p, Double_t time, Bool_t TR)
Steering routine for converting MC point to digits.
Double_t CalcResponse(Double_t t)
void SetTriggerThreshold(Double_t minCharge)
void GetCounters(Int_t &nEl, Int_t &nLattice, Int_t &nOverThr) const
std::map< Int_t, Double_t > fTimeBuffer
Int_t AddCrosstalk(Double_t address, Int_t i, Int_t sec, Int_t row, Int_t col, Int_t ncols)
void AddDigi(Int_t address, Double_t charge, Double_t chargeTR, Double_t time, Int_t trigger)
Double_t AddNoise(Double_t charge)
void SetPulsePars(Int_t mode)
std::map< Int_t, Double_t > fShiftQA
std::map< Int_t, Double_t > fMCQA
CbmTrdModuleSimR(const CbmTrdModuleSimR &)
Simulation module implementation for rectangular pad geometry.
CbmTrdRawToDigiR * fMessageConverter
std::map< Int_t, std::pair< std::vector< Double_t >, CbmMatch * > > fPulseBuffer
std::pair< Int_t, std::vector< Double_t > > GetTotalSteps(Double_t In[3], Double_t Out[3], Double_t dist)