Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:35

0001 #ifndef ParametrizedEngine_TkBfield_h
0002 #define ParametrizedEngine_TkBfield_h
0003 
0004 /** \class magfieldparam::TkBfield
0005  *
0006  *
0007  *    B-field in Tracker volume - based on the TOSCA computation version 1103l
0008  *    (tuned on MTCC measured field (fall 2006))
0009  *    
0010  *     In:   x[3]: coordinates (m)
0011  *    Out:   B[3]: Bx,By,Bz    (T)    (getBxyz)
0012  *    Out:   B[3]: Br,Bf,Bz    (T)    (getBrfz)
0013  *
0014  *    Valid for r<1.15m and |z|<2.80m
0015  *
0016  *  \author V.Karimaki 080228, 080407
0017  *  new float version V.I. October 2012
0018  */
0019 
0020 #include "BCyl.h"
0021 #include <string>
0022 
0023 namespace magfieldparam {
0024   class TkBfield {
0025   public:
0026     // Deprecated ctor, nominal field value specified with a string, eg. "3_8T"
0027     TkBfield(std::string T);
0028 
0029     // Ctor
0030     TkBfield(float fld = 3.8);
0031 
0032     /// B out in cartesian
0033     void getBxyz(float const* __restrict__ x, float* __restrict__ Bxyz) const;
0034     /// B out in cylindrical
0035     void getBrfz(float const* __restrict__ x, float* __restrict__ Brfz) const;
0036 
0037   private:
0038     BCycl<float> bcyl;
0039   };
0040 }  // namespace magfieldparam
0041 
0042 #endif