CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
BesTofDigitizerEcV4_dbs.hh
Go to the documentation of this file.
1//---------------------------------------------------------------------------//
2// BOOST --- BESIII Object_Oriented Simulation Tool //
3//---------------------------------------------------------------------------//
4//Description:
5//Author: Matthias Ullrich
6//Created: June, 2011
7//Modified:
8//Comment: Be carefull the 4 static function will be used within the reconstruction
9
10//---------------------------------------------------------------------------//
11// $Id: BesTofDigitizerEcV4_dbs.hh
12
13#ifndef BesTofDigitizerEcV4_dbs_h
14#define BesTofDigitizerEcV4_dbs_h 1
15
16#include "BesTofDigitizerV.hh"
17#include "BesTofDigi.hh"
18#include "globals.hh"
19#include "TFile.h"
20#include "TTree.h"
21#include "ScintSingle.hh"
22
23class G4Svc;
24
26{
27
28 public:
31
33
34
35
36 G4double Smear_gaussian(G4double,G4double,G4double);
37 static G4int Calculate_Readoutstrip_number(G4double x,G4double y, G4int partId_f, G4int module_mrpc_f);
38 static G4int Calculate_Readoutstrip_number_continuum(G4double x_mm,G4double y_mm, G4int partId_f, G4int module_mrpc_f);
39
40 static G4int Produce_unique_identifier(G4int module_mrpc_f, G4int readoutstripnumber_f);
41 static G4int Get_module_mrpc_from_unique_identifier(G4int unique_identifier_f);
42 static G4int Get_stripnumber_from_unique_identifier(G4int unique_identifier_f);
43 static G4double Calculate_strip_transition_time_1(G4double x_mm,G4double y_mm, G4int partId_f, G4int module_mrpc_f);
44 static G4double Calculate_strip_transition_time_2(G4double x_mm,G4double y_mm, G4int partId_f, G4int module_mrpc_f);
45 static G4double Calculate_resulting_phi(G4double x_mm,G4double y_mm, G4int partId_f, G4int module_mrpc_f);
46
47 static double GetTransitionTime_extrap_track(G4double x_mm, G4double y_mm, int partId_f , int module_mrpc_f , int my_strip);
48 static double GetTransitionTime_dbsmatch(double delta_t,int my_strip);
49 static double Average_transition_time_dbs(G4int my_module);
50
51
52 G4int Get_gapnumber(G4int partID, G4double z_position);
53 G4double Distance_for_avalanche(G4int gap, G4double z_position, G4int partID);
54
55 struct adc_info{G4int gap; G4int readoutstrip; G4int ions; G4double zdistance; G4double time; G4int trackindex; G4int pdg_code;G4double transtime_1;G4double transtime_2;G4double x; G4double y;G4int partId; G4int module;};
56 void simulate_avalanche(G4int actual_strip, vector<adc_info> * avalanche_info, double * avalanche_threshold_time, double *induced_charge);
57 double adcsignal_get_sigma(double alpha,double eta, double stepwidth);
58 long int adcsignal_get_n_electron(double s, double stepwidth, double alpha, double eta);
59 long int adcsignal_simulate_step(int n_elec,double stepwidth,double alpha,double eta, bool saturated);
60
61 double chargetotime(double);
62 double Get_NINO_pulselength_resolution(double induced_charge_fc);
63 double Get_NINO_leadingedge_resolution(double induced_charge_fc);
64
65
66
67
68 private:
69
70 G4double time;
71 G4double time_digi2;
72 G4int module_mrpc;
73 G4int partId;
74 G4int trackIndex;
75
77
78 G4Svc* m_G4Svc;
79
80
81 //In order to store the data into the root-files
82 bool m_storedata;
83 std::string FileName;
84 TFile* m_TreeFile;
85 TTree * m_ecv4tree;
86 double m_partID;
87 double m_stripidentifier;
88 double m_trackIndex;
89 double m_signal_pc;
90 double m_time_threshold;
91 double m_time_1sthit;
92 double m_time_1;
93 double m_time_2;
94 double m_firedstrip;
95 double m_numberions;
96 double m_numberofgaps_with_avalanches;
97 double m_numberofstripsfired;
98 double m_multihit;
99 double m_inefficiency;
100 double m_particle_true;
101 double m_particle_has_signal;
102 double m_trans_time_1;
103 double m_trans_time_2;
104 double m_x;
105 double m_y;
106
107};
108
109
110#endif
111
G4TDigiCollection< BesTofDigi > BesTofDigitsCollection
Definition: BesTofDigi.hh:83
G4THitsCollection< BesTofHit > BesTofHitsCollection
Definition: BesTofHit.hh:108
Double_t x[10]
const double alpha
XmlRpcServer s
Definition: HelloServer.cpp:11
static double GetTransitionTime_dbsmatch(double delta_t, int my_strip)
static G4int Calculate_Readoutstrip_number_continuum(G4double x_mm, G4double y_mm, G4int partId_f, G4int module_mrpc_f)
static G4int Calculate_Readoutstrip_number(G4double x, G4double y, G4int partId_f, G4int module_mrpc_f)
static G4double Calculate_resulting_phi(G4double x_mm, G4double y_mm, G4int partId_f, G4int module_mrpc_f)
virtual void Digitize(ScintSingle *, BesTofDigitsCollection *)
static G4double Calculate_strip_transition_time_2(G4double x_mm, G4double y_mm, G4int partId_f, G4int module_mrpc_f)
G4int Get_gapnumber(G4int partID, G4double z_position)
static G4double Calculate_strip_transition_time_1(G4double x_mm, G4double y_mm, G4int partId_f, G4int module_mrpc_f)
void simulate_avalanche(G4int actual_strip, vector< adc_info > *avalanche_info, double *avalanche_threshold_time, double *induced_charge)
static G4int Get_module_mrpc_from_unique_identifier(G4int unique_identifier_f)
double Get_NINO_pulselength_resolution(double induced_charge_fc)
static double Average_transition_time_dbs(G4int my_module)
static G4int Produce_unique_identifier(G4int module_mrpc_f, G4int readoutstripnumber_f)
long int adcsignal_get_n_electron(double s, double stepwidth, double alpha, double eta)
long int adcsignal_simulate_step(int n_elec, double stepwidth, double alpha, double eta, bool saturated)
G4double Distance_for_avalanche(G4int gap, G4double z_position, G4int partID)
double adcsignal_get_sigma(double alpha, double eta, double stepwidth)
double Get_NINO_leadingedge_resolution(double induced_charge_fc)
static double GetTransitionTime_extrap_track(G4double x_mm, G4double y_mm, int partId_f, int module_mrpc_f, int my_strip)
static G4int Get_stripnumber_from_unique_identifier(G4int unique_identifier_f)
G4double Smear_gaussian(G4double, G4double, G4double)
Definition: G4Svc.h:32