FairRoot/PandaRoot
hypGeCableAbsorptionTest.C
Go to the documentation of this file.
1 #include "TGeoManager.h"
2 double Pi = TMath::Pi();
3 
4 
5 int hypGeCableAbsorptionTest(Double_t FoilThickness_Ext = 2)
6 {
7 
8  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
9 
10  // Load this libraries
11  gSystem->Load("libGeoBase");
12  gSystem->Load("libParBase");
13  gSystem->Load("libBase");
14  gSystem->Load("libPndData");
15  gSystem->Load("libPassive");
16  gSystem->Load("libHypGe");
17 
18  cout << FoilThickness_Ext;
19  TString outfileWithoutPath = "hypGeGeoCableAbsorptionTest_";
20  //char buf[10];
21  //sprintf(buf,"%.2f",FoilThickness_Ext);
22  //outfileWithoutPath += buf;
23  outfileWithoutPath +=FoilThickness_Ext;
24  outfileWithoutPath += "cm.root";
25  TString outfile= "../../../../geometry/";
26  outfile += outfileWithoutPath;
27 
28  cout << outfile << endl;
29 
30  TFile* fi = new TFile(outfile,"RECREATE");
31 
32  FairGeoLoader* geoLoad = new FairGeoLoader("TGeo","FairGeoLoader");
33  FairGeoInterface *geoFace = geoLoad->getGeoInterface();
34  geoFace->setMediaFile("../../../../geometry/media_pnd.geo");
35  geoFace->readMedia();
36  //geoFace->print();
37 
38  FairGeoMedia *Media = geoFace->getMedia();
39  FairGeoBuilder *geobuild=geoLoad->getGeoBuilder();
40 
41  FairGeoMedium *medGe = Media->getMedium("germanium");
42  Int_t nmedGe=geobuild->createMedium(medGe);
43 
44 
45  FairGeoMedium *medcap = Media->getMedium("HYPaluminium");
46  Int_t nmedcap=geobuild->createMedium(medcap);
47 
48  FairGeoMedium *medkapton = Media->getMedium("kapton");
49  Int_t nmedcap=geobuild->createMedium(medkapton);
50 
51 
52  TGeoMedium *Ge = gGeoManager->GetMedium("germanium");
53 
54  TGeoMedium *Al = gGeoManager->GetMedium("HYPaluminium");
55 
56  TGeoMedium *Kapton = gGeoManager->GetMedium("kapton");
57 
58  TGeoManager *geom = (TGeoManager*)gROOT->FindObject("FAIRGeom");
59  TGeoVolume *top = new TGeoVolumeAssembly("hpGe");
60  TGeoVolume *Realtop = new TGeoVolumeAssembly("Realtop");
61 
62 //cout<<" geom "<<geom<<endl;
63  geom->SetTopVolume(top);
64 
65 
66  Double_t FoilThickness = FoilThickness_Ext;
67  TGeoVolume* Foil = geom->MakeBox("Foil",Kapton,10,10,FoilThickness/2);
68  Foil->SetLineColor(kYellow);
69  Foil->SetFillColor(kYellow);
70  Realtop->AddNode(Foil,1,new TGeoTranslation(0,0,-60));
71 
72  top->AddNode(Realtop,0);
73  geom->CloseGeometry();
74  cout << "# of Nodes: " << Realtop->CountNodes(10,1) << endl;
75 
76  top->Write();
77  fi->Close();
78 
79  //Realtop->Browse(new TBrowser);
80  //c1 = new TCanvas("c1","hypGe",800,600);Realtop->Draw("");// Realtop->Raytrace();
81  //Realtop->Draw("ogl");
82 
83 
84  //c1->x3d();
85  //geom->CheckOverlaps(0.0000000001,option="d"); //1 Overlap von Strahlrohr + Kugel ist normal!!!!!!!!!!!!!!!!!
86  //geom->PrintOverlaps();
87 
88  delete geoLoad;
89  delete geom;
90 
91  //return outfileWithoutPath; // returns the
92  return 0;
93 }
94 
95 
FairGeoLoader * geoLoad
FairGeoMedia * Media
TGeoManager * gGeoManager
TGeoVolume * top
int hypGeCableAbsorptionTest(Double_t FoilThickness_Ext=2)
FairGeoBuilder * geobuild
TFile * fi
Double_t
double Pi
FairGeoInterface * geoFace
TString outfile