CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Cgem/CgemDigitizerSvc/CgemDigitizerSvc-00-00-24/CgemDigitizerSvc/DevelopSignal.h
Go to the documentation of this file.
1#ifndef DEVELOPSIGNAL_H
2#define DEVELOPSIGNAL_H
3
4#include "CgemGeomSvc/ICgemGeomSvc.h"
5#include "CgemDigitizerSvc/DriftAndAvalanche.h"
6
7#include "TF1.h"
8
9#include <vector>
10#include <string>
11
12class G4Svc;
13
15public:
18
19 void init(ICgemGeomSvc* geomSvc);
20
21
22 void setIonElectrons(int layer, int nElectrons, std::vector<double> x, std::vector<double> y, std::vector<double> z, std::vector<double> t);
23
24 /* output info of multiplied eletrons */
25 int getNelectrons() const {return m_nMulElec;}
26 double getX(int n) const {return m_eX[n];}
27 double getY(int n) const {return m_eY[n];}
28 double getZ(int n) const {return m_eZ[n];}
29 double getT(int n) const {return m_eT[n];}
30
31 // --------------------------------
32 // CHECK 11) per ora li metto hard coded
35 // void readFldParameters();
36
37 int get_voltage_index(int voltage);
39 double shift_x(double z);
40 double sigma_x(double z);
41
42 double sigma_y(double z);
43
44 double shift_t(double z);
45 double sigma_t(double z);
46
48 double compute_gain();
49 void compute_drifting(double xi, double yi, double zi, double ti, double &xf, double &yf, double &zf, double &tf);
50
51private:
52 void clear();
53
54 // GasProp *gas; CHECK 10) maybe obj
55 string m_gas; // which gas
56
57 // for each GEM CHECK 10) --> GemProp
58 int m_hv; // high voltage
59 double m_eff_col[3]; // efficiency of collection
60 double m_eff_ext[3]; // efficiency of extraction
61
62
63 bool m_field; // CHECK 9) might need a full class for the field
64
65 TF1 *m_polya; // CHECK 15)
66
67 ICgemGeomSvc* m_geomSvc;
68
69 // CHECK set variable number of parameters
70 double m_shift_x_parameters[2];
71 double m_shift_t_parameters[2];
72
73 double m_smear_x_parameters[4];
74 double m_smear_y_parameters[4];
75 double m_smear_t_parameters[4];
76
77 /* info of multiplied electrons */
78 int m_nMulElec;
79 std::vector<double> m_eX;
80 std::vector<double> m_eY;
81 std::vector<double> m_eZ;
82 std::vector<double> m_eT;
83
84 double m_polya_mean[3];
85 double m_polya_theta[3];
86
87
88
89
90
91};
92
93#endif
94
const Int_t n
double sigma_y(double z)
int get_voltage_index(int voltage)
double sigma_x(double z)
bool is_survived()
double compute_gain()
bool readGasParameters()
void set_eff_polya()
void setIonElectrons(int layer, int nElectrons, std::vector< double > x, std::vector< double > y, std::vector< double > z, std::vector< double > t)
double shift_x(double z)
double shift_t(double z)
bool readGemParameters()
void compute_drifting(double xi, double yi, double zi, double ti, double &xf, double &yf, double &zf, double &tf)
void init(ICgemGeomSvc *geomSvc)
double sigma_t(double z)
int t()
Definition: t.c:1