00001 #ifndef ParametrizedEngine_OAE85lParametrizedMagneticField_h 00002 #define ParametrizedEngine_OAE85lParametrizedMagneticField_h 00003 00015 #include "MagneticField/Engine/interface/MagneticField.h" 00016 00017 namespace edm { class ParameterSet; } 00018 00019 class OAE85lParametrizedMagneticField : public MagneticField { 00020 public: 00021 00024 OAE85lParametrizedMagneticField(float b0_ = 40.681, 00025 float a_ = 4.6430, 00026 float l_ = 15.284); 00027 00029 OAE85lParametrizedMagneticField(const edm::ParameterSet& parameters); 00030 00031 00033 virtual ~OAE85lParametrizedMagneticField(); 00034 00035 GlobalVector inTesla (const GlobalPoint& gp) const; 00036 00037 GlobalVector inTeslaUnchecked (const GlobalPoint& gp) const; 00038 00039 bool isDefined(const GlobalPoint& gp) const; 00040 00041 private: 00042 00043 void ffunkti(float u, float* ff) const; 00044 00045 void init(); 00046 00047 //phenomen. parameters: 00048 // b0=field at centre, l=solenoid length, a=radius (m) 00049 float b0; 00050 float l; 00051 float a; 00052 // Derived parameters 00053 float ap2; 00054 float hb0; 00055 float hlova; 00056 float ainv; 00057 }; 00058 #endif