Warning, file /geant4/examples/extended/parameterisations/gflash/gflasha/include/ExGflashDetectorConstruction.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 #ifndef ExGflashDetectorConstruction_h
0030 #define ExGflashDetectorConstruction_h 1
0031
0032 #include "ExGflashSensitiveDetector.hh"
0033
0034 #include "G4Cache.hh"
0035 #include "G4ThreeVector.hh"
0036 #include "G4VUserDetectorConstruction.hh"
0037 #include "globals.hh"
0038
0039 class G4LogicalVolume;
0040 class G4VPhysicalVolume;
0041 class G4Material;
0042 class G4Region;
0043
0044 class GFlashHomoShowerParameterisation;
0045 class GFlashShowerModel;
0046 class GFlashHitMaker;
0047 class GFlashParticleBounds;
0048 class ExGflashMessenger;
0049
0050 class ExGflashDetectorConstruction : public G4VUserDetectorConstruction
0051 {
0052 public:
0053 ExGflashDetectorConstruction();
0054 ~ExGflashDetectorConstruction() override;
0055
0056 G4VPhysicalVolume* Construct() override;
0057 void ConstructSDandField() override;
0058
0059 void SetLBining(G4ThreeVector);
0060 void SetRBining(G4ThreeVector);
0061
0062 void SetVerbose(G4int val) { fVerbose = val; }
0063
0064 void SetMaterial(G4String mat);
0065
0066 G4int GetVerbose() const { return fVerbose; }
0067
0068 G4int GetnLtot() const { return fNLtot; }
0069 G4int GetnRtot() const { return fNRtot; }
0070 G4double GetdLradl() const { return fDLradl; }
0071 G4double GetdRradl() const { return fDRradl; }
0072
0073 G4double GetSDRadLen() const { return fSDRadLen; }
0074 G4double GetSDRm() const { return fSDRm; }
0075
0076 G4int GetNbOfCrystals() const { return fNbOfCrystals; }
0077
0078 G4double GetCrystalWidth() const { return fCrystalWidth; }
0079 G4double GetCrystalLength() const { return fCrystalLength; }
0080
0081 void SetNbOfCrystals(G4int n) { fNbOfCrystals = n; }
0082
0083 void SetCrystalWidth(G4double cw) { fCrystalWidth = cw; }
0084 void SetCrystalLength(G4double cl) { fCrystalLength = cl; }
0085
0086 private:
0087 void DefineMaterials();
0088
0089 G4int fNbOfCrystals{10};
0090
0091 G4double fCrystalWidth;
0092 G4double fCrystalLength;
0093
0094 G4LogicalVolume* fCrystal_log{nullptr};
0095 G4Material* fDetMat{nullptr};
0096 G4Material* fHallMat{nullptr};
0097
0098 G4Region* fRegion{nullptr};
0099
0100 G4double fSDRadLen{1.0};
0101 G4double fSDRm{1.0};
0102
0103 G4int fVerbose{1};
0104
0105 G4int fNLtot{112}, fNRtot{80};
0106 G4double fDLradl{0.25}, fDRradl{0.05};
0107
0108 ExGflashMessenger* fGflashMessenger{nullptr};
0109
0110 inline static G4ThreadLocal GFlashShowerModel* fFastShowerModel = nullptr;
0111 inline static G4ThreadLocal GFlashHomoShowerParameterisation* fParameterisation = nullptr;
0112 inline static G4ThreadLocal GFlashParticleBounds* fParticleBounds = nullptr;
0113 inline static G4ThreadLocal GFlashHitMaker* fHitMaker = nullptr;
0114 };
0115
0116 #endif