CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Cgem/CgemDigitizerSvc/CgemDigitizerSvc-00-00-24/CgemDigitizerSvc/InductionGTS.h
Go to the documentation of this file.
1#ifndef INDUCTIONGTS_H
2#define INDUCTIONGTS_H
3
4#include "CgemGeomSvc/ICgemGeomSvc.h"
5#include "CgemDigitizerSvc/Induction.h"
6#include "CgemDigitizerSvc/DiffusionGTS.h"
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, std::vector<double> x, std::vector<double> y, std::vector<double> z, std::vector<double> 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
50private:
51
52 int m_field;
53 double m_tuning_factor_diff_perp;
54 double m_tuning_factor_diff_paral;
55
56 ICgemGeomSvc* m_geomSvc;
57 double m_magConfig; /* magnetic field */
58 DiffusionGTS *diffusion;
59 bool m_debugOutput;
60
61
62 TFile *output;
63 TH1F *hcollected_charge;
64 TH1F *hintegratore;
65 TH1F *hcharge;
66 TF1 *f[hnbin];
67 TF1 *f_FD;
68 TNtuple *tree;
69 TNtuple *tree_strip;
70
71 // temp
72 std::vector< int > stripid_x;
73 std::vector< int > sheetid_x;
74 std::vector<double> charge_x;
75 std::vector<double> time_x;
76 std::vector< int > stripid_v;
77 std::vector< int > sheetid_v;
78 std::vector<double> charge_v;
79 std::vector<double> time_v;
80
81
82 // final
83 int m_NXstrips;
84 int m_NVstrips;
85
86 std::vector<double> m_XstripSheet;
87 std::vector<double> m_XstripID;
88 std::vector<double> m_VstripSheet;
89 std::vector<double> m_VstripID;
90 std::vector<double> m_XstripQ;
91 std::vector<double> m_VstripQ;
92 std::vector<double> m_XstripT;
93 std::vector<double> m_VstripT;
94
95 //
96 int evt;
97};
98
99#endif
100
const Int_t n
Double_t time
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
bool drive_to_anode(int, double, double, double, double, double &, double &, double &, double &)
double getVstripT(int n) const
int getVstripSheet(int n) const
int getXstripSheet(int n) const
void init(ICgemGeomSvc *geomSvc, double magConfig)
void setMultiElectrons(int layer, int nElectrons, std::vector< double > x, std::vector< double > y, std::vector< double > z, std::vector< double > t)
double getVstripQ(int n) const
int getXstripID(int n) const
int getNVstrips() const
double getXstripQ(int n) const
int getNXstrips() const
int t()
Definition: t.c:1