Garfield++ 5.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
eparticle.cpp
Go to the documentation of this file.
2
3// 1998 - 2004, I. Smirnov
4
5namespace Heed {
6
7eparticle::eparticle(manip_absvol* primvol, const point& pt, const vec& vel,
8 vfloat ftime, particle_def* fpardef, HeedFieldMap* fieldmap)
9 : mparticle(primvol, pt, vel, ftime, fpardef->mass),
10 m_pardef(fpardef), m_fieldMap(fieldmap) {
11}
12
13int eparticle::force(const point& pt, vec& f, vec& f_perp, vfloat& mrange) {
14 vec efield(0., 0., 0.);
15 vec hfield(0., 0., 0.);
16 if (!m_fieldMap) {
17 std::cerr << "Field map not defined.\n";
18 return 1;
19 }
20 m_fieldMap->field_map(pt, efield, hfield, mrange);
21 f = m_pardef->charge * efield;
22 f_perp = m_pardef->charge * hfield;
23 return 1;
24}
25
26void eparticle::print(std::ostream& file, int l) const {
27 if (l < 0) return;
28 Ifile << "eparticle: particle is ";
29 if (!m_pardef) {
30 file << "none";
31 } else {
32 file << m_pardef->notation;
33 }
34 file << '\n';
35 mparticle::print(file, l);
36}
37}
Retrieve electric and magnetic field from Sensor.
void print(std::ostream &file, int l) const override
Print-out.
Definition eparticle.cpp:26
particle_def * m_pardef
Definition eparticle.h:32
eparticle()=default
Default constructor.
HeedFieldMap * m_fieldMap
Pointer to field map.
Definition eparticle.h:34
int force(const point &pt, vec &f, vec &f_perp, vfloat &mrange) override
Calculate force components.
Definition eparticle.cpp:13
Abstract base classs for volume "manipulators".
Definition volume.h:128
void print(std::ostream &file, int l) const override
Print-out.
mparticle()=default
Default constructor.
Point.
Definition vec.h:368
Definition BGMesh.cpp:6
double vfloat
Definition vfloat.h:16
#define Ifile
Definition prstream.h:195