musrsim/geant4/LEMuSR/src/lem4GaussianField.cc
shiroka 00953dad14
2009-01-23 13:21:59 +00:00

34 lines
1.1 KiB
C++

// Geant4 simulation for MuSR
// AUTHOR: Toni SHIROKA, Paul Scherrer Institut, PSI
// DATE : 2008-05
//
#include "lem4GaussianField.hh"
lem4GaussianField::lem4GaussianField(double fieldValue, double sigma):ffieldValue(fieldValue) {
fieldMagnitude=fieldValue;
RMS=sigma;
G4cout << "\n-----------------------------------------------------------"
<< "\n Magnetic field ON"
<< "\n-----------------------------------------------------------"
<< G4endl;
// G4cout << " Gaussian magnetic field set to "<< fieldValue*1000 << " T, with sigma in R="<< sigma<<" mm"<< G4endl;
G4cout << "Gaussian magnetic field set to "<< fieldValue/tesla << " Tesla, with a radial sigma "<< sigma/mm<<" mm.\n"<< G4endl;
}
void lem4GaussianField::GetFieldValue(const double point[4], double *Bfield ) const {
double x = point[0];
double y = point[1];
// double z = point[2];
double r = sqrt(x*x+y*y);
Bfield[0] = 0;
Bfield[1] = 0;
Bfield[2] = fieldMagnitude*exp(-r*r/(2*RMS*RMS));
// G4cout<<"z="<<z<<" r="<<r<<" B[2]="<<Bfield[2]<<G4endl;
}
G4double lem4GaussianField::GetFieldSetValue() {
return ffieldValue;
}