The present commit corresponds to an important change in the way the
[u/mrichter/AliRoot.git] / STEER / AliVTrack.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-2008, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16
17 //-------------------------------------------------------------------------
18 //     base class for ESD and AOD tracks
19 //     Author: A. Dainese
20 //-------------------------------------------------------------------------
21
22 #include <TGeoGlobalMagField.h>
23
24 #include "AliMagF.h"
25 #include "AliVTrack.h"
26
27 ClassImp(AliVTrack)
28
29 AliVTrack::AliVTrack(const AliVTrack& vTrack) :
30   AliVParticle(vTrack) { } // Copy constructor
31
32 AliVTrack& AliVTrack::operator=(const AliVTrack& vTrack)
33 { if (this!=&vTrack) { 
34     AliVParticle::operator=(vTrack); 
35   }
36   
37   return *this; 
38 }
39
40 Double_t AliVTrack::GetBz() const 
41 {
42   // returns Bz component of the magnetic field (kG)
43   AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
44   if (!fld) return kAlmost0Field;
45   double bz;
46   if (fld->IsUniform()) bz = -fld->SolenoidField();
47   else {
48     Double_t r[3]; 
49     GetXYZ(r); 
50     bz = -fld->GetBz(r);
51   }
52   return TMath::Sign(kAlmost0Field,bz) + bz;
53 }