20 #ifndef LMD_LMDMC_PNDLMDGEOMETRYFACTORY_H_ 21 #define LMD_LMDMC_PNDLMDGEOMETRYFACTORY_H_ 25 #include <boost/property_tree/ptree.hpp> 29 class TGeoVolumeAssembly;
36 boost::property_tree::ptree geometry_property_tree;
37 std::vector<StringBoolPair> navigation_paths;
40 void retrieveMaterial(FairGeoLoader *geoLoad);
42 TGeoVolume *generateLmdBox()
const;
43 TGeoVolume *generateBeamPipe()
const;
45 TGeoVolume *generateDetectorHalf(
bool is_bottom_half)
const;
46 TGeoVolume *generateDetectorHalfPlane(
bool is_bottom_half)
const;
47 TGeoVolume *generateAluminumCoolingStructure()
const;
48 TGeoVolume *generatePCB()
const;
49 TGeoVolume *generatePCBMountScrew()
const;
50 TGeoVolume *generatePCBCopperPlug()
const;
51 TGeoVolume *generatePCBBacksideElectronics()
const;
52 TGeoVolume *generateSensorModule()
const;
53 TGeoVolume *generateCVDCoolingDisc()
const;
54 TGeoVolume *generateSensor()
const;
56 TGeoVolume *generateBoxVacuum(
const TGeoVolume *lmd_vol)
const;
57 void recursiveNodeSubtraction(std::stringstream &ss, TGeoNode *node)
const;
59 void makeNodesAlignable()
const;
60 void makeNodesAlignable(TGeoNode *node,
unsigned int current_navigation_path_index)
const;
66 void init(FairGeoLoader *geoLoad);
virtual ~PndLmdGeometryFactory()
PndLmdGeometryFactory(const boost::property_tree::ptree &geometry_property_tree_)
void init(FairGeoLoader *geoLoad)
TGeoVolumeAssembly * generateLmdGeometry() const
std::pair< std::string, bool > StringBoolPair