HerdSoftware  0.1.1
Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
Herd::SiliconDetectorCapacitiveNetAlgo Class Reference

Base algorithm for digitizers of the Monte Carlo hits of silicon detector implementing the effect of a capacitive net between on the strips. More...

#include <algorithms/digitization/SiliconDetectorCapacitiveNetAlgo.h>

Inheritance diagram for Herd::SiliconDetectorCapacitiveNetAlgo:
Herd::ScdCapacitiveNetAlgo Herd::StkCapacitiveNetAlgo

Public Member Functions

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

int _nFloating
 Number of floating strips not read beween two readout strips. More...
 
int _startReadout
 Index of the first implanted strip that is read. More...
 
std::string _configFile
 Name of the file name where to read the capacitive net. More...
 
int _configStart
 Start readout strip with respect to closest to the left. More...
 
std::vector< std::vector< float > > _configFraction
 Fraction of readout signal to be put on each readout strip for each implant strip. More...
 
std::string _detName
 Name of the detector, e.g "stk". More...
 

Private Member Functions

bool ReadConfigFile (std::string configFile)
 Read the capacitive net factors from a configuration file. More...
 
bool GenerateHits (const SiliconDetectorHitsColl &implantHitsColl, SiliconDetectorHitsColl &readoutHitsColl)
 Generate the diffused hits. More...
 

Private Attributes

SiliconDetectorHitsColl _readoutHitsColl
 
std::shared_ptr< SiliconDetectorChannelGeoInfoColl_readoutChannelGeoInfoColl
 
observer_ptr< SiliconDetectorGeoParamsColl_origGeoParamsColl
 
StorePtr _evStore
 
StorePtr _globStore
 

Detailed Description

Base algorithm for digitizers of the Monte Carlo hits of silicon detector implementing the effect of a capacitive net between on the strips.

This algorithm distributes the signal collected on a implantation strip to neightboring readout strips. The procedure is repeated on the same wafer to calculate and signal is accumulated on the readout strips. The capacitive net is read in a simple table from a static external file.

Example of capacitive net config file format (lines starting with # are comments):

Config file for 2 floating strips and 5 readout strips

(two before, and two after the leftmost closest readout strip)

Header: the starting readout strip

-2

Rows: implantation strips starting from left readout (0) towards the right readout strip (1)

Columns: readout strip from the starting readout strip (two before the leftmost closest strip)

0.000 0.000 1.000 0.000 0.000 0.000 0.000 0.667 0.333 0.000 0.000 0.000 0.333 0.667 0.000

NOTE: this algorithm cannot be used directly in analysis job; use #StkCapacitiveNetAlgo for STK and #ScdCapacitiveNetAlgo for SCD.

Constructor & Destructor Documentation

◆ SiliconDetectorCapacitiveNetAlgo()

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

Constructor.

Parameters
nameThe name of the algorithm.

Member Function Documentation

◆ FreeObjects()

std::vector< std::string > Herd::SiliconDetectorCapacitiveNetAlgo::FreeObjects ( const std::vector< std::string > &  objs,
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.

◆ GenerateHits()

bool Herd::SiliconDetectorCapacitiveNetAlgo::GenerateHits ( const SiliconDetectorHitsColl implantHitsColl,
SiliconDetectorHitsColl readoutHitsColl 
)
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.

Parameters
digGeoParamsCollThe geometry parameters of the digitized detector.
particleHitsCollThe collection of particle hits.
hitsCollThe collection of hits.
digHitsCollThe collection of digitized hits.

◆ Initialize()

bool Herd::SiliconDetectorCapacitiveNetAlgo::Initialize ( )
override

Initialization of the algorithm.

Returns
true if the initialization procedure is successful.

◆ Process()

bool Herd::SiliconDetectorCapacitiveNetAlgo::Process ( )
override

Process a single event.

Returns
If event processing is successful.

◆ ReadConfigFile()

bool Herd::SiliconDetectorCapacitiveNetAlgo::ReadConfigFile ( std::string  configFile)
private

Read the capacitive net factors from a configuration file.

Parameters
configFileThe config file name.
Returns
true if the file has been found and read successfully.

Member Data Documentation

◆ _configFile

std::string Herd::SiliconDetectorCapacitiveNetAlgo::_configFile
protected

Name of the file name where to read the capacitive net.

◆ _configFraction

std::vector<std::vector<float> > Herd::SiliconDetectorCapacitiveNetAlgo::_configFraction
protected

Fraction of readout signal to be put on each readout strip for each implant strip.

◆ _configStart

int Herd::SiliconDetectorCapacitiveNetAlgo::_configStart
protected

Start readout strip with respect to closest to the left.

◆ _detName

std::string Herd::SiliconDetectorCapacitiveNetAlgo::_detName
protected

Name of the detector, e.g "stk".

◆ _evStore

StorePtr Herd::SiliconDetectorCapacitiveNetAlgo::_evStore
private

◆ _globStore

StorePtr Herd::SiliconDetectorCapacitiveNetAlgo::_globStore
private

◆ _nFloating

int Herd::SiliconDetectorCapacitiveNetAlgo::_nFloating
protected

Number of floating strips not read beween two readout strips.

◆ _origGeoParamsColl

observer_ptr<SiliconDetectorGeoParamsColl> Herd::SiliconDetectorCapacitiveNetAlgo::_origGeoParamsColl
private

◆ _readoutChannelGeoInfoColl

std::shared_ptr<SiliconDetectorChannelGeoInfoColl> Herd::SiliconDetectorCapacitiveNetAlgo::_readoutChannelGeoInfoColl
private

◆ _readoutHitsColl

SiliconDetectorHitsColl Herd::SiliconDetectorCapacitiveNetAlgo::_readoutHitsColl
private

◆ _startReadout

int Herd::SiliconDetectorCapacitiveNetAlgo::_startReadout
protected

Index of the first implanted strip that is read.


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