FairRoot/PandaRoot
Functions
createLmdGeometry.C File Reference
#include <iostream>
#include "detectors/lmd/LmdMC/PndLmdGeometryFactory.h"
#include "FairGeoLoader.h"
#include "FairGeoInterface.h"
#include "FairGeoBuilder.h"
#include "FairGeoMedia.h"
#include "TFile.h"
#include "TROOT.h"
#include "TGeoManager.h"
#include "TGeoVolume.h"
#include <boost/property_tree/json_parser.hpp>

Go to the source code of this file.

Functions

void createLmdGeometry (std::string output_filename="Luminosity-Detector.root", std::string geo_params_config_file_url="../lmd-geo-params.json")
 

Function Documentation

void createLmdGeometry ( std::string  output_filename = "Luminosity-Detector.root",
std::string  geo_params_config_file_url = "../lmd-geo-params.json" 
)

Definition at line 19 of file createLmdGeometry.C.

References file, PndLmdGeometryFactory::generateLmdGeometry(), geobuild, geoFace, geoLoad, gGeoMan, PndLmdGeometryFactory::init(), Media, pandaroot_dir(), and top.

20  {
21  // load parameters
22  ptree geo_property_tree;
23  read_json(geo_params_config_file_url, geo_property_tree);
24 
25  FairGeoLoader* geoLoad = new FairGeoLoader("TGeo", "FairGeoLoader");
26  FairGeoInterface *geoFace = geoLoad->getGeoInterface();
27  std::string pandaroot_dir(getenv("VMCWORKDIR"));
28  geoFace->setMediaFile((pandaroot_dir + "/geometry/media_pnd.geo").c_str());
29  geoFace->readMedia();
30  FairGeoMedia *Media = geoFace->getMedia();
31  FairGeoBuilder *geobuild = geoLoad->getGeoBuilder();
32 
33  TFile file(output_filename.c_str(), "RECREATE");
34 
35  TGeoManager* gGeoMan = (TGeoManager*) gROOT->FindObject("FAIRGeom");
36 
37  PndLmdGeometryFactory lmd_geo_factory(geo_property_tree);
38  lmd_geo_factory.init(geoLoad);
39  TGeoVolumeAssembly *top = lmd_geo_factory.generateLmdGeometry();
40 
41  gGeoMan->CheckOverlaps(0.0001); // 1mu
42  gGeoMan->PrintOverlaps();
43 
44  top->Write();
45  file.Close();
46 
47  gGeoMan->SetVisLevel(20);
48  top->Draw("ogle");
49 
50 }
FairGeoLoader * geoLoad
FairGeoMedia * Media
TFile * file
TGeoManager * gGeoMan
std::string pandaroot_dir(getenv("VMCWORKDIR"))
TGeoVolume * top
FairGeoBuilder * geobuild
FairGeoInterface * geoFace