HerdSoftware
0.3.2
|
Base algorithm for digitizers of the Monte Carlo hits of silicon detector implementing the effect of charge dritf and diffusion in the silicon. More...
#include <algorithms/digitization/SiliconDetectorDriftDiffusionAlgo.h>
Public Member Functions | |
SiliconDetectorDriftDiffusionAlgo (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, Memory::Status memStatus) override |
Free the memory of unneeded objects. More... | |
Protected Attributes | |
float | m_pitch |
std::string | m_detName |
Name of the detector, e.g "stk". More... | |
float | m_minStepSize |
std::string | m_diffusionType |
float | m_posEffDiffCoeff |
float | m_negEffDiffCoeff |
float | m_biasVoltage |
float | m_intrinsicVoltage |
Private Types | |
enum | DiffusionType { DiffusionType::Gaussian, DiffusionType::GaussianNonLinear } |
Private Member Functions | |
void | GenerateHits (const SiliconDetectorParticleHitsColl &particleHitsColl, const SiliconDetectorHitsColl &hitsColl, SiliconDetectorHitsColl &digHitsColl) |
Generate the diffused hits. More... | |
SiliconDetectorGeoParams | CreateGeoParams (const SiliconDetectorGeoParams &origGeoParams) |
Creates the geometry parameter objects for the digitized detector. More... | |
std::vector< Point > | PartitionTrajectory (const ParticleHit &hit) |
Splits the trajectory of a particle hit into N sub-steps, according to the step-size specified in the algo. More... | |
void | AccumulateSteps (std::vector< Hit > &layerHits, const SiliconDetectorGeoParams &geoParams, unsigned int firstStrip, unsigned int lastStrip, const SiliconDetectorDigitizationTools::SDChargePacket &packet, float edep) |
std::unique_ptr< SiliconDetectorDigitizationTools::SDChargePacket > | CreatePacket (Point position, DiffusionType diffType, const SiliconDetectorGeoParams &geoParams) |
Private Attributes | |
DiffusionType | m_diffType = DiffusionType::GaussianNonLinear |
SiliconDetectorHitsColl | m_siliconDetectorDigHitsColl |
observer_ptr< SiliconDetectorGeoParamsColl > | m_origSiliconDetectorGeoParamsColl |
std::shared_ptr< SiliconDetectorGeoParamsColl > | m_digSiliconDetectorGeoParamsColl |
StorePtr | m_evStore |
StorePtr | m_globStore |
Base algorithm for digitizers of the Monte Carlo hits of silicon detector implementing the effect of charge dritf and diffusion in the silicon.
This algorithm assigns the energy released by single particles traversing a wafer of the silicon detector to the strips after propagating and diffusing charge deposits along the particle trajectory. Different diffusion methods should be implementable, but for now a simple gaussian model is used.
NOTE: this algorithm cannot be used directly in analysis job; use #StkDriftDiffusionAlgo for STK and #ScdDriftDiffusionAlgo for SCD.
|
strongprivate |
Herd::SiliconDetectorDriftDiffusionAlgo::SiliconDetectorDriftDiffusionAlgo | ( | const std::string & | name | ) |
Constructor.
name | The name of the algorithm. |
|
private |
|
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.
origGeoParams | the original geometry parameters. |
std::runtime_error | if the relative position of the first strip on the wafer is less than 0 (i.e. strip outside the wafer). |
|
private |
|
override |
Free the memory of unneeded objects.
Currently this method frees the memory of the digitized hits if memStatus
is EXHAUSTED.
objs | The list of objects to be freed. |
memStatus | The current memory occupation status. |
|
private |
Generate the diffused hits.
This function generates hits on the silicon detector after charge diffusion. It fills the collection passed as the digHitsColl
argument with the digitized hits.
digGeoParamsColl | The geometry parameters of the digitized detector. |
particleHitsColl | The collection of particle hits. |
hitsColl | The collection of hits. |
digHitsColl | The collection of digitized hits. |
|
override |
Initialization of the algorithm.
|
private |
Splits the trajectory of a particle hit into N sub-steps, according to the step-size specified in the algo.
hit | the particle hit. |
|
override |
Process a single event.
|
protected |
|
protected |
Name of the detector, e.g "stk".
|
private |
|
protected |
|
private |
|
private |
|
private |
|
protected |
|
protected |
|
protected |
|
private |
|
protected |
|
protected |
|
private |