25TGeoMedium*
BuildMaterial(
const TString material, FairGeoMedia* geoMedia, FairGeoBuilder* geoBuild)
27 FairGeoMedium* fairMedium = geoMedia->getMedium(material);
30 std::cout <<
"FairGeoMedium " << material <<
" not found" << std::endl;
33 geoBuild->createMedium(fairMedium);
34 TGeoMedium* med = gGeoManager->GetMedium(material);
37 std::cout <<
"TGeoMedium " << material <<
" not found" << std::endl;
47 const Double_t length,
49 const Double_t coneRadius,
50 const Double_t coneLength)
52 new TGeoBBox(name +
"Box", length, width, width);
53 new TGeoCone(name +
"Cone", coneLength + 0.001, 0., coneRadius, 0., width * TMath::Sqrt(2.));
54 new TGeoBBox(name +
"Conebox", width, width, coneLength);
55 TGeoShape* shape =
new TGeoCompositeShape(
57 name +
"Box + ((" + name +
"Conebox*" + name +
"Cone):trc1) + ((" + name +
"Conebox*" + name +
"Cone):trc2)");
67 FairGeoLoader* geoLoad = FairGeoLoader::Instance();
68 FairGeoInterface* geoFace = geoLoad->getGeoInterface();
69 geoFace->setMediaFile(TString(gSystem->Getenv(
"VMCWORKDIR")) +
"/geometry/media_r3b.geo");
71 FairGeoBuilder* geoBuild = geoLoad->getGeoBuilder();
72 FairGeoMedia* geoMedia = geoFace->getMedia();
73 const TGeoMedium* medBC408 =
BuildMaterial(
"BC408", geoMedia, geoBuild);
74 const TGeoMedium* medCH2 =
BuildMaterial(
"polyethylene", geoMedia, geoBuild);
75 const TGeoMedium* medAl =
BuildMaterial(
"aluminium", geoMedia, geoBuild);
78 TGeoRotation* r1 =
new TGeoRotation();
81 trc1->SetName(
"trc1");
82 trc1->RegisterYourself();
84 TGeoRotation* r2 =
new TGeoRotation();
87 trc2->SetName(
"trc2");
88 trc2->RegisterYourself();
91 const TGeoShape* shapeBC408 =
99 const TGeoShape* shapeAlWrapping =
new TGeoCompositeShape(
"shapeAlWrapping",
"shapeAlWrappingSolid - shapeBC408");
106 const TGeoShape* shapeTapeWrapping =
107 new TGeoCompositeShape(
"shapeTapeWrapping",
"shapeTapeWrappingSolid - shapeAlWrappingSolid");
111 TGeoVolume* volBC408 =
new TGeoVolume(
"volBC408", shapeBC408, medBC408);
112 volBC408->SetLineColor(33);
113 volBC408->SetTransparency(30);
114 TGeoVolume* volAlWrapping =
new TGeoVolume(
"volAlWrapping", shapeAlWrapping, medAl);
115 volAlWrapping->SetLineColor(17);
116 TGeoVolume* volTapeWrapping =
new TGeoVolume(
"volTapeWrapping", shapeTapeWrapping, medCH2);
117 volTapeWrapping->SetLineColor(1);
120 TGeoVolume* volPaddle =
new TGeoVolumeAssembly(
"volPaddle");
121 volPaddle->AddNode(volBC408, 1);
122 volPaddle->AddNode(volAlWrapping, 1);
123 volPaddle->AddNode(volTapeWrapping, 1);
TGeoShape * BuildPaddleShape(const TString &name, const Double_t length, const Double_t width, const Double_t coneRadius, const Double_t coneLength)
Building the shape of a paddle The paddle end cones are created by intersection ("*") of a small box ...