]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/AliTRDclusterizer.h
Comments corrected.
[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 AliTRDdataArrayI;
26 class AliTRDdataArrayF;
27 class AliTRDdigitsManager;
28 class AliTRDSignalIndex;
29 class AliTRDtransform;
30 class AliTRDCalROC;
31
32 class AliTRDclusterizer : public TNamed {
33
34  public:
35
36   AliTRDclusterizer();
37   AliTRDclusterizer(const Text_t* name, const Text_t* title);
38   AliTRDclusterizer(const AliTRDclusterizer &c);
39   virtual         ~AliTRDclusterizer();
40   AliTRDclusterizer &operator=(const AliTRDclusterizer &c);
41
42   virtual void     Copy(TObject &c) const;
43
44   virtual Bool_t   Open(const Char_t *name, Int_t nEvent = 0);
45   virtual Bool_t   OpenInput(Int_t nEvent = 0);
46   virtual Bool_t   OpenOutput();
47   virtual Bool_t   OpenOutput(TTree *clusterTree);
48
49   virtual Bool_t   ReadDigits();
50   virtual Bool_t   ReadDigits(AliRawReader *rawReader);
51   virtual Bool_t   ReadDigits(TTree *digitsTree);
52
53   virtual Bool_t   WriteClusters(Int_t det);
54           void     ResetRecPoints();
55   TObjArray       *RecPoints();
56
57   virtual Bool_t   Raw2Clusters(AliRawReader *rawReader);
58   virtual Bool_t   Raw2ClustersChamber(AliRawReader *rawReader);
59
60   virtual Bool_t   MakeClusters();
61   virtual Bool_t   MakeClusters(Int_t det);
62
63   virtual Bool_t   AddLabels(Int_t idet, Int_t firstClusterROC, Int_t nClusterROC);
64   virtual Bool_t   SetAddLabels(Bool_t kset) { fAddLabels = kset; 
65                                                return fAddLabels;  } // should we assign labels to clusters
66   virtual void     SetRawVersion(Int_t iver) { fRawVersion = iver; } // set the expected raw data version
67
68  protected:
69
70           void     DeConvExp(Double_t *source, Double_t *target
71                            , Int_t nTimeTotal, Int_t nexp);
72           void     TailCancelation(AliTRDdataArrayI *digitsIn
73                                  , AliTRDdataArrayF *digitsOut 
74                                  , AliTRDSignalIndex *indexesIn
75                                  , AliTRDSignalIndex *indexesOut
76                                  , Int_t nTimeTotal
77                                  , Float_t ADCthreshold
78                                  , AliTRDCalROC *calGainFactorROC
79                                  , Float_t calGainFactorDetValue);
80   virtual Double_t Unfold(Double_t eps, Int_t plane, Double_t *padSignal);
81           Double_t GetCOG(Double_t signal[5]); 
82
83   virtual void     ResetHelperIndexes(AliTRDSignalIndex *indexesIn);
84
85   AliRunLoader        *fRunLoader;           //! Run Loader
86   TTree               *fClusterTree;         //! Tree with the cluster
87   TObjArray           *fRecPoints;           //! Array of clusters
88
89   AliTRDdigitsManager *fDigitsManager;       //! TRD digits manager
90
91   Bool_t               fAddLabels;           //  Should clusters have MC labels?
92   Int_t                fRawVersion;          //  Expected raw version of the data - default is 2
93
94   AliTRDSignalIndex   *fIndexesOut;          //! Helper indexes for clusterization
95   AliTRDSignalIndex   *fIndexesMaxima;       //! Helper indexes for clusterization
96
97   AliTRDtransform     *fTransform;           //! Transforms the reconstructed space points
98
99   ClassDef(AliTRDclusterizer,5)              //  TRD clusterfinder
100
101 };
102
103 #endif