47 void setMultiElectrons(
int layer,
int nElectrons,
const std::vector<Float_t>& x,
const std::vector<Float_t>& y,
const std::vector<Float_t> &z,
const std::vector<Float_t> &
t);
78 m_gapShift_microSector[0][0]=shift[0];
79 m_gapShift_microSector[0][1]=shift[1];
80 m_gapShift_microSector[1][0]=shift[2];
81 m_gapShift_microSector[1][1]=shift[3];
82 m_gapShift_microSector[2][0]=shift[4];
83 m_gapShift_microSector[2][1]=shift[5];
88 m_microSector_width[0][0]=width[0];
89 m_microSector_width[0][1]=width[1];
90 m_microSector_width[1][0]=width[2];
91 m_microSector_width[1][1]=width[3];
92 m_microSector_width[2][0]=width[4];
93 m_microSector_width[2][1]=width[5];
98 m_QinGausSigma[0]=sigma[0];
99 m_QinGausSigma[1]=sigma[1];
107 std::string m_LUTFilePath;
108 std::string m_V2EfineFile;
112 std::vector<int> m_xstripSheet;
113 std::vector<int> m_xstripID;
114 std::vector<int> m_vstripSheet;
115 std::vector<int> m_vstripID;
116 std::vector<double> m_xstripQ;
117 std::vector<double> m_vstripQ;
118 std::vector<double> m_xstripT_Branch;
119 std::vector<double> m_vstripT_Branch;
120 std::vector<double> m_xstripQ_Branch;
121 std::vector<double> m_vstripQ_Branch;
122 std::vector<double> m_xTfirst;
123 std::vector<double> m_vTfirst;
125 std::map<int, double> m_mapQ[2][2];
127 double RatioX[3][5][5][4];
128 double RatioV[3][5][5][4];
133 double SignalX[3][5][5][4][100];
134 double SignalV[3][5][5][4][100];
136 double T_thr_V[3][2][2][1395];
137 double E_thr_V[3][2][2][1395];
138 double QDC_slope[3][2][2][1395];
139 double QDC_const[3][2][2][1395];
140 double Qsaturation[3][2][2][1395];
142 double Vref[3][2][2][1395];
143 double toE_slope[3][2][2][1395];
144 double toE_const[3][2][2][1395];
157 void conv1PerGrid_legacy(
int Save_Grid,
double *hist_bin_Content,
158 const std::vector<int> &hitlist,
int layer,
int axis);
159 void conv1PerGrid_fft(
int Save_Grid,
double *hist_bin_Content,
160 const std::vector<int> &hitlist,
int layer,
int axis);
162 int m_Ngaps_microSector;
163 double m_gapShift_microSector[3][2];
164 double m_microSector_width[3][2];
165 double m_QinGausSigma[2];
166 std::set<int> m_deadStrip[3][2][2];
167 double m_gap_microSector;
168 double m_ScaleSignalX;
169 bool inMicroSectorGap(
double phi,
int layer);
170 bool isDeadStrip(
int layer,
int sheet,
int XVview,
int strip);
TH1D Convolution_Ebranch_fft(const double *Input_Curr_plot_001)
return convolve of Input_Curr_plot_001 and T_Branch2, a function; tries to mimic Convolution_Ebranch ...
std::vector< double > EBranch
std::vector< double > TBranch
TH1D Convolution_Tbranch_fft(const double *Input_Curr_plot_001)
return convolve of Input_Curr_plot_001 and T_Branch2, a function; tries to mimic Convolution_Tbranch ...
basically, convolve with fft. convolves 1-d. if size of 2 inputs are fixed, it may yield optimal spee...
double getVfirstT(int n) const
double getVstripQ_Branch(int n) const
void setStoreFlag(bool flag)
void setGapSizeSect(double size)
int getVstripID(int n) const
int getVstripSheet(int n) const
double getXstripQ_Branch(int n) const
int getXstripID(int n) const
double getXstripT(int n) const
void setMicroSectorWidthRad(vector< double > width)
double getVstripT(int n) const
int getXstripSheet(int n) const
void setScaleSignalX(double ScaleSignalX)
double getVstripT_Branch(int n) const
double getXfirstT(int n) const
void setVsampleDelay(double delay)
void init(ICgemGeomSvc *geomSvc, double magConfig)
void setV2EfineFile(std::string path)
void setMultiElectrons(int layer, int nElectrons, const std::vector< Float_t > &x, const std::vector< Float_t > &y, const std::vector< Float_t > &z, const std::vector< Float_t > &t)
double getVstripQ(int n) const
void setQinGausSigma(vector< double > sigma)
void setSaturation(bool flag)
double getXstripQ(int n) const
void setDebugOutput(bool debugOutput)
void setLUTFilePath(std::string path)
double getXstripT_Branch(int n) const
void setGapShiftSect(vector< double > shift)