File indexing completed on 2025-01-18 09:17:00
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 DetectorConstruction_h
0030 #define DetectorConstruction_h 1
0031
0032 #include "G4VUserDetectorConstruction.hh"
0033 #include "G4Box.hh"
0034 #include "G4PVPlacement.hh"
0035 #include "G4Mag_UsualEqRhs.hh"
0036 #include "G4TransportationManager.hh"
0037 #include "G4UserLimits.hh"
0038 #include "G4ClassicalRK4.hh"
0039 #include "G4PropagatorInField.hh"
0040
0041 #include "DetectorMessenger.hh"
0042 #include "TabulatedField3D.hh"
0043
0044
0045
0046 class DetectorConstruction : public G4VUserDetectorConstruction
0047 {
0048 public:
0049
0050 DetectorConstruction();
0051 ~DetectorConstruction();
0052
0053 G4VPhysicalVolume* Construct();
0054
0055 void ConstructSDandField();
0056
0057 void PrintDetectorParameters();
0058
0059 void SetG1 (G4float);
0060 void SetG2 (G4float);
0061 void SetG3 (G4float);
0062 void SetG4 (G4float);
0063
0064 G4float GetG1 () {return fG1;};
0065 G4float GetG2 () {return fG2;};
0066 G4float GetG3 () {return fG3;};
0067 G4float GetG4 () {return fG4;};
0068
0069 G4int GetModel(){return fModel;};
0070 void SetModel (G4int);
0071
0072 G4int GetCoef();
0073 void SetCoef(G4int val);
0074
0075 G4int GetProfile(){return fProfile;};
0076 void SetProfile(G4int myProfile);
0077
0078 G4int GetGrid(){return fGrid;};
0079 void SetGrid(G4int myGrid);
0080
0081 G4LogicalVolume* GetLogicalWorld() {return fLogicWorld;};
0082 G4LogicalVolume* GetLogicalVol() {return fLogicVol;};
0083 G4LogicalVolume* GetLogicalGrid() {return fLogicControlVol_GridShadow;};
0084
0085 G4float fG1, fG2, fG3, fG4;
0086 G4int fModel, fCoef, fProfile, fGrid;
0087
0088 private:
0089
0090 void DefineMaterials();
0091 G4VPhysicalVolume* ConstructVolumes();
0092
0093 G4VPhysicalVolume* fPhysiWorld;
0094 G4LogicalVolume* fLogicWorld;
0095 G4Box* fSolidWorld;
0096
0097 G4VPhysicalVolume* fPhysiVol;
0098 G4LogicalVolume* fLogicVol;
0099 G4Box* fSolidVol;
0100
0101 G4VPhysicalVolume* fPhysiGridVol;
0102 G4LogicalVolume* fLogicGridVol;
0103 G4Box* fSolidGridVol;
0104
0105 G4VPhysicalVolume* fPhysiGridVol_Hole;
0106 G4LogicalVolume* fLogicGridVol_Hole;
0107 G4Box* fSolidGridVol_Hole;
0108
0109 G4VPhysicalVolume* fPhysiControlVol_GridShadow;
0110 G4LogicalVolume* fLogicControlVol_GridShadow;
0111 G4Box* fSolidControlVol_GridShadow;
0112
0113 G4Material* fDefaultMaterial;
0114 G4Material* fGridMaterial;
0115
0116 DetectorMessenger* fDetectorMessenger;
0117
0118
0119 static G4ThreadLocal TabulatedField3D * fField;
0120
0121 };
0122 #endif
0123
0124