9 #include <phgenfit/Track.h>
39 double vtx_matBud = 0.05,
40 double barr_matBud = 0.55,
41 double disk_matBud = 0.25,
44 int magnetic_field = 4,
45 TString out_name = "out_vtx_study")
49 const int particle_gen = 5;
50 double pix_size_vtx = 10.;
51 double pix_size_bar = 10.;
52 double pix_size_dis = 10.;
53 bool use_blackhole =
true;
72 gen_pT->
set_name(std::string(
"pi-"));
79 if (particle_gen==1){se->
registerSubsystem( gen); cout <<
"Using particle generator" << endl;}
80 else if(particle_gen==5){se->
registerSubsystem(gen_pT); cout <<
"Using particle generator flat in pT" << endl;}
81 else{ cout <<
"Particle generator option requested has not been implemented. Bailing out!" << endl;
exit(0); }
88 if(magnetic_field==1){
92 else if(magnetic_field==2){
96 else if(magnetic_field==3){
101 else if(magnetic_field==4){
106 cout <<
"User did not provide a valid magnetic field setting. Set 'magnetic_field'. Bailing out!" << endl;
113 double si_vtx_r_pos[] = {3.30,5.70};
114 const int nVtxLayers =
sizeof(si_vtx_r_pos)/
sizeof(*si_vtx_r_pos);
115 double si_z_vtxlength[] = {30.,30.};
116 double si_thick_vtx = vtx_matBud/100.*9.37;
118 for (
int ilayer = 0; ilayer < nVtxLayers ; ilayer++){
132 double si_r_pos[] = {21.,22.68,39.3,43.23};
133 const int nTrckLayers =
sizeof(si_r_pos)/
sizeof(*si_r_pos);
134 double si_z_length[] = {54.,60.,105.,114.};
135 double si_thick_bar = barr_matBud/100.*9.37;
137 for (
int ilayer = 0; ilayer < nTrckLayers ; ilayer++){
151 double si_z_pos[] = {-121.,-97.,-73.,-49.,-25.,25.,49.,73.,97.,121.};
152 double si_r_max[10] = {0};
153 double si_r_min[10] = {0};
154 double si_thick_disk = disk_matBud/100.*9.37;
155 for(
int i = 0 ; i < 10 ; i++){
156 si_r_max[i] = TMath::Min(43.23,18.5*
abs(si_z_pos[i])/si_z_pos[5]);
158 if(si_z_pos[i]>66.8&&si_z_pos[i]>0) si_r_min[i] = (0.05025461*si_z_pos[i]-0.180808);
159 else if(si_z_pos[i]>0) si_r_min[i] = 3.18;
160 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);
161 else si_r_min[i] = 3.18;
163 si_r_max[i] -= si_r_min[i];
166 for (
int ilayer = 0; ilayer < 10; ilayer++){
180 double BH_r = si_r_pos[nTrckLayers-1]+2;
181 double BH_zmin = si_z_pos[0]-2;
182 double BH_zmax = si_z_pos[
sizeof(si_z_pos)/
sizeof(*si_z_pos)-1]+2;
231 pix_size_vtx/10000./sqrt(12.),
232 pix_size_vtx/10000./sqrt(12.),
242 pix_size_bar/10000./sqrt(12.),
243 pix_size_bar/10000./sqrt(12.),
252 pix_size_dis/10000./sqrt(12.),
253 pix_size_dis/10000./sqrt(12.),
268 std::string outputFile = (std::string)(out_name)+std::string(B_label)+
"_FastSimEval.root";
276 const std::string dst_name = std::string(out_name)+std::string(B_label)+
"_G4LBLVtx.root";
284 if (nEvents <= 0)
return;