Berkeley Nuclear Data Software
RightCylindricalScintillator.h
Go to the documentation of this file.
1 //Josh Brown
2 //brown.ja1@gmail.com
3 //
4 
5 #ifndef _RIGHT_CYLINDRICAL_SCINTILLATOR_H_
6 #define _RIGHT_CYLINDRICAL_SCINTILLATOR_H_
7 
8 #include "GeometryObject.h"
9 
10 namespace NSDG4
11 {
16 {
17 public:
20 
21  virtual G4LogicalVolume* construct(G4LogicalVolume* a_mother,
22  MaterialManager* a_materials
23  );
24  G4LogicalVolume* constructSinglePMTDetector(G4LogicalVolume* a_mother,
25  MaterialManager* a_materials
26  );
27 
28  G4LogicalVolume* constructDualPMTDetector(G4LogicalVolume* a_mother,
29  MaterialManager* a_materials
30  );
31  void setDualPMT(G4bool a_isDualPMT);
46 
47  void setDetType(std::string a_type);
48  //setters for parameterization
49  void setScintRadius(G4double a_scintRadius);
50  void setScintLength(G4double a_scintLength);
51  void setHousingThickness(G4double a_housingThickness);
52  void setFlangeThickness(G4double a_flangeThickness);
53  void setFlangeLength(G4double a_flangeLength);
54  void setWindowRadius(G4double a_windowRadius);
55  void setWindowThickness(G4double a_windowThickness);
56  void setPmtRad(G4double a_pmtRad);
57  void setPmtLength(G4double a_pmtLength);
58  void setMagShieldThickness(G4double a_magShieldThickness);
59  void setScintName(std::string a_name);
60  void setPLAHolderPMTLength(G4double a_PLAHolderPMTLength);
61  void setPLAHolderScintThickness(G4double a_PLAHolderScintThickness);
62  void setPLAHolderScintLength(G4double a_PLAHolderScintLength);
63 
64  //getters for parameterization
65  G4double getScintRadius();
66  G4double getScintLength();
67  G4double getHousingThickness();
68  G4double getFlangeThickness();
69  G4double getFlangeLength();
70  G4double getWindowRadius();
71  G4double getWindowThickness();
72  G4double getPmtRad();
73  G4double getPmtLength();
74  G4double getMagShieldThickness();
75  G4double getPLAHolderPMTLength();
76  G4double getPLAHolderScintThickness();
77  G4double getPLAHolderScintLength();
78  G4bool getIsDualPMT();
79 
80 
81 private:
82  G4double m_scintRadius;
83  G4double m_scintLength;
84  G4double m_housingThickness;
85  G4double m_flangeThickness;
86  G4double m_flangeLength;
87  G4double m_windowRadius;
88  G4double m_windowThickness;
89  G4double m_pmtRad;
90  G4double m_pmtLength;
91  G4double m_magShieldThickness;
92  G4double m_PLAHolderPMTLength;
93  G4double m_PLAHolderScintThickness;
94  G4double m_PLAHolderScintLength;
95  std::string m_scintName;
96  G4bool m_isDualPMT;
97 
98 };
99 
100 
101 }
102 
103 #endif
abstract base class of geometry objects allowing modifications
Definition: GeometryObject.h:25
Definition: MaterialManager.h:15
Definition: RightCylindricalScintillator.h:16
RightCylindricalScintillator()
default constructor sets the class up with default configuration
Definition: RightCylindricalScintillator.cpp:15
void setFlangeThickness(G4double a_flangeThickness)
Definition: RightCylindricalScintillator.cpp:1009
virtual G4LogicalVolume * construct(G4LogicalVolume *a_mother, MaterialManager *a_materials)
must be implemented by the child class
Definition: RightCylindricalScintillator.cpp:39
G4double getHousingThickness()
Definition: RightCylindricalScintillator.cpp:1078
void setPLAHolderScintLength(G4double a_PLAHolderScintLength)
Definition: RightCylindricalScintillator.cpp:1055
void setPmtLength(G4double a_pmtLength)
Definition: RightCylindricalScintillator.cpp:1035
void setMagShieldThickness(G4double a_magShieldThickness)
Definition: RightCylindricalScintillator.cpp:1040
void setScintName(std::string a_name)
Definition: RightCylindricalScintillator.cpp:1061
G4double getWindowRadius()
Definition: RightCylindricalScintillator.cpp:1093
G4double getFlangeThickness()
Definition: RightCylindricalScintillator.cpp:1083
void setDualPMT(G4bool a_isDualPMT)
Definition: RightCylindricalScintillator.cpp:989
G4double getPmtLength()
Definition: RightCylindricalScintillator.cpp:1108
G4double getPLAHolderPMTLength()
Definition: RightCylindricalScintillator.cpp:1118
G4LogicalVolume * constructSinglePMTDetector(G4LogicalVolume *a_mother, MaterialManager *a_materials)
Definition: RightCylindricalScintillator.cpp:58
void setScintLength(G4double a_scintLength)
Definition: RightCylindricalScintillator.cpp:999
void setDetType(std::string a_type)
Definition: RightCylindricalScintillator.cpp:820
G4double getScintRadius()
Definition: RightCylindricalScintillator.cpp:1068
void setPLAHolderScintThickness(G4double a_PLAHolderScintThickness)
Definition: RightCylindricalScintillator.cpp:1050
G4double getPLAHolderScintThickness()
Definition: RightCylindricalScintillator.cpp:1123
void setScintRadius(G4double a_scintRadius)
Definition: RightCylindricalScintillator.cpp:994
G4LogicalVolume * constructDualPMTDetector(G4LogicalVolume *a_mother, MaterialManager *a_materials)
Definition: RightCylindricalScintillator.cpp:426
void setFlangeLength(G4double a_flangeLength)
Definition: RightCylindricalScintillator.cpp:1014
G4double getScintLength()
Definition: RightCylindricalScintillator.cpp:1073
void setHousingThickness(G4double a_housingThickness)
Definition: RightCylindricalScintillator.cpp:1004
G4double getPLAHolderScintLength()
Definition: RightCylindricalScintillator.cpp:1128
void setWindowRadius(G4double a_windowRadius)
Definition: RightCylindricalScintillator.cpp:1019
void setPmtRad(G4double a_pmtRad)
Definition: RightCylindricalScintillator.cpp:1029
void setPLAHolderPMTLength(G4double a_PLAHolderPMTLength)
Definition: RightCylindricalScintillator.cpp:1045
void setWindowThickness(G4double a_windowThickness)
Definition: RightCylindricalScintillator.cpp:1024
G4double getPmtRad()
Definition: RightCylindricalScintillator.cpp:1103
G4double getFlangeLength()
Definition: RightCylindricalScintillator.cpp:1088
G4double getMagShieldThickness()
Definition: RightCylindricalScintillator.cpp:1113
G4double getWindowThickness()
Definition: RightCylindricalScintillator.cpp:1098
G4bool getIsDualPMT()
Definition: RightCylindricalScintillator.cpp:1132
Definition: AbsLYAna.h:7