HerdSoftware  0.4.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
Herd::FitDigitizerAlgo Class Reference

Algorithm that digitizes the Monte Carlo FIT hits simulating the response of the SIPM reading. More...

#include <algorithms/digitization/FitDigitizerAlgo.h>

Inheritance diagram for Herd::FitDigitizerAlgo:

Public Member Functions

 FitDigitizerAlgo (const std::string &name)
 Constructor. More...
 
bool Initialize () override
 Initialization of the algorithm. More...
 
bool Process () override
 Process a single event. More...
 

Private Member Functions

FitGeoParams createGeoParams (const FitGeoParams &origGeoParams)
 
FitChannelInfo createChannelInfo (const FitGeoParams &digGeoParams)
 
std::vector< float > generateSipmGains (const FitGeoParams &digGeoParams)
 

Private Attributes

EA::StorePtr m_evStore
 
EA::StorePtr m_globStore
 
FitHitsColl m_fitParticleHitsColl
 
EA::observer_ptr< FitGeoParamsCollm_origFitGeoParamsColl
 
std::shared_ptr< FitGeoParamsCollm_digFitGeoParamsColl
 
std::shared_ptr< FitChannelInfoCollm_digFitChannelInfoColl
 
SidesArray< std::vector< std::vector< float > > > m_sipmGains
 
unsigned int m_seed = defaultValue<decltype(m_seed)>
 
bool m_publishChannelInfo = true
 
bool m_simulateNoise = true
 
bool m_simulateIntraChannelXTalk = true
 
unsigned int m_nTopMatsPerLayer = 11
 
unsigned int m_nSideShortMatsPerLayer = 10
 
unsigned int m_nSideLongMatsPerLayer = 7
 
float m_topMatsSize = defaultValue<float>
 
float m_sideShortMatsSize = defaultValue<float>
 
float m_sideLongMatsSize = defaultValue<float>
 
double m_sipmGainVariation = 0.0125
 
double m_adcNoise = 0.1
 
std::unique_ptr< FitDigitizationTools::PhotonToolm_photonTool
 
std::unique_ptr< FitDigitizationTools::DistributionFiberToolm_distrFiberTool
 
std::unique_ptr< FitDigitizationTools::SiPMToolm_sipmTool
 
std::mt19937 m_generator
 
std::normal_distribution< double > m_gauss_dist
 

Detailed Description

Algorithm that digitizes the Monte Carlo FIT hits simulating the response of the SIPM reading.

TODO: description to be added

Needed event objects:

name type store optional description
fitParticleHitsCollMC FitParticleHitsColl evStore yes The particle hits in the FIT produced by MC simulation.

Needed global objects:

name type store optional description
fitGeoParamsColl FitGeoParamsColl globStore yes Geometric parameters of the FIT.

Produced event objects:

name alias type store description
fitDigHitsCollMC fitHitsCollADC FitHitsColl evStore The hits in the digitized SiPMs of the FIT.

Produced global objects:

name alias type store description
fitDigitizedGeoParamsColl fitGeoParamsColl FitGeoParamsColl globStore Geometric parameters of the FIT after digitization.
fitDigitizedChannelInfoColl fitChannelInfoColl FitChannelInfoColl globStore Channel info of the FIT (if enabled).

Parameters:

name type default value description
seed unsigned int random Seed for the random generator
nTopMatsPerLayer int 11 Number of mats per each top FIT layer
nSideShortMatsPerLayer int 10 Number of short mats along H for each side FIT layer segmented along V (odd layesrs)
nSideLongMatsPerLayer int 7 Number of long mats along V for each side FIT layer segmented along H (even layers)
topMatsSize float undefined Lateral size of mats on the TOP side (number of mats will be derived consequently)
sideShortMatsSize float undefined Lateral size of mats along H for each side FIT layer (number of mats will be derived consequently)
sideLongMatsSize float undefined Lateral size of mats along V for each side FIT layer (number of mats will be derived consequently)
publishChannelInfo bool true Decide if fill and publish a FitChannelInfo object
simulateNoise bool true Decide if simulate channel noise
simulateIntraChannelXTalk bool true Decide if simulate channel crosstalk

Constructor & Destructor Documentation

◆ FitDigitizerAlgo()

Herd::FitDigitizerAlgo::FitDigitizerAlgo ( const std::string &  name)

Constructor.

Parameters
nameThe name of the algorithm.

Member Function Documentation

◆ createChannelInfo()

FitChannelInfo Herd::FitDigitizerAlgo::createChannelInfo ( const FitGeoParams digGeoParams)
private

◆ createGeoParams()

FitGeoParams Herd::FitDigitizerAlgo::createGeoParams ( const FitGeoParams origGeoParams)
private

◆ generateSipmGains()

std::vector< float > Herd::FitDigitizerAlgo::generateSipmGains ( const FitGeoParams digGeoParams)
private

◆ Initialize()

bool Herd::FitDigitizerAlgo::Initialize ( )
override

Initialization of the algorithm.

Returns
true if algorithm initialization is successful.

◆ Process()

bool Herd::FitDigitizerAlgo::Process ( )
override

Process a single event.

This method also sets the geometry parameters of digitized FIT.

Returns
true if event processing is successful.

Member Data Documentation

◆ m_adcNoise

double Herd::FitDigitizerAlgo::m_adcNoise = 0.1
private

◆ m_digFitChannelInfoColl

std::shared_ptr<FitChannelInfoColl> Herd::FitDigitizerAlgo::m_digFitChannelInfoColl
private

◆ m_digFitGeoParamsColl

std::shared_ptr<FitGeoParamsColl> Herd::FitDigitizerAlgo::m_digFitGeoParamsColl
private

◆ m_distrFiberTool

std::unique_ptr<FitDigitizationTools::DistributionFiberTool> Herd::FitDigitizerAlgo::m_distrFiberTool
private

◆ m_evStore

EA::StorePtr Herd::FitDigitizerAlgo::m_evStore
private

◆ m_fitParticleHitsColl

FitHitsColl Herd::FitDigitizerAlgo::m_fitParticleHitsColl
private

◆ m_gauss_dist

std::normal_distribution<double> Herd::FitDigitizerAlgo::m_gauss_dist
private

◆ m_generator

std::mt19937 Herd::FitDigitizerAlgo::m_generator
private

◆ m_globStore

EA::StorePtr Herd::FitDigitizerAlgo::m_globStore
private

◆ m_nSideLongMatsPerLayer

unsigned int Herd::FitDigitizerAlgo::m_nSideLongMatsPerLayer = 7
private

◆ m_nSideShortMatsPerLayer

unsigned int Herd::FitDigitizerAlgo::m_nSideShortMatsPerLayer = 10
private

◆ m_nTopMatsPerLayer

unsigned int Herd::FitDigitizerAlgo::m_nTopMatsPerLayer = 11
private

◆ m_origFitGeoParamsColl

EA::observer_ptr<FitGeoParamsColl> Herd::FitDigitizerAlgo::m_origFitGeoParamsColl
private

◆ m_photonTool

std::unique_ptr<FitDigitizationTools::PhotonTool> Herd::FitDigitizerAlgo::m_photonTool
private

◆ m_publishChannelInfo

bool Herd::FitDigitizerAlgo::m_publishChannelInfo = true
private

◆ m_seed

unsigned int Herd::FitDigitizerAlgo::m_seed = defaultValue<decltype(m_seed)>
private

◆ m_sideLongMatsSize

float Herd::FitDigitizerAlgo::m_sideLongMatsSize = defaultValue<float>
private

◆ m_sideShortMatsSize

float Herd::FitDigitizerAlgo::m_sideShortMatsSize = defaultValue<float>
private

◆ m_simulateIntraChannelXTalk

bool Herd::FitDigitizerAlgo::m_simulateIntraChannelXTalk = true
private

◆ m_simulateNoise

bool Herd::FitDigitizerAlgo::m_simulateNoise = true
private

◆ m_sipmGains

SidesArray<std::vector<std::vector<float> > > Herd::FitDigitizerAlgo::m_sipmGains
private

◆ m_sipmGainVariation

double Herd::FitDigitizerAlgo::m_sipmGainVariation = 0.0125
private

◆ m_sipmTool

std::unique_ptr<FitDigitizationTools::SiPMTool> Herd::FitDigitizerAlgo::m_sipmTool
private

◆ m_topMatsSize

float Herd::FitDigitizerAlgo::m_topMatsSize = defaultValue<float>
private

The documentation for this class was generated from the following files: