FairRoot/PandaRoot
hypGeGeoBuilderTriple30cmRadius_test.C
Go to the documentation of this file.
1 #include "TGeoManager.h"
2 double Pi = TMath::Pi();
3 
4 
5 
7 {
8 
9  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
10 
11  // Load this libraries
12  gSystem->Load("libGeoBase");
13  gSystem->Load("libParBase");
14  gSystem->Load("libBase");
15  gSystem->Load("libPndData");
16  gSystem->Load("libPassive");
17  gSystem->Load("libHypGe");
18 
19  TString outfile= "../../../../geometry/hypGeGeoTripleCluster_V3.root";
20 
21  TFile* fi = new TFile(outfile,"RECREATE");
22 
23  FairGeoLoader* geoLoad = new FairGeoLoader("TGeo","FairGeoLoader");
24  FairGeoInterface *geoFace = geoLoad->getGeoInterface();
25  geoFace->setMediaFile("../../../../geometry/media_pnd.geo");
26  geoFace->readMedia();
27  //geoFace->print();
28 
29  FairGeoMedia *Media = geoFace->getMedia();
30  FairGeoBuilder *geobuild=geoLoad->getGeoBuilder();
31 
32  FairGeoMedium *medGe = Media->getMedium("germanium");
33  Int_t nmedGe=geobuild->createMedium(medGe);
34 
35 
36  FairGeoMedium *medcap = Media->getMedium("HYPaluminium");
37  Int_t nmedcap=geobuild->createMedium(medcap);
38 
39  TGeoMedium *Ge = gGeoManager->GetMedium("germanium");
40 
41 
42  TGeoMedium *Al = gGeoManager->GetMedium("HYPaluminium");
43 
44 
45 
46  TGeoManager *geom = (TGeoManager*)gROOT->FindObject("FAIRGeom");
47  TGeoVolume *top = new TGeoVolumeAssembly("hpGe");
48  TGeoVolume *Realtop = new TGeoVolumeAssembly("Realtop");
49 
50 //cout<<" geom "<<geom<<endl;
51  geom->SetTopVolume(top);
52 
53  Int_t CrystalNumber = 1;
54  Double_t GlobalZOffset = -55;
55  Double_t ClusterRadius = 30;
56 
58  //MBP -> PlaceBeamPipe(Realtop);
59 
61  //MCTF -> PlaceCTFrame(Realtop,new TGeoTranslation(0,0,GlobalZOffset));
62 
63 
64 
65 
66  PndGeoHypGeTripleCluster *TripleCluster = new PndGeoHypGeTripleCluster(Ge,Al,1);
67 
68  for (Int_t iHalves = 0; iHalves < 1; iHalves++)
69  {
70  //iHalves = 0 -> right half, iHalves = 1 -> left half (looking in +z (beam forward) direction
71  //inner ring: counter clockwise starting at 5 o'clock
72 
73  TripleCluster ->PlaceCluster(Realtop, 0,0, 0,0,0,&CrystalNumber);
74 
75 
76  }
77 
78 
79  top->AddNode(Realtop,0);
80  Realtop->PrintNodes();
81  geom->CloseGeometry();
82  cout << "# of Nodes: " << Realtop->CountNodes(10,1) << endl;
83  TripleCluster->PrintNodes(0);
84  top->Write();
85  fi->Close();
86 
87  //Realtop->Browse(new TBrowser);
88  //c1 = new TCanvas("c1","hypGe",800,600);Realtop->Draw("");// Realtop->Raytrace();
89  Realtop->Draw("ogl");
90 
91 
92  //c1->x3d();
93  geom->CheckOverlaps(0.0000000001,option="d"); //1 Overlap von Strahlrohr + Kugel ist normal!!!!!!!!!!!!!!!!!
94  geom->PrintOverlaps();
95 
96 
97  return 0;
98 }
99 
100 
FairGeoLoader * geoLoad
FairGeoMedia * Media
TGeoManager * gGeoManager
TGeoVolume * top
FairGeoBuilder * geobuild
TFile * fi
Double_t
void PlaceCluster(TGeoVolume *top, TGeoMatrix *ClusterPlaceAndDirectionTranslation, Int_t *CrystalNumber)
int hypGeGeoBuilderTriple30cmRadius_test()
FairGeoInterface * geoFace
Double_t Pi
TString outfile