File indexing completed on 2025-02-23 09:22:21
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
0030 #ifndef LXeMainVolume_h
0031 #define LXeMainVolume_h 1
0032
0033 #include "LXeDetectorConstruction.hh"
0034
0035 #include "G4PVPlacement.hh"
0036
0037 class G4Box;
0038 class G4LogicalVolume;
0039 class G4Sphere;
0040 class G4Tubs;
0041
0042 class LXeMainVolume : public G4PVPlacement
0043 {
0044 public:
0045 LXeMainVolume(G4RotationMatrix* pRot, const G4ThreeVector& tlate,
0046 G4LogicalVolume* pMotherLogical, G4bool pMany, G4int pCopyNo,
0047 LXeDetectorConstruction* c);
0048
0049 G4LogicalVolume* GetLogPhotoCath() { return fPhotocath_log; }
0050 G4LogicalVolume* GetLogScint() { return fScint_log; }
0051
0052 std::vector<G4ThreeVector> GetPmtPositions() { return fPmtPositions; }
0053
0054 private:
0055 void VisAttributes();
0056 void SurfaceProperties();
0057
0058 void PlacePMTs(G4LogicalVolume* pmt_Log, G4RotationMatrix* rot, G4double& a, G4double& b,
0059 G4double da, G4double db, G4double amin, G4double bmin, G4int na, G4int nb,
0060 G4double& x, G4double& y, G4double& z, G4int& k);
0061
0062 void CopyValues();
0063
0064 LXeDetectorConstruction* fConstructor = nullptr;
0065
0066 G4double fScint_x = 0.;
0067 G4double fScint_y = 0.;
0068 G4double fScint_z = 0.;
0069 G4double fD_mtl = 0.;
0070 G4int fNx = 0;
0071 G4int fNy = 0;
0072 G4int fNz = 0;
0073 G4double fOuterRadius_pmt = 0.;
0074 G4bool fSphereOn = false;
0075 G4double fRefl = 0.;
0076
0077
0078
0079 G4Box* fScint_box = nullptr;
0080 G4Box* fHousing_box = nullptr;
0081 G4Tubs* fPmt = nullptr;
0082 G4Tubs* fPhotocath = nullptr;
0083 G4Sphere* fSphere = nullptr;
0084
0085
0086
0087 G4LogicalVolume* fScint_log = nullptr;
0088 G4LogicalVolume* fHousing_log = nullptr;
0089 G4LogicalVolume* fPmt_log = nullptr;
0090 G4LogicalVolume* fPhotocath_log = nullptr;
0091 G4LogicalVolume* fSphere_log = nullptr;
0092
0093
0094 std::vector<G4ThreeVector> fPmtPositions;
0095 };
0096
0097 #endif