]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/STEERBase/AliVTrack.cxx
Reading friends in analysis framework inside HLT
[u/mrichter/AliRoot.git] / STEER / STEERBase / 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 Bool_t AliVTrack::GetXYZ(Double_t* /*p*/) const {return kFALSE;};
41 Bool_t AliVTrack::GetXYZAt(Double_t /*x*/, Double_t /*b*/, Double_t* /*r*/ ) const {return kFALSE;}
42
43 Double_t AliVTrack::GetBz() const 
44 {
45   // returns Bz component of the magnetic field (kG)
46   AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
47   if (!fld) return 0.5*kAlmost0Field;
48   double bz;
49   if (fld->IsUniform()) bz = fld->SolenoidField();
50   else {
51     Double_t r[3]; 
52     GetXYZ(r); 
53     bz = fld->GetBz(r);
54   }
55   return TMath::Sign(0.5*kAlmost0Field,bz) + bz;
56 }
57
58 void AliVTrack::GetBxByBz(Double_t b[3]) const 
59 {
60   // returns the Bx, By and Bz components of the magnetic field (kG)
61   AliMagF* fld = (AliMagF*)TGeoGlobalMagField::Instance()->GetField();
62   if (!fld) {
63      b[0] = b[1] = 0.;
64      b[2] = 0.5*kAlmost0Field;
65      return;
66   }
67
68   if (fld->IsUniform()) {
69      b[0] = b[1] = 0.;
70      b[2] = fld->SolenoidField();
71   }  else {
72      Double_t r[3]; GetXYZ(r);
73      fld->Field(r,b);
74   }
75   b[2] = (TMath::Sign(0.5*kAlmost0Field,b[2]) + b[2]);
76   return;
77 }
78
79 //________________________________________________________
80 void AliVTrack::GetIntegratedTimes(Double_t */*times*/, Int_t /*nspec*/) const { return; }