Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:18:15

0001 // Tell emacs that this is a C++ source
0002 //  -*- C++ -*-.
0003 // $Id: $
0004 
0005 /*!
0006  * \file PHG4OHCalFieldSetup.h
0007  * \brief
0008  * \author Jin Huang <jhuang@bnl.gov>
0009  * \version $Revision:   $
0010  * \date $Date: $
0011  */
0012 
0013 #ifndef G4OHCAL_PHG4OHCALFIELDSETUP_H
0014 #define G4OHCAL_PHG4OHCALFIELDSETUP_H
0015 
0016 #include <Geant4/G4Types.hh>  // for G4double, G4int
0017 
0018 #include <limits>  // for numeric_limits
0019 #include <string>
0020 
0021 class G4ChordFinder;
0022 class G4FieldManager;
0023 class G4Mag_UsualEqRhs;
0024 class G4MagIntegratorStepper;
0025 class G4MagneticField;
0026 
0027 /*!
0028  * \brief PHG4OHCalFieldSetup following Geant4 example F03FieldSetup
0029  */
0030 class PHG4OHCalFieldSetup
0031 {
0032  public:
0033   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);
0034 
0035   // delete copy ctor and assignment opertor (cppcheck)
0036   explicit PHG4OHCalFieldSetup(const PHG4OHCalFieldSetup&) = delete;
0037   PHG4OHCalFieldSetup& operator=(const PHG4OHCalFieldSetup&) = delete;
0038 
0039   virtual ~PHG4OHCalFieldSetup();
0040 
0041   G4FieldManager*
0042   get_Field_Manager_Iron() const
0043   {
0044     return fFieldManagerIron;
0045   }
0046 
0047   void
0048   set_Field_Manager_Iron(G4FieldManager* fieldManagerIron)
0049   {
0050     fFieldManagerIron = fieldManagerIron;
0051   }
0052 
0053   G4double
0054   get_Min_Step() const
0055   {
0056     return fMinStep;
0057   }
0058 
0059   void
0060   set_Min_Step(G4double minStep)
0061   {
0062     fMinStep = minStep;
0063   }
0064 
0065  private:
0066   G4FieldManager* fFieldManagerIron = nullptr;
0067   G4Mag_UsualEqRhs* fEquationIron = nullptr;
0068   G4ChordFinder* fChordFinderIron = nullptr;
0069   G4MagneticField* fEMfieldIron = nullptr;
0070   G4MagIntegratorStepper* fStepperIron = nullptr;
0071   G4double fMinStep = std::numeric_limits<float>::quiet_NaN();
0072 };
0073 
0074 #endif /* G4OHCAL_PHG4OHCALFIELDSETUP_H */