//____________________________________________________________________
//
// Small helper class describing magnetic fields used for track
// parametrisations
// 
// The field can either be solenoidal or toroidal.
//
// (1) Solenoid field:
//
// The direction of the solenoid field lines is defined by the vector
// (Bx,By,Bz). Its length gives the strengts of the magnetic field (in
// Tesla).
//
// (2) Toroidal field:
//
// The symmetry axis of the toroid is given by the (Bx,By,Bz)
// vector. Its length defines the strength of the toroidal field (in
// Tesla).
//

//  
// Author: Oliver Maria Kind <mailto: kind@mail.desy.de>
// Update: $Id: HepMagneticField.cxx,v 1.2 2010/12/23 15:14:32 herrberg Exp $
// Copyright: 2008 (C) Oliver Maria Kind
//
#ifndef HEP_HepMagneticField
#include <HepMagneticField.h>
#endif
#include <iostream>

using namespace std;

#ifndef __CINT__
ClassImp(HepMagneticField);
#endif

//____________________________________________________________________

HepMagneticField::HepMagneticField(Float_t Bx, Float_t By, Float_t Bz,
				   Int_t Type) : fType(Type) {
    //
    // Default constructor
    //
    fBField.SetXYZ(Bx, By, Bz);
}

//____________________________________________________________________

HepMagneticField::~HepMagneticField() {
    //
    // Default destructor
    //
}

//____________________________________________________________________

void HepMagneticField::Print(Option_t *option) const {
    //
    // Print object information
    //
    switch ( fType ) {
      case kSolenoid:
	cout << "Solenoidal magnetic field";
	break;
      case kToroid:
	cout << "Toroidal magnetic field";
	break;
    }
    cout << " :   strength = " << fBField.Mag() << " T   ";
    TVector3 u = fBField.Unit();
    cout << "direction = (" << u.X() << ", " << u.Y()
	 << ", " << u.Z() << ")" << endl;
}

	

 HepMagneticField.cxx:1
 HepMagneticField.cxx:2
 HepMagneticField.cxx:3
 HepMagneticField.cxx:4
 HepMagneticField.cxx:5
 HepMagneticField.cxx:6
 HepMagneticField.cxx:7
 HepMagneticField.cxx:8
 HepMagneticField.cxx:9
 HepMagneticField.cxx:10
 HepMagneticField.cxx:11
 HepMagneticField.cxx:12
 HepMagneticField.cxx:13
 HepMagneticField.cxx:14
 HepMagneticField.cxx:15
 HepMagneticField.cxx:16
 HepMagneticField.cxx:17
 HepMagneticField.cxx:18
 HepMagneticField.cxx:19
 HepMagneticField.cxx:20
 HepMagneticField.cxx:21
 HepMagneticField.cxx:22
 HepMagneticField.cxx:23
 HepMagneticField.cxx:24
 HepMagneticField.cxx:25
 HepMagneticField.cxx:26
 HepMagneticField.cxx:27
 HepMagneticField.cxx:28
 HepMagneticField.cxx:29
 HepMagneticField.cxx:30
 HepMagneticField.cxx:31
 HepMagneticField.cxx:32
 HepMagneticField.cxx:33
 HepMagneticField.cxx:34
 HepMagneticField.cxx:35
 HepMagneticField.cxx:36
 HepMagneticField.cxx:37
 HepMagneticField.cxx:38
 HepMagneticField.cxx:39
 HepMagneticField.cxx:40
 HepMagneticField.cxx:41
 HepMagneticField.cxx:42
 HepMagneticField.cxx:43
 HepMagneticField.cxx:44
 HepMagneticField.cxx:45
 HepMagneticField.cxx:46
 HepMagneticField.cxx:47
 HepMagneticField.cxx:48
 HepMagneticField.cxx:49
 HepMagneticField.cxx:50
 HepMagneticField.cxx:51
 HepMagneticField.cxx:52
 HepMagneticField.cxx:53
 HepMagneticField.cxx:54
 HepMagneticField.cxx:55
 HepMagneticField.cxx:56
 HepMagneticField.cxx:57
 HepMagneticField.cxx:58
 HepMagneticField.cxx:59
 HepMagneticField.cxx:60
 HepMagneticField.cxx:61
 HepMagneticField.cxx:62
 HepMagneticField.cxx:63
 HepMagneticField.cxx:64
 HepMagneticField.cxx:65
 HepMagneticField.cxx:66
 HepMagneticField.cxx:67
 HepMagneticField.cxx:68
 HepMagneticField.cxx:69
 HepMagneticField.cxx:70
 HepMagneticField.cxx:71
 HepMagneticField.cxx:72
 HepMagneticField.cxx:73
 HepMagneticField.cxx:74
 HepMagneticField.cxx:75
 HepMagneticField.cxx:76