#include "AliITStrackSA.h"
#include "AliITStrackerSA.h"
#include "AliITSReconstructor.h"
+#include "AliLog.h"
#include "AliRun.h"
ClassImp(AliITStrackerSA)
// Track finder using the ESD object
+ AliDebug(2,Form(" field is %f",event->GetMagneticField()));
+ AliDebug(2,Form("SKIPPING %d %d %d %d %d %d",ForceSkippingOfLayer(0),ForceSkippingOfLayer(1),ForceSkippingOfLayer(2),ForceSkippingOfLayer(3),ForceSkippingOfLayer(4),ForceSkippingOfLayer(5)));
-
if(!fITSclusters){
Fatal("FindTracks","ITS cluster tree is not accessed - Abort!!!\n Please use method SetClusterTree to pass the pointer to the tree\n");
return -1;
}
for(Int_t i=0;i<AliITSgeomTGeo::GetNLayers();i++){
AliITSlayer &layer=fgLayers[i];
- if (!AliITSReconstructor::GetRecoParam()->GetLayersToSkip(i)) {
+ if (!ForceSkippingOfLayer(i)) {
for(Int_t cli=0;cli<layer.GetNumberOfClusters();cli++){
AliITSRecPoint* cls = (AliITSRecPoint*)layer.GetCluster(cli);
if(cls->TestBit(kSAflag)==kTRUE) continue; //clusters used by TPC prol.
TClonesArray &clulay = *fCluLayer[ilay];
TClonesArray &clucoo = *fCluCoord[ilay];
AliITSlayer &layer=fgLayers[ilay];
- if (!AliITSReconstructor::GetRecoParam()->GetLayersToSkip(ilay)) {
+ if (!ForceSkippingOfLayer(ilay)) {
for(Int_t cli=0;cli<layer.GetNumberOfClusters();cli++){
AliITSRecPoint* cls = (AliITSRecPoint*)layer.GetCluster(cli);
if(cls->TestBit(kSAflag)==kTRUE) continue;
if(!fInwardFlag){ // Tracking outwards from the inner layers
// loop on starting layer for track finding
for(Int_t innLay=0; innLay<=fOuterStartLayer; innLay++) {
- if(AliITSReconstructor::GetRecoParam()->GetLayersToSkip(innLay)) continue;
+ if(ForceSkippingOfLayer(innLay)) continue;
Int_t minNPoints=iMinNPoints-innLay;
for(Int_t i=innLay+1;i<AliITSgeomTGeo::GetNLayers();i++)
- if(AliITSReconstructor::GetRecoParam()->GetLayersToSkip(i))
+ if(ForceSkippingOfLayer(i))
minNPoints--;
if(minNPoints<fMinNPoints) continue;
if(nClusLay[nnp]!=0) layOK+=1;
}
if(layOK>=minNPoints){
- //printf("---NPOINTS: %d; MAP: %d %d %d %d %d %d\n",layOK,nClusLay[0],nClusLay[1],nClusLay[2],nClusLay[3],nClusLay[4],nClusLay[5]);
+ AliDebug(2,Form("---NPOINTS: %d; MAP: %d %d %d %d %d %d\n",layOK,nClusLay[0],nClusLay[1],nClusLay[2],nClusLay[3],nClusLay[4],nClusLay[5]));
AliITStrackV2* tr2 = 0;
tr2 = FitTrack(trs,primaryVertex);
if(!tr2) continue;
- //printf("---NPOINTS fit: %d\n",tr2->GetNumberOfClusters());
+ AliDebug(2,Form("---NPOINTS fit: %d\n",tr2->GetNumberOfClusters()));
StoreTrack(tr2,event);
ntrack++;
// loop on starting layer for track finding
for(Int_t outLay=AliITSgeomTGeo::GetNLayers()-1; outLay>=fInnerStartLayer; outLay--) {
- if(AliITSReconstructor::GetRecoParam()->GetLayersToSkip(outLay)) continue;
+ if(ForceSkippingOfLayer(outLay)) continue;
Int_t minNPoints=iMinNPoints-(AliITSgeomTGeo::GetNLayers()-1-outLay);
for(Int_t i=0;i<outLay-1;i++)
- if(AliITSReconstructor::GetRecoParam()->GetLayersToSkip(i))
+ if(ForceSkippingOfLayer(i))
minNPoints--;
if(minNPoints<fMinNPoints) continue;
if(nClusLay[nnp]!=0) layOK+=1;
}
if(layOK>=minNPoints){
- //printf("---NPOINTS: %d; MAP: %d %d %d %d %d %d\n",layOK,nClusLay[0],nClusLay[1],nClusLay[2],nClusLay[3],nClusLay[4],nClusLay[5]);
+ AliDebug(2,Form("---NPOINTS: %d; MAP: %d %d %d %d %d %d\n",layOK,nClusLay[0],nClusLay[1],nClusLay[2],nClusLay[3],nClusLay[4],nClusLay[5]));
AliITStrackV2* tr2 = 0;
tr2 = FitTrack(trs,primaryVertex);
if(!tr2) continue;
- //printf("---NPOINTS fit: %d\n",tr2->GetNumberOfClusters());
+ AliDebug(2,Form("---NPOINTS fit: %d\n",tr2->GetNumberOfClusters()));
StoreTrack(tr2,event);
ntrack++;
if(nClusLay[nnp]!=0) layOK+=1;
}
if(layOK==1) {
- //printf("----NPOINTS: %d; MAP: %d %d %d %d %d %d\n",layOK,nClusLay[0],nClusLay[1],nClusLay[2],nClusLay[3],nClusLay[4],nClusLay[5]);
+ AliDebug(2,Form("----NPOINTS: %d; MAP: %d %d %d %d %d %d\n",layOK,nClusLay[0],nClusLay[1],nClusLay[2],nClusLay[3],nClusLay[4],nClusLay[5]));
AliITStrackV2* tr2 = 0;
Bool_t onePoint = kTRUE;
tr2 = FitTrack(trs,primaryVertex,onePoint);
if(!tr2) continue;
- //printf("----NPOINTS fit: %d\n",tr2->GetNumberOfClusters());
+ AliDebug(2,Form("----NPOINTS fit: %d\n",tr2->GetNumberOfClusters()));
StoreTrack(tr2,event);
ntrack++;
ot->ResetCovariance(10.);
ot->ResetClusters();
- if(RefitAt(AliITSRecoParam::GetrInsideITSscreen(),ot,trac)){ //fit from layer 1 to layer 6
- AliITStrackMI *otrack2 = new AliITStrackMI(*ot);
- otrack2->ResetCovariance(10.);
- otrack2->ResetClusters();
- //fit from layer 6 to layer 1
- if(RefitAt(AliITSRecoParam::GetrInsideSPD1(),otrack2,ot)) {
- fListOfTracks->AddLast(otrack2);
- fListOfSATracks->AddLast(trac);
- } else {
- delete otrack2;
- delete trac;
- }
+ // Propagate inside the innermost layer with a cluster
+ if(ot->Propagate(ot->GetX()-0.1*ot->GetX())) {
+
+ if(RefitAt(AliITSRecoParam::GetrInsideITSscreen(),ot,trac)){ //fit from layer 1 to layer 6
+ AliITStrackMI *otrack2 = new AliITStrackMI(*ot);
+ otrack2->ResetCovariance(10.);
+ otrack2->ResetClusters();
+ //fit from layer 6 to layer 1
+ if(RefitAt(AliITSRecoParam::GetrInsideSPD1(),otrack2,ot)) {
+ fListOfTracks->AddLast(otrack2);
+ fListOfSATracks->AddLast(trac);
+ } else {
+ delete otrack2;
+ delete trac;
+ }
- }
-
+ }
+ }
delete ot;
}//end loop layer 6
}//end loop layer 5
Int_t AliITStrackerSA::SearchClusters(Int_t layer,Double_t phiwindow,Double_t lambdawindow, AliITStrackSA* trs,Double_t /*zvertex*/,Int_t pflag){
//function used to to find the clusters associated to the track
- if(AliITSReconstructor::GetRecoParam()->GetLayersToSkip(layer)) return 0;
+ if(ForceSkippingOfLayer(layer)) return 0;
Int_t nc=0;
AliITSlayer &lay = fgLayers[layer];
sz = TMath::Sqrt(cl->GetSigmaZ2());
*/
}
+