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

Base algorithm for digitizers of the Monte Carlo hits of the Silicon Charge Detector, based on a purely geometric criterion. More...

#include <algorithms/digitization/ScdGeometricDigitizerAlgo.h>

Inheritance diagram for Herd::ScdGeometricDigitizerAlgo:

Public Member Functions

 ScdGeometricDigitizerAlgo (const std::string &name)
 Constructor. More...
 
bool Initialize () override
 Initialization of the algorithm. More...
 
bool Process () override
 Process a single event. More...
 
std::vector< std::string > FreeObjects (const std::vector< std::string > &objs, EA::Memory::Status memStatus) override
 Free the memory of unneeded objects. More...
 

Private Member Functions

void _Digitize (const ScdParticleHitsColl &particleHitsColl, const ScdHitsColl &hitsColl, ScdHitsColl &digHitsColl)
 Digitizes the silicon hits. More...
 
ScdGeoParams _CreateGeoParams (const ScdGeoParams &origGeoParams)
 Creates the geometry parameter objects for the digitized detector. More...
 

Private Attributes

float m_pitch
 
ScdHitsColl m_siliconDetectorDigHitsColl
 
EA::observer_ptr< ScdGeoParamsCollm_origScdGeoParamsColl
 
std::shared_ptr< ScdGeoParamsCollm_digScdGeoParamsColl
 
EA::StorePtr m_evStore
 
EA::StorePtr m_globStore
 

Detailed Description

Base algorithm for digitizers of the Monte Carlo hits of the Silicon Charge Detector, based on a purely geometric criterion.

This algorithm assigns the energy released by single particles traversing a wafer of the SCD to the strip nearest to the entrance point in the silicon. The criterion is purely geometric and does not take into account important effects such as charge drift in the silicon, charge sharing between adjacent strips, electronic noise, GeV->ADC conversion etc.

Needed event objects:

name type store optional description
scdWaferHitsCollGGS ScdHitsColl evStore no The MC hits in the SCD wafers.
scdWaferParticleHitsCollMC ScdParticleHitsColl evStore no The MC particle hits in the SCD wafers.

Needed global objects:

name type store optional description
scdGeoParamsColl ScdGeoParamsColl globStore yes Geometric parameters of the SCD.

Produced event objects:

name type alias store description
scdGeomDigHitsCollMC ScdHitsColl scdHitsCollMC evStore The hits in the strips of the SCD.

Produced global objects:

name type alias store description
scdGeoParamsCollWaferStrip ScdHitsColl scdGeoParamsColl evStore The geometry parameters of the digitized SCD.

Parameters:

name type default value description
pitch float 0.0100 The pitch used for the digitization of the top SCD hits [cm].

Constructor & Destructor Documentation

◆ ScdGeometricDigitizerAlgo()

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

Constructor.

Parameters
nameThe name of the algorithm.

Member Function Documentation

◆ _CreateGeoParams()

ScdGeoParams Herd::ScdGeometricDigitizerAlgo::_CreateGeoParams ( const ScdGeoParams origGeoParams)
private

Creates the geometry parameter objects for the digitized detector.

Starting from the original geometry parameters this method computes the digitized parameters using the digitization parameters stored in private members.

Parameters
origGeoParamsthe original geometry parameters.
Returns
The geometry parameters of the digitized detectors.
Exceptions
std::runtime_errorif the relative position of the first strip on the wafer is less than 0 (i.e. strip outside the wafer).

◆ _Digitize()

void Herd::ScdGeometricDigitizerAlgo::_Digitize ( const ScdParticleHitsColl particleHitsColl,
const ScdHitsColl hitsColl,
ScdHitsColl digHitsColl 
)
private

Digitizes the silicon hits.

This function digitizes the hits of the SCD. It fills the collection passed as the digHitsColl argument with the digitized hits.

Parameters
particleHitsCollThe collection of particle hits.
hitsCollThe collection of hits.
digHitsCollThe collection of digitized hits.

◆ FreeObjects()

std::vector< std::string > Herd::ScdGeometricDigitizerAlgo::FreeObjects ( const std::vector< std::string > &  objs,
EA::Memory::Status  memStatus 
)
override

Free the memory of unneeded objects.

Currently this method frees the memory of the digitized hits if memStatus is EXHAUSTED.

Parameters
objsThe list of objects to be freed.
memStatusThe current memory occupation status.
Returns
a list of freed objects.

◆ Initialize()

bool Herd::ScdGeometricDigitizerAlgo::Initialize ( )
override

Initialization of the algorithm.

Returns
true if the initialization procedure is successful.

◆ Process()

bool Herd::ScdGeometricDigitizerAlgo::Process ( )
override

Process a single event.

Returns
If event processing is successful.

Member Data Documentation

◆ m_digScdGeoParamsColl

std::shared_ptr<ScdGeoParamsColl> Herd::ScdGeometricDigitizerAlgo::m_digScdGeoParamsColl
private

◆ m_evStore

EA::StorePtr Herd::ScdGeometricDigitizerAlgo::m_evStore
private

◆ m_globStore

EA::StorePtr Herd::ScdGeometricDigitizerAlgo::m_globStore
private

◆ m_origScdGeoParamsColl

EA::observer_ptr<ScdGeoParamsColl> Herd::ScdGeometricDigitizerAlgo::m_origScdGeoParamsColl
private

◆ m_pitch

float Herd::ScdGeometricDigitizerAlgo::m_pitch
private

◆ m_siliconDetectorDigHitsColl

ScdHitsColl Herd::ScdGeometricDigitizerAlgo::m_siliconDetectorDigHitsColl
private

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