CGEM BOSS 6.6.5.i
BESIII Offline Software System
Loading...
Searching...
No Matches
InductionGTS.h
Go to the documentation of this file.
1#ifndef INDUCTIONGTS_H
2#define INDUCTIONGTS_H
3
7
8#include <vector>
9#include <string>
10#include "TNtuple.h"
11#include "TFile.h"
12#include "TF1.h"
13#include "TH1F.h"
14
15#define m_testing_ind false
16#define hnbin 700
17#define hxmin 0
18#define hxmax 700
19#define apv_tstart 0.
20
21class G4Svc;
22
23class InductionGTS : public Induction {
24public:
27
28 void init(ICgemGeomSvc* geomSvc, double magConfig);
29 void setDebugOutput(bool debugOutput){m_debugOutput = debugOutput;}
30 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);
31
32 /* output info of fired strips */
33 int getNXstrips() const;
34 int getNVstrips() const;
35 int getXstripSheet(int n) const;
36 int getXstripID(int n) const;
37 int getVstripSheet(int n) const;
38 int getVstripID(int n) const;
39 double getXstripQ(int n) const;
40 double getVstripQ(int n) const;
41 double getXstripT(int n) const;
42 double getVstripT(int n) const;
43
44 void clear();
45 bool drive_to_anode(int, double, double, double, double, double&, double&, double&, double&);
46 bool useAPV(int stripid, int view, std::vector< double > stripidvec,
47 std::vector< double > indchargevec, std::vector< double > indtimevec,
48 double &charge, double &time, double &dtime);
49
50 void setVsampleDelay(double delay) {return;}
51 void setStoreFlag(bool flag) {return;}
52 void setLUTFilePath(std::string path) {return;}
53 void setSaturation(bool flag) {return;}
54 double getXstripT_Branch(int n) const {return m_XstripT.at(n);}
55 double getVstripT_Branch(int n) const {return m_VstripT.at(n);}
56 double getXstripQ_Branch(int n) const {return m_XstripQ.at(n);}
57 double getVstripQ_Branch(int n) const {return m_VstripQ.at(n);}
58 double getXfirstT(int n) const {return m_XstripT.at(n);}
59 double getVfirstT(int n) const {return m_VstripT.at(n);}
60
61private:
62
63 int m_field;
64 double m_tuning_factor_diff_perp;
65 double m_tuning_factor_diff_paral;
66
67 ICgemGeomSvc* m_geomSvc;
68 double m_magConfig; /* magnetic field */
69 DiffusionGTS *diffusion;
70 bool m_debugOutput;
71
72
73 TFile *output;
74 TH1F *hcollected_charge;
75 TH1F *hintegratore;
76 TH1F *hcharge;
77 TF1 *f[hnbin];
78 TF1 *f_FD;
79 TNtuple *tree;
80 TNtuple *tree_strip;
81
82 // temp
83 std::vector< int > stripid_x;
84 std::vector< int > sheetid_x;
85 std::vector<double> charge_x;
86 std::vector<double> time_x;
87 std::vector< int > stripid_v;
88 std::vector< int > sheetid_v;
89 std::vector<double> charge_v;
90 std::vector<double> time_v;
91
92
93 // final
94 int m_NXstrips;
95 int m_NVstrips;
96
97 std::vector<double> m_XstripSheet;
98 std::vector<double> m_XstripID;
99 std::vector<double> m_VstripSheet;
100 std::vector<double> m_VstripID;
101 std::vector<double> m_XstripQ;
102 std::vector<double> m_VstripQ;
103 std::vector<double> m_XstripT;
104 std::vector<double> m_VstripT;
105
106 //
107 int evt;
108};
109
110#endif
111
const Int_t n
Double_t time
#define hnbin
Definition G4Svc.h:32
double getVstripQ_Branch(int n) const
void setSaturation(bool flag)
bool useAPV(int stripid, int view, std::vector< double > stripidvec, std::vector< double > indchargevec, std::vector< double > indtimevec, double &charge, double &time, double &dtime)
int getVstripID(int n) const
double getXstripT(int n) const
double getXstripQ_Branch(int n) const
double getVstripT_Branch(int n) const
bool drive_to_anode(int, double, double, double, double, double &, double &, double &, double &)
double getVfirstT(int n) const
double getVstripT(int n) const
double getXstripT_Branch(int n) const
double getXfirstT(int n) const
void setLUTFilePath(std::string path)
int getVstripSheet(int n) const
int getXstripSheet(int n) const
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)
void init(ICgemGeomSvc *geomSvc, double magConfig)
double getVstripQ(int n) const
void setDebugOutput(bool debugOutput)
int getXstripID(int n) const
int getNVstrips() const
double getXstripQ(int n) const
void setStoreFlag(bool flag)
int getNXstrips() const
void setVsampleDelay(double delay)
int t()
Definition t.c:1