/* $Id$ */
-#include "AliTrackPoints.h"
-#include "AliLog.h"
-
-//_________________________________
////////////////////////////////////////////////////////////
// //
// class AliTrackPoints //
// //
////////////////////////////////////////////////////////////
+#include "AliTrackPoints.h"
+#include "AliLog.h"
+
#include <TClonesArray.h>
#include <TFile.h>
#include <TMath.h>
#include "AliTrackReference.h"
#include "AliITStrackV2.h"
+#include "AliRun.h"
+#include "AliMagF.h"
+#include "AliTracker.h"
+#include "AliESD.h"
+#include "AliRunLoader.h"
+#include "AliTPCtrack.h"
+#include "TTree.h"
+#include "TBranch.h"
+#include "TH2D.h"
+
ClassImp(AliTrackPoints)
Int_t AliTrackPoints::fgDebug = 0;
{
//constructor
}
+
/***************************************************************/
AliTrackPoints::AliTrackPoints(AliTrackPoints::ETypes type, AliESDtrack* track, Float_t mf):
}
}
+
/***************************************************************/
AliTrackPoints::AliTrackPoints(Int_t n, AliESDtrack* track, Float_t mf, Float_t dr, Float_t r0):
return;
}
- Double_t x;
+ Double_t alpha,x;
Double_t par[5];
- track->GetInnerExternalParameters(x,par); //get properties of the track
+ track->GetInnerExternalParameters(alpha,x,par);//get properties of the track
if (par[4] == 0)
{
Error("AliTrackPoints","This ESD track seem not to contain TPC information (curv is 0)");
return;
}
- Double_t alpha = track->GetInnerAlpha();
+ //Double_t alpha = track->GetInnerAlpha();
Double_t cc = 1000./0.299792458/mf;//conversion constant
Double_t c=par[4]/cc;
MakePoints(dr,r0,x,par,c,alpha);
}
+
/***************************************************************/
AliTrackPoints::AliTrackPoints(Int_t n, AliTPCtrack* track, Float_t dr, Float_t r0):
Double_t alpha = track->GetAlpha();
Double_t c=track->GetC();
MakePoints(dr,r0,x,par,c,alpha);
-}
+}
+
/***************************************************************/
AliTrackPoints::~AliTrackPoints()
delete [] fY;
delete [] fZ;
}
+
/***************************************************************/
void AliTrackPoints::MakePoints( Float_t dr, Float_t r0, Double_t x, Double_t* par, Double_t c, Double_t alpha)
fX[i],fY[i],fZ[i],rc,TMath::Hypot(fX[i],fY[i])));
}
}
+
/***************************************************************/
void AliTrackPoints::MakeITSPoints(AliESDtrack* track)
// z=R*Pz/Pt
AliITStrackV2 itstrack(*track,kTRUE);
Double_t x,y,z;
- static const Double_t r[6] = {4.0, 7.0, 14.9, 23.8, 39.1, 43.6};
+ static const Double_t kR[6] = {4.0, 7.0, 14.9, 23.8, 39.1, 43.6};
for (Int_t i = 0; i < 6; i++)
{
- itstrack.GetGlobalXYZat(r[i],x,y,z);
+ itstrack.GetGlobalXYZat(kR[i],x,y,z);
fX[i] = x;
fY[i] = y;
fZ[i] = z;
}
/***************************************************************/
+
void AliTrackPoints::MakeITSPointsInnerFromVertexOuterFromTPC(AliESDtrack* track, Float_t mf)
{
//makes trackpoints for ITS
//for 3 inner layers calculates out of the vector at vertex
//for 3 outer ---------------//------------------ at inner TPC
- static const Double_t r[6] = {4.0, 7.0, 14.9, 23.8, 39.1, 43.6};
+ static const Double_t kR[6] = {4.0, 7.0, 14.9, 23.8, 39.1, 43.6};
AliITStrackV2 itstrack(*track,kTRUE);
Double_t x,y,z;
for (Int_t i = 0; i < 3; i++)
{
- itstrack.GetGlobalXYZat(r[i],x,y,z);
+ itstrack.GetGlobalXYZat(kR[i],x,y,z);
fX[i] = x;
fY[i] = y;
fZ[i] = z;
AliDebug(3,Form("X %f Y %f Z %f R asked %f R obtained %f",
- fX[i],fY[i],fZ[i],r[i],TMath::Hypot(fX[i],fY[i])));
+ fX[i],fY[i],fZ[i],kR[i],TMath::Hypot(fX[i],fY[i])));
}
for (Int_t i = 3; i < 6; i++)
{
Float_t ax,ay,az;
- AliTrackPoints tmptp(1,track,mf,0,r[i]);
+ AliTrackPoints tmptp(1,track,mf,0,kR[i]);
tmptp.PositionAt(0,ax,ay,az);
fX[i] = ax;
fY[i] = ay;
fZ[i] = az;
AliDebug(3,Form("X %f Y %f Z %f R asked %f R obtained %f",
- fX[i],fY[i],fZ[i],r[i],TMath::Hypot(fX[i],fY[i])));
+ fX[i],fY[i],fZ[i],kR[i],TMath::Hypot(fX[i],fY[i])));
}
}
-
/***************************************************************/
void AliTrackPoints::PositionAt(Int_t n, Float_t &x,Float_t &y,Float_t &z)
AliDebug(2,Form("n %d; X %f; Y %f; Z %f",n,x,y,z));
}
+
/***************************************************************/
void AliTrackPoints::Move(Float_t x, Float_t y, Float_t z)
fZ[i]+=z;
}
}
+
/***************************************************************/
Double_t AliTrackPoints::AvarageDistance(const AliTrackPoints& tr)
return retval;
}
+
/***************************************************************/
void AliTrackPoints::Print(Option_t* /*option*/) const
{
-
+ // Prints the coordinates of the track points
Info("Print","There is %d points",fN);
for(Int_t i = 0; i < fN; i++)
{
}
-/***************************************************************/
-/***************************************************************/
-/***************************************************************/
-/***************************************************************/
-/***************************************************************/
/***************************************************************/
-#include "AliRun.h"
-#include "AliESD.h"
-#include "AliRunLoader.h"
-#include "AliTPCtrack.h"
-#include "TTree.h"
-#include "TBranch.h"
-#include "TH2D.h"
-#include "TCanvas.h"
-#include "AliMagF.h"
-
-
-
-
void AliTrackPoints::Testesd(Int_t entr,const char* fname )
{
+ // This is a former macro converted to member function.
+ // It is used to test the functionality of the class using ESD tracks
delete gAlice;
gAlice = 0x0;
AliRunLoader* rl = AliRunLoader::Open();
}
- Int_t N = 170;
- AliTrackPoints* tp = new AliTrackPoints(N,t,mf,1.);
+ Int_t nTrackPoints = 170;
+ AliTrackPoints* tp = new AliTrackPoints(nTrackPoints,t,mf,1.);
Float_t xmin = -250;
Float_t xmax = 250;
Float_t x,y,z;
- for (Int_t i = 0;i<N;i++)
+ for (Int_t i = 0;i<nTrackPoints;i++)
{
Double_t r = 84.1+i;
tp->PositionAt(i,x,y,z);
delete rl;
}
-/***************************************************************/
-/***************************************************************/
/***************************************************************/
void AliTrackPoints::Testtpc(Int_t entr)
{
+ // This is a former macro converted to member function.
+ // It is used to test the functionality of the class using TPC tracks
delete gAlice;
gAlice = 0x0;
AliRunLoader* rl = AliRunLoader::Open();
AliLoader* l = rl->GetLoader("TPCLoader");
rl->LoadgAlice();
- AliKalmanTrack::SetFieldMap(rl->GetAliRun()->Field());
+ AliTracker::SetFieldMap(rl->GetAliRun()->Field(),kTRUE);
l->LoadTracks();
AliTPCtrack* t = new AliTPCtrack();
TBranch* b=l->TreeT()->GetBranch("tracks");
b->SetAddress(&t);
l->TreeT()->GetEntry(entr);
- Int_t N = 160;
- AliTrackPoints* tp = new AliTrackPoints(N,t,1.);
+ Int_t nTrackPoints = 160;
+ AliTrackPoints* tp = new AliTrackPoints(nTrackPoints,t,1.);
Float_t xmin = -250;
Float_t xmax = 250;
Float_t x,y,z;
- for (Int_t i = 0;i<N;i++)
+ for (Int_t i = 0;i<nTrackPoints;i++)
{
Double_t r = 84.1+i;
tp->PositionAt(i,x,y,z);
//BUT they are local!!!!
t->PropagateTo(r);
// Double_t phi = t->Phi();
- Double_t rl = TMath::Hypot(t->GetX(),t->GetY());//real radius
+ Double_t rL = TMath::Hypot(t->GetX(),t->GetY());//real radius
Double_t alpha = t->GetAlpha();
Double_t salpha = TMath::Sin(alpha);
y = t->GetX()*salpha + t->GetY()*calpha;
z = t->GetZ();
- printf("tx %f ty %f tz %f Rt = %f R from XY %f\n",x,y,z,TMath::Hypot(x,y),rl);
+ printf("tx %f ty %f tz %f Rt = %f R from XY %f\n",x,y,z,TMath::Hypot(x,y),rL);
printf("tpz - tz %f\n",z-t->GetZ());
printf("\n");