File indexing completed on 2025-01-18 09:17:12
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
0031
0032
0033
0034
0035
0036 #ifndef XrayTESdetDetectorConstruction_h
0037 #define XrayTESdetDetectorConstruction_h 1
0038
0039 class XrayTESdetDetectorMessenger;
0040 class G4LogicalVolume;
0041 class G4VPhysicalVolume;
0042 class G4UserLimits;
0043 class G4PVPlacement;
0044
0045 #include "G4VUserDetectorConstruction.hh"
0046 #include "G4GDMLParser.hh"
0047 #include "G4PVParameterised.hh"
0048
0049
0050
0051 class XrayTESdetDetectorConstruction : public G4VUserDetectorConstruction
0052 {
0053 public:
0054
0055 explicit XrayTESdetDetectorConstruction();
0056 ~XrayTESdetDetectorConstruction() override;
0057 G4VPhysicalVolume* Construct() override;
0058 void SetMaxStep (G4double);
0059 void SetReadFile(G4String);
0060
0061 private:
0062
0063
0064 G4GDMLParser fParser;
0065 G4String fReadFile;
0066 G4UserLimits* fStepLimitPolyfilta;
0067 G4UserLimits* fStepLimitAlfilta;
0068 G4UserLimits* fStepLimitmembrane;
0069 G4PVPlacement* fExperimentalHall_phys;
0070 XrayTESdetDetectorMessenger* fDetectorMessenger;
0071 G4VPhysicalVolume* ConstructDetector();
0072 G4PVParameterised* fPhysiDet;
0073
0074
0075 G4LogicalVolume* fExperimentalHall_log;
0076 G4LogicalVolume* fElement_log;
0077 G4LogicalVolume* fMembranepxl_log;
0078 G4LogicalVolume* fDetector_log;
0079 G4LogicalVolume* fBipxl_log;
0080 G4LogicalVolume* fACDpxl_log;
0081 G4LogicalVolume* fInACDpxl_log;
0082 G4LogicalVolume* fGridpiece_log;
0083 G4LogicalVolume* fWafer_log;
0084 G4LogicalVolume* fACplate_log;
0085 G4LogicalVolume* fCagewall_log;
0086 G4LogicalVolume* fMinicagewall_log;
0087 G4LogicalVolume* fExtcagewall_log;
0088 G4LogicalVolume* fExtboard_log;
0089 G4LogicalVolume* fMesh_log;
0090 G4LogicalVolume* fSphere_log;
0091 G4LogicalVolume* fBSC_log;
0092 G4LogicalVolume* fTrapezoid_A_log;
0093 G4LogicalVolume* fTrapezoid_B_log;
0094 G4LogicalVolume* fTrapezoid_C_log;
0095 G4LogicalVolume* fTrapezoid_D_log;
0096 G4LogicalVolume* fWorld_log;
0097
0098
0099 G4VPhysicalVolume* fBipxl_phys;
0100 G4VPhysicalVolume* fMembranepxl_phys;
0101 G4VPhysicalVolume* fGridpiece_phys;
0102 G4VPhysicalVolume* fDetector_phys;
0103 G4VPhysicalVolume* fACDpxl_phys;
0104 G4VPhysicalVolume* fInACDpxl_phys;
0105 G4VPhysicalVolume* fWafer_phys;
0106 G4VPhysicalVolume* fACplate_phys;
0107 G4VPhysicalVolume* fCagecolumn_phys;
0108 G4VPhysicalVolume* fCagecolumn2_phys;
0109 G4VPhysicalVolume* fCagecolumn3_phys;
0110 G4VPhysicalVolume* fCagecolumn4_phys;
0111 G4VPhysicalVolume* fCagecolumn5_phys;
0112 G4VPhysicalVolume* fCagecolumn6_phys;
0113 G4VPhysicalVolume* fEmptycagecolumn_phys;
0114 G4VPhysicalVolume* fEmptycagecolumn2_phys;
0115 G4VPhysicalVolume* fEmptycagecolumn3_phys;
0116 G4VPhysicalVolume* fCagewall_phys;
0117 G4VPhysicalVolume* fCagewall2_phys;
0118 G4VPhysicalVolume* fCagewall3_phys;
0119 G4VPhysicalVolume* fCagewall4_phys;
0120 G4VPhysicalVolume* fCagewall5_phys;
0121 G4VPhysicalVolume* fCagewall6_phys;
0122 G4VPhysicalVolume* fMinicagewall_phys;
0123 G4VPhysicalVolume* fMinicagewall2_phys;
0124 G4VPhysicalVolume* fMinicagewall3_phys;
0125 G4VPhysicalVolume* fExtcagewall_phys;
0126 G4VPhysicalVolume* fExtcagewall2_phys;
0127 G4VPhysicalVolume* fExtboard_phys;
0128 G4VPhysicalVolume* fExtboard2_phys;
0129 G4VPhysicalVolume* fRing_phys;
0130 G4VPhysicalVolume* fFirstShield_botplate_phys;
0131 G4VPhysicalVolume* fFirstShield_side_phys;
0132 G4VPhysicalVolume* fFirstShield_topplate_phys;
0133 G4VPhysicalVolume* fFirstShield_topcyl_phys;
0134 G4VPhysicalVolume* fSecondShieldbotPlate_phys;
0135 G4VPhysicalVolume* fSecondShieldside_phys;
0136 G4VPhysicalVolume* fSecondShieldtopPlate_phys;
0137 G4VPhysicalVolume* fSecondShieldshield_topcyl_phys;
0138 G4VPhysicalVolume* fThirdShieldbotPlate_phys;
0139 G4VPhysicalVolume* fThirdShieldbotCone_phys;
0140 G4VPhysicalVolume* fThirdShieldtopCone_phys;
0141 G4VPhysicalVolume* fThirdShieldside_phys;
0142 G4VPhysicalVolume* fCryostatbotPlate_phys;
0143 G4VPhysicalVolume* fCryostatbotCone_phys;
0144 G4VPhysicalVolume* fCryostatbotSide_phys;
0145 G4VPhysicalVolume* fCryostatmidSide_phys;
0146 G4VPhysicalVolume* fCryostattopSide_phys;
0147 G4VPhysicalVolume* fCryostattopCone_phys;
0148 G4VPhysicalVolume* fAC_phys;
0149 G4VPhysicalVolume* fACIC_phys;
0150 G4VPhysicalVolume* fMesh_phys;
0151 G4VPhysicalVolume* fSphere_phys;
0152 G4VPhysicalVolume* fFiltercarrier_phys;
0153 G4VPhysicalVolume* fBSC_phys;
0154 G4VPhysicalVolume* fAlFilter_phys;
0155 G4VPhysicalVolume* fTrapezoid_A_phys;
0156 G4VPhysicalVolume* fTrapezoid_B_phys;
0157 G4VPhysicalVolume* fTrapezoid_C_phys;
0158 G4VPhysicalVolume* fTrapezoid_D_phys;
0159 };
0160
0161
0162
0163 #endif