82 lines
2.8 KiB
C++
82 lines
2.8 KiB
C++
///§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§//*
|
|
// LOW ENERGY MUON SPIN RELAXATION, ROTATION, RADIATION
|
|
//
|
|
// ID :LEMuSRElectricField.hh , v 1.3
|
|
// AUTHOR: Taofiq PARAISO
|
|
// DATE : 2004-09-17 10:20
|
|
//§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§//
|
|
//
|
|
// & &&&&&&&&&& &&&&&&& &&&&&&&&
|
|
// & & && && & &&
|
|
// & & & & & & &&
|
|
// & &&&&&&& & & &&&&&& &&&&&&&&
|
|
// & & & && & & &&
|
|
// & & && & & && && & &
|
|
// &&&&&&&&&& &&&&&&&&&& & &&&&& && &&&&&&& & &&
|
|
// &
|
|
// &
|
|
// &
|
|
// &
|
|
// Electric Field
|
|
//§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§//
|
|
|
|
#ifndef LEMUSRELECTRICFIELD_H
|
|
#define LEMUSRELECTRICFIELD_H 1
|
|
|
|
#include"G4ElectricField.hh"
|
|
#include"G4ElectroMagneticField.hh"
|
|
#include "globals.hh"
|
|
#include "G4ios.hh"
|
|
|
|
#include <iomanip.h>
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include <vector>
|
|
#include <cmath>
|
|
#include "CLHEP/Matrix/Vector.h"
|
|
#include "CLHEP/Matrix/Matrix.h"
|
|
|
|
|
|
|
|
class LEMuSRElectricField : public G4ElectricField
|
|
{
|
|
public:
|
|
|
|
|
|
LEMuSRElectricField(G4double fieldval,const char* Xfile,
|
|
const char* Yfile,
|
|
const char* Zfile,G4String map_length_unit,
|
|
G4double Offset, G4double nx, G4double ny, G4double nz);//offset must be entered in millimeter
|
|
|
|
LEMuSRElectricField(G4double fieldval,const char* file,G4String map_length_unit,
|
|
G4double Offset, G4double nx, G4double ny, G4double nz);
|
|
|
|
|
|
~LEMuSRElectricField();
|
|
|
|
void GetFieldValue(const G4double Point[4], G4double *Bfield) const;
|
|
|
|
void Test();
|
|
|
|
public:
|
|
// std::vector< std::vector< std::vector< G4double > > > xField; // vector of
|
|
// vector of
|
|
// vector of G4doubles [[[a]i]j]k
|
|
|
|
// std::vector< std::vector< std::vector< G4double > > > yField;
|
|
// std::vector< std::vector< std::vector< G4double > > > zField;
|
|
|
|
G4double xField[90][90][201];
|
|
G4double yField[90][90][201];
|
|
G4double zField[90][90][201];
|
|
// The physical limits of the defined region
|
|
G4double minx, maxx, miny, maxy, minz, maxz;
|
|
|
|
G4double dx, dy, dz, zOffset, nx,ny,nz, FieldVal;
|
|
G4String map_unit;
|
|
};
|
|
|
|
#endif
|
|
|
|
|