musrAtRestSpinRotation.hh

Go to the documentation of this file.
00001 #ifndef MUSRATRESTSPINROTATION_H
00002 #define MUSRATRESTSPINROTATION_H 1
00003 
00004 #include "G4VRestProcess.hh"
00005 #include "G4DynamicParticle.hh"
00006 #include "G4MagneticField.hh"
00007 #include "G4ParticleTypes.hh"
00008 #include "globals.hh"
00009 #include "G4VParticleChange.hh"
00010 #include "G4ios.hh"
00011 #include "G4ForceCondition.hh"
00012 #include "G4ParticleChangeForTransport.hh"
00013 #include "musrParticleChangeForSR.hh"
00014 class musrAtRestSpinRotation : public G4VRestProcess
00015 {
00016 public:
00017       musrAtRestSpinRotation(const G4String& processName =  "SpinRotationAtRest" );
00018       musrAtRestSpinRotation(G4VRestProcess& );
00019 
00020       virtual ~musrAtRestSpinRotation();
00021 
00022   static musrAtRestSpinRotation* GetInstance();
00023 private: 
00024  static musrAtRestSpinRotation* pointer;
00025  
00026 public:
00027   G4VParticleChange* AtRestDoIt(const G4Track& theTrack, const G4Step& theStep);
00028 
00029   //  G4Track
00030   void  RotateSpin(const G4Step&, G4ThreeVector, G4double);
00031 
00032   G4double point[4];
00033   G4double B[3], rotation_angle;
00034 
00035   G4double itime, ftime, deltatime;
00036   G4ThreeVector SpinDirection;
00037 
00038 
00039   G4ParticleChange thePParticleChange;
00040   G4VParticleChange theVParticleChange;
00041   G4ParticleChangeForTransport theTParticleChange;
00042   musrParticleChangeForSR theParticleChange;
00043   const G4Field *mfield;
00044 
00045   inline G4double GetMeanLifeTime(const G4Track&, G4ForceCondition* condition)
00046      {
00047        *condition = Forced;
00048        return DBL_MAX;
00049      }
00050    G4ThreeVector polar;  
00051 
00052  
00053 
00054 };
00055 #endif

Generated on Mon Mar 27 12:19:54 2006 for MUSR by  doxygen 1.4.6