HerdSoftware  0.3.2
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

StorePtr m_evStore
 
StorePtr m_globStore
 
FitHitsColl m_fitParticleHitsColl
 
observer_ptr< FitGeoParamsCollm_origFitGeoParamsColl
 
std::shared_ptr< FitGeoParamsCollm_digFitGeoParamsColl
 
std::shared_ptr< FitChannelInfoCollm_digFitChannelInfoColl
 
SidesArray< std::vector< std::vector< float > > > m_sipmGains
 
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.
fitDigitizedChannelInfoCollfitChannelInfoColl FitChannelInfoColl globStore Channel info of the FIT (if enabled).

Parameters:

name type default value description
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
false if the aggregation parameters are not exact divisors of tile/bar numbers

◆ Process()

bool Herd::FitDigitizerAlgo::Process ( )
override

Process a single event.

This method also sets the geometry parameters of digitized FIT.

Returns
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

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

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

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_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: