6 #include <marlin/Global.h>
13 #include "CLHEP/Random/RandGauss.h"
14 #include "CLHEP/Random/RandBinomial.h"
18 using namespace marlin ;
24 _description =
"Performs digitization of sim calo hits..." ;
27 registerProcessorParameter(
"ppd_mipPe" ,
28 "# Photo-electrons per MIP (scintillator): used to poisson smear #PEs if >0" ,
32 registerProcessorParameter(
"ppd_npix" ,
33 "total number of MPPC/SiPM pixels for implementation of saturation effect" ,
37 registerProcessorParameter(
"ppd_npix_uncert" ,
38 "fractional uncertainty of effective total number of MPPC/SiPM pixels" ,
42 registerProcessorParameter(
"ppd_pix_spread",
43 "variation of PPD pixel signal (as a fraction: 0.01=1%)",
51 if ( inUnit==
NPE )
return energy;
54 else streamlog_out (ERROR) <<
"unknown unit " << inUnit << std::endl;
72 npe *= CLHEP::RandGauss::shoot(1,
_pixSpread/sqrt(npe) );
RealisticCaloDigiScinPpd aRealisticCaloDigiScinPpd
RealisticCaloDigiScinPpd()
float digitiseDetectorEnergy(float energy) const
float convertEnergy(float energy, int inputUnit) const