FDsimG4DetectorConstruction.hh
Go to the documentation of this file.
1 //
2 // Description: DetectorConstruction for FDsimG4 application
3 //
4 //
5 
6 #ifndef FDsimG4DetectorConstruction_h
7 #define FDsimG4DetectorConstruction_h 1
8 
9 #include <vector>
10 #include "globals.hh"
11 #include "G4VUserDetectorConstruction.hh"
12 #include "G4ThreeVector.hh"
13 #include "FDsimG4XMLManager.hh"
14 #include <utl/TabulatedFunction.h>
15 
16 
17 namespace TelescopeSimulatorLX {
18  class FDsimG4Filter;
19  class FDsimG4VCorrectorRing;
20  class FDsimG4Mirror;
21  class FDsimG4Camera;
22  class FDsimG4Mercedes;
23  class FDsimG4PMT;
24  class FDsimG4Materials;
25 }
26 
27 class G4SDManager;
28 class G4LogicalVolume;
29 class G4Material;
30 
31 namespace TelescopeSimulatorLX {
32 
34  G4double Sigma_alpha;
35  std::vector<G4double> Wavelength;
36  std::vector<G4double> SpecularLobe;
37  std::vector<G4double> SpecularSpike;
38  std::vector<G4double> Backscatter;
39  };
40 
41  class FDsimG4DetectorConstruction : public G4VUserDetectorConstruction {
42 
44  friend class FDsimG4Filter;
45  friend class FDsimG4VCorrectorRing;
46  friend class FDsimG4Mirror;
47  friend class FDsimG4Camera;
48  friend class FDsimG4Mercedes;
49  friend class FDsimG4PMT;
50  friend class FDsimG4Materials;
51 
52  public:
53  FDsimG4DetectorConstruction(const G4String& TelescopeName, const FDsimG4XMLManager manager);
55 
56  G4VPhysicalVolume* Construct();
58  void SetVerbosityLevel(G4int level) {fVerbosityLevel = level;}
59  G4bool GetUseSensitiveDetectors(void) const {return fUseSensitiveDetectors;}
60 
61  private:
62  static const G4double fgTOLERANCE;
63 
64  void Init();
65 
66  G4VPhysicalVolume* ConstructWorld();
67  G4VPhysicalVolume* ConstructTelescopeMother();
72  void ConstructHousing();
73  void ConstructLensSD();
74 
75  G4String fTelescopeName;
78 
79  G4VPhysicalVolume* fWorld_phys;
80  G4VPhysicalVolume* fTelescopeMother_phys;
81  G4VPhysicalVolume* fLensFilterMother_phys;
82 
83 
85  G4Material* fWorldMaterial;
86  G4double fWorld_x;
87  G4double fWorld_y;
88  G4double fWorld_z;
89 
90  std::vector<G4double> fFilterFrameWavelength;
91  std::vector<G4double> fFilterFrameReflectivity;
94 
96  G4ThreeVector fFilterPosition;
97  G4double fFilterRadius;
98  G4double fFilterDiameter;
99  G4double fFilterThickness;
100  G4double fFilterFrameSize;
102  G4Material* fFilterMaterial;
103 
105 
109  G4ThreeVector fCorrectorRingPosition;
118 
120  G4String fMirrorDataFile;
124 
129  G4double fMercedesHeight;
130  G4double fMercedesBase;
133 
134  std::vector<G4double> fPhotocathodeWavelength;
135  std::vector<G4double> fPhotocathodeReRindex;
136  std::vector<G4double> fPhotocathodeImRindex;
138  std::vector<G4double> fPhotocathodeReflectivity;
142  };
143 
144 }
145 
146 #endif
FDsimG4DetectorConstruction(const G4String &TelescopeName, const FDsimG4XMLManager manager)
Manager for specific FD description parameters in XML file.

, generated on Tue Sep 26 2023.