Garfield++
4.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
extern
long
last_particle_number
;
13
14
/// Definition of the photon which can be emitted at atomic relaxation cascades
15
/// and traced through the geometry.
16
/// 2003, I. Smirnov
17
18
class
HeedPhoton
:
public
gparticle
{
19
public
:
20
/// Default constructor.
21
HeedPhoton
() =
default
;
22
/// Constructor.
23
HeedPhoton
(
manip_absvol
* primvol,
const
point
& pt,
const
vec
& vel,
24
vfloat
time
,
long
fparent_particle_number,
double
fenergy,
25
HeedFieldMap
* fieldmap,
const
bool
fs_print_listing =
false
);
26
/// Destructor
27
virtual
~HeedPhoton
() {}
28
29
void
print
(std::ostream& file,
int
l)
const override
;
30
HeedPhoton
*
copy
()
const override
{
return
new
HeedPhoton
(*
this
); }
31
32
long
m_particle_number
;
33
long
m_parent_particle_number
;
34
35
/// Photon energy [MeV]
36
double
m_energy
;
37
38
/// Flag whether the photon has been absorbed.
39
/// Used in physics_after_new_speed.
40
bool
m_photon_absorbed
=
false
;
41
/// Index of absorbing atom.
42
long
m_na_absorbing
;
43
/// Index of absorbing shell
44
long
m_ns_absorbing
;
45
46
#ifdef SFER_PHOTOEL
47
int
s_sfer_photoel;
48
#endif
49
50
/// Flag that delta-electrons are already generated (or cannot be created).
51
bool
m_delta_generated
=
false
;
52
53
protected
:
54
void
physics_after_new_speed
(std::vector<gparticle*>& secondaries)
override
;
55
void
physics
(std::vector<gparticle*>& secondaries)
override
;
56
57
private
:
58
/// Flag to print internal algorithms of a selected event
59
bool
m_print_listing =
false
;
60
61
HeedFieldMap
* m_fieldMap =
nullptr
;
62
};
63
}
64
65
#endif
HeedFieldMap.h
HeedMatterDef.h
Heed::HeedFieldMap
Retrieve electric and magnetic field from Sensor.
Definition:
HeedFieldMap.h:15
Heed::HeedPhoton
Definition:
HeedPhoton.h:18
Heed::HeedPhoton::~HeedPhoton
virtual ~HeedPhoton()
Destructor.
Definition:
HeedPhoton.h:27
Heed::HeedPhoton::m_na_absorbing
long m_na_absorbing
Index of absorbing atom.
Definition:
HeedPhoton.h:42
Heed::HeedPhoton::m_ns_absorbing
long m_ns_absorbing
Index of absorbing shell.
Definition:
HeedPhoton.h:44
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:40
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:33
Heed::HeedPhoton::copy
HeedPhoton * copy() const override
Clone the particle.
Definition:
HeedPhoton.h:30
Heed::HeedPhoton::m_particle_number
long m_particle_number
Definition:
HeedPhoton.h:32
Heed::HeedPhoton::HeedPhoton
HeedPhoton()=default
Default constructor.
Heed::HeedPhoton::m_energy
double m_energy
Photon energy [MeV].
Definition:
HeedPhoton.h:36
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:51
Heed::gparticle
Definition:
gparticle.h:144
Heed::gparticle::time
vfloat time() const
Get the current time of the particle.
Definition:
gparticle.h:188
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::last_particle_number
long last_particle_number
Definition:
HeedParticle.h:9
Heed::vfloat
double vfloat
Definition:
vfloat.h:16
garfieldpp-4.0
Heed
heed++
code
HeedPhoton.h
Generated by
1.9.6