17 const int absorberactive = 0,
20 float svtx_inner_radius = 2.3;
22 if (radius > svtx_inner_radius) {
23 cout <<
"inconsistency: radius: " << radius
24 <<
" larger than SVTX inner radius: " << svtx_inner_radius << endl;
34 double ib_si_thickness[3] = {0.0050, 0.0050, 0.0050};
35 double ib_rad[3] = {svtx_inner_radius, 3.2, 3.9};
36 double ib_support_thickness[3] = {0.0036, 0.0036, 0.0036};
37 double ib_length[3] = {27.0, 27.0, 27.0};
39 for (
int ilayer=0;ilayer<
n_ib_layer;++ilayer) {
42 radius = ib_rad[ilayer];
64 cout <<
"Added inner barrel layer with radius " << ib_rad[ilayer]
65 <<
" si thickness " << ib_si_thickness[ilayer]
66 <<
" support thickness " << ib_support_thickness[ilayer]
67 <<
" length " << ib_length[ilayer]
73 double intt_si_thickness[4] = {0.0120, 0.0120, 0.0120,0.0120};
74 double intt_rad[4] = { 6.0, 8.0, 10.0, 12.0};
76 double multiplier = 0.87;
77 double apercent = 0.0144;
78 double intt_support_thickness[4] = {apercent*multiplier, apercent*multiplier, apercent*multiplier, apercent*multiplier};
79 double intt_length[4] = {50.0, 50.0, 50.0, 50.0};
102 cyl->
set_double_param(
"thickness",intt_support_thickness[ilayer-n_ib_layer]);
106 cout <<
"Added intermediate tracker layer with radius " << intt_rad[ilayer-
n_ib_layer]
107 <<
" si thickness " << intt_si_thickness[ilayer-
n_ib_layer]
108 <<
" support thickness " << intt_support_thickness[ilayer-
n_ib_layer]
109 <<
" length " << intt_length[ilayer-
n_ib_layer]
114 radius = AddTPC2G4Geo(g4Reco,radius,0);
128 gSystem->Load(
"libfun4all.so");
129 gSystem->Load(
"libg4detectors.so");
142 double svxcellsizex[3] = {0.0020, 0.0020, 0.0020};
143 double svxcellsizey[3] = {0.0020, 0.0020, 0.0020};
146 double intt_cellsizex[4] = { 0.0080, 0.0080, 0.0080, 0.0080};
147 double intt_cellsizey[4] = { 1.2, 1.2, 1.2, 1.2};
150 svtx_cells->Verbosity(1);
151 svtx_cells->Detector(
"SVTX");
154 svtx_cells->cellsize(
i, svxcellsizex[
i], svxcellsizey[i]);
155 svtx_cells->set_timing_window(i, -2000.0, +2000.0);
158 svtx_cells->cellsize(
i, intt_cellsizex[
i-n_ib_layer], intt_cellsizey[
i-n_ib_layer]);
159 svtx_cells->set_timing_window(
i, -50.0, +50.0);
163 AddTPC2CellReco(svtx_cells);
175 gSystem->Load(
"libfun4all.so");
176 gSystem->Load(
"libg4hough.so");
187 PHG4SvtxDigitizer* digi =
new PHG4SvtxDigitizer();
190 digi->set_adc_scale(
i, 255, 1.0
e-6);
199 PHG4SvtxDeadArea* deadarea =
new PHG4SvtxDeadArea();
202 deadarea->set_hit_efficiency(
i,0.99);
205 deadarea->set_hit_efficiency(
i-n_ib_layer,0.99);
213 PHG4SvtxThresholds* thresholds =
new PHG4SvtxThresholds();
216 thresholds->set_threshold(
i,0.25);
219 thresholds->set_threshold(
i,0.25);
227 PHG4SvtxClusterizer* clusterizer =
new PHG4SvtxClusterizer(
"PHG4SvtxClusterizer",
Min_si_layer,n_ib_layer+n_intt_layer-1);
228 clusterizer->set_threshold(0.25);
235 hough->set_mag_field(1.4);
236 hough->setPtRescaleFactor(1.00/0.993892);
237 hough->set_use_vertex(
true);
238 hough->setRemoveHits(
true);
239 hough->setRejectGhosts(
true);
240 hough->set_min_pT(0.2);
241 hough->set_chi2_cut_full( 2.0 );
242 hough->set_chi2_cut_init( 2.0 );
244 hough->setBinScale(1.0);
245 hough->setZBinScale(1.0);
249 double mat_scale = 1.0;
252 hough->set_material(
i, mat_scale*0.003);
255 hough->set_material(
i-n_ib_layer, mat_scale*0.010);
259 hough->setVoteErrorScale(
i, 1.0);
262 hough->setFitErrorScale(
i, 1./sqrt(12.));
266 AddTPC2Reco(digi,hough);
273 TF1 *
corr =
new TF1(
"corr",
"1.0/(1+0.00908642+5.91337e-05*x+-1.87201e-05*x*x+-3.31928e-06*x*x*x+1.03004e-07*x*x*x*x+-1.05111e-09*x*x*x*x*x)",0.0,40.0);
274 PHG4SvtxMomentumRecal* recal =
new PHG4SvtxMomentumRecal(
"PHG4SvtxMomentumRecal",corr);
280 PHG4SvtxTrackProjection* projection =
new PHG4SvtxTrackProjection();
287 PHG4SvtxBeamSpotReco* beamspot =
new PHG4SvtxBeamSpotReco();
297 <<
"Warning: G4_Svtx_Reco() was moved to G4_Svtx.C and renamed to Svtx_Reco(), please update macros"
298 <<
"\033[0m" << endl;
310 gSystem->Load(
"libfun4all.so");
311 gSystem->Load(
"libg4detectors.so");
312 gSystem->Load(
"libg4hough.so");
313 gSystem->Load(
"libg4eval.so");