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

Base algorithm which creates the information needed for the Calo PD read-out digitization. More...

#include <algorithms/digitization/CaloPDChannelInfoAlgo.h>

Inheritance diagram for Herd::CaloPDChannelInfoAlgo:

Classes

struct  GainRanges
 
struct  SignalRanges
 

Public Member Functions

 CaloPDChannelInfoAlgo (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

void FillCaloPDChannelInfo (std::mt19937 &randGen, int nCubes, bool largePD)
 Fill the channel info object related to large or small PDs (see largePD parameter). More...
 

Private Attributes

SignalRanges m_meanNoise
 
SignalRanges m_varNoise
 
float m_meanGainRatio
 
float m_varGainRatio
 
float m_meanLpdMip
 
float m_varLpdMip
 
float m_meanPDRatio
 
float m_varPDRatio
 
float m_meanPedestal
 
float m_varPedestal
 
GainRanges m_meanMaxVal
 
GainRanges m_varMaxVal
 
unsigned int m_seed
 
float m_meanSiLpdMip
 
float m_varSiLpdMip
 
float m_meanSiSpdMip
 
float m_varSiSpdMip
 
std::shared_ptr< CaloPDChannelInfom_caloLpdChannelInfo
 
std::shared_ptr< CaloPDChannelInfom_caloSpdChannelInfo
 
EA::StorePtr m_evStore
 
EA::StorePtr m_globStore
 

Detailed Description

Base algorithm which creates the information needed for the Calo PD read-out digitization.

This algo creates channel information for large and small PDs. It is abased on several values provided by teh user (e.g. the noise, MIP vlue...). The default values are very preliminary and are related to a tentative final configuration for the flight detector. The parameters strongly depends on several laboratory tests. Some details: the large PD is the new Excelitas prototype (VTH2110); the small PD is VTP9412; the electronics is the HIDRA v.2 + TROC1-2. Last parameters update: 2022/08/05.

Needed event objects:

name type store optional description
caloHitsMC CaloHits evStore no The hits in the Calo produced by MC simulation.

Needed global objects:

name type store optional description
caloGeoParams CaloGeoParams globStore yes Geometric parameters of the Calo.

Produced global objects:

name alias type store description
caloLPDChannelInfoMC caloLPDChannelInfo CaloPDChannelInfo globStore Information related to channels connected to large PD
caloSPDChannelInfoMC caloSPDChannelInfo CalSPDChannelInfo globStore Information related to channels connected to small PD

Parameters:

name type default description
seed unsigned int random Seed for the random generator.
meanLPDHGNoise float 25 Average ADC noise value (i.e. the average of the RMS of pedestal distributions) of channels with large PDs for high gain.
varLPDHGNoise float 10 variation % (i.e. the variation channel by channel) of noise of channels with large PDs for high gain.
meanLPDLGNoise float 10 Average ADC noise value (i.e. the average of the RMS of pedestal distributions) of channels with large PDs for low gain.
varLPDLGNoise float 10 variation % (i.e. the variation channel by channel) of noise of channels with large PDs for low gain.
meanSPDHGNoise float 25 Average ADC noise value (i.e. the average of the RMS of pedestal distributions) of channels with small PDs for high gain.
varSPDHGNoise float 10 variation % (i.e. the variation channel by channel) of noise of channels with small PDs for high gain.
meanSPDLGNoise float 10 Average ADC noise value (i.e. the average of the RMS of pedestal distributions) of channels with small PDs for low gain.
varSPDLGNoise float 10 variation % (i.e. the variation channel by channel) of noise of channels with small PDs for low gain.
meanGainRatio float 20 Average ratio between high gain and low gain.
varGainRatio float 0.5 variation % (i.e. the variation channel by channel) of the ratio between high gain and low gain.
meanLPDMIP float 125 Average ADC MIP value of large PDs.
varLPDMIP float 26 variation % of MIP values for large PDs.
meanPDRatio float 1300 Average ratio between large and small PD
varPDRatio float 1.5 variation % of the ratio between large and small PD
meanPedestal float 18000 Average value of the pedestal
varPedestal float 1 variation % of the pedestal
meanHGmaxVal float 45000 Average saturation ADC value of the high gain
varHGmaxVal float 1 variation % of the saturation ADC value of the high gain
meanLGmaxVal float 45000 Average saturation ADC value of the low gain
varLGmaxVal float 5 variation % of the saturation ADC value of the low gain
meanSiLPDMIP float 29 Average ADC MIP value in Si in large PDs.
varSiLPDMIP float 10 variation % of MIP values in Si for large PDs.
meanSiSPDMIP float 9 Average ADC MIP value in Si in small PDs.
varSiSPDMIP float 10 variation % of MIP values in Si for small PDs.

Constructor & Destructor Documentation

◆ CaloPDChannelInfoAlgo()

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

Constructor.

Parameters
nameThe name of the algorithm.

Member Function Documentation

◆ FillCaloPDChannelInfo()

void Herd::CaloPDChannelInfoAlgo::FillCaloPDChannelInfo ( std::mt19937 &  randGen,
int  nCubes,
bool  largePD 
)
private

Fill the channel info object related to large or small PDs (see largePD parameter).

Parameters
randGenrandom generator used for the calculation of parameters.
largePDtrue if large PD information is filled, false if samll PD information is filled .
nCubestotal number of cubes.

◆ Initialize()

bool Herd::CaloPDChannelInfoAlgo::Initialize ( )
override

Initialization of the algorithm.

Returns
true if the initialization procedure is successful.

◆ Process()

bool Herd::CaloPDChannelInfoAlgo::Process ( )
override

Process a single event.

Returns
If event processing is successful.

Member Data Documentation

◆ m_caloLpdChannelInfo

std::shared_ptr<CaloPDChannelInfo> Herd::CaloPDChannelInfoAlgo::m_caloLpdChannelInfo
private

◆ m_caloSpdChannelInfo

std::shared_ptr<CaloPDChannelInfo> Herd::CaloPDChannelInfoAlgo::m_caloSpdChannelInfo
private

◆ m_evStore

EA::StorePtr Herd::CaloPDChannelInfoAlgo::m_evStore
private

◆ m_globStore

EA::StorePtr Herd::CaloPDChannelInfoAlgo::m_globStore
private

◆ m_meanGainRatio

float Herd::CaloPDChannelInfoAlgo::m_meanGainRatio
private

◆ m_meanLpdMip

float Herd::CaloPDChannelInfoAlgo::m_meanLpdMip
private

◆ m_meanMaxVal

GainRanges Herd::CaloPDChannelInfoAlgo::m_meanMaxVal
private

◆ m_meanNoise

SignalRanges Herd::CaloPDChannelInfoAlgo::m_meanNoise
private

◆ m_meanPDRatio

float Herd::CaloPDChannelInfoAlgo::m_meanPDRatio
private

◆ m_meanPedestal

float Herd::CaloPDChannelInfoAlgo::m_meanPedestal
private

◆ m_meanSiLpdMip

float Herd::CaloPDChannelInfoAlgo::m_meanSiLpdMip
private

◆ m_meanSiSpdMip

float Herd::CaloPDChannelInfoAlgo::m_meanSiSpdMip
private

◆ m_seed

unsigned int Herd::CaloPDChannelInfoAlgo::m_seed
private

◆ m_varGainRatio

float Herd::CaloPDChannelInfoAlgo::m_varGainRatio
private

◆ m_varLpdMip

float Herd::CaloPDChannelInfoAlgo::m_varLpdMip
private

◆ m_varMaxVal

GainRanges Herd::CaloPDChannelInfoAlgo::m_varMaxVal
private

◆ m_varNoise

SignalRanges Herd::CaloPDChannelInfoAlgo::m_varNoise
private

◆ m_varPDRatio

float Herd::CaloPDChannelInfoAlgo::m_varPDRatio
private

◆ m_varPedestal

float Herd::CaloPDChannelInfoAlgo::m_varPedestal
private

◆ m_varSiLpdMip

float Herd::CaloPDChannelInfoAlgo::m_varSiLpdMip
private

◆ m_varSiSpdMip

float Herd::CaloPDChannelInfoAlgo::m_varSiSpdMip
private

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