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

Base algorithm for digitizers of the Monte Carlo hits of the Silicon Charge Detector implementing the effect of a capacitive net between on the strips. More...

#include <algorithms/digitization/ScdCapacitiveNetAlgo.h>

Inheritance diagram for Herd::ScdCapacitiveNetAlgo:

Public Member Functions

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

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

Private Attributes

int m_nFloating
 Number of floating strips not read beween two readout strips. More...
 
int m_startReadout
 Index of the first implanted strip that is read. More...
 
std::string m_configFile
 Name of the file name where to read the capacitive net. More...
 
int m_configStart
 Start readout strip with respect to closest to the left. More...
 
std::vector< std::vector< float > > m_configFraction
 Fraction of readout signal to be put on each readout strip for each implant strip. More...
 
ScdHitsColl m_readoutHitsColl
 
std::shared_ptr< ScdChannelGeoInfoCollm_readoutChannelGeoInfoColl
 
EA::observer_ptr< ScdGeoParamsCollm_origGeoParamsColl
 
EA::StorePtr m_evStore
 
EA::StorePtr m_globStore
 

Detailed Description

Base algorithm for digitizers of the Monte Carlo hits of the Silicon Charge Detector implementing the effect of a capacitive net between on the strips.

This algorithm distributes the signal collected on a implantation strip to neighboring 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

Needed event objects:

name type store optional description
scdHitsCollMC ScdHitsColl evStore no The MC hits in the strips.

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
scdCapNetHitsCollMC ScdHitsColl scdHitsCollMC evStore The hits in the readout strips of the SCD.

Produced global objects:

name type alias store description
scdChannelGeoInfoCapNetColl ScdChannelGeoInfoColl scdChannelGeoInfoColl globStore The geometry parameters of the digitized SCD.

Parameters:

name type default value description
nFloating int 2 Number of floating strips between two consecutive readout strips.
startReadout int 0 Number of not read strips at the beginning of the ladder.
configFile string "" Name of the capacitive net configuration file.

Constructor & Destructor Documentation

◆ ScdCapacitiveNetAlgo()

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

Constructor.

Parameters
nameThe name of the algorithm.

Member Function Documentation

◆ FreeObjects()

std::vector< std::string > Herd::ScdCapacitiveNetAlgo::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.

◆ GenerateHits()

bool Herd::ScdCapacitiveNetAlgo::GenerateHits ( const ScdHitsColl implantHitsColl,
ScdHitsColl readoutHitsColl 
)
private

Generate the diffused hits.

This function generates hits on the SCD after charge diffusion. It fills the collection passed as arguments with the digitized hits.

Parameters
implantHitsCollThe diffused hits on the implanted strips (return value).
readoutHitsCollThe diffused hits on the readout strips (return value).

◆ Initialize()

bool Herd::ScdCapacitiveNetAlgo::Initialize ( )
override

Initialization of the algorithm.

Returns
true if the initialization procedure is successful.

◆ Process()

bool Herd::ScdCapacitiveNetAlgo::Process ( )
override

Process a single event.

Returns
If event processing is successful.

◆ ReadConfigFile()

bool Herd::ScdCapacitiveNetAlgo::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

◆ m_configFile

std::string Herd::ScdCapacitiveNetAlgo::m_configFile
private

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

◆ m_configFraction

std::vector<std::vector<float> > Herd::ScdCapacitiveNetAlgo::m_configFraction
private

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

◆ m_configStart

int Herd::ScdCapacitiveNetAlgo::m_configStart
private

Start readout strip with respect to closest to the left.

◆ m_evStore

EA::StorePtr Herd::ScdCapacitiveNetAlgo::m_evStore
private

◆ m_globStore

EA::StorePtr Herd::ScdCapacitiveNetAlgo::m_globStore
private

◆ m_nFloating

int Herd::ScdCapacitiveNetAlgo::m_nFloating
private

Number of floating strips not read beween two readout strips.

◆ m_origGeoParamsColl

EA::observer_ptr<ScdGeoParamsColl> Herd::ScdCapacitiveNetAlgo::m_origGeoParamsColl
private

◆ m_readoutChannelGeoInfoColl

std::shared_ptr<ScdChannelGeoInfoColl> Herd::ScdCapacitiveNetAlgo::m_readoutChannelGeoInfoColl
private

◆ m_readoutHitsColl

ScdHitsColl Herd::ScdCapacitiveNetAlgo::m_readoutHitsColl
private

◆ m_startReadout

int Herd::ScdCapacitiveNetAlgo::m_startReadout
private

Index of the first implanted strip that is read.


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