HerdSoftware  0.1.1
SDChargePacket.h
Go to the documentation of this file.
1 /*
2  * SDChargePacket.h
3  *
4  * Created on 23 Sep 2020
5  * Author: Valerio Formato
6  */
7 
8 #ifndef HERD_SDCHARGEPACKET_H_
9 #define HERD_SDCHARGEPACKET_H_
10 
11 // HerdSoftware headers
12 #include "dataobjects/Point.h"
13 
14 // c++ headers
15 #include <vector>
16 
17 // this in c++17 will become
18 // namespace Herd::SiliconDetectorDigitizationTools {
19 namespace Herd {
20 namespace SiliconDetectorDigitizationTools {
22 public:
23  enum class CarrierType { Electron, Hole };
24 
25  SDChargePacket(Point origin) : m_origin{std::move(origin)} {};
26  virtual ~SDChargePacket() = default;
27 
28  virtual void Diffuse(float distance, CarrierType type) = 0;
29  virtual float IntegrateCharge(float xmin, float xmax) const = 0;
30  virtual std::pair<float, float> EffectiveRange() const = 0;
31 
32 protected:
34 };
35 } // namespace SiliconDetectorDigitizationTools
36 } // namespace Herd
37 
38 #endif
CssGeoParams.h CssGeoParams class declaration.
Definition: CaloPDCalibrationAlgo.h:24
virtual float IntegrateCharge(float xmin, float xmax) const =0
SDChargePacket(Point origin)
Definition: SDChargePacket.h:25
Point m_origin
Definition: SDChargePacket.h:33
A class describing a vector in 3D space.
Definition: Vec3D.h:33
virtual std::pair< float, float > EffectiveRange() const =0
virtual void Diffuse(float distance, CarrierType type)=0