Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4OHCalFieldSetup.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PHG4OHCalFieldSetup.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 // $Id: $
4 
13 #ifndef G4OHCAL_PHG4OHCALFIELDSETUP_H
14 #define G4OHCAL_PHG4OHCALFIELDSETUP_H
15 
16 #include <Geant4/G4Types.hh> // for G4double, G4int
17 
18 #include <limits> // for numeric_limits
19 #include <string>
20 
21 class G4ChordFinder;
22 class G4FieldManager;
23 class G4Mag_UsualEqRhs;
24 class G4MagIntegratorStepper;
25 class G4MagneticField;
26 
31 {
32  public:
33  PHG4OHCalFieldSetup(const std::string& iron_fieldmap_path, const double scale = 1., const double inner_radius = 0., const double outer_radius = 1.e10, const double size_z = 1.e10);
34 
35  // delete copy ctor and assignment opertor (cppcheck)
36  explicit PHG4OHCalFieldSetup(const PHG4OHCalFieldSetup&) = delete;
38 
39  virtual ~PHG4OHCalFieldSetup();
40 
41  G4FieldManager*
43  {
44  return fFieldManagerIron;
45  }
46 
47  void
48  set_Field_Manager_Iron(G4FieldManager* fieldManagerIron)
49  {
50  fFieldManagerIron = fieldManagerIron;
51  }
52 
53  G4double
54  get_Min_Step() const
55  {
56  return fMinStep;
57  }
58 
59  void
60  set_Min_Step(G4double minStep)
61  {
62  fMinStep = minStep;
63  }
64 
65  private:
66  G4FieldManager* fFieldManagerIron = nullptr;
67  G4Mag_UsualEqRhs* fEquationIron = nullptr;
68  G4ChordFinder* fChordFinderIron = nullptr;
69  G4MagneticField* fEMfieldIron = nullptr;
70  G4MagIntegratorStepper* fStepperIron = nullptr;
71  G4double fMinStep = std::numeric_limits<float>::quiet_NaN();
72 };
73 
74 #endif /* G4OHCAL_PHG4OHCALFIELDSETUP_H */