Warning, file /geant4/examples/advanced/amsEcal/include/DetectorConstruction.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 DetectorConstruction_h
0031 #define DetectorConstruction_h 1
0032
0033 #include "G4VUserDetectorConstruction.hh"
0034 #include "globals.hh"
0035 #include "G4Cache.hh"
0036
0037 class G4VPhysicalVolume;
0038 class G4LogicalVolume;
0039 class G4Material;
0040 class G4GlobalMagFieldMessenger;
0041
0042
0043
0044 class DetectorConstruction : public G4VUserDetectorConstruction
0045 {
0046 public:
0047
0048 DetectorConstruction();
0049 ~DetectorConstruction();
0050
0051 public:
0052
0053 virtual G4VPhysicalVolume* Construct();
0054 virtual void ConstructSDandField();
0055
0056 void PrintCalorParameters();
0057
0058 public:
0059
0060 G4VPhysicalVolume* GetPvolWorld() {return pvol_world;};
0061 G4Material* GetWorldMaterial() {return worldMat;};
0062 G4double GetWorldSizeX() {return worldSizeX;};
0063 G4double GetCalorThickness() {return calorThickness;};
0064 G4double GetCalorSizeYZ() {return fiberLength;};
0065 G4double GetModuleThickness() {return moduleThickness;};
0066
0067 G4LogicalVolume* GetLvolFiber() {return lvol_fiber;};
0068 G4LogicalVolume* GetLvolLayer() {return lvol_layer;};
0069 G4LogicalVolume* GetLvolModule() {return lvol_module;};
0070 G4LogicalVolume* GetLvolCalorimeter() {return lvol_calorimeter;};
0071 G4LogicalVolume* GetLvolWorld() {return lvol_world;};
0072
0073 G4int GetNbFibers() {return nbOfFibers;};
0074 G4int GetNbLayers() {return nbOfLayers;};
0075 G4int GetNbModules() {return nbOfModules;};
0076
0077 private:
0078
0079
0080
0081 G4Material* fiberMat;
0082 G4double fiberDiameter, fiberLength;
0083 G4LogicalVolume* lvol_fiber;
0084
0085
0086
0087 G4Material* absorberMat;
0088 G4int nbOfFibers;
0089 G4double distanceInterFibers;
0090 G4double layerThickness;
0091 G4LogicalVolume* lvol_layer;
0092
0093
0094
0095 G4Material* moduleMat;
0096 G4int nbOfLayers;
0097 G4double milledLayer;
0098 G4double moduleThickness;
0099 G4LogicalVolume* lvol_module;
0100
0101
0102
0103 G4Material* calorimeterMat;
0104 G4int nbOfModules;
0105 G4double calorThickness;
0106 G4LogicalVolume* lvol_calorimeter;
0107
0108
0109
0110 G4Material* worldMat;
0111 G4double worldSizeX;
0112 G4LogicalVolume* lvol_world;
0113 G4VPhysicalVolume* pvol_world;
0114
0115 G4Material* defaultMat;
0116
0117 G4Cache<G4GlobalMagFieldMessenger*> fFieldMessenger;
0118
0119 private:
0120
0121 void DefineMaterials();
0122 G4VPhysicalVolume* ConstructCalorimeter();
0123 };
0124
0125
0126
0127 #endif
0128