9 #include <phgenfit/Track.h>
38 double vtx_matBud = 0.05,
39 double barr_matBud = 0.55,
40 double disk_matBud = 0.25,
43 int magnetic_field = 4,
44 TString out_name = "out_vtx_study")
48 const int particle_gen = 5;
49 double pix_size_vtx = 10.;
50 double pix_size_bar = 10.;
51 double pix_size_dis = 10.;
70 gen_pT->
set_name(std::string(
"pi-"));
77 if (particle_gen==1){se->
registerSubsystem( gen); cout <<
"Using particle generator" << endl;}
78 else if(particle_gen==5){se->
registerSubsystem(gen_pT); cout <<
"Using particle generator flat in pT" << endl;}
79 else{ cout <<
"Particle generator option requested has not been implemented. Bailing out!" << endl;
exit(0); }
86 if(magnetic_field==1){
90 else if(magnetic_field==2){
94 else if(magnetic_field==3){
99 else if(magnetic_field==4){
104 cout <<
"User did not provide a valid magnetic field setting. Set 'magnetic_field'. Bailing out!" << endl;
111 double si_vtx_r_pos[] = {3.30,5.70};
112 const int nVtxLayers =
sizeof(si_vtx_r_pos)/
sizeof(*si_vtx_r_pos);
113 double si_z_vtxlength[] = {30.,30.};
114 double si_thick_vtx = vtx_matBud/100.*9.37;
116 for (
int ilayer = 0; ilayer < nVtxLayers ; ilayer++){
129 double si_r_pos[] = {21.,22.68,39.3,43.23};
130 const int nTrckLayers =
sizeof(si_r_pos)/
sizeof(*si_r_pos);
131 double si_z_length[] = {54.,60.,105.,114.};
132 double si_thick_bar = barr_matBud/100.*9.37;
134 for (
int ilayer = 0; ilayer < nTrckLayers ; ilayer++){
148 double si_z_pos[] = {-121.,-97.,-73.,-49.,-25.,25.,49.,73.,97.,121.};
149 double si_r_max[10] = {0};
150 double si_r_min[10] = {0};
151 double si_thick_disk = disk_matBud/100.*9.37;
152 for(
int i = 0 ; i < 10 ; i++){
153 si_r_max[i] = TMath::Min(43.23,18.5*
abs(si_z_pos[i])/si_z_pos[5]);
155 if(si_z_pos[i]>66.8&&si_z_pos[i]>0) si_r_min[i] = (0.05025461*si_z_pos[i]-0.180808);
156 else if(si_z_pos[i]>0) si_r_min[i] = 3.18;
157 else if(si_z_pos[i]<-79.8&&si_z_pos[i]<0) si_r_min[i] = (-0.0297039*si_z_pos[i]+0.8058281);
158 else si_r_min[i] = 3.18;
160 si_r_max[i] -= si_r_min[i];
163 for (
int ilayer = 0; ilayer < 10; ilayer++){
220 pix_size_vtx/10000./sqrt(12.),
221 pix_size_vtx/10000./sqrt(12.),
231 pix_size_bar/10000./sqrt(12.),
232 pix_size_bar/10000./sqrt(12.),
241 pix_size_dis/10000./sqrt(12.),
242 pix_size_dis/10000./sqrt(12.),
257 std::string outputFile = (std::string)(out_name)+std::string(B_label)+
"_FastSimEval.root";
265 const std::string dst_name = std::string(out_name)+std::string(B_label)+
"_G4LBLVtx.root";
273 if (nEvents <= 0)
return;