81 G4double sint = std::sqrt((1.-cost)*(1.+cost));
91 parent_polarization.setX(px);
92 parent_polarization.setY(py);
93 parent_polarization.setZ(pz);
114 return pParticleChangeForDecay;
132 G4double sint = std::sqrt((1.-cost)*(1.+cost));
142 parent_polarization.setX(px);
143 parent_polarization.setY(py);
144 parent_polarization.setZ(pz);
149 GetLogicalVolume()->GetFieldManager();
156 if (fFieldPropagator) fieldMgr =
172 field -> GetFieldValue(point,fieldValue);
177 if (B.mag2() > 0.) parent_polarization =
196 return pParticleChangeForDecay;
209 G4double omega = -(q*s_omega)*(1.+a) * Bnorm;
211 G4double rotationangle = deltatime * omega;
221 G4double normspin = std::sqrt(Spin*Spin);
222 G4double normnewspin = std::sqrt(newSpin*newSpin);
231 G4cout <<
"Checked norms : " << normspin <<
" " << normnewspin <<
G4endl;
G4ParticleDefinition * GetDefinition() const
virtual G4VParticleChange * AtRestDoIt(const G4Track &aTrack, const G4Step &aStep)
CLHEP::Hep3Vector G4ThreeVector
const G4DynamicParticle * GetDynamicParticle() const
G4TrackStatus GetTrackStatus() const
G4VDecayChannel * GetDecayChannel(G4int index) const
HepGeom::Vector3D< G4double > G4Vector3D
G4ParticleDefinition * GetDefinition() const
double B(double temperature)
virtual G4VParticleChange * DecayIt(const G4Track &aTrack, const G4Step &aStep)
G4double fRemainderLifeTime
G4DecayTable * GetDecayTable() const
virtual void Initialize(const G4Track &)
G4GLOB_DLL std::ostream G4cout
G4ThreeVector Spin_Precession(const G4Step &aStep, G4ThreeVector B, G4double deltatime)
const G4ThreeVector & GetPosition() const
static const double twopi
void SetProcessSubType(G4int)
virtual G4VParticleChange * PostStepDoIt(const G4Track &aTrack, const G4Step &aStep)
G4double GetGlobalTime() const
static G4TransportationManager * GetTransportationManager()
virtual ~G4DecayWithSpin()
G4FieldManager * GetCurrentFieldManager()
G4StepPoint * GetPostStepPoint() const
const G4ThreeVector & GetPolarization() const
G4VPhysicalVolume * GetVolume() const
const G4Field * GetDetectorField() const
G4Track * GetTrack() const
G4double GetPDGCharge() const
G4PropagatorInField * GetPropagatorInField() const
static const double kilogauss
G4DecayWithSpin(const G4String &processName="DecayWithSpin")
void SetPolarization(const G4ThreeVector &)
G4ParticleChangeForDecay fParticleChangeForDecay
G4int GetVerboseLevel() const
void ProposePolarization(G4double Px, G4double Py, G4double Pz)