X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliTracker.cxx;h=690c62deda54b887e7ee6ead93b018a3e5580182;hb=e1d9a0df6fc2ff562c4be7bccb4d2ea0b08cce06;hp=6796b22445efc924b54d2270078cdb5c20ef1380;hpb=1d5fc4eacd5c0bacfc0906914b620d551bd837f8;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliTracker.cxx b/STEER/AliTracker.cxx index 6796b22445e..690c62deda5 100644 --- a/STEER/AliTracker.cxx +++ b/STEER/AliTracker.cxx @@ -24,18 +24,39 @@ #include #include "AliTracker.h" -#include "AliCluster.h" #include "AliKalmanTrack.h" +#include "AliCluster.h" +#include "AliLog.h" #include "AliRun.h" #include "AliMagF.h" -#include "TFile.h" -#include "TError.h" +const AliMagF *AliTracker::fgkFieldMap=0; +ClassImp(AliTracker) -extern AliRun* gAlice; +AliTracker::AliTracker(): + fX(0), + fY(0), + fZ(0), + fSigmaX(0.005), + fSigmaY(0.005), + fSigmaZ(0.010) +{ + //-------------------------------------------------------------------- + // The default constructor. + //-------------------------------------------------------------------- + if (!fgkFieldMap) AliWarning("Field map is not set. Call AliTracker::SetFieldMap before creating a tracker!"); +} -ClassImp(AliTracker) +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(); + fgkFieldMap=map; +} //__________________________________________________________________________ void AliTracker::CookLabel(AliKalmanTrack *t, Float_t wrong) const { @@ -69,11 +90,15 @@ void AliTracker::CookLabel(AliKalmanTrack *t, Float_t wrong) const { for (i=0; iGetLabel(1)) == lab || - TMath::Abs(c->GetLabel(2)) == lab ) max++; + //if (TMath::Abs(c->GetLabel(1)) == lab || + // TMath::Abs(c->GetLabel(2)) == lab ) max++; + if (TMath::Abs(c->GetLabel(0)!=lab)) + if (TMath::Abs(c->GetLabel(1)) == lab || + TMath::Abs(c->GetLabel(2)) == lab ) max++; } if ((1.- Float_t(max)/noc) > wrong) lab=-lab; + t->SetFakeRatio((1.- Float_t(max)/noc)); t->SetLabel(lab); delete[] lb; @@ -93,51 +118,3 @@ void AliTracker::UseClusters(const AliKalmanTrack *t, Int_t from) const { c->Use(); } } - -//////////////////////////////////////////////////////////////////////// -Int_t AliTracker::SetFieldFactor() { -// -// Utility class to set the value of the magnetic field in the barrel -// It supposes that the correct object gAlice is in the memory -// - AliKalmanTrack:: - SetConvConst(1000/0.299792458/gAlice->Field()->SolenoidField()); - Double_t field=gAlice->Field()->SolenoidField(); - ::Info("SetFieldFactor","Magnetic field in kGauss: %f\n",field); - return 0; -} -//////////////////////////////////////////////////////////////////////// -Int_t AliTracker::SetFieldFactor(TFile *file, Bool_t deletegAlice) { -// -// Utility class to set the value of the magnetic field in the barrel -// gAlice object is read from the file, and optionally deleted -// - if (!(gAlice=(AliRun*)file->Get("gAlice"))) { - ::Warning - ("SetFieldFactor","gAlice has not been found in file %s\n",file->GetName()); - return 1; - } - Int_t rc = SetFieldFactor(); - if (deletegAlice) { - delete gAlice; - gAlice = 0; - } - return rc; -} -//////////////////////////////////////////////////////////////////////// -Int_t AliTracker::SetFieldFactor(Char_t* fileName, Bool_t closeFile) { -// -// Utility class to set the value of the magnetic field in the barrel -// gAlice object is read from the file, the file is optionally closed -// - TFile *file=TFile::Open(fileName); - if (!file->IsOpen()) { - ::Warning("AliTracker::SetFieldFactor","Cannnot open %s !\n",fileName); - return 1; - } - Int_t rc = SetFieldFactor(file, closeFile) ; - if (closeFile) file->Close(); - return rc; -} -//////////////////////////////////////////////////////////////////////// -