File indexing completed on 2024-04-06 12:30:25
0001 #ifndef SimG4Core_MagneticField_FieldBuilder_H
0002 #define SimG4Core_MagneticField_FieldBuilder_H
0003
0004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0005 #include <memory>
0006
0007 class MagneticField;
0008 class CMSFieldManager;
0009 class G4Mag_UsualEqRhs;
0010 class G4PropagatorInField;
0011 class G4LogicalVolume;
0012
0013 namespace sim {
0014 class Field;
0015 class FieldBuilder {
0016 public:
0017 FieldBuilder(const MagneticField *, const edm::ParameterSet &);
0018
0019 ~FieldBuilder();
0020
0021 void build(CMSFieldManager *fM, G4PropagatorInField *fP);
0022
0023 void configureForVolume(const std::string &volName,
0024 edm::ParameterSet &volPSet,
0025 CMSFieldManager *fM,
0026 G4PropagatorInField *fP);
0027
0028 private:
0029 Field *theField;
0030 G4Mag_UsualEqRhs *theFieldEquation;
0031 G4LogicalVolume *theTopVolume;
0032 edm::ParameterSet thePSet;
0033 double theDelta;
0034 };
0035 };
0036
0037 #endif