fnunmatch(0),
fnmatch(0),
fTracks(new TClonesArray("AliTOFtrack")),
- fSeeds(new TObjArray(15000)),
+ fSeeds(new TObjArray(100)),
fHDigClusMap(0x0),
fHDigNClus(0x0),
fHDigClusTime(0x0),
fHRecSigYVsPWin(0x0),
fHRecSigZVsPWin(0x0)
{
- //AliTOFtrackerV1 main Ctor
+ //AliTOFtrackerV1 main Ctor
+
+ for (Int_t ii=0; ii<kMaxCluster; ii++) fClusters[ii]=0x0;
InitCheckHists();
delete fSeeds;
fSeeds=0x0;
}
+
+
+ for (Int_t ii=0; ii<kMaxCluster; ii++)
+ if (fClusters[ii]) fClusters[ii]->Delete();
+
}
//_____________________________________________________________________________
void AliTOFtrackerV1::GetPidSettings(AliESDpid *esdPID) {
Int_t ntrk=event->GetNumberOfTracks();
fNseeds = ntrk;
-
//Load ESD tracks into a local Array of ESD Seeds
- if (!fSeeds)
- fSeeds = new TObjArray(fNseeds);
for (Int_t i=0; i<fNseeds; i++)
fSeeds->AddLast(event->GetTrack(i));
covB[13],covA[13],
covB[14],covA[14]
));
- AliDebug(3,Form(" %6d %f %f %f %f % %6d %3d %f %f %f %f %f %f",
+ AliDebug(3,Form(" %6d %f %f %f %f %f %6d %3d %f %f %f %f %f %f",
i,
t->GetTOFsignalRaw(),
t->GetTOFsignal(),
}
}
- fSeeds->Clear(); delete fSeeds; fSeeds=0;
+ fSeeds->Clear();
fTracks->Delete();
return 0;
Float_t dY=AliTOFGeometry::XPad();
Float_t dZ=AliTOFGeometry::ZPad();
- const Float_t kTimeOffset = 32.; // time offset for tracking algorithm [ps]
+ const Float_t kTimeOffset = 0.; // time offset for tracking algorithm [ps]
const Int_t kncmax = 100;
Float_t sensRadius = fkRecoParam->GetSensRadius();
AliESDtrack *t =(AliESDtrack*)fSeeds->At(track->GetSeedIndex());
//if ( t->GetTOFsignal()>0. ) continue;
if ( (t->GetStatus()&AliESDtrack::kTOFout)!=0 ) continue;
- AliTOFtrack *trackTOFin =new AliTOFtrack(*track);
+ AliTOFtrack *trackTOFin = new AliTOFtrack(*track);
// Determine a window around the track
Double_t x,par[5]; trackTOFin->GetExternalParameters(x,par);
}
Double_t z = par[1];
- Double_t dz = scaleFact*3.*TMath::Sqrt(TMath::Abs(cov[2])+dZ*dZ/12.);
- Double_t dphi = scaleFact*3.*TMath::Sqrt(TMath::Abs(cov[0])+dY*dY/12.)/sensRadius;
+ Double_t dz = scaleFact*3.*TMath::Sqrt(TMath::Abs(cov[2])+dZ*dZ/12.);
+ Double_t dphi = scaleFact*3.*TMath::Sqrt(TMath::Abs(cov[0])+dY*dY/12.)/sensRadius;
Double_t phi=TMath::ATan2(par[0],x) + trackTOFin->GetAlpha();
if (phi<-TMath::Pi())phi+=2*TMath::Pi();
if (phi>=TMath::Pi())phi-=2*TMath::Pi();
//upper limit on window's size.
- if(dz> dzMax) dz=dzMax;
- if(dphi*sensRadius> dyMax) dphi=dyMax/sensRadius;
+ if (dz> dzMax) dz=dzMax;
+ if (dphi*sensRadius> dyMax) dphi=dyMax/sensRadius;
// find the clusters inside the selected window
Int_t nc=0;
AliWarning("No more matchable clusters can be stored! Please, increase the corresponding vectors size.");
break; /* R+ fix (buffer overflow protection) */
}
- if(c->GetZ() > z+dz) break;
- if(c->IsUsed()) continue;
- if(!c->GetStatus()) {
+ if (c->GetZ() > z+dz) break;
+ if (c->IsUsed()) continue;
+ if (!c->GetStatus()) {
AliDebug(1,"Cluster in channel declared bad!");
continue; // skip bad channels as declared in OCDB
}
fHRecNClus->Fill(nc);
fHRecChi2->Fill(bestChi2);
fHRecDistZ->Fill(dzTW);
- fHRecSigYVsP->Fill(mom,TMath::Sqrt(cov[0]));
- fHRecSigZVsP->Fill(mom,TMath::Sqrt(cov[2]));
+ if (cov[0]>=0.)
+ fHRecSigYVsP->Fill(mom,TMath::Sqrt(cov[0]));
+ else
+ fHRecSigYVsP->Fill(mom,-TMath::Sqrt(-cov[0]));
+ if (cov[2]>=0.)
+ fHRecSigZVsP->Fill(mom,TMath::Sqrt(cov[2]));
+ else
+ fHRecSigZVsP->Fill(mom,-TMath::Sqrt(-cov[2]));
fHRecSigYVsPWin->Fill(mom,dphi*sensRadius);
fHRecSigZVsPWin->Fill(mom,dz);