CGEM BOSS 6.6.5.f
BESIII Offline Software System
Loading...
Searching...
No Matches
Simulation/BOOST/TofSim/TofSim-00-02-12/TofSim/BesTofDigitizerEcV4.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.hh
12
13#ifndef BesTofDigitizerEcV4_h
14#define BesTofDigitizerEcV4_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(G4double x_mm,G4double y_mm, G4int partId_f, G4int module_mrpc_f);
44 static G4double Calculate_strip_transition_time_cont(G4double x_mm,G4double y_mm, G4int partId_f, G4int module_mrpc_f);
45 static G4double Average_transition_time(G4int my_module);
46
47
48 G4int Get_gapnumber(G4int partID, G4double z_position);
49 G4double Distance_for_avalanche(G4int gap, G4double z_position, G4int partID);
50
51 struct adc_info{G4int gap; G4int readoutstrip; G4int ions; G4double zdistance; G4double time; G4int trackindex; G4int pdg_code;G4double transtime;G4double x; G4double y;};
52 void simulate_avalanche(G4int actual_strip, vector<adc_info> * avalanche_info, double * avalanche_threshold_time, double *induced_charge);
53 double adcsignal_get_sigma(double alpha,double eta, double stepwidth);
54 long int adcsignal_get_n_electron(double s, double stepwidth, double alpha, double eta);
55 long int adcsignal_simulate_step(int n_elec,double stepwidth,double alpha,double eta, bool saturated);
56
57 double chargetotime(double);
58 double Get_NINO_pulselength_resolution(double induced_charge_fc);
59 double Get_NINO_leadingedge_resolution(double induced_charge_fc);
60
61
62 private:
63
64 G4double time;
65 G4int module_mrpc;
66 G4int partId;
67 G4int trackIndex;
68
70
71 G4Svc* m_G4Svc;
72
73
74 //In order to store the data into the root-files
75 bool m_storedata;
76 std::string FileName;
77 TFile* m_TreeFile;
78 TTree * m_ecv4tree;
79 double m_partID;
80 double m_stripidentifier;
81 double m_trackIndex;
82 double m_signal_pc;
83 double m_time_threshold;
84 double m_time_1sthit;
85 double m_time_1;
86 double m_time_2;
87 double m_firedstrip;
88 double m_numberions;
89 double m_numberofgaps_with_avalanches;
90 double m_numberofstripsfired;
91 double m_multihit;
92 double m_inefficiency;
93 double m_particle_true;
94 double m_particle_has_signal;
95 double m_trans_time;
96 double m_x;
97 double m_y;
98
99};
100
101
102#endif
103
const double alpha
XmlRpcServer s
Definition: HelloServer.cpp:11
G4TDigiCollection< BesTofDigi > BesTofDigitsCollection
G4THitsCollection< BesTofHit > BesTofHitsCollection
long int adcsignal_get_n_electron(double s, double stepwidth, double alpha, double eta)
static G4int Get_stripnumber_from_unique_identifier(G4int unique_identifier_f)
G4double Distance_for_avalanche(G4int gap, G4double z_position, G4int partID)
static G4double Average_transition_time(G4int my_module)
double chargetotime(double)
static G4int Get_module_mrpc_from_unique_identifier(G4int unique_identifier_f)
virtual void Digitize(ScintSingle *, BesTofDigitsCollection *)
static G4double Calculate_strip_transition_time_cont(G4double x_mm, G4double y_mm, G4int partId_f, G4int module_mrpc_f)
double Get_NINO_pulselength_resolution(double induced_charge_fc)
static G4int Produce_unique_identifier(G4int module_mrpc_f, G4int readoutstripnumber_f)
static G4int Calculate_Readoutstrip_number_continuum(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 Calculate_Readoutstrip_number(G4double x, G4double y, G4int partId_f, G4int module_mrpc_f)
double Get_NINO_leadingedge_resolution(double induced_charge_fc)
double adcsignal_get_sigma(double alpha, double eta, double stepwidth)
G4double Smear_gaussian(G4double, G4double, G4double)
G4int Get_gapnumber(G4int partID, G4double z_position)
long int adcsignal_simulate_step(int n_elec, double stepwidth, double alpha, double eta, bool saturated)
static G4double Calculate_strip_transition_time(G4double x_mm, G4double y_mm, G4int partId_f, G4int module_mrpc_f)