{ // Gem disk geometry parameters //----------------------------- const Double_t kDisk1InnerRadius = 3.15; // (cm) //from EMC TDR const Double_t kDisk2InnerRadius = 3.30; // (cm) //? const Double_t kDisk3InnerRadius = 3.45; // (cm) //? const Double_t kDisk4InnerRadius = 3.60; // (cm) //? const Double_t kDisk1OuterRadius = 8.7; // (cm) //from EMC TDR const Double_t kDisk2OuterRadius = 9.1; // (cm) //? const Double_t kDisk3OuterRadius = 9.5; // (cm) //from EMC TDR const Double_t kDisk4OuterRadius = 9.9; // (cm) //from EMC TDR const Double_t kDisk1ZPosition = 1070.0; // (cm) //from EMC TDR const Double_t kDisk2ZPosition = 1120.0; // (cm) //from EMC TDR const Double_t kDisk3ZPosition = 1170.0; // (cm) //from EMC TDR const Double_t kDisk4ZPosition = 1220.0; // (cm) //from EMC TDR const Double_t kHalfFoilThickness = 0.0075; // Thickness of sensitive foil (cm) //-------------------------------------------------------------------- gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C"); // Load this libraries gSystem->Load("libGeoBase"); gSystem->Load("libParBase"); gSystem->Load("libBase"); gSystem->Load("libPndData"); gSystem->Load("libPassive"); TString outfile= "geo/MATZE_LUMI_150mum.root"; TFile* fi = new TFile(outfile,"RECREATE"); FairGeoLoader* geoLoad = new FairGeoLoader("TGeo","FairGeoLoader"); FairGeoInterface *geoFace = geoLoad->getGeoInterface(); geoFace->setMediaFile("../../geometry/media_pnd.geo"); geoFace->readMedia(); geoFace->print(); FairGeoMedia *Media = geoFace->getMedia(); FairGeoBuilder *geobuild=geoLoad->getGeoBuilder(); FairGeoMedium *CbmMediumAir = Media->getMedium("air"); FairGeoMedium *CbmMediumPWO = Media->getMedium("PWO"); FairGeoMedium *CbmMediumCarbon = Media->getMedium("carbon"); FairGeoMedium *CbmMediumAluminium = Media->getMedium("aluminium"); FairGeoMedium *CbmMediumGermanium = Media->getMedium("silicon"); Int_t nmed=geobuild->createMedium(CbmMediumAir); nmed=geobuild->createMedium(CbmMediumPWO); nmed=geobuild->createMedium(CbmMediumCarbon); nmed=geobuild->createMedium(CbmMediumAluminium); nmed=geobuild->createMedium(CbmMediumGermanium); TGeoManager* gGeoMan = (TGeoManager*)gROOT->FindObject("FAIRGeom"); TGeoVolume *top = new TGeoVolumeAssembly("Gem"); gGeoMan->SetTopVolume(top); TGeoShape *Disk1Shape = new TGeoTube("disk1shape",kDisk1InnerRadius,kDisk1OuterRadius,kHalfFoilThickness); TGeoShape *Disk2Shape = new TGeoTube("disk2shape",kDisk2InnerRadius,kDisk2OuterRadius,kHalfFoilThickness); TGeoShape *Disk3Shape = new TGeoTube("disk3shape",kDisk3InnerRadius,kDisk3OuterRadius,kHalfFoilThickness); TGeoShape *Disk4Shape = new TGeoTube("disk4shape",kDisk4InnerRadius,kDisk3OuterRadius,kHalfFoilThickness); TGeoVolume* Disk1Vol = new TGeoVolume("LumActiveRect1",Disk1Shape,gGeoMan->GetMedium("silicon")); TGeoVolume* Disk2Vol = new TGeoVolume("LumActiveRect2",Disk2Shape,gGeoMan->GetMedium("silicon")); TGeoVolume* Disk3Vol = new TGeoVolume("LumActiveRect3",Disk3Shape,gGeoMan->GetMedium("silicon")); TGeoVolume* Disk4Vol = new TGeoVolume("LumActiveRect4",Disk4Shape,gGeoMan->GetMedium("silicon")); TGeoTranslation* trt1 = new TGeoTranslation(0.,0.,kDisk1ZPosition); TGeoTranslation* trt2 = new TGeoTranslation(0.,0.,kDisk2ZPosition); TGeoTranslation* trt3 = new TGeoTranslation(0.,0.,kDisk3ZPosition); TGeoTranslation* trt4 = new TGeoTranslation(0.,0.,kDisk4ZPosition); TGeoRotation* dummyrot = new TGeoRotation(); TGeoCombiTrans* trc1= new TGeoCombiTrans(*trt1,*dummyrot); trc1->SetName("LumActiveRect1"); trc1->RegisterYourself(); TGeoCombiTrans* trc2= new TGeoCombiTrans(*trt2,*dummyrot); trc2->SetName("LumActiveRect2"); trc2->RegisterYourself(); TGeoCombiTrans* trc3= new TGeoCombiTrans(*trt3,*dummyrot); trc3->SetName("LumActiveRect3"); trc3->RegisterYourself(); TGeoCombiTrans* trc4= new TGeoCombiTrans(*trt4,*dummyrot); trc4->SetName("LumActiveRect4"); trc4->RegisterYourself(); TGeoVolumeAssembly* SubunitVol = new TGeoVolumeAssembly("Lumi_Strip_Disks"); SubunitVol->AddNode(Disk1Vol,0,trc1); SubunitVol->AddNode(Disk2Vol,0,trc2); SubunitVol->AddNode(Disk3Vol,0,trc3); SubunitVol->AddNode(Disk4Vol,0,trc4); top->AddNode(SubunitVol,0,new TGeoCombiTrans()); gGeoMan->CloseGeometry(); top->Write(); fi->Close(); // gGeoManager->Export(outfile); top->Draw("ogl"); }