Garfield++ v2r0
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 {
12extern 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
18class HeedPhoton : public gparticle {
19 public:
20 /// Default constructor.
21 HeedPhoton() : gparticle(), m_fieldMap(NULL) {}
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 virtual void physics_after_new_speed(std::vector<gparticle*>& secondaries);
30 virtual void physics(std::vector<gparticle*>& secondaries);
31 virtual void print(std::ostream& file, int l) const;
32 virtual HeedPhoton* copy() const { return new HeedPhoton(*this); }
33
36 /// Photon energy [MeV]
37 double energy;
38 /// Flag whether the photon has been absorbed.,
39 /// Used in physics_after_new_speed.
41 /// Index of absorbing atom.
43 /// Index of absorbing shell
45
46#ifdef SFER_PHOTOEL
47 int s_sfer_photoel;
48#endif
49 /// Flag that delta-electrons are already generated (or cannot be created).
51
52 private:
53 /// Flag to print internal algorithms of a selected event
54 bool s_print_listing;
55 HeedFieldMap* m_fieldMap;
56};
57}
58
59#endif
Retrieve electric and magnetic field from Sensor.
Definition: HeedFieldMap.h:15
virtual void physics(std::vector< gparticle * > &secondaries)
Definition: HeedPhoton.cpp:44
double energy
Photon energy [MeV].
Definition: HeedPhoton.h:37
bool s_photon_absorbed
Definition: HeedPhoton.h:40
virtual ~HeedPhoton()
Destructor.
Definition: HeedPhoton.h:27
virtual void physics_after_new_speed(std::vector< gparticle * > &secondaries)
Definition: HeedPhoton.cpp:112
HeedPhoton()
Default constructor.
Definition: HeedPhoton.h:21
bool s_delta_generated
Flag that delta-electrons are already generated (or cannot be created).
Definition: HeedPhoton.h:50
virtual HeedPhoton * copy() const
Definition: HeedPhoton.h:32
long particle_number
Definition: HeedPhoton.h:34
virtual void print(std::ostream &file, int l) const
Definition: HeedPhoton.cpp:196
long ns_absorbing
Index of absorbing shell.
Definition: HeedPhoton.h:44
long parent_particle_number
Definition: HeedPhoton.h:35
long na_absorbing
Index of absorbing atom.
Definition: HeedPhoton.h:42
Abstract base classs for volume "manipulators".
Definition: volume.h:178
Point.
Definition: vec.h:374
Definition: vec.h:186
Definition: BGMesh.cpp:5
long last_particle_number
Definition: HeedParticle.h:9
double vfloat
Definition: vfloat.h:16