| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

MagFieldToolDC06 Class Reference

Implementation of IMagFieldTool for DC06 field map. More...

#include <MagFieldToolDC06.h>

Inheritance diagram for MagFieldToolDC06:

[legend]
Collaboration diagram for MagFieldToolDC06:
[legend]
List of all members.

Public Types

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

Public Member Functions

 MagFieldToolDC06 (const std::string &type, const std::string &name, const IInterface *parent)
 Standard constructor.
virtual ~MagFieldToolDC06 ()
 Destructor.
virtual void fieldVector (const Gaudi::XYZPoint &xyz, Gaudi::XYZVector &fvec) const
 Return the field vector fvec at the point xyz.
virtual StatusCode updateMap (const std::vector< std::string > &theFiles, const double &scaleFactor)
 Update the cached field from the files theFiles scaled by scaleFactor.
virtual StatusCode initialize ()
virtual StatusCode finalize ()
INTupleSvcntupleSvc () const
INTupleSvcevtColSvc () const
IDataProviderSvcdetSvc () const
IDataProviderSvcevtSvc () const
IIncidentSvcincSvc () const
IChronoStatSvcchronoSvc () const
IHistogramSvchistoSvc () const
IAlgContextSvccontextSvc () const
DataObjectput (IDataProviderSvc *svc, DataObject *object, const std::string &address, const bool useRootInTES=true) const
DataObjectput (DataObject *object, const std::string &address, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
Gaudi::Utils::GetData< TYPE
>::return_type 
get (const std::string &location, const bool useRootInTES=true) const
TYPE * getDet (IDataProviderSvc *svc, const std::string &location) const
TYPE * getDet (const std::string &location) const
bool exist (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
bool exist (const std::string &location, const bool useRootInTES=true) const
bool existDet (IDataProviderSvc *svc, const std::string &location) const
bool existDet (const std::string &location) const
TYPE * getOrCreate (IDataProviderSvc *svc, const std::string &location, const bool useRootInTES=true) const
TYPE * getOrCreate (const std::string &location, const bool useRootInTES=true) const
TOOL * tool (const std::string &type, const std::string &name, const IInterface *parent=0, bool create=true) const
TOOL * tool (const std::string &type, const IInterface *parent=0, bool create=true) const
SERVICE * svc (const std::string &name, const bool create=true) const
IUpdateManagerSvcupdMgrSvc () const
IDataProviderSvcfastContainersSvc () const
StatusCode Error (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Warning (const std::string &msg, const StatusCode st=StatusCode::FAILURE, const size_t mx=10) const
StatusCode Print (const std::string &msg, const StatusCode st=StatusCode::SUCCESS, const MSG::Level lev=MSG::INFO) const
StatusCode Assert (const bool ok, const std::string &message="", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Assert (const bool ok, const char *message, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const GaudiException &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg, const std::exception &exc, const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
StatusCode Exception (const std::string &msg="no message", const StatusCode sc=StatusCode(StatusCode::FAILURE, true)) const
MsgStreammsgStream (const MSG::Level level) const
MsgStreamalways () const
MsgStreamfatal () const
MsgStreamerr () const
MsgStreamerror () const
MsgStreamwarning () const
MsgStreaminfo () const
MsgStreamdebug () const
MsgStreamverbose () const
MsgStreammsg () const
const Statisticscounters () const
StatEntitycounter (const std::string &tag) const
MSG::Level msgLevel () const
bool msgLevel (const MSG::Level level) const
void resetMsgStream () const
bool typePrint () const
bool propsPrint () const
bool statPrint () const
bool errorsPrint () const
long printStat (const MSG::Level level=MSG::ALWAYS) const
long printErrors (const MSG::Level level=MSG::ALWAYS) const
long printProps (const MSG::Level level=MSG::ALWAYS) const
void registerCondition (const std::string &condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (const std::string &condition, CondType *&condPtrDest, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (char *condition, StatusCode(CallerClass::*mf)()=NULL)
void registerCondition (TargetClass *condition, StatusCode(CallerClass::*mf)()=NULL)
StatusCode runUpdate ()
TransientFastContainer< T > * getFastContainer (const std::string &location, typename TransientFastContainer< T >::size_type initial=0)
StatusCode release (const IInterface *interface) const
virtual unsigned long release ()
const std::string & context () const
const std::string & rootInTES () const
double globalTimeOffset () const
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvUnknown)
virtual unsigned long addRef ()
virtual const std::string & name () const
virtual const std::string & type () const
virtual const IInterfaceparent () const
virtual StatusCode configure ()
virtual StatusCode start ()
virtual StatusCode stop ()
virtual StatusCode terminate ()
virtual StatusCode reinitialize ()
virtual StatusCode restart ()
virtual Gaudi::StateMachine::State FSMState () const
virtual Gaudi::StateMachine::State targetFSMState () const
virtual StatusCode sysInitialize ()
virtual StatusCode sysStart ()
virtual StatusCode sysStop ()
virtual StatusCode sysFinalize ()
virtual StatusCode sysReinitialize ()
virtual StatusCode sysRestart ()
virtual StatusCode setProperty (const Property &p)
virtual StatusCode setProperty (const std::string &s)
virtual StatusCode setProperty (const std::string &n, const std::string &v)
StatusCode setProperty (const std::string &name, const TYPE &value)
virtual StatusCode getProperty (Property *p) const
virtual const PropertygetProperty (const std::string &name) const
virtual StatusCode getProperty (const std::string &n, std::string &v) const
virtual const std::vector<
Property * > & 
getProperties () const
PropertyMgrgetPropertyMgr ()
ISvcLocatorserviceLocator () const
ISvcLocatorsvcLoc () const
IMessageSvcmsgSvc () const
IToolSvctoolSvc () const
StatusCode setProperties ()
StatusCode service (const std::string &name, T *&svc, bool createIf=true) const
StatusCode service (const std::string &type, const std::string &name, T *&svc) const
void declInterface (const InterfaceID &, void *)
PropertydeclareProperty (const std::string &name, T &property, const std::string &doc="none") const
PropertydeclareRemoteProperty (const std::string &name, IProperty *rsvc, const std::string &rname="") const
IAuditorSvcauditorSvc () const
IMonitorSvcmonitorSvc () const
void declareInfo (const std::string &name, const T &var, const std::string &desc) const
void declareInfo (const std::string &name, const std::string &format, const void *var, int size, const std::string &desc) const
virtual const std::string & type () const =0
virtual const IInterfaceparent () const =0
virtual StatusCode configure ()=0
virtual StatusCode initialize ()=0
virtual StatusCode start ()=0
virtual StatusCode stop ()=0
virtual StatusCode finalize ()=0
virtual StatusCode terminate ()=0
virtual StatusCode reinitialize ()=0
virtual StatusCode restart ()=0
virtual Gaudi::StateMachine::State FSMState () const =0
virtual StatusCode sysInitialize ()=0
virtual StatusCode sysStart ()=0
virtual StatusCode sysStop ()=0
virtual StatusCode sysFinalize ()=0
virtual StatusCode sysReinitialize ()=0
virtual StatusCode sysRestart ()=0
virtual unsigned long refCount () const =0
virtual const std::string & name () const =0
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)=0
virtual unsigned long addRef ()=0
virtual unsigned long release ()=0

Static Public Member Functions

static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()
 Return the interface ID.

Public Attributes

 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR

Protected Types

typedef std::map< std::string,
StatEntity
Statistics
typedef std::map< std::string,
unsigned int > 
Counter
typedef std::vector< IAlgTool * > AlgTools
typedef std::pair< IInterface *,
std::string > 
ServiceEntry
typedef std::vector< ServiceEntryServices

Protected Member Functions

StatusCode releaseTool (const IAlgTool *tool) const
StatusCode releaseSvc (const IInterface *svc) const
int outputLevel () const
virtual unsigned long refCount () const
IntegerPropertyoutputLevelProperty ()
void initOutputLevel (Property &prop)

Static Protected Attributes

static const bool IgnoreRootInTES
static const bool UseRootInTES

Private Member Functions

StatusCode readFile (const std::string &theFile, const double &scaleFactor)
 Read the field map from theFile and apply the scaleFactor.
void rescale (const double &rescaleFactor)
 Rescale the cached map be rescaleFactor.

Private Attributes

std::string m_mapFileName
 Cached field map file name.
double m_scaleFactor
 Cached field scaling factor.
std::vector< double > m_Q
 Field vector.
double m_Dxyz [3]
 Steps in x, y and z.
int m_Nxyz [3]
 Number of steps in x, y and z.
double m_max_FL [3]
 Maximum limits of the field grid.
double m_min_FL [3]
 Minimum limits of the field grid.
double m_zOffSet
 The z offset.

Detailed Description

Implementation of IMagFieldTool for DC06 field map.

Author:
Marco Cattaneo
Date:
2008-07-26

Definition at line 17 of file MagFieldToolDC06.h.


Constructor & Destructor Documentation

MagFieldToolDC06::MagFieldToolDC06 ( const std::string &  type,
const std::string &  name,
const IInterface parent 
)

Standard constructor.

Definition at line 28 of file MagFieldToolDC06.cpp.

00031   : GaudiTool ( type, name , parent ),
00032     m_mapFileName(""),
00033     m_scaleFactor(0)
00034 {
00035   declareInterface<IMagFieldTool>(this);
00036 }

MagFieldToolDC06::~MagFieldToolDC06 (  )  [virtual]

Destructor.

Definition at line 40 of file MagFieldToolDC06.cpp.

00040 {} 


Member Function Documentation

void MagFieldToolDC06::fieldVector ( const Gaudi::XYZPoint xyz,
Gaudi::XYZVector fvec 
) const [virtual]

Return the field vector fvec at the point xyz.

Linear interpolated field

Implements IMagFieldTool.

Definition at line 205 of file MagFieldToolDC06.cpp.

00207 {
00208   bf.SetXYZ( 0.0, 0.0, 0.0 );
00209 
00211   double z = r.z() - m_zOffSet;
00212   if( !(z >= m_min_FL[2] && z < m_max_FL[2]) )  return;
00213   double x = fabs( r.x() );  
00214   if( !(x >= m_min_FL[0] && x < m_max_FL[0]) )  return;
00215   double y = fabs( r.y() );
00216   if( !(y >= m_min_FL[1] && y < m_max_FL[1]) )  return;
00217   int i = int( x/m_Dxyz[0]);
00218   int j = int( y/m_Dxyz[1] );
00219   int k = int( z/m_Dxyz[2] );
00220   
00221   int ijk000 = 3*( m_Nxyz[0]*( m_Nxyz[1]*k     + j )     + i );
00222   int ijk001 = 3*( m_Nxyz[0]*( m_Nxyz[1]*(k+1) + j )     + i );
00223   int ijk010 = 3*( m_Nxyz[0]*( m_Nxyz[1]*k     + j + 1 ) + i );
00224   int ijk011 = 3*( m_Nxyz[0]*( m_Nxyz[1]*(k+1) + j + 1)  + i );
00225   int ijk100 = 3*( m_Nxyz[0]*( m_Nxyz[1]*k     + j)      + i + 1 );
00226   int ijk101 = 3*( m_Nxyz[0]*( m_Nxyz[1]*(k+1) + j)      + i + 1 );
00227   int ijk110 = 3*( m_Nxyz[0]*( m_Nxyz[1]*k     + j + 1)  + i + 1 );
00228   int ijk111 = 3*( m_Nxyz[0]*( m_Nxyz[1]*(k+1) + j + 1 ) + i + 1 );
00229 
00230   // auxiliary variables defined at the vertices of the cube that
00231   // contains the (x, y, z) point where the field is interpolated
00232 
00233   double cx000,cx001,cx010,cx011,cx100,cx101,cx110,cx111,
00234          cy000,cy001,cy010,cy011,cy100,cy101,cy110,cy111,
00235          cz000,cz001,cz010,cz011,cz100,cz101,cz110,cz111;
00236 
00237   cx000 = m_Q[ ijk000 ];
00238   cx001 = m_Q[ ijk001 ];
00239   cx010 = m_Q[ ijk010 ];
00240   cx011 = m_Q[ ijk011 ];
00241   cx100 = m_Q[ ijk100 ];
00242   cx101 = m_Q[ ijk101 ];
00243   cx110 = m_Q[ ijk110 ];
00244   cx111 = m_Q[ ijk111 ];
00245   cy000 = m_Q[ ijk000+1 ];
00246   cy001 = m_Q[ ijk001+1 ];
00247   cy010 = m_Q[ ijk010+1 ];
00248   cy011 = m_Q[ ijk011+1 ];
00249   cy100 = m_Q[ ijk100+1 ];
00250   cy101 = m_Q[ ijk101+1 ];
00251   cy110 = m_Q[ ijk110+1 ];
00252   cy111 = m_Q[ ijk111+1 ];
00253   cz000 = m_Q[ ijk000+2 ];
00254   cz001 = m_Q[ ijk001+2 ];
00255   cz010 = m_Q[ ijk010+2 ];
00256   cz011 = m_Q[ ijk011+2 ];
00257   cz100 = m_Q[ ijk100+2 ];
00258   cz101 = m_Q[ ijk101+2 ];
00259   cz110 = m_Q[ ijk110+2 ];
00260   cz111 = m_Q[ ijk111+2 ];
00261 
00262   double hx1 = ( x-i*m_Dxyz[0] )/m_Dxyz[0];
00263   double hy1 = ( y-j*m_Dxyz[1] )/m_Dxyz[1];
00264   double hz1 = ( z-k*m_Dxyz[2] )/m_Dxyz[2];
00265   double hx0 = 1.0-hx1;
00266   double hy0 = 1.0-hy1;
00267   double hz0 = 1.0-hz1;
00268 
00269   double h000 = hx0*hy0*hz0;
00270   if( fabs(h000) > 0.0 &&
00271       cx000 > 9.0e5 && cy000 > 9.0e5 && cz000 > 9.0e5) return;
00272  
00273   double h001 = hx0*hy0*hz1;
00274   if( fabs(h001) > 0.0 && 
00275       cx001 > 9.0e5 && cy001 > 9.0e5 && cz001 > 9.0e5) return;
00276 
00277   double h010 = hx0*hy1*hz0;
00278   if( fabs(h010) > 0.0 && 
00279       cx010 > 9.0e5 && cy010 > 9.0e5 && cz010 > 9.0e5) return;
00280 
00281   double h011 = hx0*hy1*hz1;
00282   if( fabs(h011) > 0.0 && 
00283       cx011 > 9.0e5 && cy011 > 9.0e5 && cz011 > 9.0e5) return;
00284 
00285   double h100 = hx1*hy0*hz0;
00286   if( fabs(h100) > 0.0 && 
00287       cx100 > 9.0e5 && cy100 > 9.0e5 && cz100 > 9.0e5) return;
00288  
00289   double h101 = hx1*hy0*hz1;
00290   if( fabs(h101) > 0.0 && 
00291       cx101 > 9.0e5 && cy101 > 9.0e5 && cz101 > 9.0e5) return;
00292  
00293   double h110 = hx1*hy1*hz0;
00294   if( fabs(h110) > 0.0 && 
00295       cx110 > 9.0e5 && cy110 > 9.0e5 && cz110 > 9.0e5) return;
00296 
00297   double h111 = hx1*hy1*hz1;
00298   if( fabs(h111) > 0.0 && 
00299       cx111 > 9.0e5 && cy111 > 9.0e5 && cz111 > 9.0e5) return;
00300 
00301   bf.SetX ( cx000*h000 + cx001*h001 + cx010*h010 + cx011*h011 +
00302             cx100*h100 + cx101*h101 + cx110*h110 + cx111*h111);
00303   bf.SetY ( cy000*h000 + cy001*h001 + cy010*h010 + cy011*h011 +
00304             cy100*h100 + cy101*h101 + cy110*h110 + cy111*h111 );
00305   bf.SetZ ( cz000*h000 + cz001*h001 + cz010*h010 + cz011*h011 +
00306             cz100*h100 + cz101*h101 + cz110*h110 + cz111*h111 );
00307 
00308   if( r.x() < 0. && r.y() >= 0. ){
00309     bf.SetX( -bf.x() );
00310   }
00311   else if(  r.x() < 0. &&  r.y()  < 0. ){
00312     bf.SetZ( -bf.z() );
00313   }
00314   else if( r.x() >= 0. && r.y() < 0. ){    
00315     bf.SetX( -bf.x() );
00316     bf.SetZ( -bf.z() );
00317   } 
00318 
00319   return;
00320 }

StatusCode MagFieldToolDC06::updateMap ( const std::vector< std::string > &  theFiles,
const double &  scaleFactor 
) [virtual]

Update the cached field from the files theFiles scaled by scaleFactor.

Implements IMagFieldTool.

Definition at line 45 of file MagFieldToolDC06.cpp.

00047 {
00048   // Check this is the right tool
00049   if( theFiles.size() != 1 )
00050     return Error( "DC06 field map requires one input file" );
00051     
00052   // If nothing has changed, return
00053   if( scaleFactor == m_scaleFactor &&
00054       theFiles[0] == m_mapFileName ) {
00055     debug() << "Update called but nothing has changed, returning..." << endmsg;
00056     return StatusCode::SUCCESS;
00057   }
00058   
00059   // If the field map file has changed, re-read it and apply the scale factor
00060   // Reread also if previous scale factor was tiny, to avoid precision loss
00061   if( theFiles[0] != m_mapFileName || fabs(m_scaleFactor) < 1.e-6 ) {
00062     StatusCode sc = readFile( theFiles[0], scaleFactor );
00063     if( sc.isFailure() ) return sc;
00064     m_mapFileName = theFiles[0];
00065     m_scaleFactor = scaleFactor;
00066     info() << "Map scaled by factor " << m_scaleFactor << endmsg;
00067   }
00068   else {
00069     // Only the scale factor has changed, rescale
00070     double rescaleFactor = scaleFactor / m_scaleFactor;
00071     rescale( rescaleFactor );
00072     m_scaleFactor = scaleFactor;
00073     info() << "Map scaled by factor " << m_scaleFactor << endmsg;
00074   }
00075   return StatusCode::SUCCESS;
00076 }

StatusCode MagFieldToolDC06::readFile ( const std::string &  theFile,
const double &  scaleFactor 
) [private]

Read the field map from theFile and apply the scaleFactor.

Definition at line 82 of file MagFieldToolDC06.cpp.

00084 {
00085   std::ifstream infile( theFile.c_str() );
00086   if ( infile ) {
00087     info() << "Opened magnetic field file : " << theFile << endmsg;
00088 
00089     // Clear any previous map
00090     m_Q.clear();
00091     
00092     // Skip the header till PARAMETER
00093     char line[ 255 ];
00094     do{
00095             infile.getline( line, 255 );
00096           } while( line[0] != 'P' );
00097     
00098     // Get the PARAMETER
00099     std::string sPar[2];
00100     char* token = strtok( line, " " );
00101     int ip = 0;
00102     do{
00103       if ( token ) { sPar[ip] = token; token = strtok( NULL, " " );} 
00104       else continue;
00105       ip++;
00106     } while ( token != NULL );
00107     long int npar = atoi( sPar[1].c_str() );
00108 
00109     // Skip the header till GEOMETRY
00110     do{
00111             infile.getline( line, 255 );
00112           } while( line[0] != 'G' );
00113     
00114     // Skip any comment before GEOMETRY 
00115     do{
00116             infile.getline( line, 255 );
00117           } while( line[0] != '#' );
00118     
00119     // Get the GEOMETRY
00120     infile.getline( line, 255 );
00121     std::string sGeom[7];
00122     token = strtok( line, " " );
00123     int ig = 0;
00124     do{
00125       if ( token ) { sGeom[ig] = token; token = strtok( NULL, " " );} 
00126       else continue; 
00127       ig++;  
00128     } while (token != NULL);
00129 
00130     // Grid dimensions are given in cm in CDF file. Convert to CLHEP units
00131     m_Dxyz[0] = atof( sGeom[0].c_str() ) * Gaudi::Units::cm;
00132     m_Dxyz[1] = atof( sGeom[1].c_str() ) * Gaudi::Units::cm;
00133     m_Dxyz[2] = atof( sGeom[2].c_str() ) * Gaudi::Units::cm;
00134     m_Nxyz[0] = atoi( sGeom[3].c_str() );
00135     m_Nxyz[1] = atoi( sGeom[4].c_str() );
00136     m_Nxyz[2] = atoi( sGeom[5].c_str() );
00137     m_zOffSet = atof( sGeom[6].c_str() ) * Gaudi::Units::cm;
00138     
00139     m_Q.clear();
00140     m_Q.reserve(npar - 7);
00141     // Number of lines with data to be read
00142     long int nlines = ( npar - 7 ) / 3;
00143     
00144     // Check number of lines with data read in the loop
00145     long int ncheck = 0;
00146     
00147     // Skip comments and fill a vector of magnetic components for the
00148     // x, y and z positions given in GEOMETRY
00149     
00150         while( infile ) {
00151       // parse each line of the file, 
00152       // comment lines begin with '#' in the cdf file
00153             infile.getline( line, 255 );
00154             if ( line[0] == '#' ) continue;
00155             std::string sFx, sFy, sFz; 
00156             char* token = strtok( line, " " );
00157             if ( token ) { sFx = token; token = strtok( NULL, " " );} else continue;
00158           if ( token ) { sFy = token; token = strtok( NULL, " " );} else continue;
00159           if ( token ) { sFz = token; token = strtok( NULL, " " );} else continue;
00160             if ( token != NULL ) continue;
00161       
00162       // Field values are given in gauss in CDF file. Convert to CLHEP units
00163       double fx = atof( sFx.c_str() ) * Gaudi::Units::gauss * scaleFactor;
00164       double fy = atof( sFy.c_str() ) * Gaudi::Units::gauss * scaleFactor;
00165       double fz = atof( sFz.c_str() ) * Gaudi::Units::gauss * scaleFactor;
00166       
00167       // Add the magnetic field components of each point to 
00168       // sequentialy in a vector 
00169       m_Q.push_back( fx );
00170       m_Q.push_back( fy );
00171       m_Q.push_back( fz );
00172       // counts after reading and filling to match the number of lines
00173       ncheck++; 
00174           }
00175     infile.close();
00176     if ( nlines != ncheck ) {
00177       return Error( " Number of points in field map does not match" );
00178     }
00179   }
00180   else {
00181         return Error( "Unable to open magnetic field file : " + theFile );
00182   }
00183 
00184   // Update the map limits
00185   for (int iC = 0; iC< 3; ++iC ){
00186     m_min_FL[iC] = 0.0;
00187     m_max_FL[iC] = m_min_FL[iC]+( m_Nxyz[iC]-1 )* m_Dxyz[iC];
00188   } // iC
00189   
00190   return StatusCode::SUCCESS;
00191 }

void MagFieldToolDC06::rescale ( const double &  rescaleFactor  )  [private]

Rescale the cached map be rescaleFactor.

Definition at line 196 of file MagFieldToolDC06.cpp.

00197 {
00198   for ( std::vector<double>::iterator Q = m_Q.begin(); Q != m_Q.end(); ++Q ) {
00199     *Q = (*Q) * rescaleFactor;
00200   }
00201 }

static const InterfaceID& IMagFieldTool::interfaceID (  )  [inline, static, inherited]

Return the interface ID.

Reimplemented from IAlgTool.

Definition at line 27 of file IMagFieldTool.h.

00027 { return IID_IMagFieldTool; }


Member Data Documentation

std::string MagFieldToolDC06::m_mapFileName [private]

Cached field map file name.

Definition at line 44 of file MagFieldToolDC06.h.

double MagFieldToolDC06::m_scaleFactor [private]

Cached field scaling factor.

Definition at line 45 of file MagFieldToolDC06.h.

std::vector<double> MagFieldToolDC06::m_Q [private]

Field vector.

Definition at line 47 of file MagFieldToolDC06.h.

double MagFieldToolDC06::m_Dxyz[3] [private]

Steps in x, y and z.

Definition at line 48 of file MagFieldToolDC06.h.

int MagFieldToolDC06::m_Nxyz[3] [private]

Number of steps in x, y and z.

Definition at line 49 of file MagFieldToolDC06.h.

double MagFieldToolDC06::m_max_FL[3] [private]

Maximum limits of the field grid.

Definition at line 50 of file MagFieldToolDC06.h.

double MagFieldToolDC06::m_min_FL[3] [private]

Minimum limits of the field grid.

Definition at line 51 of file MagFieldToolDC06.h.

double MagFieldToolDC06::m_zOffSet [private]

The z offset.

Definition at line 52 of file MagFieldToolDC06.h.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:04:55 2011 for Magnet by doxygen 1.4.7