1 #include "TGeoManager.h"
4 void ClusterPlacer(
double x,
double y,
double z,
double GlobalZOffset ,
int ObjectNo, TGeoVolume *
top,TGeoVolume *Clusterr,
double phi,
double theta,
double psi)
6 TGeoRotation *Clusterrot =
new TGeoRotation(
"Clusterrot",phi, theta,psi-phi);
7 Clusterrot->RegisterYourself();
8 top->AddNode(Clusterr,ObjectNo,
new TGeoCombiTrans(x,y,GlobalZOffset+z,Clusterrot));
14 gROOT->Macro(
"$VMCWORKDIR/gconfig/rootlogon.C");
17 gSystem->Load(
"libGeoBase");
18 gSystem->Load(
"libParBase");
19 gSystem->Load(
"libBase");
20 gSystem->Load(
"libPndData");
21 gSystem->Load(
"libPassive");
22 TString outfile=
"../../../../geometry/hypGe_GeoMarcell_TripleClass.root";
24 TFile*
fi =
new TFile(outfile,
"RECREATE");
28 FairGeoLoader*
geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
29 FairGeoInterface *
geoFace = geoLoad->getGeoInterface();
30 geoFace->setMediaFile(
"../../../../geometry/media_pnd.geo");
34 FairGeoMedia *
Media = geoFace->getMedia();
35 FairGeoBuilder *
geobuild=geoLoad->getGeoBuilder();
37 FairGeoMedium *medGe = Media->getMedium(
"germanium");
38 Int_t nmedGe=geobuild->createMedium(medGe);
41 FairGeoMedium *medcap = Media->getMedium(
"HYPaluminium");
42 Int_t nmedcap=geobuild->createMedium(medcap);
44 TGeoMedium *Ge =
gGeoManager->GetMedium(
"germanium");
47 TGeoMedium *Al_sol =
gGeoManager->GetMedium(
"HYPaluminium");
52 TGeoManager *
geom = (TGeoManager*)gROOT->FindObject(
"FAIRGeom");
53 TGeoVolume *
top =
new TGeoVolumeAssembly(
"hpGe");
54 TGeoVolume *strange =
new TGeoVolumeAssembly(
"strange");
56 cout<<
" geom "<<geom<<endl;
57 geom->SetTopVolume(top);
62 TGeoVolume *Strahlrohr =geom->MakeTube(
"Strahlrohr",Al_sol,0,7.5,150);
63 Strahlrohr->SetLineColor(kBlue);
67 TGeoVolume *Außenhülle =geom->MakeTube(
"Außenhülle",Al_sol,45,45.5,100);
68 Außenhülle->SetLineColor(kBlue);
73 TGeoVolume *HoldingStruc =geom->MakeBox(
"HoldingStruc",Al_sol,1,45,50);
74 HoldingStruc->SetLineColor(kGreen);
78 TGeoSphere *Kugel =
new TGeoSphere(
"Kugel",1,30,0,180,0,360);
79 TGeoVolume *Kugell =
new TGeoVolume(
"Kugell",Kugel,Al_sol);
80 Kugell->SetLineColor(kBlue);
81 Kugell->SetTransparency(50);
86 TGeoSphere *Origin =
new TGeoSphere(
"Origin",0,1,0,180,0,360);
87 TGeoVolume *Originn =
new TGeoVolume(
"Originn",Origin,Al_sol);
88 Originn->SetLineColor(kGreen);
92 ClusterPlacer(7.0801,12.5751, -26.3009, GlobalZOffset , 1000, strange,Cluster[0],180+150.62, 28.73,180-4.95);
93 cout <<
"test2" << endl;
94 ClusterPlacer(12.8422,-0, -27.1123, GlobalZOffset , 2000, strange,Cluster[1],180+90,25.34,180);
95 ClusterPlacer(7.0801,-12.5751, -26.3009, GlobalZOffset , 3000, strange,Cluster[2],180+29.38,28.73,180+4.95);
97 ClusterPlacer(-7.0801,-12.5751, -26.3009, GlobalZOffset , 4000, strange,Cluster[3],150.62,28.73,4.95);
98 ClusterPlacer(-12.8422,0, -27.1123, GlobalZOffset , 5000, strange,Cluster[4],90,25.34,0);
99 ClusterPlacer(-7.0801,12.5751, -26.3009, GlobalZOffset , 6000, strange,Cluster[5],29.38,28.73,4.95);
102 ClusterPlacer(8.421,20.8241, -19.8857, GlobalZOffset , 7000, strange,Cluster[6],180+157.98,48.5,0);
103 ClusterPlacer(17.9414,10.7963, -21.4836, GlobalZOffset , 8000, strange,Cluster[7],180+121.04,44.29,180-4.95);
104 ClusterPlacer(24.3173,0, -17.5689, GlobalZOffset , 9000, strange,Cluster[8],180+90,54.51,0);
105 ClusterPlacer(17.9414,-10.7963, -21.4836, GlobalZOffset , 10000, strange,Cluster[9],180+180-121.04,44.29,180+4.95);
106 ClusterPlacer(8.421,-20.8241, -19.8857, GlobalZOffset , 11000, strange,Cluster[10],180+180-157.98,48.5,0);
108 ClusterPlacer(-8.421,-20.8241, -19.8857, GlobalZOffset , 12000, strange,Cluster[11],+157.98,48.5,180);
109 ClusterPlacer(-17.9414,-10.7963, -21.4836, GlobalZOffset , 13000, strange,Cluster[12],+121.04,44.29,-4.95);
110 ClusterPlacer(-24.3173,0, -17.5689, GlobalZOffset , 14000, strange,Cluster[13],+90,54.51,180);
111 ClusterPlacer(-17.9414,10.7963, -21.4836, GlobalZOffset , 15000, strange,Cluster[14],+180-121.04,44.29,4.95);
112 ClusterPlacer(-8.421,20.8241, -19.8857, GlobalZOffset , 16000, strange,Cluster[15],+180-157.98,48.5,180);
114 top->AddNode(strange,0);
115 geom->CloseGeometry();
119 strange->Draw(
"ogl");
120 geom->CheckOverlaps(0.0000000001,option=
"d");
121 geom->PrintOverlaps();
122 cout <<
"Anzahl der Objekte: "<< ObjektNr << endl;
TGeoManager * gGeoManager
FairGeoBuilder * geobuild
void ClusterPlacer(double x, double y, double z, double GlobalZOffset, int ObjectNo, TGeoVolume *top, TGeoVolume *Clusterr, double phi, double theta, double psi)
FairGeoInterface * geoFace