void make_FOPI_target(string targetmat="carbon",bool draw = false, TString outpath="", TString fileName="") { if(fileName.EqualTo("")){ fileName="FOPI_TARGET.root"; } std::cout<Macro("$VMCWORKDIR/gconfig/rootlogon.C"); //----------------------- INIT -------------------------------------- //get geometry definitions: FairGeoLoader* loader = new FairGeoLoader("TGeo", "FairGeoLoader"); FairGeoBuilder* builder = loader->getGeoBuilder(); FairGeoInterface* geoIFC = loader->getGeoInterface(); TString workdir = gSystem->Getenv("VMCWORKDIR"); geoIFC->setMediaFile(workdir+"/geometry/media_pnd.geo"); geoIFC->readMedia(); //geoIFC->print(); FairGeoMedia* media = geoIFC->getMedia(); TGeoManager* geoMan = (TGeoManager*) gROOT->FindObject("FAIRGeom"); geoMan->Print(); std::cout<<" --------------------------------------------- "<Print(); //------------------ LOAD MATERIALS ---------------------------------- FairGeoMedium *CbmMediumCopper = media->getMedium("copper"); FairGeoMedium *CbmMediumCarbon = media->getMedium("carbon"); FairGeoMedium *CbmMediumLead = media->getMedium("lead"); builder->createMedium(CbmMediumCopper); builder->createMedium(CbmMediumCarbon); builder->createMedium(CbmMediumLead); gROOT->Macro("$FOPI2ROOT/fopigeometry/FopiMedia.C"); // ------------------ DEFINE GEO ------------------------------------- TGeoVolume* top = new TGeoVolumeAssembly("TARGET"); TGeoVolumeAssembly* topAss = new TGeoVolumeAssembly("TARGET"); TGeoVolumeAssembly* target= new TGeoVolumeAssembly("TARGET"); target->Print(); gROOT->LoadMacro("$FOPI2ROOT/fopigeometry/Target.C"); Target(target,targetmat); target->Print(); geoMan->SetTopVolume(topAss); TGeoTranslation * trans1=new TGeoTranslation(0.,0.,0); topAss->AddNode(target,0,trans1); top->AddNode(topAss, 0); TGeoVoxelFinder* voxels = top->GetVoxels(); if (voxels) { voxels->SetNeedRebuild(); } geoMan->CloseGeometry(); if(draw){ TEveManager::Create(); TEveGeoTopNode* meh = new TEveGeoTopNode(geoMan, geoMan->GetTopNode()); gEve->AddGlobalElement(meh); gEve->Redraw3D(kTRUE); } TFile* outfile; if(outpath.EqualTo("")) outfile = new TFile("$VMCWORKDIR/geometry/"+fileName, "recreate"); else { TString finalOut = outpath; if(!finalOut.EndsWith("/")) finalOut.Append("/"); finalOut.Append(fileName); outfile = new TFile(finalOut, "recreate"); } outfile->cd(); top->Write(); outfile->Close(); delete outfile; std::cout<<"/n/n/n/n/n"<