]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSClusterFinderV2SSD.cxx
No need for libMUOBshuttle
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderV2SSD.cxx
index f9c121e3b20ec1aa8b8b6c14b322933c55443065..25b19c84887c447afab3c50b1ae165b8e77bbe91 100644 (file)
@@ -21,7 +21,8 @@
 
 
 #include "AliITSClusterFinderV2SSD.h"
-#include "AliITSclusterV2.h"
+#include "AliITSRecPoint.h"
+#include "AliITSgeomTGeo.h"
 #include "AliITSDetTypeRec.h"
 #include "AliRawReader.h"
 #include "AliITSRawStreamSSD.h"
 ClassImp(AliITSClusterFinderV2SSD)
 
 
-AliITSClusterFinderV2SSD::AliITSClusterFinderV2SSD(AliITSDetTypeRec* dettyp):AliITSClusterFinderV2(dettyp){
+AliITSClusterFinderV2SSD::AliITSClusterFinderV2SSD(AliITSDetTypeRec* dettyp):AliITSClusterFinderV2(dettyp),
+fLastSSD1(AliITSgeomTGeo::GetModuleIndex(6,1,1)-1),
+fYpitchSSD(0.0095),
+fHwSSD(3.65),
+fHlSSD(2.00),
+fTanP(0.0275),
+fTanN(0.0075){
 
   //Default constructor
 
-  fLastSSD1=fDetTypeRec->GetITSgeom()->GetModuleIndex(6,1,1)-1;
-  fYpitchSSD=0.0095;
-  fHwSSD=3.65;
-  fHlSSD=2.00;
-  fTanP=0.0275;
-  fTanN=0.0075;
-
-
-
 }
  
 
@@ -64,6 +62,8 @@ void AliITSClusterFinderV2SSD::FindClustersSSD(TClonesArray *alldigits) {
   TObjArray *digits = new TObjArray;
   for (Int_t i=0;i<smaxall; i++){
     AliITSdigitSSD *d=(AliITSdigitSSD*)alldigits->UncheckedAt(i);
+    Float_t q=d->GetSignal()/4.29;// temp. fix (for PID purposed - normalis. to be checked)
+    d->SetSignal(Int_t(q));
     if (d->GetSignal()<3) continue;
     digits->AddLast(d);
   }
@@ -269,7 +269,7 @@ void AliITSClusterFinderV2SSD::FindClustersSSD(AliITSRawStream* input,
 
       // when all data from a module was read, search for clusters
       if (prevFlag >= 0) {
-       clusters[iModule] = new TClonesArray("AliITSclusterV2");
+       clusters[iModule] = new TClonesArray("AliITSRecPoint");
        fModule = iModule;
        FindClustersSSD(&clusters1D[0][0], nClusters[0], 
                        &clusters1D[1][0], nClusters[1], clusters[iModule]);
@@ -318,6 +318,7 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
   Int_t cused2[3000];
   for (Int_t i=0;i<3000;i++) {cnegative[i]=0; cused1[i]=0;}
   for (Int_t i=0;i<3000;i++) {cpositive[i]=0; cused2[i]=0;}
+  for (Int_t i=0;i<30000;i++) {negativepair[i]=0; positivepair[i]=0;}
   static Short_t pairs[1000][1000];
   memset(pairs,0,sizeof(Short_t)*1000000);
 //   Short_t ** pairs = new Short_t*[1000];
@@ -408,22 +409,34 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
       CheckLabels2(milab);
       milab[3]=(((ip<<10) + j)<<10) + idet; // pos|neg|det
       Int_t info[3] = {pos[ip].GetNd(),neg[j].GetNd(),fNlayer[fModule]};
-      AliITSclusterV2 * cl2;
-      if(clusters) cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
+      AliITSRecPoint * cl2;
+      if(clusters){
+       cl2 = new (cl[ncl]) AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+       cl2->SetChargeRatio(ratio);     
+       cl2->SetType(1);
+       pairs[ip][j]=1;
+       if ((pos[ip].GetNd()+neg[j].GetNd())>6){ //multi cluster
+         cl2->SetType(2);
+         pairs[ip][j]=2;
+       }
+       cused1[ip]++;
+       cused2[j]++;
+       
+      }
       else{
-       cl2 = new AliITSclusterV2(milab,lp,info);
-       fDetTypeRec->AddClusterV2(*cl2);
+       cl2 = new AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);      
+       cl2->SetChargeRatio(ratio);     
+       cl2->SetType(1);
+       pairs[ip][j]=1;
+       if ((pos[ip].GetNd()+neg[j].GetNd())>6){ //multi cluster
+         cl2->SetType(2);
+         pairs[ip][j]=2;
+       }
+       cused1[ip]++;
+       cused2[j]++;
+       fDetTypeRec->AddRecPoint(*cl2);
       }
       ncl++;
-      cl2->SetChargeRatio(ratio);      
-      cl2->SetType(1);
-      pairs[ip][j]=1;
-      if ((pos[ip].GetNd()+neg[j].GetNd())>6){ //multi cluster
-       cl2->SetType(2);
-       pairs[ip][j]=2;
-      }
-      cused1[ip]++;
-      cused2[j]++;
     }
   }
     
@@ -465,25 +478,36 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
          milab[3]=(((ip<<10) + in)<<10) + idet; // pos|neg|det
          Int_t info[3] = {pos[ip].GetNd(),neg[in].GetNd(),fNlayer[fModule]};
 
-         AliITSclusterV2 * cl2;
-         if(clusters) cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
+         AliITSRecPoint * cl2;
+         if(clusters){
+           cl2 = new (cl[ncl]) AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+           cl2->SetChargeRatio(ratio);         
+           cl2->SetType(5);
+           pairs[ip][in] = 5;
+           if ((pos[ip].GetNd()+neg[in].GetNd())>6){ //multi cluster
+             cl2->SetType(6);
+             pairs[ip][in] = 6;
+           }       
+         }
          else{
-           cl2 = new AliITSclusterV2(milab,lp,info);
-           fDetTypeRec->AddClusterV2(*cl2);
+           cl2 = new AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+           cl2->SetChargeRatio(ratio);         
+           cl2->SetType(5);
+           pairs[ip][in] = 5;
+           if ((pos[ip].GetNd()+neg[in].GetNd())>6){ //multi cluster
+             cl2->SetType(6);
+             pairs[ip][in] = 6;
+           }
+           
+           fDetTypeRec->AddRecPoint(*cl2);
          }
          ncl++;
-         cl2->SetChargeRatio(ratio);           
-         cl2->SetType(5);
-         pairs[ip][in] = 5;
-         if ((pos[ip].GetNd()+neg[in].GetNd())>6){ //multi cluster
-           cl2->SetType(6);
-           pairs[ip][in] = 6;
-         }
        }
+       
        //
        // add second pair
        
-       //      if (!(cused1[ip2] || cused2[in])){  //
+      //       if (!(cused1[ip2] || cused2[in])){  //
        if (pairs[ip2][in]==100){
          Float_t yp=pos[ip2].GetY()*fYpitchSSD;
          Float_t yn=neg[in].GetY()*fYpitchSSD;
@@ -508,21 +532,31 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
          ratio = (pos[ip2].GetQ()-neg[in].GetQ())/(pos[ip2].GetQ()+neg[in].GetQ());
          milab[3]=(((ip2<<10) + in)<<10) + idet; // pos|neg|det
          Int_t info[3] = {pos[ip2].GetNd(),neg[in].GetNd(),fNlayer[fModule]};
-
-         AliITSclusterV2 * cl2;
-         if(clusters) cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
+         
+         AliITSRecPoint * cl2;
+         if(clusters){
+           cl2 = new (cl[ncl]) AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+           cl2->SetChargeRatio(ratio);         
+           cl2->SetType(5);
+           pairs[ip2][in] =5;
+           if ((pos[ip2].GetNd()+neg[in].GetNd())>6){ //multi cluster
+             cl2->SetType(6);
+             pairs[ip2][in] =6;
+           }
+         }
          else{
-           cl2 = new AliITSclusterV2(milab,lp,info);
-           fDetTypeRec->AddClusterV2(*cl2);
+           cl2 = new AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+           cl2->SetChargeRatio(ratio);         
+           cl2->SetType(5);
+           pairs[ip2][in] =5;
+           if ((pos[ip2].GetNd()+neg[in].GetNd())>6){ //multi cluster
+             cl2->SetType(6);
+             pairs[ip2][in] =6;
+           }
+
+           fDetTypeRec->AddRecPoint(*cl2);
          }
          ncl++;
-         cl2->SetChargeRatio(ratio);           
-         cl2->SetType(5);
-         pairs[ip2][in] =5;
-         if ((pos[ip2].GetNd()+neg[in].GetNd())>6){ //multi cluster
-           cl2->SetType(6);
-           pairs[ip2][in] =6;
-         }
        }       
        cused1[ip]++;
        cused1[ip2]++;
@@ -530,7 +564,7 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
       }
     }    
   }
-  
+
   //  
   for (Int_t jn=0;jn<nn;jn++){
     if (cused2[jn]) continue;
@@ -571,20 +605,31 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
          milab[3]=(((ip<<10) + jn)<<10) + idet; // pos|neg|det
          Int_t info[3] = {pos[ip].GetNd(),neg[jn].GetNd(),fNlayer[fModule]};
 
-         AliITSclusterV2 * cl2;
-         if(clusters) cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
+         AliITSRecPoint * cl2;
+         if(clusters){
+           cl2 = new (cl[ncl]) AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+           cl2->SetChargeRatio(ratio);         
+           cl2->SetType(7);
+           pairs[ip][jn] =7;
+           if ((pos[ip].GetNd()+neg[jn].GetNd())>6){ //multi cluster
+             cl2->SetType(8);
+             pairs[ip][jn]=8;
+           }
+
+         }
          else{
-           cl2 = new AliITSclusterV2(milab,lp,info);
-           fDetTypeRec->AddClusterV2(*cl2);
+           cl2 = new AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+           cl2->SetChargeRatio(ratio);         
+           cl2->SetType(7);
+           pairs[ip][jn] =7;
+           if ((pos[ip].GetNd()+neg[jn].GetNd())>6){ //multi cluster
+             cl2->SetType(8);
+             pairs[ip][jn]=8;
+           }
+
+           fDetTypeRec->AddRecPoint(*cl2);
          }
          ncl++;
-         cl2->SetChargeRatio(ratio);           
-         cl2->SetType(7);
-         pairs[ip][jn] =7;
-         if ((pos[ip].GetNd()+neg[jn].GetNd())>6){ //multi cluster
-           cl2->SetType(8);
-           pairs[ip][jn]=8;
-         }
        }
        //
        // add second pair
@@ -613,21 +658,32 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
          ratio = (pos[ip].GetQ()-neg[jn2].GetQ())/(pos[ip].GetQ()+neg[jn2].GetQ());
          milab[3]=(((ip<<10) + jn2)<<10) + idet; // pos|neg|det
          Int_t info[3] = {pos[ip].GetNd(),neg[jn2].GetNd(),fNlayer[fModule]};
-         AliITSclusterV2 * cl2;
-         if(clusters) cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
+         AliITSRecPoint * cl2;
+         if(clusters){
+           cl2 = new (cl[ncl]) AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+           cl2->SetChargeRatio(ratio);         
+           pairs[ip][jn2]=7;
+           cl2->SetType(7);
+           if ((pos[ip].GetNd()+neg[jn2].GetNd())>6){ //multi cluster
+             cl2->SetType(8);
+             pairs[ip][jn2]=8;
+           }
+           
+         }
          else{
-           cl2 = new AliITSclusterV2(milab,lp,info);
-           fDetTypeRec->AddClusterV2(*cl2);
+           cl2 = new AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+           cl2->SetChargeRatio(ratio);         
+           pairs[ip][jn2]=7;
+           cl2->SetType(7);
+           if ((pos[ip].GetNd()+neg[jn2].GetNd())>6){ //multi cluster
+             cl2->SetType(8);
+             pairs[ip][jn2]=8;
+           }
+           
+           fDetTypeRec->AddRecPoint(*cl2);
          }
 
          ncl++;
-         cl2->SetChargeRatio(ratio);           
-         pairs[ip][jn2]=7;
-         cl2->SetType(7);
-         if ((pos[ip].GetNd()+neg[jn2].GetNd())>6){ //multi cluster
-           cl2->SetType(8);
-           pairs[ip][jn2]=8;
-         }
        }
        cused1[ip]++;
        cused2[jn]++;
@@ -703,24 +759,34 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
       ratio = (pos[ip].GetQ()-neg[j].GetQ())/(pos[ip].GetQ()+neg[j].GetQ());
       milab[3]=(((ip<<10) + j)<<10) + idet; // pos|neg|det
       Int_t info[3] = {pos[ip].GetNd(),neg[j].GetNd(),fNlayer[fModule]};
-      AliITSclusterV2 * cl2;
-      if(clusters) cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
-      else{
-       cl2 = new AliITSclusterV2(milab,lp,info);
-           fDetTypeRec->AddClusterV2(*cl2);
+      AliITSRecPoint * cl2;
+      if(clusters){
+       cl2 = new (cl[ncl]) AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+       cl2->SetChargeRatio(ratio);     
+       cl2->SetType(10);
+       pairs[ip][j]=10;
+       if ((pos[ip].GetNd()+neg[j].GetNd())>6){ //multi cluster
+         cl2->SetType(11);
+         pairs[ip][j]=11;
+       }
+       cused1[ip]++;
+       cused2[j]++;      
       }
-      
-
+      else{
+       cl2 = new AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+       cl2->SetChargeRatio(ratio);     
+       cl2->SetType(10);
+       pairs[ip][j]=10;
+       if ((pos[ip].GetNd()+neg[j].GetNd())>6){ //multi cluster
+         cl2->SetType(11);
+         pairs[ip][j]=11;
+       }
+       cused1[ip]++;
+       cused2[j]++;      
+       
+       fDetTypeRec->AddRecPoint(*cl2);
+      }      
       ncl++;
-      cl2->SetChargeRatio(ratio);      
-      cl2->SetType(10);
-      pairs[ip][j]=10;
-      if ((pos[ip].GetNd()+neg[j].GetNd())>6){ //multi cluster
-       cl2->SetType(11);
-       pairs[ip][j]=11;
-      }
-      cused1[ip]++;
-      cused2[j]++;      
     }
 
   }
@@ -760,15 +826,19 @@ FindClustersSSD(Ali1Dcluster* neg, Int_t nn,
        CheckLabels2(milab);
        milab[3]=(((i<<10) + j)<<10) + idet; // pos|neg|det
        Int_t info[3] = {pos[i].GetNd(),neg[j].GetNd(),fNlayer[fModule]};
-       AliITSclusterV2 * cl2;
-       if(clusters) cl2 = new (cl[ncl]) AliITSclusterV2(milab,lp,info);
+       AliITSRecPoint * cl2;
+       if(clusters){
+         cl2 = new (cl[ncl]) AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+         cl2->SetChargeRatio(ratio);
+         cl2->SetType(100+cpositive[j]+cnegative[i]);    
+       }
        else{
-         cl2 = new AliITSclusterV2(milab,lp,info);
-         fDetTypeRec->AddClusterV2(*cl2);
+         cl2 = new AliITSRecPoint(fModule,fDetTypeRec->GetITSgeom(),milab,lp,info);
+         cl2->SetChargeRatio(ratio);
+         cl2->SetType(100+cpositive[j]+cnegative[i]);
+         fDetTypeRec->AddRecPoint(*cl2);
        }
        ncl++;
-       cl2->SetChargeRatio(ratio);
-       cl2->SetType(100+cpositive[j]+cnegative[i]);
        //cl2->SetType(0);
        /*
          if (pairs[i][j]<100){