-#include "TMatrixDSym.h"
-#include "TMatrixD.h"
+/**************************************************************************
+ * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
+ * *
+ * Author: The ALICE Off-line Project. *
+ * Contributors are mentioned in the code where appropriate. *
+ * *
+ * Permission to use, copy, modify and distribute this software and its *
+ * documentation strictly for non-commercial purposes is hereby granted *
+ * without fee, provided that the above copyright notice appears in all *
+ * copies and that both the copyright notice and this permission notice *
+ * appear in the supporting documentation. The authors make no claims *
+ * about the suitability of this software for any purpose. It is *
+ * provided "as is" without express or implied warranty. *
+ **************************************************************************/
+
+/* $Id$ */
+
+#include <TMath.h>
+#include <TMatrixDSym.h>
+#include <TMatrixD.h>
+
#include "AliTrackFitterStraight.h"
ClassImp(AliTrackFitterStraight)
AliTrackFitterStraight::AliTrackFitterStraight():
- AliTrackFitter()
+ AliTrackFitter(),
+ fAlpha(0.),
+ fSumYY(0),
+ fSumZZ(0),
+ fNUsed(0),
+ fConv(kFALSE)
{
//
// default constructor
//
- fAlpha = 0.;
for (Int_t i=0;i<5;i++) fSumXY[i] = 0;
- fSumYY = 0;
for (Int_t i=0;i<5;i++) fSumXZ[i] = 0;
- fSumZZ = 0;
- fNUsed = 0;
- fConv = kFALSE;
}
AliTrackFitterStraight::AliTrackFitterStraight(AliTrackPointArray *array, Bool_t owner):
- AliTrackFitter(array,owner)
+ AliTrackFitter(array,owner),
+ fAlpha(0.),
+ fSumYY(0),
+ fSumZZ(0),
+ fNUsed(0),
+ fConv(kFALSE)
{
//
// Constructor
//
- fAlpha = 0.;
for (Int_t i=0;i<5;i++) fSumXY[i] = 0;
- fSumYY = 0;
for (Int_t i=0;i<5;i++) fSumXZ[i] = 0;
- fSumZZ = 0;
- fNUsed = 0;
- fConv = kFALSE;
}
AliTrackFitterStraight::AliTrackFitterStraight(const AliTrackFitterStraight &fitter):
- AliTrackFitter(fitter)
+ AliTrackFitter(fitter),
+ fAlpha(fitter.fAlpha),
+ fSumYY(fitter.fSumYY),
+ fSumZZ(fitter.fSumZZ),
+ fNUsed(fitter.fNUsed),
+ fConv(fitter.fConv)
{
//
// copy constructor
//
- fAlpha = fitter.fAlpha;
for (Int_t i=0;i<5;i++) fSumXY[i] = fitter.fSumXY[i];
- fSumYY = fitter.fSumYY;
for (Int_t i=0;i<5;i++) fSumXZ[i] = fitter.fSumXZ[i];
- fSumZZ = fitter.fSumZZ;
- fNUsed = fitter.fNUsed;
- fConv = fitter.fConv;
}
//_____________________________________________________________________________
}
Bool_t AliTrackFitterStraight::Fit(const TArrayI *volIds,const TArrayI *volIdsFit,
- AliAlignObj::ELayerID layerRangeMin,
- AliAlignObj::ELayerID layerRangeMax)
+ AliGeomManager::ELayerID layerRangeMin,
+ AliGeomManager::ELayerID layerRangeMax)
{
// Fit the track points. The method takes as an input
// the set of id's (volids) of the volumes in which
if (!FindVolId(volIdsFit,iVolId)) continue;
}
else {
- if (iVolId < AliAlignObj::LayerToVolUID(layerRangeMin,0) ||
- iVolId > AliAlignObj::LayerToVolUID(layerRangeMax,
- AliAlignObj::LayerSize(layerRangeMax-
- AliAlignObj::kFirstLayer))) continue;
+ if (iVolId < AliGeomManager::LayerToVolUID(layerRangeMin,0) ||
+ iVolId > AliGeomManager::LayerToVolUID(layerRangeMax,
+ AliGeomManager::LayerSize(layerRangeMax))) continue;
}
if (!isAlphaCalc) {
fAlpha = p.GetAngle();
fSumZZ += z*z*weight;
}
-void AliTrackFitterStraight::Update(){
+Bool_t AliTrackFitterStraight::Update(){
//
// Track fitter update
//
TMatrixDSym smatrix(2);
TMatrixD sums(1,2);
smatrix(0,0) = fSumXY[0]; smatrix(1,1)=fSumXY[2];
- smatrix(0,1) = fSumXY[1];
+ smatrix(0,1) = fSumXY[1]; smatrix(1,0)=fSumXY[1];
sums(0,0) = fSumXY[3]; sums(0,1) =fSumXY[4];
smatrix.Invert();
if (smatrix.IsValid()){
TMatrixDSym smatrixz(2);
TMatrixD sumsxz(1,2);
smatrixz(0,0) = fSumXZ[0]; smatrixz(1,1) = fSumXZ[2];
- smatrixz(0,1) = fSumXZ[1];
+ smatrixz(0,1) = fSumXZ[1]; smatrixz(1,0) = fSumXZ[1];
sumsxz(0,0) = fSumXZ[3]; sumsxz(0,1) = fSumXZ[4];
smatrixz.Invert();
if (smatrixz.IsValid()){
fConv =kTRUE;
else
fConv=kFALSE;
+
+ return kTRUE;
}
Double_t AliTrackFitterStraight::GetYat(Double_t x) const {