source: trunk/source/geometry/magneticfield/src/G4Mag_UsualEqRhs.cc @ 1202

Last change on this file since 1202 was 921, checked in by garnier, 15 years ago

en test de gl2ps. Problemes de libraries

File size: 3.2 KB
Line 
1//
2// ********************************************************************
3// * License and Disclaimer                                           *
4// *                                                                  *
5// * The  Geant4 software  is  copyright of the Copyright Holders  of *
6// * the Geant4 Collaboration.  It is provided  under  the terms  and *
7// * conditions of the Geant4 Software License,  included in the file *
8// * LICENSE and available at  http://cern.ch/geant4/license .  These *
9// * include a list of copyright holders.                             *
10// *                                                                  *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work  make  any representation or  warranty, express or implied, *
14// * regarding  this  software system or assume any liability for its *
15// * use.  Please see the license in the file  LICENSE  and URL above *
16// * for the full disclaimer and the limitation of liability.         *
17// *                                                                  *
18// * This  code  implementation is the result of  the  scientific and *
19// * technical work of the GEANT4 collaboration.                      *
20// * By using,  copying,  modifying or  distributing the software (or *
21// * any work based  on the software)  you  agree  to acknowledge its *
22// * use  in  resulting  scientific  publications,  and indicate your *
23// * acceptance of all terms of the Geant4 Software license.          *
24// ********************************************************************
25//
26//
27// $Id: G4Mag_UsualEqRhs.cc,v 1.12 2006/06/29 18:24:42 gunter Exp $
28// GEANT4 tag $Name: geant4-09-02-cand-01 $
29//
30//
31//  This is the 'standard' right-hand side for the equation of motion
32//  of a charged particle in a magnetic field.
33//
34//  Initial version: J. Apostolakis, January 13th, 1997
35//
36// --------------------------------------------------------------------
37
38#include "G4Mag_UsualEqRhs.hh"
39#include "G4MagneticField.hh"
40
41G4Mag_UsualEqRhs::G4Mag_UsualEqRhs( G4MagneticField* MagField )
42  : G4Mag_EqRhs( MagField ) {}
43
44G4Mag_UsualEqRhs::~G4Mag_UsualEqRhs() {}
45
46void
47G4Mag_UsualEqRhs::EvaluateRhsGivenB( const G4double y[],
48                                     const G4double B[3],
49                                           G4double dydx[] ) const
50{
51   G4double momentum_mag_square = y[3]*y[3] + y[4]*y[4] + y[5]*y[5];
52   G4double inv_momentum_magnitude = 1.0 / std::sqrt( momentum_mag_square );
53
54   G4double cof = FCof()*inv_momentum_magnitude;
55
56   dydx[0] = y[3]*inv_momentum_magnitude;       //  (d/ds)x = Vx/V
57   dydx[1] = y[4]*inv_momentum_magnitude;       //  (d/ds)y = Vy/V
58   dydx[2] = y[5]*inv_momentum_magnitude;       //  (d/ds)z = Vz/V
59
60   dydx[3] = cof*(y[4]*B[2] - y[5]*B[1]) ;   // Ax = a*(Vy*Bz - Vz*By)
61   dydx[4] = cof*(y[5]*B[0] - y[3]*B[2]) ;   // Ay = a*(Vz*Bx - Vx*Bz)
62   dydx[5] = cof*(y[3]*B[1] - y[4]*B[0]) ;   // Az = a*(Vx*By - Vy*Bx)
63
64   return ;
65}
66
67void
68G4Mag_UsualEqRhs::
69 SetChargeMomentumMass( G4double particleCharge, // in e+ units
70                                         G4double MomentumXc,
71                                         G4double mass)
72
73{
74   fInvCurrentMomentumXc= 1.0 / MomentumXc;
75   G4Mag_EqRhs::SetChargeMomentumMass( particleCharge, MomentumXc, mass);
76}
Note: See TracBrowser for help on using the repository browser.