File indexing completed on 2026-04-08 07:53:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef LXeMainVolume_h
0030 #define LXeMainVolume_h 1
0031
0032 #include "LXeDetectorConstruction.hh"
0033
0034 #include "G4PVPlacement.hh"
0035
0036 class G4Box;
0037 class G4LogicalVolume;
0038 class G4Sphere;
0039 class G4Tubs;
0040
0041 class LXeMainVolume : public G4PVPlacement
0042 {
0043 public:
0044 LXeMainVolume(G4RotationMatrix* pRot, const G4ThreeVector& tlate,
0045 G4LogicalVolume* pMotherLogical, G4bool pMany, G4int pCopyNo,
0046 LXeDetectorConstruction* c);
0047
0048 G4LogicalVolume* GetLogPhotoCath() { return fPhotocath_log; }
0049 G4LogicalVolume* GetLogScint() { return fScint_log; }
0050
0051 std::vector<G4ThreeVector> GetPmtPositions() { return fPmtPositions; }
0052
0053 private:
0054 void VisAttributes();
0055 void SurfaceProperties();
0056
0057 void PlacePMTs(G4LogicalVolume* pmt_Log, G4RotationMatrix* rot, G4double& a, G4double& b,
0058 G4double da, G4double db, G4double amin, G4double bmin, G4int na, G4int nb,
0059 G4double& x, G4double& y, G4double& z, G4int& k);
0060
0061 void CopyValues();
0062
0063 LXeDetectorConstruction* fConstructor = nullptr;
0064
0065 G4double fScint_x = 0.;
0066 G4double fScint_y = 0.;
0067 G4double fScint_z = 0.;
0068 G4double fD_mtl = 0.;
0069 G4int fNx = 0;
0070 G4int fNy = 0;
0071 G4int fNz = 0;
0072 G4double fOuterRadius_pmt = 0.;
0073 G4bool fSphereOn = false;
0074 G4double fRefl = 0.;
0075
0076
0077
0078 G4Box* fScint_box = nullptr;
0079 G4Box* fHousing_box = nullptr;
0080 G4Tubs* fPmt = nullptr;
0081 G4Tubs* fPhotocath = nullptr;
0082 G4Sphere* fSphere = nullptr;
0083
0084
0085
0086 G4LogicalVolume* fScint_log = nullptr;
0087 G4LogicalVolume* fHousing_log = nullptr;
0088 G4LogicalVolume* fPmt_log = nullptr;
0089 G4LogicalVolume* fPhotocath_log = nullptr;
0090 G4LogicalVolume* fSphere_log = nullptr;
0091
0092
0093 std::vector<G4ThreeVector> fPmtPositions;
0094 };
0095
0096 #endif