]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDclusterizer.h
AliACORDEDataDCS added
[u/mrichter/AliRoot.git] / TRD / AliTRDclusterizer.h
1 #ifndef ALITRDCLUSTERIZER_H
2 #define ALITRDCLUSTERIZER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 ////////////////////////////////////////////////////////////////////////////
9 //                                                                        //
10 //  TRD cluster finder                                                    //
11 //                                                                        //
12 ////////////////////////////////////////////////////////////////////////////
13
14 #include <TNamed.h>
15
16 class TFile;
17 class TTree;
18 class TObjArray;
19
20 class AliRunLoader;
21 class AliRawReader;
22
23 class AliTRD;
24 class AliTRDcluster;
25 class AliTRDdataArrayS;
26 class AliTRDdataArrayDigits;
27 class AliTRDdataArrayF;
28 class AliTRDdigitsManager;
29 class AliTRDSignalIndex;
30 class AliTRDtransform;
31 class AliTRDCalROC;
32
33 class AliTRDclusterizer : public TNamed {
34
35  public:
36
37   AliTRDclusterizer();
38   AliTRDclusterizer(const Text_t* name, const Text_t* title);
39   AliTRDclusterizer(const AliTRDclusterizer &c);
40   virtual         ~AliTRDclusterizer();
41   AliTRDclusterizer &operator=(const AliTRDclusterizer &c);
42
43   virtual void     Copy(TObject &c) const;
44
45   virtual Bool_t   Open(const Char_t *name, Int_t nEvent = 0);
46   virtual Bool_t   OpenInput(Int_t nEvent = 0);
47   virtual Bool_t   OpenOutput();
48   virtual Bool_t   OpenOutput(TTree *clusterTree);
49
50   virtual Bool_t   ReadDigits();
51   virtual Bool_t   ReadDigits(AliRawReader *rawReader);
52   virtual Bool_t   ReadDigits(TTree *digitsTree);
53
54   virtual Bool_t   WriteClusters(Int_t det);
55           void     ResetRecPoints();
56   TObjArray       *RecPoints();
57
58   virtual Bool_t   Raw2Clusters(AliRawReader *rawReader);
59   virtual Bool_t   Raw2ClustersChamber(AliRawReader *rawReader);
60
61   virtual Bool_t   MakeClusters();
62   virtual Bool_t   MakeClusters(Int_t det);
63
64   virtual Bool_t   AddLabels(Int_t idet, Int_t firstClusterROC, Int_t nClusterROC);
65   virtual Bool_t   SetAddLabels(Bool_t kset) { fAddLabels = kset; 
66                                                return fAddLabels;  } // should we assign labels to clusters
67   virtual void     SetRawVersion(Int_t iver) { fRawVersion = iver; } // set the expected raw data version
68
69         static UChar_t GetStatus(Short_t &signal);
70
71  protected:
72
73           void     DeConvExp(Double_t *source, Double_t *target
74                            , Int_t nTimeTotal, Int_t nexp);
75           void     TailCancelation(AliTRDdataArrayDigits *digitsIn
76                                  , AliTRDdataArrayF *digitsOut 
77                                  , AliTRDSignalIndex *indexesIn
78                                  , AliTRDSignalIndex *indexesOut
79                                  , Int_t nTimeTotal
80                                  , Float_t ADCthreshold
81                                  , AliTRDCalROC *calGainFactorROC
82                                  , Float_t calGainFactorDetValue);
83   virtual Double_t Unfold(Double_t eps, Int_t plane, Double_t *padSignal);
84           Double_t GetCOG(Double_t signal[5]) const; 
85           void     FillLUT();
86           Double_t LUTposition(Int_t iplane, Double_t ampL, Double_t ampC, Double_t ampR) const;
87
88   virtual void     ResetHelperIndexes(AliTRDSignalIndex *indexesIn);
89
90   AliRunLoader        *fRunLoader;           //! Run Loader
91   TTree               *fClusterTree;         //! Tree with the cluster
92   TObjArray           *fRecPoints;           //! Array of clusters
93
94   AliTRDdigitsManager *fDigitsManager;       //! TRD digits manager
95
96   Bool_t               fAddLabels;           //  Should clusters have MC labels?
97   Int_t                fRawVersion;          //  Expected raw version of the data - default is 2
98
99   AliTRDSignalIndex   *fIndexesOut;          //! Helper indexes for clusterization
100   AliTRDSignalIndex   *fIndexesMaxima;       //! Helper indexes for clusterization
101
102   AliTRDtransform     *fTransform;           //! Transforms the reconstructed space points
103
104   Int_t                fLUTbin;              //  Number of bins of the LUT
105   Double_t            *fLUT;                 //! The lookup table
106
107   ClassDef(AliTRDclusterizer,6)              //  TRD clusterfinder
108
109 };
110
111 #endif