Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:29:49

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 };  // namespace sim
0036 
0037 #endif