11 gROOT->Macro(
"$VMCWORKDIR/gconfig/rootlogon.C");
18 Double_t waferThickness = 0.3;
19 Double_t waferWidth = 350.0;
20 Double_t waferHeight = 220.0;
26 Double_t waferSpacing = (1200.+2*100.)/(waferNum-1);
27 Double_t beamLineOffsetX = 235.0;
28 Double_t beamLineOffsetZ = 5600.0;
32 Double_t beam_pipe_clearance = 10.0;
33 Double_t nominal_proton_cone_size = 0.005;
36 Double_t nominal_proton_direction = 0.0215;
40 TGeoBBox *wafer =
new TGeoBBox(
"B0SiliconWafer",
43 0.1 * waferThickness/2);
45 for(
unsigned wf=0; wf<waferNum; wf++)
48 sprintf(hname,
"B0SiliconHole%02d", wf);
50 double dz = (wf - (waferNum-1)/2.)*waferSpacing, z0 = beamLineOffsetZ +
dz;
54 double r0 = z0*tan(nominal_proton_cone_size) + beam_pipe_clearance;
55 TGeoTube *hole =
new TGeoTube(hname,
58 0.1 * waferThickness/2 + 0.1);
61 double dx = z0*tan(nominal_proton_direction) - beamLineOffsetX;
65 sprintf(tname,
"combi%02d", wf);
66 TGeoCombiTrans *combi =
new TGeoCombiTrans(tname, 0.1 * dx, 0, 0, 0);
67 combi->RegisterYourself();
69 char vname[128], cname[128];
70 sprintf(vname,
"B0SiliconPlate%02d", wf);
71 sprintf(cname,
"B0SiliconWafer-%s:%s", hname, tname);
72 TGeoCompositeShape *comp =
new TGeoCompositeShape(vname, cname);
74 TGeoVolume *vwafer =
new TGeoVolume(vname, comp, b0tracker->
GetMedium(
"silicon"));
78 fgmap->SetSingleSensorContainerVolume(vname);
83 UInt_t geant[1] = {0}, group = wf, logical[3] = {0, 0, 0};
86 cout <<
"Failed to set mapping table entry!" << endl;
92 new TGeoCombiTrans(0.1 * beamLineOffsetX, 0.0, 0.1 * (beamLineOffsetZ + dz), 0));