#include "TMath.h"
#include "AliESDHLTtrack.h"
+#include "AliKalmanTrack.h"
ClassImp(AliESDHLTtrack)
-AliESDHLTtrack::AliESDHLTtrack() : TObject()
+AliESDHLTtrack::AliESDHLTtrack() :
+ TObject(),
+ fNHits(0),
+ fMCid(0),
+ fWeight(0),
+ fFromMainVertex(kFALSE),
+ fSector(0),
+ fQ(0),
+ fTanl(0),
+ fPsi(0),
+ fPt(0),
+ fPterr(0),
+ fPsierr(0),
+ fTanlerr(0),
+ fBinX(0),
+ fBinY(0),
+ fSizeX(0),
+ fSizeY(0),
+ fPID(0)
{
- fNHits = 0;
- fMCid = 0;
- fWeight = 0;
- fFromMainVertex = kFALSE;
+ // Default constructor
fRowRange[0] = fRowRange[1] = 0;
- fSector = 0;
fFirstPoint[0] = fFirstPoint[1] = fFirstPoint[2] = 0;
fLastPoint[0] = fLastPoint[1] = fLastPoint[2] = 0;
- fQ = 0;
- fTanl = 0;
- fPsi = 0;
- fPt = 0;
- fPterr = 0;
- fPsierr = 0;
- fTanlerr = 0;
- fBinX = 0;
- fBinY = 0;
- fSizeX = 0;
- fSizeY = 0;
- fPID =0;
}
Double_t AliESDHLTtrack::GetP() const
Double_t AliESDHLTtrack::GetPseudoRapidity() const
{
+ // Calculates the pseudorapidity
return 0.5 * TMath::Log((GetP() + GetPz()) / (GetP() - GetPz()));
}
+
+Bool_t AliESDHLTtrack::UpdateTrackParams(const AliKalmanTrack *t)
+{
+ // Updates the track parameters
+
+ fNHits = t->GetNumberOfClusters();
+ fMCid = t->GetLabel();
+
+ Double_t alpha = t->GetAlpha();
+ fSector = (UShort_t)(alpha/(2*TMath::Pi()/18));
+ Double_t x,p[5]; t->GetExternalParameters(x,p);
+ if(p[4]<=0)
+ fQ = 1;
+ else
+ fQ = -1;
+ fPt = TMath::Abs(1./p[4]);
+ fTanl = p[3];
+ fPsi = alpha + TMath::ASin(p[2]);
+
+ fFirstPoint[0] = x*TMath::Cos(alpha) - p[0]*TMath::Sin(alpha);
+ fFirstPoint[1] = x*TMath::Sin(alpha) + p[0]*TMath::Cos(alpha);
+ fFirstPoint[2] = p[1];
+
+ return kTRUE;
+}