14#ifndef CBM_RICH_DIGITIZER
15#define CBM_RICH_DIGITIZER
58 virtual InitStatus
Init();
61 virtual void Exec(Option_t* option);
152 std::map<Int_t, std::vector<std::pair<Double_t, CbmLink*>>>
@ kRich
Ring-Imaging Cherenkov Detector.
@ CbmRichPmtTypeCosy17NoWls
static constexpr size_t size()
Base class template for CBM digitisation tasks.
Class for producing RICH digis from from MCPoints.
CbmRichDigitizer & operator=(const CbmRichDigitizer &)=delete
void SetDetectorType(CbmRichPmtTypeEnum detType)
Int_t ProcessBuffers(Double_t processTime)
Process signals in all buffers until processTime. New Digis are only created until processTime - fPix...
void SetTimeResolution(Double_t dt)
virtual void Exec(Option_t *option)
std::map< Int_t, Double_t > fPixelsLastFiredTime
Double_t fDarkRatePerPixel
virtual ~CbmRichDigitizer()=default
Int_t ProcessMcEvent()
Process current MC event.
std::map< Int_t, std::vector< std::pair< Double_t, CbmLink * > > > fSignalBuffer
TClonesArray * fRichPoints
void SetEventNoiseRate(Double_t noise)
Set event noise rate per McRichPoint / per pixel / per second : nofNoiseSignals = nofRichPoints * nof...
std::array< Double_t, 3 > fCrossTalkProbability
Double_t fClusterSignalProbability
void SetDarkRatePerPixel(Double_t darkRate)
void SetClusterSize(UInt_t size)
Set cluster size for charged particle clusters. Resulting cluster size : (2*size + 1)*(2*size + 1) pi...
CbmRichDigitizer(const CbmRichDigitizer &)=delete
TClonesArray * fRichDigis
TClonesArray * fRichDigiMatches
void SetEventNoiseInterval(Double_t dT)
Set event noise interval in ns. Add noise signals from: current event time to current event time + ev...
ECbmModuleId GetSystemId() const
Detector system ID.
void ProcessPoint(CbmRichPoint *point, Int_t pointId, Int_t eventNum, Int_t inputNum)
void SetCrossTalkProbability(Double_t horizontal, Double_t vertical, Double_t diagonal)
Set crosstalk probability for horizontal, vertical and diagonal directions.
CbmRichPmtTypeEnum fDetectorType
void SetCollectionEfficiency(Double_t collEff)
Double_t fEventNoiseInterval
virtual InitStatus Init()
void AddEventNoise(Int_t eventNum, Int_t inputNum)
Add additional noise for each event based on fEventNoiseRate and fEventNoiseInterval.
void AddCrossTalk(Int_t address, Double_t time, const CbmLink &link)
Add crosstalk assuming fCrossTalkProbability. Only add maximum one cross talk signal per MC point....
void AddSignalToBuffer(Int_t address, Double_t time, const CbmLink &link)
void AddChargedParticleCluster(Int_t address, Double_t time, Int_t eventNum, Int_t inputNum)
Add additional signals to nearby pixels if a charged particle directly passes through the PMT,...
void SetPixelDeadTime(Double_t dt)
Set pixel dead time between signals (without time smearing). The resulting dead time at digi level is...
void SetClusterSignalProbability(Double_t intensity)
Set charged particle cluster signal probability for direct neighbors. The probability for pixels furt...
void AddDarkRateNoise(Double_t oldEventTime, Double_t newEventTime)
void SetCollectionEfficiency(Double_t collEff)
Set collection efficiency for photoelectrons in PMT optics.