musrsim/geant4/LEMuSR/include/LEMuSRCryoField.hh
2006-03-16 13:49:31 +00:00

64 lines
2.1 KiB
C++

//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//*
// LOW ENERGY MUON SPIN RELAXATION, ROTATION, RADIATION
//
// ID :LEMuSRCryoField.hh , v 1.2
// AUTHOR: Taofiq PARAISO
// DATE : 2006-01-19 15:17
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
//
// & &&&&&&&&&& &&&&&&& &&&&&&&&
// & & && && & &&
// & & & & & & &&
// & &&&&&&& & & &&&&&& &&&&&&&&
// & & & && & & &&
// & & && & & && && & &
// &&&&&&&&&& &&&&&&&&&& & &&&&& && &&&&&&& & &&
// &
// &
// &
// &
// CRYOFIELD
//$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$//
#include "G4ElectricField.hh"
#include "G4ThreeVector.hh"
#include "G4ios.hh"
/*!
* This class is defines homogenous electric field in the cryostat region.
* It is obsolete since a field map has been introduces for this region.
* Should be removed in the future.
*/
class LEMuSRCryoField : public G4ElectricField
{
public:
/*! This constructor initializes the field for all the sample chamber
*/
LEMuSRCryoField(G4ThreeVector FieldVector);
/*! The constructor initializes the field within the boundary cylinder centered in mcpv_z, radius and length= zmax-zmin
*/
LEMuSRCryoField(G4ThreeVector FieldVector,G4double radius,G4double zmin, G4double zmax);
~LEMuSRCryoField();
G4bool DoesFieldChangeEnergy() const { return true; }
// Since an electric field can change track energy
void GetFieldValue(const G4double pos[4], G4double *field) const;
G4bool uniform;
G4double R;
private:
G4double flength, fpotential, fradius, fzmin, fzmax;
G4ThreeVector position;
G4ThreeVector EField;
};