CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Cgem/CgemDigitizerSvc/CgemDigitizerSvc-00-00-24/CgemDigitizerSvc/SamplingGTS.h
Go to the documentation of this file.
1#ifndef SAMPLINGGTS_H
2#define SAMPLINGGTS_H
3
4#include "CgemGeomSvc/ICgemGeomSvc.h"
5#include "CgemDigitizerSvc/DriftAndAvalanche.h"
6#include "CgemDigitizerSvc/DiffusionGTS.h"
7
8#include <vector>
9#include <string>
10
11#include "TFile.h"
12#include "TH1F.h"
13#include "TH2F.h"
14#include "TNtuple.h"
15
16#define m_testing_sam false
17
18
19class G4Svc;
20
22public:
25
26 void init(ICgemGeomSvc* geomSvc, double magConfig);
27
28 void setIonElectrons(int layer, int nElectrons, std::vector<double> x, std::vector<double> y, std::vector<double> z, std::vector<double> t);
29
30 /* output info of multiplied eletrons */
31 int getNelectrons() const {return m_nMulElec;}
32 double getX(int n) const {return m_eX[n];}
33 double getY(int n) const {return m_eY[n];}
34 double getZ(int n) const {return m_eZ[n];}
35 double getT(int n) const {return m_eT[n];}
36
37 // --------------------------------
38 // CHECK 11) per ora li metto hard coded
39 bool readGemParameters();
40 bool readGasParameters();
41
42 bool is_survived();
43 double compute_gain();
44 void compute_diffusion_on_GEM3(double xi, double yi, double zi, double ti, double &xf, double &yf, double &zf, double &tf);
45
47
48private:
49 void clear();
50
51 int m_hv;
52 bool m_field;
53 double m_tuning_factor_gain;
54 double m_tuning_factor_diff_perp;
55 double m_tuning_factor_diff_paral;
56
57 double m_eff_col[3]; // efficiency of collection
58 double m_eff_ext[3]; // efficiency of extraction
59 TH1F *h_gain_eff;
60
61 ICgemGeomSvc* m_geomSvc;
62 double m_magConfig; /* magnetic field */
63 // x_local
64 int n_shift_x_drift;
65 double m_shift_x_drift_par[10];
66 double m_shift_x_transf_par;
67 double m_shift_x_induct_par;
68 int n_sigma_x_drift;
69 double m_sigma_x_drift_par[10];
70 double m_sigma_x_transf_par;
71 double m_sigma_x_induct_par;
72 // y_local only diffusion, no field
73 int n_sigma_y_drift;
74 double m_sigma_y_drift_par[10];
75 double m_sigma_y_transf_par;
76 double m_sigma_y_induct_par;
77 // t
78 int n_shift_t_drift;
79 double m_shift_t_drift_par[10];
80 double m_shift_t_transf_par;
81 double m_shift_t_induct_par;
82 int n_sigma_t_drift;
83 double m_sigma_t_drift_par[10];
84 double m_sigma_t_transf_par;
85 double m_sigma_t_induct_par;
86
87 /* info of multiplied electrons */
88 int m_nMulElec;
89 std::vector<double> m_eX;
90 std::vector<double> m_eY;
91 std::vector<double> m_eZ;
92 std::vector<double> m_eT;
93
94 TFile *output;
95 TNtuple *tree;
96
97
98};
99
100#endif
101
const Int_t n
Double_t x[10]
bool readGemParameters()
void init(ICgemGeomSvc *geomSvc, double magConfig)
Definition: SamplingGTS.cxx:43
void compute_diffusion_on_GEM3(double xi, double yi, double zi, double ti, double &xf, double &yf, double &zf, double &tf)
void setIonElectrons(int layer, int nElectrons, std::vector< double > x, std::vector< double > y, std::vector< double > z, std::vector< double > t)
double compute_gain()
bool is_survived()
bool readGasParameters()
int t()
Definition: t.c:1