R3BROOT
R3B analysis software
Loading...
Searching...
No Matches
R3BNeulandGeoCreator.h
Go to the documentation of this file.
1#pragma once
2
3#include <string>
4class TGeoVolume;
5class FairGeoMedia;
6class FairGeoBuilder;
7class TGeoMedium;
8class TGeoShape;
9class FairGeoLoader;
10class FairGeoInterface;
11class TGeoManager;
12
14{
16 {
17 double length{};
18 double width{};
19 double cone_radius{};
20 double cone_length{};
21 };
22
23 class Creator
24 {
25 public:
26 Creator() = default;
27
28 auto construct_volume(int num_of_planes, FairGeoLoader* geo_loader) -> TGeoVolume*;
29
30 private:
31 FairGeoBuilder* geo_builder_ = nullptr;
32 FairGeoMedia* geo_media_ = nullptr;
33
34 TGeoMedium* material_BC408_ = nullptr;
35 TGeoMedium* material_poly_ = nullptr;
36 TGeoMedium* material_Al_ = nullptr;
37
38 TGeoShape* shape_scintillator_ = nullptr;
39 TGeoShape* shape_Al_wrapping_ = nullptr;
40 TGeoShape* shape_tape_wrapping_ = nullptr;
41
42 TGeoVolume* scintillator_ = nullptr;
43 TGeoVolume* Al_wrapping_ = nullptr;
44 TGeoVolume* tape_wrapping_ = nullptr;
45 TGeoVolume* bar_ = nullptr;
46
50
51 auto build_detector(int num_of_planes) -> TGeoVolume*;
52 auto build_material(const std::string& material) -> TGeoMedium*;
53 auto build_bar_volume() -> TGeoVolume*;
54 auto build_scintillator() -> TGeoVolume*;
55 auto build_Al_wrapping() -> TGeoVolume*;
56 auto build_tape_wrapping() -> TGeoVolume*;
57
58 void read_material_from_file(FairGeoLoader* geo_loader);
59 };
60
61} // namespace R3B::Neuland::Geometry
auto construct_volume(int num_of_planes, FairGeoLoader *geo_loader) -> TGeoVolume *
auto build_detector(int num_of_planes) -> TGeoVolume *
void read_material_from_file(FairGeoLoader *geo_loader)
auto build_material(const std::string &material) -> TGeoMedium *