64 lines
2.1 KiB
C++
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;
|
|
|
|
};
|