* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
**************************************************************************/
-/* $Id:$ */
+/* $Id$ */
//-------------------------------------------------------------------------
// Implementation of the ITS tracker class
#include <TString.h>
#include <TRandom.h>
-
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDVertex.h"
break; // only one layer type to skip at once
}
}
- if(!fPlaneEff->ReadFromCDB())
- {AliWarning("AliITStrackerMI reading of AliITSPlaneEff from OCDB failed") ;}
+ if(AliITSReconstructor::GetRecoParam()->GetReadPlaneEffFromOCDB())
+ if(!fPlaneEff->ReadFromCDB()) {AliWarning("AliITStrackerMI reading of AliITSPlaneEff from OCDB failed") ;}
if(AliITSReconstructor::GetRecoParam()->GetHistoPlaneEff()) {
fPlaneEff->SetCreateHistos(kTRUE);
//fPlaneEff->ReadHistosFromFile();
// This functions reconstructs ITS tracks
// The clusters must be already loaded !
//--------------------------------------------------------------------
+
+
fTrackingPhase="Clusters2Tracks";
TObjArray itsTracks(15000);
GetBestHypothesysMIP(itsTracks);
} // end loop on the two tracking passes
- //GetBestHypothesysMIP(itsTracks);
if(event->GetNumberOfV0s()>0) UpdateTPCV0(event);
if(AliITSReconstructor::GetRecoParam()->GetFindV0s()) FindV02(event);
fAfterV0 = kTRUE;
- //GetBestHypothesysMIP(itsTracks);
//
itsTracks.Delete();
//
// add track to the list of hypothesys
//------------------------------------------------------------------
- if (esdindex>=fTrackHypothesys.GetEntriesFast()) fTrackHypothesys.Expand(esdindex*2+10);
+ if (esdindex>=fTrackHypothesys.GetEntriesFast())
+ fTrackHypothesys.Expand(TMath::Max(fTrackHypothesys.GetSize(),esdindex*2+10));
//
TObjArray * array = (TObjArray*) fTrackHypothesys.At(esdindex);
if (!array) {
delete forwardtrack;
Int_t accepted=0;
for (Int_t i=0;i<entries;i++){
- AliITStrackMI * track = (AliITStrackMI*)array->At(i);
+ AliITStrackMI * track = (AliITStrackMI*)array->At(i);
+
if (!track) continue;
if (accepted>checkmax || track->GetChi2MIP(3)>AliITSReconstructor::GetRecoParam()->GetMaxChi2PerCluster(3)*6. ||
//
array->Compress();
SortTrackHypothesys(esdindex,checkmax,1);
+
array = (TObjArray*) fTrackHypothesys.At(esdindex);
if (!array) return 0; // PH What can be the reason? Check SortTrackHypothesys
besttrack = (AliITStrackMI*)array->At(0);
if (cl->GetQ()<=0) return 0; // ingore the "virtual" clusters
- //Float_t clxyz[3]; cl->GetGlobalXYZ(clxyz);Double_t trxyz[3]; track->GetXYZ(trxyz);printf("gtr %f %f %f\n",trxyz[0],trxyz[1],trxyz[2]);printf("gcl %f %f %f\n",clxyz[0],clxyz[1],clxyz[2]);
+ // Float_t clxyz[3]; cl->GetGlobalXYZ(clxyz);Double_t trxyz[3]; track->GetXYZ(trxyz);//printf("gtr %f %f %f\n",trxyz[0],trxyz[1],trxyz[2]);printf("gcl %f %f %f\n",clxyz[0],clxyz[1],clxyz[2]);
// Take into account the mis-alignment
Double_t x=track->GetX()+cl->GetX();
if (!track->PropagateTo(x,0.,0.)) return 0;
+
+
AliCluster c(*cl);
c.SetSigmaY2(track->GetSigmaY(layer)*track->GetSigmaY(layer));