HerdSoftware  0.4.0
FitBuilder.h
Go to the documentation of this file.
1 /*
2  * FitBuilder.h
3  *
4  * Created on: 27 Nov 2019
5  * Author: Andrii Tykhonov, reworked by Valerio Formato
6  */
7 
10 #ifndef FITBUILDER_H_
11 #define FITBUILDER_H_
12 
13 #include "G4Material.hh"
15 
16 class G4LogicalVolume;
17 
24 class FitBuilder {
25 public:
26  enum class FitType { TOP, SIDE };
27 
29  FitBuilder(FITOptions options, FitType type);
30 
35  G4LogicalVolume *Build();
36  G4LogicalVolume *GetFitMasterVolume();
37 
43  std::vector<float> NormalPositions() { return m_normPos; }
44 
45 protected:
48 
49  double m_trayDimensionX; // X here is relative to the detector frame, and corresponds to X on top and H on sides in
50  // the HERD frame
51  double m_trayDimensionY; // Y here is relative to the detector frame, and corresponds to Y on top and V on sides in
52  // the HERD frame
54  unsigned int m_nTrays;
55  unsigned int m_nWTrays;
56  std::vector<bool> m_listOfWLayers;
57 
58 private:
59  /* FIT materials
60  *
61  */
62  G4Material *m_galacticMat;
63  G4Material *m_trayCoreMat;
64  G4Material *m_trayCfrpMat;
65  G4Material *m_matMat;
66  G4Material *m_matMatCore;
67  G4Material *m_tungstenMat;
68 
69  std::string m_prefix;
70  std::vector<float> m_normPos; // position of each layer along the normal
71 };
72 
73 #endif /* FITBUILDER_H_ */
FitBuilder::m_nTrays
unsigned int m_nTrays
Definition: FitBuilder.h:54
FitBuilder::m_matMat
G4Material * m_matMat
Definition: FitBuilder.h:65
FitBuilder::m_nWTrays
unsigned int m_nWTrays
Definition: FitBuilder.h:55
FitBuilder::m_trayDimensionY
double m_trayDimensionY
Definition: FitBuilder.h:51
FitBuilder
Builder class for side FIT.
Definition: FitBuilder.h:24
FitBuilder::m_options
FITOptions m_options
Definition: FitBuilder.h:47
FitBuilder::FitType::SIDE
@ SIDE
FITOptions
Definition: DetStructs.h:318
FitBuilder::FitType
FitType
Definition: FitBuilder.h:26
FitBuilder::m_trayDimensionX
double m_trayDimensionX
Definition: FitBuilder.h:49
FitBuilder::m_trayCfrpMat
G4Material * m_trayCfrpMat
Definition: FitBuilder.h:64
FitBuilder::FitType::TOP
@ TOP
FitBuilder::m_layerEvenDimensionY
double m_layerEvenDimensionY
Definition: FitBuilder.h:53
FitBuilder::m_tungstenMat
G4Material * m_tungstenMat
Definition: FitBuilder.h:67
FitBuilder::m_galacticMat
G4Material * m_galacticMat
Definition: FitBuilder.h:62
FitBuilder::m_listOfWLayers
std::vector< bool > m_listOfWLayers
Definition: FitBuilder.h:56
DetStructs.h
FitBuilder::m_normPos
std::vector< float > m_normPos
Definition: FitBuilder.h:70
FitBuilder::NormalPositions
std::vector< float > NormalPositions()
Get the normal positions of all layers.
Definition: FitBuilder.h:43
FitBuilder::GetFitMasterVolume
G4LogicalVolume * GetFitMasterVolume()
Definition: FitBuilder.cpp:178
FitBuilder::m_matMatCore
G4Material * m_matMatCore
Definition: FitBuilder.h:66
FitBuilder::m_trayCoreMat
G4Material * m_trayCoreMat
Definition: FitBuilder.h:63
FitBuilder::m_type
FitType m_type
Definition: FitBuilder.h:46
FitBuilder::m_layerEvenDimensionX
double m_layerEvenDimensionX
Definition: FitBuilder.h:53
FitBuilder::Build
G4LogicalVolume * Build()
Builds the side FIT.
Definition: FitBuilder.cpp:66
FitBuilder::m_layerOddDimensionY
double m_layerOddDimensionY
Definition: FitBuilder.h:53
FitBuilder::FitBuilder
FitBuilder(FITOptions options, FitType type)
Constructor.
Definition: FitBuilder.cpp:24
FitBuilder::m_layerOddDimensionX
double m_layerOddDimensionX
Definition: FitBuilder.h:53
FitBuilder::m_prefix
std::string m_prefix
Definition: FitBuilder.h:69