]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TPC/AliTPCtrackerMI.cxx
Removing semaphore .done files.
[u/mrichter/AliRoot.git] / TPC / AliTPCtrackerMI.cxx
index 1d58b63846cc6cbda840530b0cdcc5258b338a2a..156daba45dc3d3f84842c419317ae1181c5c7030 100644 (file)
@@ -88,7 +88,33 @@ Double_t AliTPCFastMath::FastAsin(Double_t x){
   Int_t index = int(x*10000);
   return -(fgFastAsin[2*index]+(x*10000.-index)*fgFastAsin[2*index+1]);
 }
-
+//__________________________________________________________________
+AliTPCtrackerMI::AliTPCtrackerMI()
+                :AliTracker(),
+                fkNIS(0),
+                fInnerSec(0),
+                fkNOS(0),
+                fOuterSec(0),
+                fN(0),
+                fSectors(0),
+                fInput(0),
+                fOutput(0),
+                fSeedTree(0),
+                fTreeDebug(0),
+                fEvent(0),
+                fDebug(0),
+                fNewIO(kFALSE),
+                fNtracks(0),
+                fSeeds(0),
+                fIteration(0),
+                fParam(0),
+                fDebugStreamer(0)
+{
+  //
+  // default constructor
+  //
+}
+//_____________________________________________________________________
 
 
 
@@ -214,7 +240,25 @@ Int_t AliTPCtrackerMI::AcceptCluster(AliTPCseed * seed, AliTPCclusterMI * cluste
 
 //_____________________________________________________________________________
 AliTPCtrackerMI::AliTPCtrackerMI(const AliTPCParam *par): 
-AliTracker(), fkNIS(par->GetNInnerSector()/2), fkNOS(par->GetNOuterSector()/2)
+AliTracker(), 
+                fkNIS(par->GetNInnerSector()/2),
+                fInnerSec(0),
+                fkNOS(par->GetNOuterSector()/2),
+                fOuterSec(0),
+                fN(0),
+                fSectors(0),
+                fInput(0),
+                fOutput(0),
+                fSeedTree(0),
+                fTreeDebug(0),
+                fEvent(0),
+                fDebug(0),
+                fNewIO(0),
+                fNtracks(0),
+                fSeeds(0),
+                fIteration(0),
+                fParam(0),
+                fDebugStreamer(0)
 {
   //---------------------------------------------------------------------
   // The main TPC tracker constructor
@@ -226,10 +270,6 @@ AliTracker(), fkNIS(par->GetNInnerSector()/2), fkNOS(par->GetNOuterSector()/2)
   for (i=0; i<fkNIS; i++) fInnerSec[i].Setup(par,0);
   for (i=0; i<fkNOS; i++) fOuterSec[i].Setup(par,1);
 
-  fN=0;  fSectors=0;
-
-  fSeeds=0;
-  fNtracks = 0;
   fParam = par;  
   Int_t nrowlow = par->GetNRowLow();
   Int_t nrowup = par->GetNRowUp();
@@ -247,26 +287,35 @@ AliTracker(), fkNIS(par->GetNInnerSector()/2), fkNOS(par->GetNOuterSector()/2)
     fPadLength[i+nrowlow] = par->GetPadPitchLength(60,i);
     fYMax[i+nrowlow]      = fXRow[i+nrowlow]*TMath::Tan(0.5*par->GetOuterAngle());
   }
-  fSeeds=0;
-  //
-  fInput    = 0;
-  fOutput   = 0;
-  fSeedTree = 0;
-  fTreeDebug =0;
-  fNewIO     =0;
-  fDebug     =0;
-  fEvent     =0;
+
   fDebugStreamer = new TTreeSRedirector("TPCdebug.root");
 }
 //________________________________________________________________________
 AliTPCtrackerMI::AliTPCtrackerMI(const AliTPCtrackerMI &t):
   AliTracker(t),
-  fkNIS(t.fkNIS),
-  fkNOS(t.fkNOS)
+                fkNIS(t.fkNIS),
+                fInnerSec(0),
+                fkNOS(t.fkNOS),
+                fOuterSec(0),
+                fN(0),
+                fSectors(0),
+                fInput(0),
+                fOutput(0),
+                fSeedTree(0),
+                fTreeDebug(0),
+                fEvent(0),
+                fDebug(0),
+                fNewIO(kFALSE),
+                fNtracks(0),
+                fSeeds(0),
+                fIteration(0),
+                fParam(0),
+                fDebugStreamer(0)
 {
   //------------------------------------
   // dummy copy constructor
   //------------------------------------------------------------------
+  fOutput=t.fOutput;
 }
 AliTPCtrackerMI & AliTPCtrackerMI::operator=(const AliTPCtrackerMI& /*r*/){
   //------------------------------
@@ -1200,9 +1249,11 @@ void   AliTPCtrackerMI::Transform(AliCluster * cluster){
   TGeoHMatrix  *mat = fParam->GetClusterMatrix(cluster->GetDetector());
   //TGeoHMatrix  mat;
   Double_t pos[3]= {cluster->GetX(),cluster->GetY(),cluster->GetZ()};
-  Double_t posC[3];
-  //mat.LocalToMaster(pos,posC);
-  mat->LocalToMaster(pos,posC);
+  Double_t posC[3]={cluster->GetX(),cluster->GetY(),cluster->GetZ()};
+  if (mat) mat->LocalToMaster(pos,posC);
+  else{
+    // chack Loading of Geo matrices from GeoManager - TEMPORARY FIX
+  }
   cluster->SetX(posC[0]);
   cluster->SetY(posC[1]);
   cluster->SetZ(posC[2]);
@@ -4864,23 +4915,26 @@ void  AliTPCtrackerMI::FindV0s(TObjArray * array, AliESD *esd)
       if (pointAngle<cpointAngle) continue;
       //
       Bool_t isGamma = kFALSE;
-      vertex.SetP(*track0); //track0 - plus
-      vertex.SetM(*track1); //track1 - minus
+      vertex.SetParamP(*track0); //track0 - plus
+      vertex.SetParamN(*track1); //track1 - minus
       vertex.Update(fprimvertex);
       if (track0->TPCrPID(0)>0.3&&track1->TPCrPID(0)>0.3&&vertex.GetAnglep()[2]<0.15) isGamma=kTRUE;              // gamma conversion candidate
-      Double_t pointAngle2 = vertex.GetPointAngle();
+      Double_t pointAngle2 = vertex.GetV0CosineOfPointingAngle();
       //continue;
-      if (vertex.GetPointAngle()<cpointAngle && (!isGamma)) continue; // point angle cut
-      if (vertex.GetDist2()>2&&(!isGamma)) continue;         // point angle cut
+      if (vertex.GetV0CosineOfPointingAngle()<cpointAngle && (!isGamma)) continue;// point angle cut
+      //Bo:      if (vertex.GetDist2()>2&&(!isGamma)) continue;      // point angle cut
+      if (vertex.GetDcaV0Daughters()>2&&(!isGamma)) continue;//Bo:   // point angle cut
       Float_t sigmae     = 0.15*0.15;
       if (vertex.GetRr()<80) 
        sigmae += (sdcar[i]*sdcar[i]+sdcar[j]*sdcar[j])*(1.-vertex.GetRr()/80.)*(1.-vertex.GetRr()/80.);
       sigmae+= TMath::Sqrt(sigmae);
-      if (vertex.GetDist2()/sigmae>3.&&(!isGamma)) continue; 
+      //Bo:      if (vertex.GetDist2()/sigmae>3.&&(!isGamma)) continue; 
+      if (vertex.GetDcaV0Daughters()/sigmae>3.&&(!isGamma)) continue; 
       Float_t densb0=0,densb1=0,densa0=0,densa1=0;
       Int_t row0 = GetRowNumber(vertex.GetRr());
       if (row0>15){
-       if (vertex.GetDist2()>0.2) continue;             
+       //Bo:   if (vertex.GetDist2()>0.2) continue;             
+       if (vertex.GetDcaV0Daughters()>0.2) continue;             
        densb0     = track0->Density2(0,row0-5);          
        densb1     = track1->Density2(0,row0-5);         
        if (densb0>0.3|| densb1>0.3) continue;            //clusters before vertex
@@ -4893,15 +4947,16 @@ void  AliTPCtrackerMI::FindV0s(TObjArray * array, AliESD *esd)
        densa1     = track1->Density2(0,40);  //cluster density
        if ((vertex.GetRr()<80&&densa0+densa1<1.)&&(!isGamma)) continue;
       }
-      vertex.SetLab(0,track0->GetLabel());
-      vertex.SetLab(1,track1->GetLabel());
+//Bo:        vertex.SetLab(0,track0->GetLabel());
+//Bo:        vertex.SetLab(1,track1->GetLabel());
       vertex.SetChi2After((densa0+densa1)*0.5);
       vertex.SetChi2Before((densb0+densb1)*0.5);
       vertex.SetIndex(0,i);
       vertex.SetIndex(1,j);
-      vertex.SetStatus(1); // TPC v0 candidate
-      vertex.SetRp(track0->TPCrPIDs());
-      vertex.SetRm(track1->TPCrPIDs());
+//Bo:      vertex.SetStatus(1); // TPC v0 candidate
+      vertex.SetOnFlyStatus(2);//Bo: // TPC v0 candidate
+//Bo:        vertex.SetRp(track0->TPCrPIDs());
+//Bo:        vertex.SetRm(track1->TPCrPIDs());
       tpcv0s->AddLast(new AliESDv0(vertex));      
       ncandidates++;
       {
@@ -4963,12 +5018,17 @@ void  AliTPCtrackerMI::FindV0s(TObjArray * array, AliESD *esd)
   for (Int_t i=0;i<ncandidates;i++){
     quality[i]     = 0; 
     AliESDv0 *v0 = (AliESDv0*)tpcv0s->At(i);
-    quality[i]     = 1./(1.00001-v0->GetPointAngle());   //base point angle
+    quality[i]     = 1./(1.00001-v0->GetV0CosineOfPointingAngle());   //base point angle
     // quality[i]    /= (0.5+v0->GetDist2());  
     // quality[i]    *= v0->GetChi2After();               //density factor
-    Double_t minpulldca = TMath::Min(2.+pulldca[v0->GetIndex(0)],(2.+pulldca[v0->GetIndex(1)]) );     //pull
+
     Int_t index0 = v0->GetIndex(0);
     Int_t index1 = v0->GetIndex(1);
+    //Bo:    Double_t minpulldca = TMath::Min(2.+pulldca[v0->GetIndex(0)],(2.+pulldca[v0->GetIndex(1)]) );     //pull
+    Double_t minpulldca = TMath::Min(2.+pulldca[index0],(2.+pulldca[index1]) );//Bo:
+
+
+
     AliTPCseed * track0 = (AliTPCseed*)array->At(index0);
     AliTPCseed * track1 = (AliTPCseed*)array->At(index1);
     if (track0->TPCrPID(0)>0.3&&track1->TPCrPID(0)>0.3&&v0->GetAnglep()[2]<0.15) quality[i]+=1000000;              // gamma conversion candidate
@@ -5003,9 +5063,9 @@ void  AliTPCtrackerMI::FindV0s(TObjArray * array, AliESD *esd)
     //
     AliESDv0 * v02 = v0;
     if (accept){
-      v0->SetOrder(0,order0);
-      v0->SetOrder(1,order1);
-      v0->SetOrder(1,order0+order1);     
+      //Bo:      v0->SetOrder(0,order0);
+      //Bo:      v0->SetOrder(1,order1);
+      //Bo:      v0->SetOrder(1,order0+order1);     
       v0->SetOnFlyStatus(kTRUE);
       Int_t index = esd->AddV0(v0);
       v02 = esd->GetV0(index);
@@ -6420,14 +6480,18 @@ void AliTPCtrackerMI::AliTPCSector::Setup(const AliTPCParam *par, Int_t f) {
   } 
 }
 
-AliTPCtrackerMI::AliTPCRow::AliTPCRow() {
+AliTPCtrackerMI::AliTPCRow::AliTPCRow():
+  fDeadZone(0.),
+  fClusters1(0),
+  fN1(0),
+  fClusters2(0),
+  fN2(0),
+  fN(0),
+  fX(0.)
+{
   //
   // default constructor
-  fN=0;
-  fN1=0;
-  fN2=0;
-  fClusters1=0;
-  fClusters2=0;
+  //
 }
 
 AliTPCtrackerMI::AliTPCRow::~AliTPCRow(){