HerdSoftware  0.4.0
ScdGaussianChargePacket.h
Go to the documentation of this file.
1 /*
2  * ScdGaussianChargePacket.h
3  *
4  * Created on 23 Sep 2020
5  * Author: Valerio Formato
6  */
7 
8 #ifndef HERD_ScdGAUSSIANCHARGEPACKET_H_
9 #define HERD_ScdGAUSSIANCHARGEPACKET_H_
10 
11 // HerdSoftware headers
15 
16 // c++ headers
17 #include <vector>
18 
20 // clang-format off
27 // clang-format on
28 
30 public:
33  ~ScdGaussianChargePacket() override = default;
34 
35  void Diffuse(float distance, CarrierType type) override;
36  [[nodiscard]] float IntegrateCharge(float xmin, float xmax) const override;
37  [[nodiscard]] std::pair<float, float> EffectiveRange() const override;
38 
39  void SetEffectiveDiffusionCoefficients(float posCoeff, float negCoeff) {
40  m_posEffDiffCoeff = posCoeff;
41  m_negEffDiffCoeff = negCoeff;
42  }
43 
44 private:
47  float m_sigma;
48 };
49 } // namespace Herd::ScdDigitizationTools
50 
51 #endif
Herd::ScdDigitizationTools::ScdGaussianChargePacket::m_negEffDiffCoeff
float m_negEffDiffCoeff
Definition: ScdGaussianChargePacket.h:46
Herd::ScdDigitizationTools::ScdGaussianChargePacket::m_posEffDiffCoeff
float m_posEffDiffCoeff
Definition: ScdGaussianChargePacket.h:45
Herd::ScdDigitizationTools::ScdGaussianChargePacket::SetEffectiveDiffusionCoefficients
void SetEffectiveDiffusionCoefficients(float posCoeff, float negCoeff)
Definition: ScdGaussianChargePacket.h:39
Point.h
ScdChargePacket.h
Herd::Vec3D
A class describing a vector in 3D space.
Definition: Vec3D.h:33
Herd::ScdDigitizationTools::ScdChargePacket
Definition: ScdChargePacket.h:18
DEFAULT_INIT
#define DEFAULT_INIT(x)
Definition: DefaultValues.h:23
Herd::ScdDigitizationTools::ScdChargePacket::CarrierType
CarrierType
Definition: ScdChargePacket.h:20
Herd::ScdDigitizationTools::ScdGaussianChargePacket::m_sigma
float m_sigma
Definition: ScdGaussianChargePacket.h:47
Herd::ScdDigitizationTools::ScdGaussianChargePacket::ScdGaussianChargePacket
ScdGaussianChargePacket(Point origin)
Definition: ScdGaussianChargePacket.h:31
Herd::ScdDigitizationTools::ScdGaussianChargePacket::Diffuse
void Diffuse(float distance, CarrierType type) override
Definition: ScdGaussianChargePacket.cpp:5
Herd::ScdDigitizationTools::ScdGaussianChargePacket::EffectiveRange
std::pair< float, float > EffectiveRange() const override
Definition: ScdGaussianChargePacket.cpp:30
DefaultValues.h
Herd::ScdDigitizationTools::ScdGaussianChargePacket::~ScdGaussianChargePacket
~ScdGaussianChargePacket() override=default
Herd::ScdDigitizationTools::ScdGaussianChargePacket::IntegrateCharge
float IntegrateCharge(float xmin, float xmax) const override
Definition: ScdGaussianChargePacket.cpp:18
Herd::ScdDigitizationTools
Definition: ScdChargePacket.h:17
Herd::ScdDigitizationTools::ScdGaussianChargePacket
Class to describe a charge packet that diffuses with a simple gaussian profile.
Definition: ScdGaussianChargePacket.h:29