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

Algorithm that digitizes the PSD time measurement using a threshold identification. More...

#include <PsdThreshTimeDigitizerAlgo.h>

Inheritance diagram for Herd::PsdThreshTimeDigitizerAlgo:

Public Member Functions

 PsdThreshTimeDigitizerAlgo (const std::string &name)
 Constructor. More...
 
bool Initialize ()
 Initializes the algo. More...
 
bool Process ()
 Processes an event. More...
 

Private Attributes

std::string m_psdPartHitsCollName
 
std::string m_psdHitsCollName
 
float m_threshold
 
float m_sigma
 
unsigned int m_rngSeed
 
StorePtr m_evStore
 
StorePtr m_globStore
 
PsdTimeStampsColl m_timeStampsColl
 
std::mt19937 m_rnGenerator
 
std::unique_ptr< std::normal_distribution< float > > m_gaussDist
 

Detailed Description

Algorithm that digitizes the PSD time measurement using a threshold identification.

This algorithm produces a digitized time measurement for PSD elements starting from PSD particle hits. The current implementation is extremely simplified: the time measurement is taken at the time of passage of the particle whose energy deposit exceeds a given threshold. A gaussian spread is then applied to this time stamp.

The geometric effects of the particle hit point on the PSD element and of the size of the element itself are currently not taken into account.

Needed event objects:

name type store optional description
<psdPartHitsColl> PsdParticleHitsColl evStore No The PSD particle hits.
<psdHitsColl> PsdHitsColl evStore No The PSD hits.

Needed global objects: name | type | store | optional | description -----------------------—|--------------------—|----------—|-------—|----------------------—

Provided event objects:

name type alias store description
psdTimeStampsColl_threshDigitized PsdTimeStampsColl psdTimeStampsColl evStore The digitized time measurements for PSD.

Parameters:

name type default value description
psdPartHitsColl std::string "psdParticleHitsCollMC" The name of the PSD particle hits collection to be processed.
psdHitsColl std::string "psdHitsCollMC" The name of the PSD hits collection to be processed.
threshold float 0.45e-3 Threshold energy release (GeV).
sigma float 0.5 The sigma of the Gaussian spread (ns) to be applied to the time measurement.
rngSeed unsigned int 7654243 The seed of the random number generator use to sample the time spread.

Constructor & Destructor Documentation

◆ PsdThreshTimeDigitizerAlgo()

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

Constructor.

Parameters
nameThe name of the algorithm object.

Member Function Documentation

◆ Initialize()

bool Herd::PsdThreshTimeDigitizerAlgo::Initialize ( )

Initializes the algo.

Returns
true if initialization is done without errors, false otherwise.

◆ Process()

bool Herd::PsdThreshTimeDigitizerAlgo::Process ( )

Processes an event.

Returns
true if no error occurs during processing, false otherwise.

Member Data Documentation

◆ m_evStore

StorePtr Herd::PsdThreshTimeDigitizerAlgo::m_evStore
private

◆ m_gaussDist

std::unique_ptr<std::normal_distribution<float> > Herd::PsdThreshTimeDigitizerAlgo::m_gaussDist
private

◆ m_globStore

StorePtr Herd::PsdThreshTimeDigitizerAlgo::m_globStore
private

◆ m_psdHitsCollName

std::string Herd::PsdThreshTimeDigitizerAlgo::m_psdHitsCollName
private

◆ m_psdPartHitsCollName

std::string Herd::PsdThreshTimeDigitizerAlgo::m_psdPartHitsCollName
private

◆ m_rnGenerator

std::mt19937 Herd::PsdThreshTimeDigitizerAlgo::m_rnGenerator
private

◆ m_rngSeed

unsigned int Herd::PsdThreshTimeDigitizerAlgo::m_rngSeed
private

◆ m_sigma

float Herd::PsdThreshTimeDigitizerAlgo::m_sigma
private

◆ m_threshold

float Herd::PsdThreshTimeDigitizerAlgo::m_threshold
private

◆ m_timeStampsColl

PsdTimeStampsColl Herd::PsdThreshTimeDigitizerAlgo::m_timeStampsColl
private

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