HerdSoftware  0.4.0
ScdGaussianNonLinearChargePacket.h
Go to the documentation of this file.
1 /*
2  * ScdGaussianNonLinearChargePacket.h
3  *
4  * Created on 13 Oct 2020
5  * Author: Valerio Formato
6  */
7 
8 #ifndef HERD_ScdGAUSSIANNONLINEARCHARGEPACKET_H_
9 #define HERD_ScdGAUSSIANNONLINEARCHARGEPACKET_H_
10 
11 // HerdSoftware headers
15 
16 // c++ headers
17 #include <vector>
18 
19 // this in c++17 will become
20 // namespace Herd::ScdDigitizationTools {
22 // clang-format off
29 // clang-format on
30 
32 public:
36  ~ScdGaussianNonLinearChargePacket() override = default;
37 
38  void Diffuse(float distance, CarrierType type) override;
39  [[nodiscard]] float IntegrateCharge(float xmin, float xmax) const override;
40  [[nodiscard]] std::pair<float, float> EffectiveRange() const override;
41 
42  void SetDiffusionParameters(float biasVoltage, float intrinsicVoltage, float siliconDepth);
43 
44 private:
45  // drift parameters
49 
50  float m_sigma;
51 };
52 } // namespace Herd::ScdDigitizationTools
53 
54 #endif
Point.h
ScdChargePacket.h
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::m_biasVoltage
float m_biasVoltage
Definition: ScdGaussianNonLinearChargePacket.h:46
Herd::Vec3D
A class describing a vector in 3D space.
Definition: Vec3D.h:33
Herd::ScdDigitizationTools::ScdChargePacket
Definition: ScdChargePacket.h:18
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::m_siliconDepth
float m_siliconDepth
Definition: ScdGaussianNonLinearChargePacket.h:48
DEFAULT_INIT
#define DEFAULT_INIT(x)
Definition: DefaultValues.h:23
Herd::ScdDigitizationTools::ScdChargePacket::CarrierType
CarrierType
Definition: ScdChargePacket.h:20
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::EffectiveRange
std::pair< float, float > EffectiveRange() const override
Definition: ScdGaussianNonLinearChargePacket.cpp:51
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::IntegrateCharge
float IntegrateCharge(float xmin, float xmax) const override
Definition: ScdGaussianNonLinearChargePacket.cpp:38
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::m_sigma
float m_sigma
Definition: ScdGaussianNonLinearChargePacket.h:50
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::~ScdGaussianNonLinearChargePacket
~ScdGaussianNonLinearChargePacket() override=default
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::m_intrinsicVoltage
float m_intrinsicVoltage
Definition: ScdGaussianNonLinearChargePacket.h:47
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::Diffuse
void Diffuse(float distance, CarrierType type) override
Definition: ScdGaussianNonLinearChargePacket.cpp:18
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::ScdGaussianNonLinearChargePacket
ScdGaussianNonLinearChargePacket(Point origin)
Definition: ScdGaussianNonLinearChargePacket.h:33
DefaultValues.h
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket
Class to describe a charge packet that diffuses with a simple gaussian profile.
Definition: ScdGaussianNonLinearChargePacket.h:31
Herd::ScdDigitizationTools
Definition: ScdChargePacket.h:17
Herd::ScdDigitizationTools::ScdGaussianNonLinearChargePacket::SetDiffusionParameters
void SetDiffusionParameters(float biasVoltage, float intrinsicVoltage, float siliconDepth)
Definition: ScdGaussianNonLinearChargePacket.cpp:11