]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
make tracker work with both the sorted and unsorted clusterfinder(Kenneth)
authorrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 24 Aug 2007 05:57:23 +0000 (05:57 +0000)
committerrichterm <richterm@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 24 Aug 2007 05:57:23 +0000 (05:57 +0000)
HLT/TPCLib/AliHLTTPCClusterFinder.cxx
HLT/TPCLib/AliHLTTPCClusterFinder.h
HLT/TPCLib/AliHLTTPCPadArray.cxx

index e5cca4c6ae83d86626098197a5a5526e882a843b..a33c4c5411ce3906a42300d6517a71d621ebddbe 100644 (file)
@@ -583,6 +583,9 @@ void AliHLTTPCClusterFinder::WriteClusters(Int_t nclusters,AliClusterData *list)
   
   for(int j=0; j<nclusters; j++)
     {
+
+
+
       if(!list[j].fFlags) continue; //discard single pad clusters
       if(list[j].fTotalCharge < fThreshold) continue; //noise cluster
 
@@ -593,10 +596,10 @@ void AliHLTTPCClusterFinder::WriteClusters(Int_t nclusters,AliClusterData *list)
       Float_t ftime2=fZErr*fZErr;  //fixed given error
 
 
+#if UNSORTED
+      fCurrentRow=list[j].fRow;
+#endif
    
-     
-
-
       if(fCalcerr) { //calc the errors, otherwice take the fixed error 
        Int_t patch = AliHLTTPCTransform::GetPatch(fCurrentRow);
        UInt_t q2=list[j].fTotalCharge*list[j].fTotalCharge;
@@ -741,9 +744,20 @@ void AliHLTTPCClusterFinder::ReadDataUnsorted(void* ptr,unsigned long size){
 void AliHLTTPCClusterFinder::FindClusters(){
   fPadArray->FindClusterCandidates();
   fPadArray->FindClusters(fMatch);
-  AliHLTTPCClusters * clusterlist = new AliHLTTPCClusters[fPadArray->fClusters.size()]; //Clusterlist
+
+  AliClusterData * clusterlist = new AliClusterData[fPadArray->fClusters.size()]; //Clusterlist
   for(int i=0;i<fPadArray->fClusters.size();i++){
-    clusterlist[i] = fPadArray->fClusters[i];
+    clusterlist[i].fTotalCharge = fPadArray->fClusters[i].fTotalCharge;
+    clusterlist[i].fPad = fPadArray->fClusters[i].fPad;
+    clusterlist[i].fPad2 = fPadArray->fClusters[i].fPad2;
+    clusterlist[i].fTime = fPadArray->fClusters[i].fTime;
+    clusterlist[i].fTime2 = fPadArray->fClusters[i].fTime2;
+    clusterlist[i].fMean = fPadArray->fClusters[i].fMean;
+    clusterlist[i].fFlags = fPadArray->fClusters[i].fFlags;
+    clusterlist[i].fChargeFalling = fPadArray->fClusters[i].fChargeFalling;
+    clusterlist[i].fLastCharge = fPadArray->fClusters[i].fLastCharge;
+    clusterlist[i].fLastMergedPad = fPadArray->fClusters[i].fLastMergedPad;
+    clusterlist[i].fRow = fPadArray->fClusters[i].fRowNumber;
   }
   WriteClusters(fPadArray->fClusters.size(),clusterlist);
   delete [] clusterlist;
@@ -765,6 +779,7 @@ void AliHLTTPCClusterFinder::WriteClusters(Int_t nclusters,AliHLTTPCClusters *li
       Float_t ftime =(Float_t)list[j].fTime / list[j].fTotalCharge;
       Float_t ftime2=fZErr*fZErr;  //fixed given error
 
+
       if(fCalcerr) { //calc the errors, otherwice take the fixed error 
        Int_t patch = AliHLTTPCTransform::GetPatch(fCurrentRow);
        UInt_t q2=list[j].fTotalCharge*list[j].fTotalCharge;
index d1557cdddba02b3aefe47c04a7f18ea7dfed8efd..c55ad056404b99fa8e6f9b061778666ad2d4859d 100644 (file)
@@ -20,6 +20,8 @@
 // or
 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
 
+#define UNSORTED 0
+
 #include "AliHLTLogging.h"
 #include "AliHLTTPCPadArray.h"
 class AliHLTTPCSpacePointData;
@@ -40,6 +42,7 @@ class AliHLTTPCClusterFinder : public AliHLTLogging {
     UInt_t fChargeFalling; //for deconvolution
     UInt_t fLastCharge;    //for deconvolution
     UInt_t fLastMergedPad; //dont merge twice per pad
+    Int_t fRow;             //row value
   };
   typedef struct AliClusterData AliClusterData; //!
 
index c24c78178eac0f08d8129256fadbb84a3ed62428..8fe6341f96292a84443969365fdda472afc4aa01 100644 (file)
@@ -153,27 +153,32 @@ Int_t AliHLTTPCPadArray::ReadData(){
     while(fDigitReader->Next()){
       fRowPadVector[fDigitReader->GetRow()-fFirstRow][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
     }
-    
+    break;
   case 1:
     while(fDigitReader->Next()){
       fRowPadVector[fDigitReader->GetRow()-fFirstRow][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());      
     }
+    break;
   case 2:
     while(fDigitReader->Next()){
       fRowPadVector[fDigitReader->GetRow()][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
     }
+    break;
   case 3:
     while(fDigitReader->Next()){
       fRowPadVector[fDigitReader->GetRow()-27][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
     }
+    break;
   case 4:
     while(fDigitReader->Next()){
       fRowPadVector[fDigitReader->GetRow()-54][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
     }
+    break;
   case 5:
     while(fDigitReader->Next()){
       fRowPadVector[fDigitReader->GetRow()-76][fDigitReader->GetPad()]->SetDataSignal(fDigitReader->GetTime(),fDigitReader->GetSignal());
     }
+    break;
   }
   return 0;
 }
@@ -280,7 +285,7 @@ void AliHLTTPCPadArray::FindClusters(Int_t match){
            }
            else{
              //Code to look for tails, TODO insert flag.
-             UInt_t meanTime=tmpCluster.fMean;
+             /* UInt_t meanTime=tmpCluster.fMean;
              if(pad>0){
                AliHLTTPCPad *tmpBefore=fRowPadVector[row][pad-1];
                //checking the fMean -1 timebin for single timebin value in the pad before the cluster
@@ -352,11 +357,31 @@ void AliHLTTPCPadArray::FindClusters(Int_t match){
                  } 
                }
              }
-             tmpCluster.fTime= tmpCluster.fTime/tmpCluster.fTotalCharge;
+             */
+             //              tmpCluster.fTime= tmpCluster.fTime/tmpCluster.fTotalCharge;
              totalChargeOfPreviousCandidate=0;
              clusterChargeIsFalling=0;
-             tmpCluster.fRowNumber=row;
              tmpCluster.fFirstPad=pad;
+             switch (fPatch){
+             case 0:
+               tmpCluster.fRowNumber=row;
+               break;
+             case 1:
+               tmpCluster.fRowNumber=row+30;
+               break;
+             case 2:
+               tmpCluster.fRowNumber=row+63;
+               break;
+             case 3:
+               tmpCluster.fRowNumber=row+90;
+               break;
+             case 4:
+               tmpCluster.fRowNumber=row+117;
+               break;
+             case 5:
+               tmpCluster.fRowNumber=row+139;
+               break;
+             }
 
              fClusters.push_back(tmpCluster);
            }