80 TGeoVolume *top=gGeoManager->GetTopVolume();
82 TGeoMedium *tungsten =gGeoManager->GetMedium(
"tungsten");
85 TGeoMedium *iron =gGeoManager->GetMedium(
"iron");
87 TGeoMedium *water =gGeoManager->GetMedium(
"H2O");
89 TGeoMedium *mo =gGeoManager->GetMedium(
"molybdenum");
90 TGeoVolume *tTarget =
new TGeoVolumeAssembly(
"TargetArea");
100 for (Int_t i=0; i<
fnS; i++) {
101 TString nmi =
"Target_"; nmi += i+1;
102 TString sm =
"Slit_"; sm += i+1;
103 TGeoMedium *material;
104 if (
fM.at(i)==
"molybdenum") {material = mo;};
105 if (
fM.at(i)==
"tungsten") {material = tungsten;};
109 target = gGeoManager->MakeTube(nmi, material, 0.,
fDiameter/2.,
fL.at(i)/2.);
114 if (
fM.at(i)==
"molybdenum") {
115 target->SetLineColor(28);
116 }
else {target->SetLineColor(38);};
117 tTarget->AddNode(target, 1,
new TGeoTranslation(0, 0, zPos +
fL.at(i)/2.) );
120 slit = gGeoManager->MakeTube(sm, water, 0.,
fDiameter/2.,
fsl/2.);
125 slit->SetLineColor(7);
126 tTarget->AddNode(slit, 1,
new TGeoTranslation(0, 0, zPos+
fL.at(i)+
fsl/2.) );
133 Double_t dZ = (fTargetLength - (
fnS-1)*
fsl)/float(
fnS);
135 for (Int_t i=0; i<
fnS-1; i++) {
136 TString nmi =
"Target_"; nmi += i;
137 TString sm =
"Slit_"; sm += i;
138 TGeoVolume *target = gGeoManager->MakeTube(nmi, tungsten, 0, 25, dZ/2.);
139 target->SetLineColor(38);
140 tTarget->AddNode(target, 1,
new TGeoTranslation(0, 0, zPos+dZ/2.));
141 TGeoVolume *slit = gGeoManager->MakeTube(sm, water, 0, 25,
fsl/2.);
142 slit->SetLineColor(7);
143 tTarget->AddNode(slit, 1,
new TGeoTranslation(0, 0, zPos+dZ+
fsl/2.));
146 TString nmi =
"Target_"; nmi +=
fnS;
147 TGeoVolume *target = gGeoManager->MakeTube(nmi, tungsten, 0, 25, dZ/2.);
148 target->SetLineColor(38);
149 tTarget->AddNode(target, 1,
new TGeoTranslation(0, 0, zPos+dZ/2.));
153 TGeoVolume *target = gGeoManager->MakeTube(
"Target", tungsten, 0, 25, fTargetLength/2.);
154 target->SetLineColor(38);
155 tTarget->AddNode(target, 1,
new TGeoTranslation(0, 0,
fTargetZ));
161 TGeoVolume *absorber;
162 absorber = gGeoManager->MakeTube(
"Absorber", iron, 0, 400,
fAbsorberLength/2.);
163 absorber->SetLineColor(42);
164 tTarget->AddNode(absorber, 1,
new TGeoTranslation(0, 0,
fAbsorberZ-zPos));
168 Float_t xTot = 400./2.;
169 Float_t yTot = 400./2.;
170 Float_t spaceTopBot = 10.;
171 Float_t spaceSide = 5.;
172 TGeoVolume *moreShieldingTopBot = gGeoManager->MakeBox(
"moreShieldingTopBot", iron, xTot, yTot/2., fTargetLength/2.);
173 moreShieldingTopBot->SetLineColor(33);
174 tTarget->AddNode(moreShieldingTopBot, 1,
new TGeoTranslation(0.,
fDiameter/2. +spaceTopBot+yTot/2.,fTargetLength/2.));
175 tTarget->AddNode(moreShieldingTopBot, 2,
new TGeoTranslation(0.,-
fDiameter/2. -spaceTopBot-yTot/2.,fTargetLength/2.));
176 TGeoVolume *moreShieldingSide = gGeoManager->MakeBox(
"moreShieldingSide", iron, xTot/2., (
fDiameter+1.9*spaceTopBot)/2., fTargetLength/2.);
177 moreShieldingSide->SetLineColor(33);
178 tTarget->AddNode(moreShieldingSide, 1,
new TGeoTranslation(
fDiameter/2.+spaceSide+xTot/2.,0.,fTargetLength/2.));
179 tTarget->AddNode(moreShieldingSide, 2,
new TGeoTranslation(-
fDiameter/2.-spaceSide-xTot/2.,0.,fTargetLength/2.));
181 TGeoVolume *moreShielding = gGeoManager->MakeTube(
"MoreShielding", iron, 30, 400, fTargetLength/2.);
182 moreShielding->SetLineColor(43);
183 tTarget->AddNode(moreShielding, 1,
new TGeoTranslation(0, 0, fTargetLength/2.));
185 top->AddNode(tTarget, 1,
new TGeoTranslation(0, 0,
fTargetZ - fTargetLength/2.));
188 cout <<
"target and absorber positioned at " <<
fTargetZ <<
" "<<
fAbsorberZ <<
" m"<< endl;
190 cout <<
"target at " <<
fTargetZ/100. <<
"m "<< endl;