]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSClusterFinderSSD.h
Correct material budget for tracks stopped at TRD (S.Arcelli)
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderSSD.h
index 77d9960a894eda1bff98994d0553f727de6a1d85..2c0157d414153891921a519b7857eb846587c3d3 100644 (file)
@@ -3,46 +3,58 @@
 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
-#include <TMath.h>
+//#include <TMath.h>
 #include "AliITSClusterFinder.h"
-#include "AliITSsegmentationSSD.h"
+//#include "AliITSsegmentationSSD.h"
 
 class TArrayI;
 class AliITSclusterSSD;
 class AliITSpackageSSD;
+class AliITSsegmentation;
+class AliITSsegmentationSSD;
+class AliITSresponse;
+class AliITSresponseSSD;
 
 class AliITSClusterFinderSSD: public AliITSClusterFinder{
- public:
 public:
     AliITSClusterFinderSSD();
+    AliITSClusterFinderSSD(AliITSsegmentation *seg,AliITSresponse *resp);
     AliITSClusterFinderSSD(AliITSsegmentation *seg, TClonesArray *digits);
     virtual ~AliITSClusterFinderSSD();
-    void FindRawClusters(Int_t module);    
+    void FindRawClusters(Int_t module);
 
- protected:
+  protected:
+    virtual AliITSresponseSSD* GetResp()const{
+        return (AliITSresponseSSD*) GetResponse();}//Return Response
+    //Returns fSegmentation
+    virtual AliITSsegmentationSSD* GetSeg()const{
+        return (AliITSsegmentationSSD*)GetSegmentation();} 
     void      InitReconstruction();
-    Bool_t    CreateNewRecPoint(Float_t P, Float_t dP, Float_t N, Float_t dN,
-                               Float_t Sig,Float_t dSig,
-                               AliITSclusterSSD *clusterP,
-                               AliITSclusterSSD *clusterN,Stat_t prob);
+    Bool_t    CreateNewRecPoint(Double_t P,Double_t dP,Double_t N,Double_t dN,
+                                Double_t Sig,Double_t dSig,
+                                AliITSclusterSSD *clusterP,
+                                AliITSclusterSSD *clusterN,Stat_t prob);
     AliITSclusterSSD* GetPSideCluster(Int_t idx);
     AliITSclusterSSD* GetNSideCluster(Int_t idx);
-    AliITSclusterSSD* GetCluster(Int_t idx, Bool_t side);
-    void      FindNeighbouringDigits();
-    void      SeparateOverlappedClusters();
-    void      SplitCluster(TArrayI *list,Int_t nsplits,Int_t indx,Bool_t side);
-    Int_t     SortDigitsP(Int_t start, Int_t end);
-    Int_t     SortDigitsN(Int_t start, Int_t end);
-    void      FillDigitsIndex();
-    void      SortDigits();
-    void      FillClIndexArrays(Int_t* arrayP, Int_t *arrayN) const;
-    void      SortClusters(Int_t* arrayP, Int_t *arrayN);
-    Int_t     SortClustersP(Int_t start, Int_t end,Int_t *array);
-    Int_t     SortClustersN(Int_t start, Int_t end,Int_t *array);
-    void      ClustersToPackages();
-    Int_t     GetDiff(Float_t *retx, Float_t *rety) const {return 0;}
-    void      CalcStepFactor(Float_t Psteo, Float_t Nsteo );
-    Bool_t GetCrossing(Float_t &x, Float_t &z); //x, y of strips crossing
-    void   GetCrossingError(Float_t& dp, Float_t& dn);//x, y of strips crossing err.
+    AliITSclusterSSD* GetCluster(Int_t idx, Bool_t side){
+    return (side) ? GetPSideCluster(idx) : GetNSideCluster(idx);};
+    void   FindNeighbouringDigits();
+    void   SeparateOverlappedClusters();
+    void   SplitCluster(TArrayI *list,Int_t nsplits,Int_t indx,Bool_t side);
+    Int_t  SortDigitsP(Int_t start, Int_t end);
+    Int_t  SortDigitsN(Int_t start, Int_t end);
+    void   FillDigitsIndex();
+    void   SortDigits();
+    void   FillClIndexArrays(Int_t* arrayP, Int_t *arrayN) const;
+    void   SortClusters(Int_t* arrayP, Int_t *arrayN);
+    Int_t  SortClustersP(Int_t start, Int_t end,Int_t *array);
+    Int_t  SortClustersN(Int_t start, Int_t end,Int_t *array);
+    void   ClustersToPackages();
+    Int_t  GetDiff(Double_t */*retx*/, Double_t */*rety*/) const {return 0;}
+    void   CalcStepFactor(Double_t Psteo, Double_t Nsteo );
+    Bool_t GetCrossing(Double_t &x, Double_t &z); //x, y of strips crossing
+    //x, y of strips crossing err.
+    void   GetCrossingError(Double_t& dp, Double_t& dn);
 
     // Data memebers
     AliITS          *fITS;           //!Pointer to AliITS object
@@ -57,19 +69,19 @@ class AliITSClusterFinderSSD: public AliITSClusterFinder{
     TArrayI         *fDigitsIndexN;  //!Digits on N side
     Int_t            fNDigitsN;      //!Number of Digits on N side
 
-    Float_t          fPitch;         //!Strip pitch
-    Float_t          fTanP;          //!Pside stereo angle tangent
-    Float_t          fTanN;          //!Nside stereo angle tangent
+    Double_t          fPitch;         //!Strip pitch
+    Double_t          fTanP;          //!Pside stereo angle tangent
+    Double_t          fTanN;          //!Nside stereo angle tangent
 
 /*************************************************/
 /**  parameters for reconstruction            ****/
 /**  to be tune when slow simulation raliable ****/
 /*************************************************/
 
-    //Float_t fAlpha1;         //!
-    //Float_t fAlpha2;         //!
-    //Float_t fAlpha3;         //!
-    Float_t fPNsignalRatio;  //!
+    //Double_t fAlpha1;         //!
+    //Double_t fAlpha2;         //!
+    //Double_t fAlpha3;         //!
+    Double_t fPNsignalRatio;  //!
     
     static const Bool_t fgkSIDEP;  //!
     static const Bool_t fgkSIDEN;  //!
@@ -77,7 +89,7 @@ class AliITSClusterFinderSSD: public AliITSClusterFinder{
     Int_t fSFF;              //!forward stepping factor 
     Int_t fSFB;              //!backward stepping factor 
 
-    ClassDef(AliITSClusterFinderSSD, 1) //Class for clustering and reconstruction of space points in SSDs 
+    ClassDef(AliITSClusterFinderSSD,1) //Class for clustering and reconstruction of space points in SSDs 
 
 };