HerdSoftware  0.4.0
RadiatorLogicalVolume.h
Go to the documentation of this file.
1 /*
2  * RadiatorLogicalVolume.h
3  *
4  * Created on: 6 Jul 2020
5  * Author: Nicola Mori
6  */
7 
8 #ifndef RADIATORLOGICALVOLUME_H_
9 #define RADIATORLOGICALVOLUME_H_
10 
11 // Geant4 headers
12 #include "G4LogicalVolume.hh"
13 
20 class RadiatorLogicalVolume : public G4LogicalVolume {
21 public:
22  using G4LogicalVolume::G4LogicalVolume;
23 
24  void SetRadiatorProperties(G4Material *foilMaterial, G4Material *gasMaterial, G4double foilThickness,
25  G4double gasThickness, G4int foilNumber) {
26  m_foilMaterial = foilMaterial;
27  m_gasMaterial = gasMaterial;
28  m_foilThickness = foilThickness;
29  m_gasThickness = gasThickness;
30  m_foilNumber = foilNumber;
31  }
32 
33  G4Material *FoilMaterial() { return m_foilMaterial; }
34  G4Material *GasMaterial() { return m_gasMaterial; }
35  G4double FoilThickness() { return m_foilThickness; }
36  G4double GasThickness() { return m_gasThickness; }
37  G4double FoilNumber() { return m_foilNumber; }
38 
39 private:
40  G4Material *m_foilMaterial = nullptr;
41  G4Material *m_gasMaterial = nullptr;
42  G4double m_foilThickness = std::numeric_limits<decltype(m_foilThickness)>::lowest();
43  G4double m_gasThickness = std::numeric_limits<decltype(m_gasThickness)>::lowest();
44  G4int m_foilNumber = std::numeric_limits<decltype(m_foilNumber)>::lowest();
45 };
46 
47 #endif /* RADIATORLOGICALVOLUME_H_ */
RadiatorLogicalVolume::FoilMaterial
G4Material * FoilMaterial()
Definition: RadiatorLogicalVolume.h:33
RadiatorLogicalVolume
A class to define logical volumes fo TR radiators.
Definition: RadiatorLogicalVolume.h:20
RadiatorLogicalVolume::FoilNumber
G4double FoilNumber()
Definition: RadiatorLogicalVolume.h:37
RadiatorLogicalVolume::m_gasMaterial
G4Material * m_gasMaterial
Definition: RadiatorLogicalVolume.h:41
RadiatorLogicalVolume::m_foilMaterial
G4Material * m_foilMaterial
Definition: RadiatorLogicalVolume.h:40
RadiatorLogicalVolume::m_gasThickness
G4double m_gasThickness
Definition: RadiatorLogicalVolume.h:43
RadiatorLogicalVolume::m_foilNumber
G4int m_foilNumber
Definition: RadiatorLogicalVolume.h:44
RadiatorLogicalVolume::GasThickness
G4double GasThickness()
Definition: RadiatorLogicalVolume.h:36
RadiatorLogicalVolume::FoilThickness
G4double FoilThickness()
Definition: RadiatorLogicalVolume.h:35
RadiatorLogicalVolume::GasMaterial
G4Material * GasMaterial()
Definition: RadiatorLogicalVolume.h:34
RadiatorLogicalVolume::SetRadiatorProperties
void SetRadiatorProperties(G4Material *foilMaterial, G4Material *gasMaterial, G4double foilThickness, G4double gasThickness, G4int foilNumber)
Definition: RadiatorLogicalVolume.h:24
RadiatorLogicalVolume::m_foilThickness
G4double m_foilThickness
Definition: RadiatorLogicalVolume.h:42