X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliTracker.cxx;h=e0262c5125fa01f54e600624bc7c7b7ee81cc40d;hb=620008aa63de283ad7b71327c5e00df808fe78b3;hp=690c62deda54b887e7ee6ead93b018a3e5580182;hpb=c84a5e9ecfc66e0f4160f70af30c503c47cebf12;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliTracker.cxx b/STEER/AliTracker.cxx index 690c62deda5..e0262c5125f 100644 --- a/STEER/AliTracker.cxx +++ b/STEER/AliTracker.cxx @@ -20,21 +20,22 @@ // that is the base for AliTPCtracker, AliITStrackerV2 and AliTRDtracker // Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch //------------------------------------------------------------------------- - +#include #include +#include "AliMagF.h" #include "AliTracker.h" -#include "AliKalmanTrack.h" #include "AliCluster.h" -#include "AliLog.h" -#include "AliRun.h" -#include "AliMagF.h" +#include "AliKalmanTrack.h" +Bool_t AliTracker::fgUniformField=kTRUE; +Double_t AliTracker::fgBz=kAlmost0Field; const AliMagF *AliTracker::fgkFieldMap=0; ClassImp(AliTracker) AliTracker::AliTracker(): + TObject(), fX(0), fY(0), fZ(0), @@ -48,14 +49,43 @@ AliTracker::AliTracker(): if (!fgkFieldMap) AliWarning("Field map is not set. Call AliTracker::SetFieldMap before creating a tracker!"); } +//__________________________________________________________________________ +AliTracker::AliTracker(const AliTracker &atr): + TObject(atr), + fX(atr.fX), + fY(atr.fY), + fZ(atr.fZ), + fSigmaX(atr.fSigmaX), + fSigmaY(atr.fSigmaY), + fSigmaZ(atr.fSigmaZ) +{ + //-------------------------------------------------------------------- + // The default constructor. + //-------------------------------------------------------------------- + if (!fgkFieldMap) AliWarning("Field map is not set. Call AliTracker::SetFieldMap before creating a tracker!"); +} + +//__________________________________________________________________________ void AliTracker::SetFieldMap(const AliMagF* map, Bool_t uni) { //-------------------------------------------------------------------- //This passes the field map to the reconstruction. //-------------------------------------------------------------------- if (map==0) AliFatalClass("Can't access the field map !"); - AliKalmanTrack::SetFieldMap(map); - if (uni) AliKalmanTrack::SetUniformFieldTracking(); + + if (fgkFieldMap) { + AliWarningClass("The magnetic field map has been already set !"); + return; + } + + fgUniformField=uni; fgkFieldMap=map; + + //Float_t r[3]={0.,0.,0.},b[3]; map->Field(r,b); + //Double_t bz=-b[2]; + + Double_t bz=-map->SolenoidField(); + fgBz=TMath::Sign(kAlmost0Field,bz) + bz; + } //__________________________________________________________________________ @@ -118,3 +148,12 @@ void AliTracker::UseClusters(const AliKalmanTrack *t, Int_t from) const { c->Use(); } } + +Double_t AliTracker::GetBz(Float_t *r) { + //------------------------------------------------------------------ + // Returns Bz (kG) at the point "r" . + //------------------------------------------------------------------ + Float_t b[3]; fgkFieldMap->Field(r,b); + Double_t bz=-Double_t(b[2]); + return (TMath::Sign(kAlmost0Field,bz) + bz); +}