CGEM BOSS 6.6.5.g
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: InductionGTS.h:16
Definition: G4Svc.h:32
double getVstripQ_Branch(int n) const
Definition: InductionGTS.h:57
void setSaturation(bool flag)
Definition: InductionGTS.h:53
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
Definition: InductionGTS.h:56
double getVstripT_Branch(int n) const
Definition: InductionGTS.h:55
bool drive_to_anode(int, double, double, double, double, double &, double &, double &, double &)
double getVfirstT(int n) const
Definition: InductionGTS.h:59
double getVstripT(int n) const
double getXstripT_Branch(int n) const
Definition: InductionGTS.h:54
double getXfirstT(int n) const
Definition: InductionGTS.h:58
void setLUTFilePath(std::string path)
Definition: InductionGTS.h:52
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)
Definition: InductionGTS.h:29
int getXstripID(int n) const
int getNVstrips() const
double getXstripQ(int n) const
void setStoreFlag(bool flag)
Definition: InductionGTS.h:51
int getNXstrips() const
void setVsampleDelay(double delay)
Definition: InductionGTS.h:50
int t()
Definition: t.c:1