Added V0A23 (V0 rings 2-3), V0C01 (V0 rings 0-1) and V0S = V0A23+V0C01
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliVTrack.cxx
CommitLineData
4f6e22bd 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
f7a1cc68 22#include <TGeoGlobalMagField.h>
23
24#include "AliMagF.h"
4f6e22bd 25#include "AliVTrack.h"
26
27ClassImp(AliVTrack)
28
29AliVTrack::AliVTrack(const AliVTrack& vTrack) :
30 AliVParticle(vTrack) { } // Copy constructor
31
32AliVTrack& AliVTrack::operator=(const AliVTrack& vTrack)
33{ if (this!=&vTrack) {
34 AliVParticle::operator=(vTrack);
35 }
36
37 return *this;
38}
39
f7a1cc68 40Double_t AliVTrack::GetBz() const
41{
42 // returns Bz component of the magnetic field (kG)
43 AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
663c89cf 44 if (!fld) return 0.5*kAlmost0Field;
ee5b41f1 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 }
663c89cf 52 return TMath::Sign(0.5*kAlmost0Field,bz) + bz;
f7a1cc68 53}
8b6e3369 54
55void AliVTrack::GetBxByBz(Double_t b[3]) const
56{
7d2fb6f7 57 // returns the Bx, By and Bz components of the magnetic field (kG)
8b6e3369 58 AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
59 if (!fld) {
60 b[0] = b[1] = 0.;
663c89cf 61 b[2] = 0.5*kAlmost0Field;
8b6e3369 62 return;
63 }
64
65 if (fld->IsUniform()) {
66 b[0] = b[1] = 0.;
02d77919 67 b[2] = fld->SolenoidField();
8b6e3369 68 } else {
69 Double_t r[3]; GetXYZ(r);
02d77919 70 fld->Field(r,b);
8b6e3369 71 }
663c89cf 72 b[2] = (TMath::Sign(0.5*kAlmost0Field,b[2]) + b[2]);
8b6e3369 73 return;
74}
02d77919 75
fc9b31a7 76//________________________________________________________
77void AliVTrack::GetIntegratedTimes(Double_t */*times*/, Int_t /*nspec*/) const { return; }