HerdSoftware  0.3.2
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  ~SDGaussianNonLinearChargePacket() override = default;
38 
39  void Diffuse(float distance, CarrierType type) override;
40  float IntegrateCharge(float xmin, float xmax) const override;
41  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
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
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
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