22 gROOT->Macro(
"$VMCWORKDIR/gconfig/rootlogon.C");
25 gSystem->Load(
"libGeoBase");
26 gSystem->Load(
"libParBase");
27 gSystem->Load(
"libBase");
28 gSystem->Load(
"libPndData");
29 gSystem->Load(
"libPassive");
33 TFile*
fi =
new TFile(outfile,
"RECREATE");
35 FairGeoLoader*
geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
36 FairGeoInterface *
geoFace = geoLoad->getGeoInterface();
37 geoFace->setMediaFile(
"../../geometry/media_pnd.geo");
41 FairGeoMedia *
Media = geoFace->getMedia();
42 FairGeoBuilder *
geobuild=geoLoad->getGeoBuilder();
44 FairGeoMedium *medGe = Media->getMedium(
"germanium");
45 Int_t nmedGe=geobuild->createMedium(medGe);
48 FairGeoMedium *medsci = Media->getMedium(
"polypropylene");
49 Int_t nmedsci=geobuild->createMedium(medsci);
52 FairGeoMedium *medcap = Media->getMedium(
"HYPaluminium");
53 Int_t nmedcap=geobuild->createMedium(medcap);
57 TGeoManager*
gGeoMan = (TGeoManager*)gROOT->FindObject(
"FAIRGeom");
59 TGeoVolume *
top =
new TGeoVolumeAssembly(
"hpge");
61 gGeoMan->SetTopVolume(top);
65 TGeoVolume *sphere =
new TGeoVolumeAssembly(
"sphere");
67 TGeoTube* Crystal_Tube =
new TGeoTube(
"tube",0.,7.0/2.,7.8/2.);
69 TGeoPgon* Crystal_Polyhedra =
new TGeoPgon(
"Pgon",0., 360., 6,2);
71 Crystal_Polyhedra->DefineSection(0,-3.9,0.,3.50*
cos(30.*deg));
72 Crystal_Polyhedra->DefineSection(1,3.9,0.,(3.50));
75 TGeoPgon* lay_sci =
new TGeoPgon(
"PgLay",0., 360., 6,2);
78 lay_sci->DefineSection(0,-0.25,0.,3.50*
cos(30.*deg));
79 lay_sci->DefineSection(1,0.25,0.,(3.50)*
cos(30.*deg));
83 TGeoPgon* lay_capl =
new TGeoPgon(
"PgcapL",0., 360., 6,2);
86 lay_capl->DefineSection(0,-4.2,0.,3.144);
87 lay_capl->DefineSection(1,4.2,0.,(3.627));
89 TGeoPgon* lay_caps =
new TGeoPgon(
"PgcapS",0., 360., 6,2);
92 lay_caps->DefineSection(0,-3.95,0.,3.078);
93 lay_caps->DefineSection(1,3.95,0.,(3.553));
99 TGeoPgon* logicCrystal_test;
100 logicCrystal_test = Crystal_Polyhedra ;
101 TGeoCompositeShape* lay_cap =
new TGeoCompositeShape(
"test",
"(PgcapL)-(PgcapS)");
109 30.0, 168.0, 90., 2.0,1000,fcrl,fclr);
111 30.0, 168.0,18, 2.0,1200,fcrl,fclr);
114 30.1, 168.0, 162, 2.0,400,fcrl,fclr);
117 30.3, 168.0, 234, 2.0,600,fcrl,fclr);
120 30., 168.0, 306., 2.0,1400,fcrl,fclr);
122 CreateCluster(logicCrystal_test,lay_sci,lay_cap,*sphere,32.2,
123 148.0, 54.0, 2.0,1100,fcrl,fclr);
124 CreateCluster(logicCrystal_test,lay_sci,lay_cap,*sphere,32.9,
125 148.0, 126.0, 2.0,300,fcrl,fclr);
126 CreateCluster(logicCrystal_test,lay_sci,lay_cap,*sphere,31.4,
127 148.0, 198.0, 2.0,500,fcrl,fclr);
128 CreateCluster(logicCrystal_test,lay_sci,lay_cap,*sphere,32.6,
129 148.0, 270.0, 2.0,1500,fcrl,fclr);
130 CreateCluster(logicCrystal_test,lay_sci,lay_cap,*sphere,30.3,
131 148.0, 342.0, 2.0,1300,fcrl,fclr);
133 30.0, 140.0, 90., 2.0,700,fcrl,fclr);
135 30.2, 140.0,18., 2.0,800,fcrl,fclr);
138 30.15, 140.0, 162., 2.0,100,fcrl,fclr);
141 30.15, 140.0, 234., 2.0,200,fcrl,fclr);
144 30.2, 140.0, 306., 2.0,900,fcrl,fclr);
148 top->AddNode(sphere, 0,
new TGeoCombiTrans(0., 0., -78.,
new TGeoRotation (0)));
151 gGeoMan->CloseGeometry();
friend F32vec4 cos(const F32vec4 &a)
void CreateCluster(TGeoPgon *logicCrystal_test, TGeoPgon *lay_sci, TGeoCompositeShape *lay_cap, TGeoVolume &sphere, Double_t distance, Double_t theta, Double_t phi, Double_t depth_first_interaction, int id_start, int fnum_crystal, int fnum_cluster)
FairGeoBuilder * geobuild
FairGeoInterface * geoFace