-/*
-void AliTPCTracklet::FitKalman(const AliTPCseed *track,Int_t sector) {
- //
- // Fit using Kalman filter
- //
- AliTPCseed *t=new AliTPCseed(*track);
- if (!t->Rotate(TMath::DegToRad()*(sector%18*20.+10.)-t->GetAlpha())) {
- delete t;
- return;
- }
- // fit from inner to outer row
- Double_t covar[15];
- for (Int_t i=0;i<15;i++) covar[i]=0;
- covar[0]=10.*10.;
- covar[2]=10.*10.;
- covar[5]=10.*10./(64.*64.);
- covar[9]=10.*10./(64.*64.);
- covar[14]=1*1;
-
- //
- AliTPCseed *outerSeed=new AliTPCseed(*t);
- Int_t n=0;
- for (Int_t i=0;i<160;++i) {
-
- AliTPCclusterMI *c=t->GetClusterPointer(i);
- if (c && RejectCluster(c,outerSeed)) continue;
- if (c&&c->GetDetector()==sector) {
- if (n==1) {
- outerSeed->ResetCovariance(100.);
- outerSeed->AddCovariance(covar);
- }
- ++n;
- Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
- Double_t cov[3]={0.01,0.,0.01}; //TODO: correct error parametrisation
- if (!outerSeed->PropagateTo(r[0]) ||
- !static_cast<AliExternalTrackParam*>(outerSeed)->Update(&r[1],cov)) {
- delete outerSeed;
- outerSeed=0;
- break;
- }
- }
- }
- if (outerSeed)
- fOuter=new AliExternalTrackParam(*outerSeed);
- // fit from outer to inner rows
- // AliTPCseed *innerSeed=new AliTPCseed(*t);
- AliTPCseed *innerSeed=0;
- if (fOuter) innerSeed=new AliTPCseed(*outerSeed);
- if (!innerSeed) innerSeed=new AliTPCseed(*t);
- delete outerSeed;
-
- n=0;
- for (Int_t i=159;i>=0;--i) {
- AliTPCclusterMI *c=t->GetClusterPointer(i);
- if (c && RejectCluster(c, innerSeed)) continue;
- if (c&&c->GetDetector()==sector) {
- if (n==1) {
- innerSeed->ResetCovariance(100.);
- innerSeed->AddCovariance(covar);
- }
- ++n;
- Double_t r[3]={c->GetX(),c->GetY(),c->GetZ()};
- Double_t cov[3]={0.01,0.,0.01};
- if (!innerSeed->PropagateTo(r[0]) ||
- !static_cast<AliExternalTrackParam*>(innerSeed)->Update(&r[1],cov)) {
- delete innerSeed;
- innerSeed=0;
- break;
- }
- }
- }
- if (innerSeed)
- fInner=new AliExternalTrackParam(*innerSeed);
- // propagate to the primary vertex
- if (innerSeed) {
- AliTPCseed *primarySeed=new AliTPCseed(*innerSeed);
- Double_t pos[]={0.,0.,0.};
- Double_t sigma[]={.1,.1,.1}; //TODO: is this correct?
- AliESDVertex vertex(pos,sigma);
- if (primarySeed->PropagateToVertex(&vertex))
- fPrimary=new AliExternalTrackParam(*primarySeed);
- delete primarySeed;
- // for better comparison one does not want to have alpha changed...
- if (fPrimary) if (!fPrimary->Rotate(fInner->GetAlpha())) {
- delete fPrimary;
- fPrimary=0;
- }
- }
- delete innerSeed;
-
- delete t;
-}
-*/
void AliTPCTracklet::FitKalman(const AliTPCseed *seed,Int_t sector) {
// fit from inner to outer row
Double_t covar[15];
for (Int_t i=0;i<15;i++) covar[i]=0;
- covar[0]=10.*10.;
- covar[2]=10.*10.;
- covar[5]=10.*10./(64.*64.);
- covar[9]=10.*10./(64.*64.);
- covar[14]=1*1;
+ covar[0]=1.*1.;
+ covar[2]=1.*1.;
+ covar[5]=1.*1./(64.*64.);
+ covar[9]=1.*1./(64.*64.);
+ covar[14]=0; // keep pt
Float_t xmin=1000, xmax=-10000;
Int_t imin=158, imax=0;
for (Int_t i=0;i<160;i++) {
fOuter=new AliExternalTrackParam(paramOut);
fInner=new AliExternalTrackParam(paramIn);
//
-
-
- // // propagate to the primary vertex
-// if (fInner) {
-// AliExternalTrackParam *param= new AliExternalTrackParam(*fInner);
-// Double_t pos[]={0.,0.,0.};
-// Double_t sigma[]={.1,.1,.1}; //TODO: is this correct?
-// AliESDVertex vertex(pos,sigma);
-// if (param->PropagateToVertex(&vertex))
-// fPrimary=new AliExternalTrackParam(*param);
-// delete param;
-// // for better comparison one does not want to have alpha changed...
-// if (fPrimary) if (!fPrimary->Rotate(fInner->GetAlpha())) {
-// delete fPrimary;
-// fPrimary=0;
-// }
-// }
-
delete track;
}