Garfield++ 5.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
HeedParticle.h
Go to the documentation of this file.
1#ifndef HEEDPARTICLE_H
2#define HEEDPARTICLE_H
3
4#include <vector>
6#include "HeedCluster.h"
7
8namespace Heed {
9
10/// Charged particle which can be traced through the geometry.
11///
12/// 2003, I. Smirnov
13
14class HeedParticle : public eparticle {
15 public:
16 /// Default constructor
18 /// Constructor.
19 /// If fs_loss_only == false only transferred energy
20 /// is simulated: no deposition of clusters,
21 /// no generation of virtual photons.
22 HeedParticle(manip_absvol* primvol, const point& pt, const vec& vel,
23 vfloat time, particle_def* fpardef, HeedFieldMap* fieldmap,
24 const bool fcoulomb_scattering = false,
25 const bool floss_only = false,
26 const bool fprint_listing = false);
27 /// Destructor
28 virtual ~HeedParticle() {}
29
30 HeedParticle* copy() const override { return new HeedParticle(*this); }
31 void print(std::ostream& file, int l) const override;
32
33 protected:
34 void physics(std::vector<gparticle*>& secondaries) override;
35 void physics_mrange(double& fmrange) override;
36
37 private:
38 bool m_coulomb_scattering = false;
39 bool m_loss_only = false;
40 bool m_print_listing = false;
41 bool m_store_clusters = false;
42
43 long m_particle_number = 0;
44
45 double m_edep = 0.;
46
47 std::vector<HeedCluster> m_clusterBank;
48};
49}
50
51#endif
Retrieve electric and magnetic field from Sensor.
void print(std::ostream &file, int l) const override
Print-out.
HeedParticle * copy() const override
Clone the particle.
void physics_mrange(double &fmrange) override
void physics(std::vector< gparticle * > &secondaries) override
Apply any other processes (turn the trajectory, kill the particle, ...).
HeedParticle()
Default constructor.
virtual ~HeedParticle()
Destructor.
eparticle()=default
Default constructor.
vfloat time() const
Get the current time of the particle.
Definition gparticle.h:191
Abstract base classs for volume "manipulators".
Definition volume.h:128
Point.
Definition vec.h:368
Definition BGMesh.cpp:6
double vfloat
Definition vfloat.h:16