8#ifndef BMNSCWALLDIGITIZER_H
9#define BMNSCWALLDIGITIZER_H
14#include "FairLogger.h"
18#include <TClonesArray.h>
34 SiPM(
int Npixels_,
int pixPerMIP_,
double noiseMIP_,
double gevPerMIP_)
43 ULong64_t
ModelNpixels(
double meanPixels) {
return gRandom->Poisson(meanPixels); }
47 return static_cast<ULong64_t
>(
48 std::round(
Npixels * (1.0 - std::exp(-
static_cast<double>(firedPixels) /
Npixels))));
69 virtual void Exec(Option_t* opt);
74 void SetScale(
double scale) { fScale = scale; }
76 void SetTimeCut(
double setValue) { fTimeCut = setValue; }
77 void SetSiPM(
int Npixels,
int pixPerMIP,
double noiseMIP,
double gevPerMIP)
91 TClonesArray* fPointArray;
92 TClonesArray* fDigiArray;
94 std::unordered_map<uint32_t, std::vector<BmnScWallPoint*>>
virtual ~BmnScWallDigitizer()
void SetThreshold(double setValue)
void SetScale(double scale)
virtual InitStatus Init()
InitStatus LoadConfig(const char *config)
void SetTimeCut(double setValue)
BmnScWallDigitizer(const int period)
BmnScWallDigitizer(const char *config=nullptr)
virtual void Exec(Option_t *opt)
void SetSiPM(int Npixels, int pixPerMIP, double noiseMIP, double gevPerMIP)
SiPM(int Npixels_, int pixPerMIP_, double noiseMIP_, double gevPerMIP_)
double ModelNoise(double meanMIP)
ULong64_t ModelSaturation(ULong64_t firedPixels)
double ModelResponse(double pfELoss)
ULong64_t ModelNpixels(double meanPixels)