4#include "CgemGeomSvc/ICgemGeomSvc.h"
5#include "CgemDigitizerSvc/DriftAndAvalanche.h"
6#include "CgemDigitizerSvc/DiffusionGTS.h"
16#define m_testing_sam false
28 void setIonElectrons(
int layer,
int nElectrons, std::vector<double>
x, std::vector<double> y, std::vector<double> z, std::vector<double>
t);
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];}
44 void compute_diffusion_on_GEM3(
double xi,
double yi,
double zi,
double ti,
double &xf,
double &yf,
double &zf,
double &tf);
53 double m_tuning_factor_gain;
54 double m_tuning_factor_diff_perp;
55 double m_tuning_factor_diff_paral;
65 double m_shift_x_drift_par[10];
66 double m_shift_x_transf_par;
67 double m_shift_x_induct_par;
69 double m_sigma_x_drift_par[10];
70 double m_sigma_x_transf_par;
71 double m_sigma_x_induct_par;
74 double m_sigma_y_drift_par[10];
75 double m_sigma_y_transf_par;
76 double m_sigma_y_induct_par;
79 double m_shift_t_drift_par[10];
80 double m_shift_t_transf_par;
81 double m_shift_t_induct_par;
83 double m_sigma_t_drift_par[10];
84 double m_sigma_t_transf_par;
85 double m_sigma_t_induct_par;
89 std::vector<double> m_eX;
90 std::vector<double> m_eY;
91 std::vector<double> m_eZ;
92 std::vector<double> m_eT;
void init(ICgemGeomSvc *geomSvc, double magConfig)
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)
int getNelectrons() const