Warning, file /geant4/examples/extended/optical/LXe/include/LXeMainVolume.hh was not indexed
or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
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