Increase speed of SDD cluster finder (F. Prino)
[u/mrichter/AliRoot.git] / ITS / AliITSClusterFinderV2SDD.h
index 2889590..2c143a0 100644 (file)
@@ -9,35 +9,45 @@
 //
 //   Origin: Iouri Belikov, CERN, Jouri.Belikov@cern.ch 
 //--------------------------------------------------------------
-#include "AliITSClusterFinderV2.h"
+#include "AliITSClusterFinder.h"
+#include "AliITSDetTypeRec.h"
 
+class TBits;
 class TClonesArray;
 class AliRawReader;
 class AliITSRawStream;
+class AliITSCalibrationSDD;
+class AliITSsegmentationSDD;
 
-class AliITSClusterFinderV2SDD : public AliITSClusterFinderV2 {
+class AliITSClusterFinderV2SDD : public AliITSClusterFinder {
 public:
   AliITSClusterFinderV2SDD(AliITSDetTypeRec* dettyp);
-  virtual ~AliITSClusterFinderV2SDD(){;}
+  virtual ~AliITSClusterFinderV2SDD();
   virtual void FindRawClusters(Int_t mod);
   virtual void RawdataToClusters(AliRawReader* rawReader,TClonesArray** clusters);
- protected:
 
+  enum {kHybridsPerDDL = 24};   // number of hybrids in each DDL 
+  enum {kModulesPerDDL = 12};   // number of modules in each DDL 
+
+ protected:
+  Bool_t NoiseSuppress(Int_t k, Int_t sid, AliBin* bins, AliITSCalibrationSDD* cal) const;
   void FindClustersSDD(TClonesArray *digits);
-  void FindClustersSDD(AliBin* bins[2], Int_t nMaxBin, Int_t nMaxZ,
-                      TClonesArray *dig, TClonesArray *clusters=0x0);
+  void FindClustersSDD(AliBin* bins[2], TBits* anodeFired[2],
+                      TClonesArray *dig, TClonesArray *clusters=0x0, Int_t jitter=0);
 
   void FindClustersSDD(AliITSRawStream* input,TClonesArray** clusters);
+  virtual AliITSCalibrationSDD* GetResp(Int_t mod)const{
+    return (AliITSCalibrationSDD*) fDetTypeRec->GetCalibrationModel(mod);}
+  virtual AliITSsegmentationSDD* GetSeg()const{
+    return (AliITSsegmentationSDD*)fDetTypeRec->GetSegmentationModel(1);} 
 
-  Int_t fNySDD;           //number of "pixels" in Y
-  Int_t fNzSDD;           //number of "pixels" in Z
-  Float_t fYpitchSDD;     //"pixel size" in Y (drift direction)
-  Float_t fZpitchSDD;     //"pixel sizes" in Z
-  Float_t fHwSDD;         //half width of the SDD detector
-  Float_t fHlSDD;         //half length of the SDD detector
-  Float_t fYoffSDD;       //some delay in the drift channel   
+  Int_t fNAnodes;                   // number of anodes
+  Int_t fNTimeBins;                 // number of time bins
+  Int_t fNZbins;                    // number of cells along anodes
+  Int_t fNXbins;                    // number of cells along time
+  AliBin* fDDLBins[kHybridsPerDDL]; // container for digits for 1 DDL
 
-  ClassDef(AliITSClusterFinderV2SDD,1)  // ITS cluster finder V2 for SDD
+  ClassDef(AliITSClusterFinderV2SDD,5)  // ITS cluster finder V2 for SDD
 };
 
 #endif