10 #include <phgenfit/Track.h>
38 int pid_code( std::
string part_name );
42 double vtx_matBud = 0.05,
43 double barr_matBud = 0.55,
44 double disk_matBud = 0.25,
47 int magnetic_field = 4,
48 TString out_name = "out_vtx_study")
50 std::string
part =
"pi-";
54 const int particle_gen = 5;
55 double pix_size_vtx = 10.;
56 double pix_size_bar = 10.;
57 double pix_size_dis = 10.;
58 bool use_blackhole =
true;
85 if (particle_gen==1){se->
registerSubsystem( gen); cout <<
"Using particle generator" << endl;}
86 else if(particle_gen==5){se->
registerSubsystem(gen_pT); cout <<
"Using particle generator flat in pT" << endl;}
87 else{ cout <<
"Particle generator option requested has not been implemented. Bailing out!" << endl;
exit(0); }
94 if(magnetic_field==1){
98 else if(magnetic_field==2){
102 else if(magnetic_field==3){
103 B_label =
"_sPHENIX";
107 else if(magnetic_field==4){
112 cout <<
"User did not provide a valid magnetic field setting. Set 'magnetic_field'. Bailing out!" << endl;
119 double si_vtx_r_pos[] = {3.64,4.45,5.26};
120 const int nVtxLayers =
sizeof(si_vtx_r_pos)/
sizeof(*si_vtx_r_pos);
121 double si_z_vtxlength[] = {30.,30.,30.};
122 double si_thick_vtx = vtx_matBud/100.*9.37;
124 for (
int ilayer = 0; ilayer < nVtxLayers ; ilayer++){
138 double si_r_pos[] = {21.,22.68,39.3,43.23};
139 const int nTrckLayers =
sizeof(si_r_pos)/
sizeof(*si_r_pos);
140 double si_z_length[] = {54.,60.,105.,114.};
141 double si_thick_bar = barr_matBud/100.*9.37;
143 for (
int ilayer = 0; ilayer < nTrckLayers ; ilayer++){
157 double si_z_pos[] = {-121.,-97.,-73.,-49.,-25.,25.,49.,73.,97.,121.};
158 double si_r_max[10] = {0};
159 double si_r_min[10] = {0};
160 double si_thick_disk = disk_matBud/100.*9.37;
161 for(
int i = 0 ; i < 10 ; i++){
162 si_r_max[i] = TMath::Min(43.23,18.5*
abs(si_z_pos[i])/si_z_pos[5]);
164 if(si_z_pos[i]>66.8&&si_z_pos[i]>0) si_r_min[i] = (0.05025461*si_z_pos[i]-0.180808);
165 else if(si_z_pos[i]>0) si_r_min[i] = 3.18;
166 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);
167 else si_r_min[i] = 3.18;
169 si_r_max[i] -= si_r_min[i];
172 for (
int ilayer = 0; ilayer < 10; ilayer++){
187 double BH_r = si_r_pos[nTrckLayers-1]+2;
188 double BH_zmin = si_z_pos[0]-2;
189 double BH_zmax = si_z_pos[
sizeof(si_z_pos)/
sizeof(*si_z_pos)-1]+2;
238 pix_size_vtx/10000./sqrt(12.),
239 pix_size_vtx/10000./sqrt(12.),
249 pix_size_bar/10000./sqrt(12.),
250 pix_size_bar/10000./sqrt(12.),
259 pix_size_dis/10000./sqrt(12.),
260 pix_size_dis/10000./sqrt(12.),
276 std::string outputFile = (std::string)(out_name)+std::string(B_label)+
"_FastSimEval.root";
284 const std::string dst_name = std::string(out_name)+std::string(B_label)+
"_G4LBLVtx.root";
292 if (nEvents <= 0)
return;
302 if(part_name==
"pi-"||part_name==
"PI-"||part_name==
"Pi-"||part_name==
"pi+"||part_name==
"PI+"||part_name==
"Pi+")
return 211;
303 else if(part_name==
"k-"||part_name==
"K-"||part_name==
"k+"||part_name==
"K+"||part_name==
"kaon+"||part_name==
"Kaon+"||part_name==
"KAON+"||part_name==
"kaon-"||part_name==
"Kaon-"||part_name==
"KAON-")
return 321;