CMS 3D CMS Logo

FieldBuilder.h

Go to the documentation of this file.
00001 #ifndef SimG4Core_FieldBuilder_H
00002 #define SimG4Core_FieldBuilder_H
00003 
00004 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00005 // #include "SimG4Core/Geometry/interface/G4LogicalVolumeToDDLogicalPartMap.h"
00006 #include <memory>
00007 
00008 // class DDLogicalPart;
00009 class MagneticField;
00010 
00011 class G4FieldManager;
00012 class G4Mag_UsualEqRhs;
00013 class G4PropagatorInField;
00014 class G4LogicalVolume;
00015 
00016 namespace sim {
00017    class Field;
00018    class FieldBuilder
00019    {
00020       public:
00021          FieldBuilder(const MagneticField*, 
00022                       const edm::ParameterSet&);
00023          //~FieldBuilder();
00024 
00025 /*
00026          void readFieldParameters(DDLogicalPart theLogicalPart,
00027                                   const std::string& keywordField);
00028 */
00029          void build(G4FieldManager* fM = 0,
00030                     G4PropagatorInField* fP = 0) ;
00031 
00032 /*
00033          void configure(const std::string& keywordField,
00034                         G4FieldManager * fM = 0,
00035                         G4PropagatorInField * fP = 0);
00036 */
00037          void configureForVolume( const std::string& volName, 
00038                                   edm::ParameterSet& volPSet,
00039                                   G4FieldManager * fM = 0,
00040                                   G4PropagatorInField * fP = 0);
00041          G4LogicalVolume * fieldTopVolume();
00042       private:
00043          void configureFieldManager(G4FieldManager * fM);
00044          void configurePropagatorInField(G4PropagatorInField * fP);  
00045       private:
00046          std::auto_ptr<Field> theField;
00047          G4Mag_UsualEqRhs * theFieldEquation;
00048          G4LogicalVolume* theTopVolume;
00049          
00050          std::string keywordField;
00051          std::string fieldType;
00052          double fieldValue;
00053          std::string stepper;
00054          double minStep;
00055          double dChord;
00056          double dOneStep;
00057          double dIntersection;
00058          double dIntersectionAndOneStep;
00059          double maxLoopCount;
00060          double minEpsilonStep;
00061          double maxEpsilonStep;
00062          edm::ParameterSet thePSet ;
00063    };
00064 }
00065 
00066 #endif

Generated on Tue Jun 9 17:47:05 2009 for CMSSW by  doxygen 1.5.4