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