-#ifndef TRDclusterizerV1_h
-#define TRDclusterizerV1_h
+#ifndef ALITRDCLUSTERIZERV1_H
+#define ALITRDCLUSTERIZERV1_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice */
/* $Id$ */
-#include "AliTRD.h"
-#include "AliTRDsegmentArray.h"
+////////////////////////////////////////////////////////////////////////////
+// //
+// TRD cluster finder //
+// //
+////////////////////////////////////////////////////////////////////////////
+
#include "AliTRDclusterizer.h"
-///////////////////////////////////////////////////////
-// Finds and handles cluster (slow simulation) //
-///////////////////////////////////////////////////////
+class AliTRDdataArrayI;
+class AliTRDdataArrayF;
+class AliTRDdigitsManager;
+class AliRawReader;
class AliTRDclusterizerV1 : public AliTRDclusterizer {
AliTRDclusterizerV1();
AliTRDclusterizerV1(const Text_t* name, const Text_t* title);
- ~AliTRDclusterizerV1();
-
- virtual void Init();
- virtual Bool_t MakeCluster();
- virtual Bool_t ReadDigits();
-
- virtual void SetDigitsArray(AliTRDsegmentArray *Array) { fDigitsArray = Array; };
+ AliTRDclusterizerV1(const AliTRDclusterizerV1 &c);
+ virtual ~AliTRDclusterizerV1();
+ AliTRDclusterizerV1 &operator=(const AliTRDclusterizerV1 &c);
- virtual void SetClusMaxThresh(Float_t thresh) { fClusMaxThresh = thresh; };
- virtual void SetClusSigThresh(Float_t thresh) { fClusSigThresh = thresh; };
- virtual void SetClusMethod(Int_t meth) { fClusMethod = meth; };
-
- virtual Float_t GetClusMaxThresh() { return fClusMaxThresh; };
- virtual Float_t GetClusSigThresh() { return fClusSigThresh; };
- virtual Int_t GetClusMethod() { return fClusMethod; };
+ virtual void Copy(TObject &c) const;
+ virtual Bool_t MakeClusters();
+ virtual Bool_t ReadDigits();
+ virtual Bool_t ReadDigits(AliRawReader* rawReader);
protected:
- AliTRDsegmentArray *fDigitsArray; //! Array of detector segments containing the digits
-
- Float_t fClusMaxThresh; // Threshold value for cluster maximum
- Float_t fClusSigThresh; // Threshold value for cluster signal
- Int_t fClusMethod; // Clustering method
-
- private:
+ void DeConvExp(Double_t *source, Double_t *target
+ , Int_t nTimeTotal, Int_t nexp);
+ void Transform(AliTRDdataArrayI* digitsIn, AliTRDdataArrayF* digitsOut
+ , Int_t idet, Int_t nRowMax, Int_t nColMax
+ , Int_t nTimeTotal, Float_t ADCthreshold);
+ virtual Double_t Unfold(Double_t eps, Int_t plane, Double_t *padSignal);
+ Double_t GetCOG(Double_t signal[5]);
- virtual Float_t Unfold(Float_t eps, Float_t *padSignal);
- virtual Float_t PadResponse(Float_t x);
+ AliTRDdigitsManager *fDigitsManager; //! TRD digits manager
- ClassDef(AliTRDclusterizerV1,1) // TRD-Cluster manager, slow simulator
+ ClassDef(AliTRDclusterizerV1,5) // TRD-Cluster finder, slow simulator
};