HerdSoftware  0.1.1
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 _evStore
 
StorePtr _globStore
 
FitHitsColl _fitParticleHitsColl
 
observer_ptr< FitGeoParamsColl_origFitGeoParamsColl
 
std::shared_ptr< FitGeoParamsColl_digFitGeoParamsColl
 
std::shared_ptr< FitChannelInfoColl_digFitChannelInfoColl
 
SidesArray< std::vector< std::vector< float > > > m_sipmGains
 
bool _publishChannelInfo = true
 
bool _simulateNoise = true
 
bool _simulateIntraChannelXTalk = true
 
unsigned int _nTopMatsPerLayer = 11
 
unsigned int _nSideShortMatsPerLayer = 10
 
unsigned int _nSideLongMatsPerLayer = 7
 
double _sipmGainVariation = 0.0125
 
double _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 per each side FIT layer
nSideLongMatsPerLayer int 7 Number of long per each side FIT layer
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

◆ _adcNoise

double Herd::FitDigitizerAlgo::_adcNoise = 0.1
private

◆ _digFitChannelInfoColl

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

◆ _digFitGeoParamsColl

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

◆ _evStore

StorePtr Herd::FitDigitizerAlgo::_evStore
private

◆ _fitParticleHitsColl

FitHitsColl Herd::FitDigitizerAlgo::_fitParticleHitsColl
private

◆ _globStore

StorePtr Herd::FitDigitizerAlgo::_globStore
private

◆ _nSideLongMatsPerLayer

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

◆ _nSideShortMatsPerLayer

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

◆ _nTopMatsPerLayer

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

◆ _origFitGeoParamsColl

observer_ptr<FitGeoParamsColl> Herd::FitDigitizerAlgo::_origFitGeoParamsColl
private

◆ _publishChannelInfo

bool Herd::FitDigitizerAlgo::_publishChannelInfo = true
private

◆ _simulateIntraChannelXTalk

bool Herd::FitDigitizerAlgo::_simulateIntraChannelXTalk = true
private

◆ _simulateNoise

bool Herd::FitDigitizerAlgo::_simulateNoise = true
private

◆ _sipmGainVariation

double Herd::FitDigitizerAlgo::_sipmGainVariation = 0.0125
private

◆ m_distrFiberTool

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

◆ m_gauss_dist

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

◆ m_generator

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

◆ m_photonTool

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

◆ m_sipmGains

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

◆ m_sipmTool

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

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