File indexing completed on 2025-08-05 08:17:50
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef G4DETECTORS_PHG4OUTERHCALFIELDSETUP_H
0014 #define G4DETECTORS_PHG4OUTERHCALFIELDSETUP_H
0015
0016 #include <Geant4/G4Types.hh> // for G4double, G4int
0017
0018 #include <cmath>
0019
0020 class G4ChordFinder;
0021 class G4FieldManager;
0022 class G4Mag_UsualEqRhs;
0023 class G4MagIntegratorStepper;
0024 class G4MagneticField;
0025
0026
0027
0028
0029 class PHG4OuterHcalFieldSetup
0030 {
0031 public:
0032 PHG4OuterHcalFieldSetup(G4int steelPlates, G4double scintiGap,
0033 G4double tiltAngle);
0034
0035 explicit PHG4OuterHcalFieldSetup(const PHG4OuterHcalFieldSetup&) = delete;
0036 PHG4OuterHcalFieldSetup& operator=(const PHG4OuterHcalFieldSetup&) = delete;
0037
0038 virtual ~PHG4OuterHcalFieldSetup() {}
0039
0040 G4FieldManager*
0041 get_Field_Manager_Gap() const
0042 {
0043 return fFieldManagerGap;
0044 }
0045
0046 void
0047 set_Field_Manager_Gap(G4FieldManager* fieldManagerGap)
0048 {
0049 fFieldManagerGap = fieldManagerGap;
0050 }
0051
0052 G4FieldManager*
0053 get_Field_Manager_Iron() const
0054 {
0055 return fFieldManagerIron;
0056 }
0057
0058 void
0059 set_Field_Manager_Iron(G4FieldManager* fieldManagerIron)
0060 {
0061 fFieldManagerIron = fieldManagerIron;
0062 }
0063
0064 G4double
0065 get_Min_Step() const
0066 {
0067 return fMinStep;
0068 }
0069
0070 void
0071 set_Min_Step(G4double minStep)
0072 {
0073 fMinStep = minStep;
0074 }
0075
0076 G4int
0077 get_steel_plates() const
0078 {
0079 return n_steel_plates;
0080 }
0081
0082 void
0083 set_steel_plates(G4int steelPlates)
0084 {
0085 n_steel_plates = steelPlates;
0086 }
0087
0088 G4double
0089 get_scinti_gap() const
0090 {
0091 return scinti_gap;
0092 }
0093
0094 void
0095 set_scinti_gap(G4double scintiGap)
0096 {
0097 scinti_gap = scintiGap;
0098 }
0099
0100 G4double
0101 get_tilt_angle() const
0102 {
0103 return tilt_angle;
0104 }
0105
0106 void
0107 set_tilt_angle(G4double tiltAngle)
0108 {
0109 tilt_angle = tiltAngle;
0110 }
0111
0112 private:
0113 G4FieldManager* fFieldManagerIron = nullptr;
0114 G4FieldManager* fFieldManagerGap = nullptr;
0115 G4Mag_UsualEqRhs* fEquationIron = nullptr;
0116 G4Mag_UsualEqRhs* fEquationGap = nullptr;
0117 G4ChordFinder* fChordFinderIron = nullptr;
0118 G4ChordFinder* fChordFinderGap = nullptr;
0119 G4MagneticField* fEMfieldIron = nullptr;
0120 G4MagneticField* fEMfieldGap = nullptr;
0121 G4MagIntegratorStepper* fStepperIron = nullptr;
0122 G4MagIntegratorStepper* fStepperGap = nullptr;
0123
0124 G4double fMinStep = NAN;
0125
0126 G4int n_steel_plates = -1;
0127 G4double scinti_gap = NAN;
0128 G4double tilt_angle = NAN;
0129 };
0130
0131 #endif