CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
IonizationPoisson.h
Go to the documentation of this file.
1#ifndef IONIZATIONPOISSON_H
2#define IONIZATIONPOISSON_H
3
5
7
8#include <vector>
9
11public:
14
15 void init(unsigned int random, ICgemGeomSvc* geomSvc);
16 void setDebugging(bool debugging) {m_debugging = debugging;}
17
18 /* return the number of electrons from ionization */
19 /* particle = 0,1,2,3,4 (e,mu,pi,K,p) */
20 /* p: momentum (GeV/c) */
21 /* trkPosIn & trkPosOut: starting & exit positions (x,y,z) of the track segment in drift area */
22 /* ex, ey, ez: x, y, z of the electron from ionization */
23 void setTrack(int particle, int charge, double p, double trkPosIn[], double trkPosOut[]);
24
25 int getNumberIonE() {return m_nIonE;}
26 double getEx(int nElec) {return m_ex[nElec];}
27 double getEy(int nElec) {return m_ey[nElec];}
28 double getEz(int nElec) {return m_ez[nElec];}
29 double getEt(int nElec) {return m_et[nElec];}
30
31 // ------------------------------------------
32 int getNumberIonC() {return m_nIonC;}
33 double getCx(int nClus) {return m_cx[nClus];}
34 double getCy(int nClus) {return m_cy[nClus];}
35 double getCz(int nClus) {return m_cz[nClus];}
36 double getCt(int nClus) {return m_ct[nClus];}
37
40 void compute_pos(double trkPosIn[], double trkPosOut[],
41 double &x, double &y, double &z);
42 void from_glo_to_loc(double xg, double yg, double zg,
43 double &xl, double &yl, double &zl);
44
45
46private:
47 void clear();
48
49 int m_random;
50 ICgemGeomSvc* m_geomSvc;
51 bool m_debugging;
52
53 int m_nIonC;
54 std::vector<double> m_cx;
55 std::vector<double> m_cy;
56 std::vector<double> m_cz;
57 std::vector<double> m_ct;
58
59 int m_nIonE;
60 std::vector<double> m_ex;
61 std::vector<double> m_ey;
62 std::vector<double> m_ez;
63 std::vector<double> m_et;
64
65 double m_track_length_limit;
66 double m_track_length;
67 int m_n_ion_cm;
68};
69
70#endif
void setDebugging(bool debugging)
void setTrack(int particle, int charge, double p, double trkPosIn[], double trkPosOut[])
double getEz(int nElec)
double getCt(int nClus)
double getCy(int nClus)
double getEt(int nElec)
int generate_secondary_ele()
double getCx(int nClus)
bool generate_primary_ele()
void from_glo_to_loc(double xg, double yg, double zg, double &xl, double &yl, double &zl)
double getEx(int nElec)
double getCz(int nClus)
void compute_pos(double trkPosIn[], double trkPosOut[], double &x, double &y, double &z)
double getEy(int nElec)
void init(unsigned int random, ICgemGeomSvc *geomSvc)