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"
8
9//#define SFER_PHOTOEL // make direction of photoelectron absolutely random
10
11namespace 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
17class 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
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.
42 /// Index of absorbing shell
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
Retrieve electric and magnetic field from Sensor.
virtual ~HeedPhoton()
Destructor.
Definition HeedPhoton.h:26
long m_na_absorbing
Index of absorbing atom.
Definition HeedPhoton.h:41
long m_ns_absorbing
Index of absorbing shell.
Definition HeedPhoton.h:43
void physics_after_new_speed(std::vector< gparticle * > &secondaries) override
Apply any other processes (turn the trajectory, kill the particle, ...).
void physics(std::vector< gparticle * > &secondaries) override
Apply any other processes (turn the trajectory, kill the particle, ...).
long m_parent_particle_number
Definition HeedPhoton.h:32
HeedPhoton * copy() const override
Clone the particle.
Definition HeedPhoton.h:29
HeedPhoton()=default
Default constructor.
double m_energy
Photon energy [MeV].
Definition HeedPhoton.h:35
void print(std::ostream &file, int l) const override
Print-out.
bool m_delta_generated
Flag that delta-electrons are already generated (or cannot be created).
Definition HeedPhoton.h:50
vfloat time() const
Get the current time of the particle.
Definition gparticle.h:191
gparticle()=default
Default constructor.
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