1#ifndef BMNFHCALDIGITIZER_H
2#define BMNFHCALDIGITIZER_H
8#include "TClonesArray.h"
12#include <unordered_map>
27 SiPM(
int Npixels_,
int pixPerMIP_,
double noiseMIP_,
double gevPerMIP_)
36 ULong64_t
ModelNpixels(
double meanPixels) {
return gRandom->Poisson(meanPixels); }
40 return static_cast<ULong64_t
>(
41 std::round(
Npixels * (1.0 - std::exp(-
static_cast<double>(firedPixels) /
Npixels))));
61 virtual InitStatus
Init();
62 virtual void Exec(Option_t* opt);
67 void SetScale(
double scale) { fScale = scale; }
69 void SetTimeCut(
double setValue) { fTimeCut = setValue; }
70 void SetSiPM(
int Npixels,
int pixPerMIP,
double noiseMIP,
double gevPerMIP)
84 TClonesArray* fPointArray;
85 TClonesArray* fDigiArray;
87 std::unordered_map<uint32_t, std::vector<BmnFHCalPoint*>>
virtual ~BmnFHCalDigitizer()
void SetThreshold(double setValue)
virtual void Exec(Option_t *opt)
InitStatus LoadConfig(const char *config)
virtual InitStatus Init()
void SetSiPM(int Npixels, int pixPerMIP, double noiseMIP, double gevPerMIP)
void SetTimeCut(double setValue)
void SetScale(double scale)
SiPM(int Npixels_, int pixPerMIP_, double noiseMIP_, double gevPerMIP_)
double ModelNoise(double meanMIP)
ULong64_t ModelNpixels(double meanPixels)
double ModelResponse(double pfELoss)
ULong64_t ModelSaturation(ULong64_t firedPixels)