#include "AliITSUTrackCooked.h"
#include "AliCluster.h"
#include "AliESDtrack.h"
ClassImp(AliITSUTrackCooked)
AliITSUTrackCooked::AliITSUTrackCooked():
AliKalmanTrack()
{
for (Int_t i=0; i<2*AliITSUTrackerCooked::kNLayers; i++) {
fIndex[i]=0;
}
}
AliITSUTrackCooked::AliITSUTrackCooked(const AliITSUTrackCooked &t):
AliKalmanTrack(t)
{
for (Int_t i=0; i<2*AliITSUTrackerCooked::kNLayers; i++) {
fIndex[i]=t.fIndex[i];
}
}
AliITSUTrackCooked::AliITSUTrackCooked(const AliESDtrack &t):
AliKalmanTrack()
{
Set(t.GetX(), t.GetAlpha(), t.GetParameter(), t.GetCovariance());
SetLabel(t.GetITSLabel());
SetChi2(t.GetITSchi2());
SetNumberOfClusters(t.GetITSclusters(fIndex));
}
AliITSUTrackCooked &AliITSUTrackCooked::operator=(const AliITSUTrackCooked &o){
if (this != &o) {
AliKalmanTrack::operator=(o);
for (Int_t i=0; i<2*AliITSUTrackerCooked::kNLayers; i++)
fIndex[i]=o.fIndex[i];
}
return *this;
}
AliITSUTrackCooked::~AliITSUTrackCooked()
{
}
Int_t AliITSUTrackCooked::Compare(const TObject *o) const {
const AliITSUTrackCooked *t=(const AliITSUTrackCooked*)o;
Double_t co=TMath::Abs(t->OneOverPt());
Double_t c =TMath::Abs(OneOverPt());
if (c>co) return 1;
else if (c<co) return -1;
return 0;
}
void AliITSUTrackCooked::ResetClusters() {
for (Int_t i=0; i<2*AliITSUTrackerCooked::kNLayers; i++) fIndex[i]=-1;
SetChi2(0.);
SetNumberOfClusters(0);
}
void AliITSUTrackCooked::SetClusterIndex(Int_t l, Int_t i)
{
Int_t idx = (l<<28) + i;
Int_t n=GetNumberOfClusters();
fIndex[n]=idx;
SetNumberOfClusters(n+1);
}
Double_t AliITSUTrackCooked::GetPredictedChi2(const AliCluster *c) const {
Double_t p[2]={c->GetY(), c->GetZ()};
Double_t cov[3]={c->GetSigmaY2(), 0., c->GetSigmaZ2()};
return AliExternalTrackParam::GetPredictedChi2(p,cov);
}
Bool_t AliITSUTrackCooked::PropagateTo(Double_t xk, Double_t t,Double_t x0rho) {
Double_t xOverX0,xTimesRho;
xOverX0 = t; xTimesRho = t*x0rho;
if (!CorrectForMeanMaterial(xOverX0,xTimesRho,GetMass(),kTRUE)) return kFALSE;
Double_t bz=GetBz();
if (!AliExternalTrackParam::PropagateTo(xk,bz)) return kFALSE;
return kTRUE;
}
Bool_t AliITSUTrackCooked::Update(const AliCluster *c, Double_t chi2, Int_t idx)
{
Double_t p[2]={c->GetY(), c->GetZ()};
Double_t cov[3]={c->GetSigmaY2(), c->GetSigmaYZ(), c->GetSigmaZ2()};
if (!AliExternalTrackParam::Update(p,cov)) return kFALSE;
Int_t n=GetNumberOfClusters();
fIndex[n]=idx;
SetNumberOfClusters(n+1);
SetChi2(GetChi2()+chi2);
return kTRUE;
}
Bool_t AliITSUTrackCooked::
GetPhiZat(Double_t r, Double_t &phi, Double_t &z) const {
Double_t d=GetD(0., 0., GetBz());
if (TMath::Abs(d) > r) {
if (r>1e-1) return kFALSE;
r = TMath::Abs(d);
}
Double_t rcurr=TMath::Sqrt(GetX()*GetX() + GetY()*GetY());
if (TMath::Abs(d) > rcurr) return kFALSE;
Double_t globXYZcurr[3]; GetXYZ(globXYZcurr);
Double_t phicurr=TMath::ATan2(globXYZcurr[1],globXYZcurr[0]);
if (GetX()>=0.) {
phi=phicurr+TMath::ASin(d/r)-TMath::ASin(d/rcurr);
} else {
phi=phicurr+TMath::ASin(d/r)+TMath::ASin(d/rcurr)-TMath::Pi();
}
if (phi<0.) phi+=2.*TMath::Pi();
else if (phi>=2.*TMath::Pi()) phi-=2.*TMath::Pi();
z=GetZ()+GetTgl()*(TMath::Sqrt((r-d)*(r+d))-TMath::Sqrt((rcurr-d)*(rcurr+d)));
return kTRUE;
}
AliITSUTrackCooked.cxx:10 AliITSUTrackCooked.cxx:11 AliITSUTrackCooked.cxx:12 AliITSUTrackCooked.cxx:13 AliITSUTrackCooked.cxx:14 AliITSUTrackCooked.cxx:15 AliITSUTrackCooked.cxx:16 AliITSUTrackCooked.cxx:17 AliITSUTrackCooked.cxx:18 AliITSUTrackCooked.cxx:19 AliITSUTrackCooked.cxx:20 AliITSUTrackCooked.cxx:21 AliITSUTrackCooked.cxx:22 AliITSUTrackCooked.cxx:23 AliITSUTrackCooked.cxx:24 AliITSUTrackCooked.cxx:25 AliITSUTrackCooked.cxx:26 AliITSUTrackCooked.cxx:27 AliITSUTrackCooked.cxx:28 AliITSUTrackCooked.cxx:29 AliITSUTrackCooked.cxx:30 AliITSUTrackCooked.cxx:31 AliITSUTrackCooked.cxx:32 AliITSUTrackCooked.cxx:33 AliITSUTrackCooked.cxx:34 AliITSUTrackCooked.cxx:35 AliITSUTrackCooked.cxx:36 AliITSUTrackCooked.cxx:37 AliITSUTrackCooked.cxx:38 AliITSUTrackCooked.cxx:39 AliITSUTrackCooked.cxx:40 AliITSUTrackCooked.cxx:41 AliITSUTrackCooked.cxx:42 AliITSUTrackCooked.cxx:43 AliITSUTrackCooked.cxx:44 AliITSUTrackCooked.cxx:45 AliITSUTrackCooked.cxx:46 AliITSUTrackCooked.cxx:47 AliITSUTrackCooked.cxx:48 AliITSUTrackCooked.cxx:49 AliITSUTrackCooked.cxx:50 AliITSUTrackCooked.cxx:51 AliITSUTrackCooked.cxx:52 AliITSUTrackCooked.cxx:53 AliITSUTrackCooked.cxx:54 AliITSUTrackCooked.cxx:55 AliITSUTrackCooked.cxx:56 AliITSUTrackCooked.cxx:57 AliITSUTrackCooked.cxx:58 AliITSUTrackCooked.cxx:59 AliITSUTrackCooked.cxx:60 AliITSUTrackCooked.cxx:61 AliITSUTrackCooked.cxx:62 AliITSUTrackCooked.cxx:63 AliITSUTrackCooked.cxx:64 AliITSUTrackCooked.cxx:65 AliITSUTrackCooked.cxx:66 AliITSUTrackCooked.cxx:67 AliITSUTrackCooked.cxx:68 AliITSUTrackCooked.cxx:69 AliITSUTrackCooked.cxx:70 AliITSUTrackCooked.cxx:71 AliITSUTrackCooked.cxx:72 AliITSUTrackCooked.cxx:73 AliITSUTrackCooked.cxx:74 AliITSUTrackCooked.cxx:75 AliITSUTrackCooked.cxx:76 AliITSUTrackCooked.cxx:77 AliITSUTrackCooked.cxx:78 AliITSUTrackCooked.cxx:79 AliITSUTrackCooked.cxx:80 AliITSUTrackCooked.cxx:81 AliITSUTrackCooked.cxx:82 AliITSUTrackCooked.cxx:83 AliITSUTrackCooked.cxx:84 AliITSUTrackCooked.cxx:85 AliITSUTrackCooked.cxx:86 AliITSUTrackCooked.cxx:87 AliITSUTrackCooked.cxx:88 AliITSUTrackCooked.cxx:89 AliITSUTrackCooked.cxx:90 AliITSUTrackCooked.cxx:91 AliITSUTrackCooked.cxx:92 AliITSUTrackCooked.cxx:93 AliITSUTrackCooked.cxx:94 AliITSUTrackCooked.cxx:95 AliITSUTrackCooked.cxx:96 AliITSUTrackCooked.cxx:97 AliITSUTrackCooked.cxx:98 AliITSUTrackCooked.cxx:99 AliITSUTrackCooked.cxx:100 AliITSUTrackCooked.cxx:101 AliITSUTrackCooked.cxx:102 AliITSUTrackCooked.cxx:103 AliITSUTrackCooked.cxx:104 AliITSUTrackCooked.cxx:105 AliITSUTrackCooked.cxx:106 AliITSUTrackCooked.cxx:107 AliITSUTrackCooked.cxx:108 AliITSUTrackCooked.cxx:109 AliITSUTrackCooked.cxx:110 AliITSUTrackCooked.cxx:111 AliITSUTrackCooked.cxx:112 AliITSUTrackCooked.cxx:113 AliITSUTrackCooked.cxx:114 AliITSUTrackCooked.cxx:115 AliITSUTrackCooked.cxx:116 AliITSUTrackCooked.cxx:117 AliITSUTrackCooked.cxx:118 AliITSUTrackCooked.cxx:119 AliITSUTrackCooked.cxx:120 AliITSUTrackCooked.cxx:121 AliITSUTrackCooked.cxx:122 AliITSUTrackCooked.cxx:123 AliITSUTrackCooked.cxx:124 AliITSUTrackCooked.cxx:125 AliITSUTrackCooked.cxx:126 AliITSUTrackCooked.cxx:127 AliITSUTrackCooked.cxx:128 AliITSUTrackCooked.cxx:129 AliITSUTrackCooked.cxx:130 AliITSUTrackCooked.cxx:131 AliITSUTrackCooked.cxx:132 AliITSUTrackCooked.cxx:133 AliITSUTrackCooked.cxx:134 AliITSUTrackCooked.cxx:135 AliITSUTrackCooked.cxx:136 AliITSUTrackCooked.cxx:137 AliITSUTrackCooked.cxx:138 AliITSUTrackCooked.cxx:139 AliITSUTrackCooked.cxx:140 AliITSUTrackCooked.cxx:141 AliITSUTrackCooked.cxx:142 AliITSUTrackCooked.cxx:143 AliITSUTrackCooked.cxx:144 AliITSUTrackCooked.cxx:145 AliITSUTrackCooked.cxx:146 AliITSUTrackCooked.cxx:147 AliITSUTrackCooked.cxx:148 AliITSUTrackCooked.cxx:149 AliITSUTrackCooked.cxx:150 AliITSUTrackCooked.cxx:151 AliITSUTrackCooked.cxx:152 AliITSUTrackCooked.cxx:153 AliITSUTrackCooked.cxx:154 AliITSUTrackCooked.cxx:155 AliITSUTrackCooked.cxx:156 AliITSUTrackCooked.cxx:157 AliITSUTrackCooked.cxx:158 AliITSUTrackCooked.cxx:159 AliITSUTrackCooked.cxx:160 AliITSUTrackCooked.cxx:161 AliITSUTrackCooked.cxx:162 AliITSUTrackCooked.cxx:163 AliITSUTrackCooked.cxx:164 AliITSUTrackCooked.cxx:165 AliITSUTrackCooked.cxx:166 AliITSUTrackCooked.cxx:167 AliITSUTrackCooked.cxx:168 AliITSUTrackCooked.cxx:169 AliITSUTrackCooked.cxx:170