]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITStrackerSA.cxx
Remove fallback VizDB init -- this is all in VizDB_init.C now.
[u/mrichter/AliRoot.git] / ITS / AliITStrackerSA.cxx
index 15e46b2e0396add335a2fb320f8137787e240622..fa7fd1d1b58ff3e7e19e6ffe0b65735394fd2d3a 100644 (file)
@@ -39,6 +39,7 @@
 #include "AliITStrackSA.h"
 #include "AliITStrackerSA.h"
 #include "AliITSReconstructor.h"
+#include "AliLog.h"
 #include "AliRun.h"
 
 ClassImp(AliITStrackerSA)
@@ -337,8 +338,9 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
 
 // 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;
@@ -375,7 +377,7 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
   }
   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.
@@ -395,7 +397,7 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
     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;
@@ -427,10 +429,10 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
     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;
 
@@ -470,11 +472,11 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
              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++;
@@ -489,10 +491,10 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
     // 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;
        
@@ -532,11 +534,11 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
              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++;
@@ -593,12 +595,12 @@ Int_t AliITStrackerSA::FindTracks(AliESDEvent* event){
            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++;
@@ -828,21 +830,24 @@ AliITStrackV2* AliITStrackerSA::FitTrack(AliITStrackSA* tr,Double_t *primaryVert
               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
@@ -929,7 +934,7 @@ void AliITStrackerSA::StoreTrack(AliITStrackV2 *t,AliESDEvent *event) const
 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];
@@ -1284,3 +1289,4 @@ void AliITStrackerSA::GetCoorErrors(AliITSRecPoint* cl,Float_t &sx,Float_t &sy,
   sz = TMath::Sqrt(cl->GetSigmaZ2());
 */
 }
+