9 #include <phgenfit/Track.h>
41 double vtx_matBud = 0.05,
42 double barr_matBud = 0.55,
43 double disk_matBud = 0.25,
46 int magnetic_field = 4,
47 TString out_name = "out_vtx_study")
51 const int particle_gen = 1;
52 double pix_size_vtx = 10.;
53 double pix_size_bar = 10.;
54 double pix_size_dis = 10.;
55 bool use_blackhole =
false;
56 bool use_barrel_GEM =
false;
57 bool use_DIRC =
false;
76 gen_pT->
set_name(std::string(
"pi-"));
83 if (particle_gen==1){se->
registerSubsystem( gen); cout <<
"Using particle generator" << endl;}
84 else if(particle_gen==5){se->
registerSubsystem(gen_pT); cout <<
"Using particle generator flat in pT" << endl;}
85 else{ cout <<
"Particle generator option requested has not been implemented. Bailing out!" << endl;
exit(0); }
95 if(magnetic_field==1){
99 else if(magnetic_field==2){
103 else if(magnetic_field==3){
104 B_label =
"_sPHENIX";
108 else if(magnetic_field==4){
113 cout <<
"User did not provide a valid magnetic field setting. Set 'magnetic_field'. Bailing out!" << endl;
120 double si_vtx_r_pos[] = {3.30,5.70};
121 const int nVtxLayers =
sizeof(si_vtx_r_pos)/
sizeof(*si_vtx_r_pos);
122 double si_z_vtxlength[] = {30.,30.};
123 double si_thick_vtx = vtx_matBud/100.*9.37;
125 for (
int ilayer = 0; ilayer < nVtxLayers ; ilayer++){
139 double si_r_pos[] = {21.,22.68,39.3,43.23};
140 const int nTrckLayers =
sizeof(si_r_pos)/
sizeof(*si_r_pos);
141 double si_z_length[] = {54.,60.,105.,114.};
142 double si_thick_bar = barr_matBud/100.*9.37;
144 for (
int ilayer = 0; ilayer < nTrckLayers ; ilayer++){
158 double si_z_pos[] = {-121.,-97.,-73.,-49.,-25.,25.,49.,73.,97.,121.};
159 double si_r_max[10] = {0};
160 double si_r_min[10] = {0};
161 double si_thick_disk = disk_matBud/100.*9.37;
162 for(
int i = 0 ; i < 10 ; i++){
163 si_r_max[i] = TMath::Min(43.23,18.5*
abs(si_z_pos[i])/si_z_pos[5]);
165 if(si_z_pos[i]>66.8&&si_z_pos[i]>0) si_r_min[i] = (0.05025461*si_z_pos[i]-0.180808);
166 else if(si_z_pos[i]>0) si_r_min[i] = 3.18;
167 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);
168 else si_r_min[i] = 3.18;
170 si_r_max[i] -= si_r_min[i];
172 for (
int ilayer = 0; ilayer < 10; ilayer++){
186 double barrel_GEM_inner_radius = 60.;
187 double barrel_GEM_radial_thick = si_thick_bar*3.;
188 double barrel_GEM_z_length = 121.;
201 double BH_r = si_r_pos[nTrckLayers-1]+2;
202 double BH_zmin = si_z_pos[0]-2;
203 double BH_zmax = si_z_pos[
sizeof(si_z_pos)/
sizeof(*si_z_pos)-1]+2;
233 double dirc_out_skin =
DIRCSetup(g4Reco);
255 pix_size_vtx/10000./sqrt(12.),
256 pix_size_vtx/10000./sqrt(12.),
266 pix_size_bar/10000./sqrt(12.),
267 pix_size_bar/10000./sqrt(12.),
276 pix_size_dis/10000./sqrt(12.),
277 pix_size_dis/10000./sqrt(12.),
311 std::string outputFile = (std::string)(out_name)+std::string(B_label)+
"_FastSimEval.root";
319 const std::string dst_name = std::string(out_name)+std::string(B_label)+
"_G4LBLVtx.root";
327 if (nEvents <= 0)
return;