Class Reference for E1039 Core & Analysis Software
TabulatedField3D.hh
Go to the documentation of this file.
1 // ********************************************************************
2 // * License and Disclaimer *
3 // * *
4 // * The Geant4 software is copyright of the Copyright Holders of *
5 // * the Geant4 Collaboration. It is provided under the terms and *
6 // * conditions of the Geant4 Software License, included in the file *
7 // * LICENSE and available at http://cern.ch/geant4/license . These *
8 // * include a list of copyright holders. *
9 // * *
10 // * Neither the authors of this software system, nor their employing *
11 // * institutes,nor the agencies providing financial support for this *
12 // * work make any representation or warranty, express or implied, *
13 // * regarding this software system or assume any liability for its *
14 // * use. Please see the license in the file LICENSE and URL above *
15 // * for the full disclaimer and the limitation of liability. *
16 // * *
17 // * This code implementation is the result of the scientific and *
18 // * technical work of the GEANT4 collaboration. *
19 // * By using, copying, modifying or distributing the software (or *
20 // * any work based on the software) you agree to acknowledge its *
21 // * use in resulting scientific publications, and indicate your *
22 // * acceptance of all terms of the Geant4 Software license. *
23 // ********************************************************************
24 //
25 // Code developed by:
26 // S.Larsson and J. Generowicz.
27 //
28 // *************************************
29 // * *
30 // * PurgMagTabulatedField3D.hh *
31 // * *
32 // *************************************
33 //
34 // $Id: PurgMagTabulatedField3D.hh,v 1.3 2006/06/29 16:06:05 gunter Exp $
35 // GEANT4 tag $Name: geant4-09-01-patch-02 $
36 
37 
38 #include "Settings.hh"
39 
40 #include <G4MagneticField.hh>
41 #include <G4ios.hh>
42 #include <globals.hh>
43 #include <G4SystemOfUnits.hh>
44 
45 #include <fstream>
46 #include <vector>
47 #include <cmath>
48 
49 #include <mysql.h>
50 
51 using namespace std;
52 
53 class TabulatedField3D: public G4MagneticField
54 
55 {
56  // Storage space for the table
57  vector< vector< vector< double > > > xField;
58  vector< vector< vector< double > > > yField;
59  vector< vector< vector< double > > > zField;
60 
61  // The dimensions of the table
62  int nx,ny,nz;
63 
64  // The physical limits of the defined region
65  float minx, maxx, miny, maxy, minz, maxz;
66 
67  // The physical extent of the defined region
68  double dx, dy, dz;
69  double fZoffset;
70  bool fmag;
71 
72  MYSQL* con;
73 
74 public:
75  TabulatedField3D(double, int, int, int, bool, Settings*);
76  void GetFieldValue(const double Point[3], double *Bfield) const;
78 };