7#ifndef BMNNDETDIGITIZER_H
8#define BMNNDETDIGITIZER_H 1
12#include "FairLogger.h"
14#include "TClonesArray.h"
18#include <unordered_map>
33 SiPM(
int Npixels_,
int pixPerMIP_,
double noiseMIP_,
double gevPerMIP_)
42 ULong64_t
ModelNpixels(
double meanPixels) {
return gRandom->Poisson(meanPixels); }
46 return static_cast<ULong64_t
>(
47 std::round(
Npixels * (1.0 - std::exp(-
static_cast<double>(firedPixels) /
Npixels))));
67 virtual InitStatus
Init();
68 virtual void Exec(Option_t* opt);
73 void SetScale(
double scale) { fScale = scale; }
75 void SetTimeCut(
double setValue) { fTimeCut = setValue; }
76 void SetSiPM(
int Npixels,
int pixPerMIP,
double noiseMIP,
double gevPerMIP)
90 TClonesArray* fPointArray;
91 TClonesArray* fDigiArray;
93 std::unordered_map<uint32_t, std::vector<BmnNdetPoint*>> fuoHitMap;
void SetSiPM(int Npixels, int pixPerMIP, double noiseMIP, double gevPerMIP)
virtual ~BmnNdetDigitizer()
virtual void Exec(Option_t *opt)
void SetScale(double scale)
void SetTimeCut(double setValue)
void SetThreshold(double setValue)
InitStatus LoadConfig(const char *config)
virtual InitStatus Init()
double ModelNoise(double meanMIP)
double ModelResponse(double pfELoss)
ULong64_t ModelSaturation(ULong64_t firedPixels)
SiPM(int Npixels_, int pixPerMIP_, double noiseMIP_, double gevPerMIP_)
ULong64_t ModelNpixels(double meanPixels)