FairRoot/PandaRoot
Functions | Variables
hypGeGeoBuilderSingle.C File Reference
#include "TGeoManager.h"

Go to the source code of this file.

Functions

TString BuildOutputNameDetector (Double_t ClusterRadius)
 
int hypGeGeoBuilderSingle (Double_t ClusterRadius_ext=30)
 

Variables

double Pi = TMath::Pi()
 

Function Documentation

TString BuildOutputNameDetector ( Double_t  ClusterRadius)

Definition at line 4 of file hypGeGeoBuilderSingle.C.

References TString.

Referenced by hypGeGeoBuilderSingle(), hypGeGeoCOSYGermaniums(), and sim_hypGe_COSY().

5 {
6  TString outfileWithoutPath = "hypGeGeoSingle_radius";
7  outfileWithoutPath += ClusterRadius;
8  outfileWithoutPath += "cm.root";
9  return outfileWithoutPath;
10 }
int hypGeGeoBuilderSingle ( Double_t  ClusterRadius_ext = 30)

Definition at line 12 of file hypGeGeoBuilderSingle.C.

References BuildOutputNameDetector(), Double_t, fi, geobuild, geoFace, geoLoad, geom(), gGeoManager, Media, outfile, PndGeoHypGeCluster::PlaceCluster(), PndGeoHypGeSingleCluster::PrintNodes(), top, and TString.

13 {
14 
15  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
16 
17  // Load this libraries
18  gSystem->Load("libGeoBase");
19  gSystem->Load("libParBase");
20  gSystem->Load("libBase");
21  gSystem->Load("libPndData");
22  gSystem->Load("libPassive");
23  gSystem->Load("libHypGe");
24 
25 
26  TString outfileWithoutPath = BuildOutputNameDetector(ClusterRadius_ext);
27 
28  TString outfile= "../../../../geometry/";
29  outfile += outfileWithoutPath;
30 
31  TFile* fi = new TFile(outfile,"RECREATE");
32 
33  FairGeoLoader* geoLoad = new FairGeoLoader("TGeo","FairGeoLoader");
34  FairGeoInterface *geoFace = geoLoad->getGeoInterface();
35  geoFace->setMediaFile("../../../../geometry/media_pnd.geo");
36  geoFace->readMedia();
37  //geoFace->print();
38 
39  FairGeoMedia *Media = geoFace->getMedia();
40  FairGeoBuilder *geobuild=geoLoad->getGeoBuilder();
41 
42  FairGeoMedium *medGe = Media->getMedium("germanium");
43  Int_t nmedGe=geobuild->createMedium(medGe);
44 
45 
46  FairGeoMedium *medcap = Media->getMedium("HYPaluminium");
47  Int_t nmedcap=geobuild->createMedium(medcap);
48 
49  TGeoMedium *Ge = gGeoManager->GetMedium("germanium");
50 
51 
52  TGeoMedium *Al = gGeoManager->GetMedium("HYPaluminium");
53 
54 
55 
56  TGeoManager *geom = (TGeoManager*)gROOT->FindObject("FAIRGeom");
57  TGeoVolume *top = new TGeoVolumeAssembly("hpGe");
58  TGeoVolume *Realtop = new TGeoVolumeAssembly("Realtop");
59 
60 //cout<<" geom "<<geom<<endl;
61  geom->SetTopVolume(top);
62 
63  Int_t CrystalNumber = 1;
64  Double_t GlobalZOffset = 0;
65  Double_t ClusterRadius = ClusterRadius_ext; //default is 30
66 
68  //MBP -> PlaceBeamPipe(Realtop);
69 
71  //MCTF -> PlaceCTFrame(Realtop,new TGeoTranslation(0,0,GlobalZOffset));
72 
73 
74 
75 
76  PndGeoHypGeSingleCluster *SingleCluster = new PndGeoHypGeSingleCluster(Ge,Al,1);
77 
78  SingleCluster ->PlaceCluster(Realtop, GlobalZOffset,ClusterRadius, 0,30,0,&CrystalNumber);
79  SingleCluster ->PlaceCluster(Realtop, GlobalZOffset,ClusterRadius, 0,60,0,&CrystalNumber);
80 
81  top->AddNode(Realtop,0);
82  Realtop->PrintNodes();
83  geom->CloseGeometry();
84  cout << "# of Nodes: " << Realtop->CountNodes(10,1) << endl;
85  SingleCluster->PrintNodes(0);
86  top->Write();
87  fi->Close();
88  cout << "Wrote geometry to file: " << outfileWithoutPath << endl;
89 
90  //Realtop->Browse(new TBrowser);
91  //c1 = new TCanvas("c1","hypGe",800,600);Realtop->Draw("");// Realtop->Raytrace();
92  Realtop->Draw("ogl");
93 
94 
95  //c1->x3d();
96  //geom->CheckOverlaps(0.0000000001,option="d"); //1 Overlap von Strahlrohr + Kugel ist normal!!!!!!!!!!!!!!!!!
97  //geom->PrintOverlaps();
98 
99 
100  return 0;
101 }
FairGeoLoader * geoLoad
FairGeoMedia * Media
TString BuildOutputNameDetector(Double_t ClusterRadius)
TGeoManager * gGeoManager
TGeoVolume * top
FairGeoBuilder * geobuild
TFile * fi
Double_t
void PlaceCluster(TGeoVolume *top, TGeoMatrix *ClusterPlaceAndDirectionTranslation, Int_t *CrystalNumber)
FairGeoInterface * geoFace
TString outfile

Variable Documentation

double Pi = TMath::Pi()

Definition at line 2 of file hypGeGeoBuilderSingle.C.