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