FairRoot/PandaRoot
hypGeGeoCOSYInBeamStuff.C
Go to the documentation of this file.
1 #include "TGeoManager.h"
2 double Pi = TMath::Pi();
3 
4 
6 {
7  TString outfileWithoutPath = "hypGeGeoCOSYInBeamStuff.root";
8  return outfileWithoutPath;
9 }
10 
12 {
13 
14  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
15 
16  // Load this libraries
17  gSystem->Load("libGeoBase");
18  gSystem->Load("libParBase");
19  gSystem->Load("libBase");
20  gSystem->Load("libPndData");
21  gSystem->Load("libPassive");
22  gSystem->Load("libHypGe");
23 
24  TString outfileWithoutPath =BuildOutputNameInBeamStuff();
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 *medScint = Media->getMedium("MDTPlastic");
42  Int_t nmedcap=geobuild->createMedium(medScint);
43  TGeoMedium *Scint = gGeoManager->GetMedium("MDTPlastic");
44 
45  FairGeoMedium *medPlexi = Media->getMedium("acrylicGlass");
46  nmedcap=geobuild->createMedium(medPlexi);
47  TGeoMedium *Plexi = gGeoManager->GetMedium("acrylicGlass");
48 
49  FairGeoMedium *medTargetH = Media->getMedium("TargetH");
50  nmedcap=geobuild->createMedium(medTargetH);
51  TGeoMedium *TargetH = gGeoManager->GetMedium("TargetH");
52 
53  FairGeoMedium *medPVC = Media->getMedium("PVC");
54  nmedcap=geobuild->createMedium(medPVC);
55  TGeoMedium *PVC = gGeoManager->GetMedium("PVC");
56 
57  TGeoManager *geom = (TGeoManager*)gROOT->FindObject("FAIRGeom");
58  TGeoVolume *top = new TGeoVolumeAssembly("hpGe");
59  TGeoVolume *Realtop = new TGeoVolumeAssembly("Realtop");
60 
61 //cout<<" geom "<<geom<<endl;
62  geom->SetTopVolume(top);
63  TGeoRotation *SiPmRot = new TGeoRotation("SiPmRot",0,0,0);
64 
65  TGeoVolume* Dirc1 = geom->MakeBox("Dirc1",Plexi,100,50,2); // close dirc
66  Realtop->AddNode(Dirc1,1,new TGeoCombiTrans(0,-40,-52,SiPmRot));
67 
68  TGeoVolume* Dirc2 = geom->MakeBox("Dirc2",Plexi,100,50,2.5); // "far" dirc
69  Realtop->AddNode(Dirc2,2,new TGeoCombiTrans(0,+40,-102.5,SiPmRot));
70 
71  TGeoVolume* Scint1 = geom->MakeBox("Scint1",Scint,10,10,0.4); // Scint1
72  Realtop->AddNode(Scint1,3,new TGeoCombiTrans(0,0,-120.4,SiPmRot));
73 
74  TGeoVolume* Scint2 = geom->MakeBox("Scint2",Scint,10,10,0.25); // Scint2
75  Realtop->AddNode(Scint2,4,new TGeoCombiTrans(0,0,-127.5,SiPmRot));
76 
77  TGeoVolume* Hodo1 = geom->MakeTube("Hodo1",Scint,0,20,0.3); // Hodo1
78  Realtop->AddNode(Hodo1,5,new TGeoCombiTrans(0,0,-132.8,SiPmRot));
79 
80  TGeoVolume* Hodo2 = geom->MakeBox("Hodo2",Scint,20,20,0.2); // Hodo2
81  Realtop->AddNode(Hodo2,6,new TGeoCombiTrans(0,0,-223.2,SiPmRot));
82 
83  TGeoVolume* Scint3 = geom->MakeBox("Scint3",Scint,25,15,0.5); // Scint3
84  Realtop->AddNode(Scint3,7,new TGeoCombiTrans(0,0,-253.5,SiPmRot));
85 
86  TGeoVolume* BPEndCap = geom->MakeTube("BPEndCap",PVC,0,5,0.05); // BPEndCap
87  Realtop->AddNode(BPEndCap,8,new TGeoCombiTrans(0,0,-293.05,SiPmRot));
88 
89  TGeoVolume* TOFTarget = geom->MakeBox("TOFTarget",TargetH,5,5,0.3); // BPEndCap
90  Realtop->AddNode(TOFTarget,9,new TGeoCombiTrans(0,0,-943.3,SiPmRot));
91 
92  top->AddNode(Realtop,0);
93  geom->CloseGeometry();
94  cout << "# of Nodes: " << Realtop->CountNodes(10,1) << endl;
95 
96  top->Write();
97  fi->Close();
98 
99  Realtop->Draw("ogl");
100 
101 
102 
103 
104 
105 
106  return outfileWithoutPath; // returns the name of the created geometry file
107 }
108 
109 
#define PVC
FairGeoLoader * geoLoad
FairGeoMedia * Media
TString BuildOutputNameInBeamStuff()
TGeoManager * gGeoManager
TGeoVolume * top
FairGeoBuilder * geobuild
TFile * fi
Double_t
TString hypGeGeoCOSYInBeamStuff(Double_t Angle=0)
FairGeoInterface * geoFace
Double_t Pi
TString outfile