Garfield++
5.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
Loading...
Searching...
No Matches
HeedPhoton.h
Go to the documentation of this file.
1
#ifndef HEEDPHOTON_H
2
#define HEEDPHOTON_H
3
4
#include <vector>
5
#include "
HeedFieldMap.h
"
6
#include "
heed++/code/HeedMatterDef.h
"
7
#include "
wcpplib/geometry/gparticle.h
"
8
9
//#define SFER_PHOTOEL // make direction of photoelectron absolutely random
10
11
namespace
Heed
{
12
13
/// Definition of the photon which can be emitted at atomic relaxation cascades
14
/// and traced through the geometry.
15
/// 2003, I. Smirnov
16
17
class
HeedPhoton
:
public
gparticle
{
18
public
:
19
/// Default constructor.
20
HeedPhoton
() =
default
;
21
/// Constructor.
22
HeedPhoton
(
manip_absvol
* primvol,
const
point
& pt,
const
vec
& vel,
23
vfloat
time
,
long
fparent_particle_number,
double
fenergy,
24
HeedFieldMap
* fieldmap,
const
bool
fs_print_listing =
false
);
25
/// Destructor
26
virtual
~HeedPhoton
() {}
27
28
void
print
(std::ostream& file,
int
l)
const override
;
29
HeedPhoton
*
copy
()
const override
{
return
new
HeedPhoton
(*
this
); }
30
31
long
m_particle_number
;
32
long
m_parent_particle_number
;
33
34
/// Photon energy [MeV]
35
double
m_energy
;
36
37
/// Flag whether the photon has been absorbed.
38
/// Used in physics_after_new_speed.
39
bool
m_photon_absorbed
=
false
;
40
/// Index of absorbing atom.
41
long
m_na_absorbing
= 0;
42
/// Index of absorbing shell
43
long
m_ns_absorbing
= 0;
44
45
#ifdef SFER_PHOTOEL
46
int
s_sfer_photoel;
47
#endif
48
49
/// Flag that delta-electrons are already generated (or cannot be created).
50
bool
m_delta_generated
=
false
;
51
52
protected
:
53
void
physics_after_new_speed
(std::vector<gparticle*>& secondaries)
override
;
54
void
physics
(std::vector<gparticle*>& secondaries)
override
;
55
56
private
:
57
/// Flag to print internal algorithms of a selected event
58
bool
m_print_listing =
false
;
59
60
HeedFieldMap
* m_fieldMap =
nullptr
;
61
};
62
}
63
64
#endif
HeedFieldMap.h
HeedMatterDef.h
Heed::HeedFieldMap
Retrieve electric and magnetic field from Sensor.
Definition
HeedFieldMap.h:15
Heed::HeedPhoton::~HeedPhoton
virtual ~HeedPhoton()
Destructor.
Definition
HeedPhoton.h:26
Heed::HeedPhoton::m_na_absorbing
long m_na_absorbing
Index of absorbing atom.
Definition
HeedPhoton.h:41
Heed::HeedPhoton::m_ns_absorbing
long m_ns_absorbing
Index of absorbing shell.
Definition
HeedPhoton.h:43
Heed::HeedPhoton::physics_after_new_speed
void physics_after_new_speed(std::vector< gparticle * > &secondaries) override
Apply any other processes (turn the trajectory, kill the particle, ...).
Definition
HeedPhoton.cpp:109
Heed::HeedPhoton::m_photon_absorbed
bool m_photon_absorbed
Definition
HeedPhoton.h:39
Heed::HeedPhoton::physics
void physics(std::vector< gparticle * > &secondaries) override
Apply any other processes (turn the trajectory, kill the particle, ...).
Definition
HeedPhoton.cpp:42
Heed::HeedPhoton::m_parent_particle_number
long m_parent_particle_number
Definition
HeedPhoton.h:32
Heed::HeedPhoton::copy
HeedPhoton * copy() const override
Clone the particle.
Definition
HeedPhoton.h:29
Heed::HeedPhoton::m_particle_number
long m_particle_number
Definition
HeedPhoton.h:31
Heed::HeedPhoton::HeedPhoton
HeedPhoton()=default
Default constructor.
Heed::HeedPhoton::m_energy
double m_energy
Photon energy [MeV].
Definition
HeedPhoton.h:35
Heed::HeedPhoton::print
void print(std::ostream &file, int l) const override
Print-out.
Definition
HeedPhoton.cpp:192
Heed::HeedPhoton::m_delta_generated
bool m_delta_generated
Flag that delta-electrons are already generated (or cannot be created).
Definition
HeedPhoton.h:50
Heed::gparticle::time
vfloat time() const
Get the current time of the particle.
Definition
gparticle.h:191
Heed::gparticle::gparticle
gparticle()=default
Default constructor.
Heed::manip_absvol
Abstract base classs for volume "manipulators".
Definition
volume.h:128
Heed::point
Point.
Definition
vec.h:368
Heed::vec
Definition
vec.h:179
gparticle.h
Heed
Definition
BGMesh.cpp:6
Heed::vfloat
double vfloat
Definition
vfloat.h:16
garfieldpp-5.0
Heed
heed++
code
HeedPhoton.h
Generated by
1.13.2