]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSClusterFinderSPD.cxx
Implementation of single event reconstruction. Removal of the run loaders from the...
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderSPD.cxx
index 33e580fa870d0adbfd77802e158a8336f567b4b1..16a580589f891dfd57a5b1d73ac008e0ce36065b 100644 (file)
 //                                                                        //
 ////////////////////////////////////////////////////////////////////////////        
 
-#include "AliITS.h"
 #include "AliITSClusterFinderSPD.h"
+#include "AliITSDetTypeRec.h"
 #include "AliITSRawClusterSPD.h"
 #include "AliITSRecPoint.h"
 #include "AliITSdigitSPD.h"
-#include "AliITSresponseSPD.h"
 #include "AliITSsegmentationSPD.h"
+#include "AliITSgeom.h"
 #include "AliLog.h"
-#include "AliRun.h"
 
 //#define DEBUG
 
@@ -40,9 +39,8 @@ fMinNCells(0){
     // constructor
 }
 //----------------------------------------------------------
-AliITSClusterFinderSPD::AliITSClusterFinderSPD(AliITSsegmentation *seg,
-                                               AliITSresponse *res):
-AliITSClusterFinder(seg,res),
+AliITSClusterFinderSPD::AliITSClusterFinderSPD(AliITSDetTypeRec* dettyp):
+AliITSClusterFinder(dettyp),
 fDz(0.0),
 fDx(0.0),
 fMinNCells(0){
@@ -52,10 +50,10 @@ fMinNCells(0){
     SetDz();
 }
 //----------------------------------------------------------
-AliITSClusterFinderSPD::AliITSClusterFinderSPD(AliITSsegmentation *seg,
+AliITSClusterFinderSPD::AliITSClusterFinderSPD(AliITSDetTypeRec* dettyp,
                                                TClonesArray *digits,
                                                TClonesArray *recp):
-AliITSClusterFinder(seg,0),
+AliITSClusterFinder(dettyp,digits),
 fDz(0.0),
 fDx(0.0),
 fMinNCells(0){
@@ -66,21 +64,21 @@ fMinNCells(0){
     SetDx();
     SetDz();
 }
-
+/*
 //______________________________________________________________________
 AliITSClusterFinderSPD::AliITSClusterFinderSPD(const AliITSClusterFinderSPD &source) : AliITSClusterFinder(source) {
   // Copy constructor
   // Copies are not allowed. The method is protected to avoid misuse.
   Fatal("AliITSClusterFinderSPD","Copy constructor not allowed\n");
 }
-
+*/
 //______________________________________________________________________
-AliITSClusterFinderSPD& AliITSClusterFinderSPD::operator=(const AliITSClusterFinderSPD& /* source */){
+//AliITSClusterFinderSPD& AliITSClusterFinderSPD::operator=(const AliITSClusterFinderSPD& /* source */){
   // Assignment operator
   // Assignment is not allowed. The method is protected to avoid misuse.
-  Fatal("= operator","Assignment operator not allowed\n");
-  return *this;
-}
+  //Fatal("= operator","Assignment operator not allowed\n");
+  //return *this;
+//}
 //______________________________________________________________________
 void AliITSClusterFinderSPD::FindRawClusters(Int_t module){   
     // input of Cluster Finder
@@ -383,7 +381,7 @@ void AliITSClusterFinderSPD::ClusterFinder(Int_t ndigits,Int_t digx[],
                                                              (Double_t) ndzmin,
                                                              (Double_t) ndzmax,
                                                              0,GetModule());
-        fITS->AddCluster(0,clust);
+       fDetTypeRec->AddCluster(0,clust);
         delete clust;
     }//end loop on clusters   
     delete[] ifpad;
@@ -407,6 +405,10 @@ void AliITSClusterFinderSPD::DigitToPoint(Int_t nclus,
     Double_t l[3],xg,zg;
     const Double_t kconv = 1.0e-4; // micron -> cm
 
+    Int_t lay,lad,det;
+    fDetTypeRec->GetITSgeom()->GetModuleId(fModule,lay,lad,det);
+    Int_t ind=(lad-1)*fDetTypeRec->GetITSgeom()->GetNdetectors(lay)+(det-1);
+    Int_t lyr=(lay-1);
     // get rec points
     for (Int_t i=0; i<nclus; i++){
         l[0] = kconv*xcenter[i];
@@ -418,16 +420,14 @@ void AliITSClusterFinderSPD::DigitToPoint(Int_t nclus,
 
         Double_t sigma2x = (kconv*errxcenter[i]) * (kconv*errxcenter[i]);
         Double_t sigma2z = (kconv*errzcenter[i]) * (kconv*errzcenter[i]);
-        AliITSRecPoint rnew;
-        rnew.SetX(xg);
-        rnew.SetZ(zg);
-        rnew.SetQ(1.);
+
+       Int_t lab[4] = {tr1clus[i],tr2clus[i],tr3clus[i],ind};
+       Float_t hit[5] = {xg,zg,sigma2x,sigma2z,1.0};
+       Int_t info[3] = {0,0,lyr};
+
+        AliITSRecPoint rnew(lab,hit,info,kTRUE);
         rnew.SetdEdX(0.);
-        rnew.SetSigmaX2(sigma2x);
-        rnew.SetSigmaZ2(sigma2z);
-        rnew.fTracks[0]=tr1clus[i];
-        rnew.fTracks[1]=tr2clus[i];
-        rnew.fTracks[2]=tr3clus[i];
-        fITS->AddRecPoint(rnew); 
+
+       fDetTypeRec->AddRecPoint(rnew); 
     } // end for i
 }