]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/Rec/AliTPCtracker.cxx
RelVal: more retries w/pauses on VM + small fixes
[u/mrichter/AliRoot.git] / TPC / Rec / AliTPCtracker.cxx
index 2613004e6baa707a33321b43f6bbd4f373d71e36..8ac4f8cfabb4765cb0ed769cf97c7213bd4013c0 100644 (file)
@@ -302,6 +302,15 @@ Int_t AliTPCtracker::UpdateTrack(AliTPCseed * track, Int_t accept){
     //  new(larr[ihelix]) AliHelix(*track) ;    
     //}
   }
+  if (AliTPCReconstructor::StreamLevel()>5) {
+    Int_t event = (fEvent==NULL)? 0: fEvent->GetEventNumberInFile();
+    AliExternalTrackParam param(*track);
+    TTreeSRedirector &cstream = *fDebugStreamer;
+    cstream<<"Update"<<
+      "cl.="<<c<<
+      "track.="<<&param<<
+      "\n";
+  }
   track->SetNoCluster(0);
   return track->Update(c,chi2,i);
 }
@@ -330,7 +339,8 @@ Int_t AliTPCtracker::AcceptCluster(AliTPCseed * seed, AliTPCclusterMI * cluster)
   Double_t rdistance2  = rdistancey2+rdistancez2;
   //Int_t  accept =0;
   
-  if (AliTPCReconstructor::StreamLevel()>2 && seed->GetNumberOfClusters()>20) {
+  if (AliTPCReconstructor::StreamLevel()>2 && ( (fIteration>0)|| (seed->GetNumberOfClusters()>20))) {
+    //  if (AliTPCReconstructor::StreamLevel()>2 && seed->GetNumberOfClusters()>20) {
     Float_t rmsy2 = seed->GetCurrentSigmaY2();
     Float_t rmsz2 = seed->GetCurrentSigmaZ2();
     Float_t rmsy2p30 = seed->GetCMeanSigmaY2p30();
@@ -343,11 +353,13 @@ Int_t AliTPCtracker::AcceptCluster(AliTPCseed * seed, AliTPCclusterMI * cluster)
     param.GetXYZ(gcl.GetMatrixArray());
     cluster->GetGlobalXYZ(gclf);
     gcl[0]=gclf[0];    gcl[1]=gclf[1];    gcl[2]=gclf[2];
-
+    Int_t nclSeed=seed->GetNumberOfClusters();
     
     if (AliTPCReconstructor::StreamLevel()>2) {
     (*fDebugStreamer)<<"ErrParam"<<
+      "iter="<<fIteration<<
       "Cl.="<<cluster<<
+      "nclSeed="<<nclSeed<<
       "T.="<<&param<<
       "dy="<<dy<<
       "dz="<<dz<<
@@ -560,6 +572,7 @@ void AliTPCtracker::FillESD(const TObjArray* arr)
        iotrack.~AliESDtrack();
        new(&iotrack) AliESDtrack;
        iotrack.UpdateTrackParams(pt,AliESDtrack::kTPCin);
+        iotrack.SetTPCsignal(pt->GetdEdx(), pt->GetSDEDX(0), pt->GetNCDEDX(0)); 
        iotrack.SetTPCPoints(pt->GetPoints());
        iotrack.SetKinkIndexes(pt->GetKinkIndexes());
        iotrack.SetV0Indexes(pt->GetV0Indexes());
@@ -574,6 +587,7 @@ void AliTPCtracker::FillESD(const TObjArray* arr)
        iotrack.~AliESDtrack();
        new(&iotrack) AliESDtrack;
        iotrack.UpdateTrackParams(pt,AliESDtrack::kTPCin);
+        iotrack.SetTPCsignal(pt->GetdEdx(), pt->GetSDEDX(0), pt->GetNCDEDX(0)); 
        iotrack.SetTPCPoints(pt->GetPoints());
        //iotrack.SetTPCindex(i);
        iotrack.SetKinkIndexes(pt->GetKinkIndexes());
@@ -593,6 +607,7 @@ void AliTPCtracker::FillESD(const TObjArray* arr)
          iotrack.~AliESDtrack();
          new(&iotrack) AliESDtrack;
          iotrack.UpdateTrackParams(pt,AliESDtrack::kTPCin);    
+         iotrack.SetTPCsignal(pt->GetdEdx(), pt->GetSDEDX(0), pt->GetNCDEDX(0)); 
          //iotrack.SetTPCindex(i);
          iotrack.SetTPCPoints(pt->GetPoints());
          iotrack.SetKinkIndexes(pt->GetKinkIndexes());
@@ -613,6 +628,7 @@ void AliTPCtracker::FillESD(const TObjArray* arr)
        iotrack.~AliESDtrack();
        new(&iotrack) AliESDtrack;
        iotrack.UpdateTrackParams(pt,AliESDtrack::kTPCin);      
+        iotrack.SetTPCsignal(pt->GetdEdx(), pt->GetSDEDX(0), pt->GetNCDEDX(0)); 
        iotrack.SetTPCPoints(pt->GetPoints());
        iotrack.SetKinkIndexes(pt->GetKinkIndexes());
        iotrack.SetV0Indexes(pt->GetV0Indexes());
@@ -631,6 +647,7 @@ void AliTPCtracker::FillESD(const TObjArray* arr)
          iotrack.~AliESDtrack();
          new(&iotrack) AliESDtrack;
          iotrack.UpdateTrackParams(pt,AliESDtrack::kTPCin);    
+         iotrack.SetTPCsignal(pt->GetdEdx(), pt->GetSDEDX(0), pt->GetNCDEDX(0)); 
          iotrack.SetTPCPoints(pt->GetPoints());
          iotrack.SetKinkIndexes(pt->GetKinkIndexes());
          iotrack.SetV0Indexes(pt->GetV0Indexes());
@@ -653,6 +670,7 @@ void AliTPCtracker::FillESD(const TObjArray* arr)
        iotrack.~AliESDtrack();
        new(&iotrack) AliESDtrack;
        iotrack.UpdateTrackParams(pt,AliESDtrack::kTPCin);      
+        iotrack.SetTPCsignal(pt->GetdEdx(), pt->GetSDEDX(0), pt->GetNCDEDX(0)); 
        iotrack.SetTPCPoints(pt->GetPoints());
        iotrack.SetKinkIndexes(pt->GetKinkIndexes());
        iotrack.SetV0Indexes(pt->GetV0Indexes());
@@ -1435,7 +1453,7 @@ void   AliTPCtracker::Transform(AliTPCclusterMI * cluster){
     return;
   }
   transform->SetCurrentRecoParam((AliTPCRecoParam*)AliTPCReconstructor::GetRecoParam());
-  Double_t x[3]={cluster->GetRow(),cluster->GetPad(),cluster->GetTimeBin()};
+  Double_t x[3]={static_cast<Double_t>(cluster->GetRow()),static_cast<Double_t>(cluster->GetPad()),static_cast<Double_t>(cluster->GetTimeBin())};
   Int_t i[1]={cluster->GetDetector()};
   transform->Transform(x,i,0,1);  
   //  if (cluster->GetDetector()%36>17){
@@ -1596,7 +1614,7 @@ void  AliTPCtracker::ApplyTailCancellation(){
               qMaxArray[icl0]+=ionTailMax;
 
               // Dump some info for debugging while clusters are being corrected
-              if (AliTPCReconstructor::StreamLevel()==1) {
+              if (AliTPCReconstructor::StreamLevel()>2) {
                 TTreeSRedirector &cstream = *fDebugStreamer;
                 if (gRandom->Rndm() > 0.999){
                   cstream<<"IonTail"<<
@@ -1615,7 +1633,7 @@ void  AliTPCtracker::ApplyTailCancellation(){
             cl0->SetMax(TMath::Nint(Float_t(cl0->GetMax())+qMaxArray[icl0]));
           
             // Dump some info for debugging after clusters are corrected 
-            if (AliTPCReconstructor::StreamLevel()==1) {
+            if (AliTPCReconstructor::StreamLevel()>2) {
               TTreeSRedirector &cstream = *fDebugStreamer;
               if (gRandom->Rndm() > 0.999){
               cstream<<"IonTailCorrected"<<
@@ -1645,7 +1663,7 @@ void  AliTPCtracker::ApplyTailCancellation(){
   }// end of side loop
 }
 //_____________________________________________________________________________
-void AliTPCtracker::GetTailValue(const Float_t ampfactor,Double_t &ionTailMax, Double_t &ionTailTotal,TGraphErrors **graphRes,Float_t *indexAmpGraphs,AliTPCclusterMI *cl0,AliTPCclusterMI *cl1){
+void AliTPCtracker::GetTailValue(Float_t ampfactor,Double_t &ionTailMax, Double_t &ionTailTotal,TGraphErrors **graphRes,Float_t *indexAmpGraphs,AliTPCclusterMI *cl0,AliTPCclusterMI *cl1){
 
   //
   // Function in order to calculate the amount of the correction to be added for a given cluster, return values are ionTailTaoltal and ionTailMax
@@ -2983,8 +3001,9 @@ Int_t AliTPCtracker::RefitInward(AliESDEvent *event)
   PropagateForward2(fSeeds);
   RemoveUsed2(fSeeds,0.4,0.4,20);
 
-  TObjArray arraySeed(fSeeds->GetEntries());
-  for (Int_t i=0;i<fSeeds->GetEntries();i++) {
+  Int_t entriesSeed=fSeeds->GetEntries();
+  TObjArray arraySeed(entriesSeed);
+  for (Int_t i=0;i<entriesSeed;i++) {
     arraySeed.AddAt(fSeeds->At(i),i);    
   }
   SignShared(&arraySeed);
@@ -3250,6 +3269,7 @@ void AliTPCtracker::ReadSeeds(const AliESDEvent *const event, Int_t direction)
 
     }
     if (((status&AliESDtrack::kITSout)==0)&&(direction==1)) seed->ResetCovariance(10.); 
+    //RS    if ( direction ==2 &&(status & AliESDtrack::kTRDrefit) == 0 ) seed->ResetCovariance(10.);
     if ( direction ==2 &&(status & AliESDtrack::kTRDrefit) == 0 ) seed->ResetCovariance(10.);
     //if ( direction ==2 && ((status & AliESDtrack::kTPCout) == 0) ) {
     //  fSeeds->AddAt(0,i);
@@ -5382,7 +5402,7 @@ void  AliTPCtracker::FindKinks(TObjArray * array, AliESDEvent *esd)
       kink->SetDaughter(paramd);
       kink->Update();
 
-      Float_t x[3] = { kink->GetPosition()[0],kink->GetPosition()[1],kink->GetPosition()[2]};
+      Float_t x[3] = { static_cast<Float_t>(kink->GetPosition()[0]),static_cast<Float_t>(kink->GetPosition()[1]),static_cast<Float_t>(kink->GetPosition()[2])};
       Int_t index[4];
       fkParam->Transform0to1(x,index);
       fkParam->Transform1to2(x,index);
@@ -6104,7 +6124,7 @@ void  AliTPCtracker::FindKinks(TObjArray * array, AliESDEvent *esd)
       kink->SetDaughter(paramd);
       kink->Update();
 
-      Float_t x[3] = { kink->GetPosition()[0],kink->GetPosition()[1],kink->GetPosition()[2]};
+      Float_t x[3] = { static_cast<Float_t>(kink->GetPosition()[0]),static_cast<Float_t>(kink->GetPosition()[1]),static_cast<Float_t>(kink->GetPosition()[2])};
       Int_t index[4];
       fkParam->Transform0to1(x,index);
       fkParam->Transform1to2(x,index);