CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Cgem/CgemDigitizerSvc/CgemDigitizerSvc-00-00-24/CgemDigitizerSvc/IonizationGar.h
Go to the documentation of this file.
1#ifndef IONIZATIONGAR_H
2#define IONIZATIONGAR_H
3
4#include "ComponentAnsys123.hh"
5#include "ComponentAnalyticField.hh"
6#include "MediumMagboltz.hh"
7#include "GeometrySimple.hh"
8#include "SolidBox.hh"
9#include "Sensor.hh"
10#include "TrackHeed.hh"
11#include "RandomEngine.hh"
12#include "Random.hh"
13
14#include "CgemGeomSvc/ICgemGeomSvc.h"
15
16#include "CgemDigitizerSvc/Ionization.h"
17
18#include <vector>
19#include <string>
20
22public:
25
26 void init(unsigned int random, ICgemGeomSvc* geomSvc, double magConfig);
27 void setDebugging(bool debugging) {m_debugging = debugging;}
28
29 /* return the number of electrons from ionization */
30 /* particle = 0,1,2,3,4 (e,mu,pi,K,p) */
31 /* p: momentum (GeV/c) */
32 /* trkPosIn & trkPosOut: starting & exit positions (x,y,z) of the track segment in drift area */
33 /* ex, ey, ez: x, y, z of the electron from ionization */
34 void setTrack(int particle, int charge, double p, double trkPosIn[], double trkPosOut[]);
35
36 int getNumberIonE() {return m_nIonE;}
37 double getEx(int nElec) {return m_ex[nElec];}
38 double getEy(int nElec) {return m_ey[nElec];}
39 double getEz(int nElec) {return m_ez[nElec];}
40 double getEt(int nElec) {return m_et[nElec];}
41
42private:
43 void clear();
44 void initGeoGas();
45 std::string getParticle(int particle, int charge) const; /* charge = 1 or -1 */
46
47 unsigned int m_random;
48 ICgemGeomSvc* m_geomSvc;
49 bool m_debugging;
50 double m_magConfig;
51
52 /* Garfield::ComponentAnsys123* m_gem; */
53 Garfield::ComponentAnalyticField* m_comp;
54 Garfield::MediumMagboltz* m_gas;
55 Garfield::GeometrySimple* m_geo;
56 Garfield::SolidBox* m_box;
57 Garfield::Sensor* m_sensor;
58 /* Garfield::TrackHeed* m_track; */
59
60 int m_nIonE;
61 std::vector<double> m_ex;
62 std::vector<double> m_ey;
63 std::vector<double> m_ez;
64 std::vector<double> m_et;
65};
66
67#endif
void setTrack(int particle, int charge, double p, double trkPosIn[], double trkPosOut[])
void init(unsigned int random, ICgemGeomSvc *geomSvc, double magConfig)