ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
LXeDetectorConstruction.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file LXeDetectorConstruction.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
29 //
30 //
31 #ifndef LXeDetectorConstruction_H
32 #define LXeDetectorConstruction_H 1
33 
34 class G4LogicalVolume;
35 class G4VPhysicalVolume;
36 class G4Box;
37 class G4Tubs;
38 class LXeMainVolume;
39 class G4Sphere;
40 
41 #include "G4Material.hh"
42 #include "LXeDetectorMessenger.hh"
43 #include "G4VisAttributes.hh"
44 #include "G4RotationMatrix.hh"
45 
46 #include "LXeScintSD.hh"
47 #include "LXePMTSD.hh"
48 
50 #include "G4Cache.hh"
51 
53 {
54  public:
55 
57  virtual ~LXeDetectorConstruction();
58 
59  virtual G4VPhysicalVolume* Construct();
60  virtual void ConstructSDandField();
61 
62  //Functions to modify the geometry
65  void SetNX(G4int );
66  void SetNY(G4int );
67  void SetNZ(G4int );
68  void SetPMTRadius(G4double );
69  void SetDefaults();
70  void SetSaveThreshold(G4int );
71 
72  //Get values
73  G4int GetNX() const {return fNx;};
74  G4int GetNY() const {return fNy;};
75  G4int GetNZ() const {return fNz;};
77  G4double GetScintX() const {return fScint_x;}
78  G4double GetScintY() const {return fScint_y;}
79  G4double GetScintZ() const {return fScint_z;}
82  G4double GetSlabZ() const {return fSlab_z;}
83 
84  void SetSphereOn(G4bool );
85  static G4bool GetSphereOn(){return fSphereOn;}
86 
89 
90  void SetWLSSlabOn(G4bool b);
91  G4bool GetWLSSlabOn() const {return fWLSslab;}
92 
93  void SetMainVolumeOn(G4bool b);
95 
96  void SetNFibers(G4int n);
97  G4int GetNFibers() const {return fNfibers;}
98 
100  void SetWLSScintYield(G4double );
101 
102  private:
103 
104  void DefineMaterials();
105 
107 
111 
112  //Materials & Elements
126 
127  //Geometry
143 
145 
148 
149  //Sensitive Detectors
152 
153 };
154 
155 #endif