Added macro to lauch TOF QA task with extended functionality via plugin
[u/mrichter/AliRoot.git] / TOF / AliTOFClusterFinder.h
1 #ifndef ALITOFCLUSTERFINDER_H
2 #define ALITOFCLUSTERFINDER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5 // AliTOFClusterFinder Class
6 // Task: Transform digits/raw data to TOF Clusters, to fill TOF RecPoints
7 // and feed TOF tracking 
8
9 #include "TNamed.h"
10
11 #include "AliTOFRawStream.h"
12
13 class TClonesArray;
14 class TFile;
15 class TTree;
16
17 class AliLoader;
18 class AliRunLoader;
19 class AliRawReader;
20
21 class AliTOFGeometry;
22 class AliTOFcluster;
23 class AliTOFcalib;
24
25 class AliTOFClusterFinder : public TNamed
26 {
27
28   enum {kTofMaxCluster=77777}; //maximal number of the TOF clusters
29
30  public:
31
32   AliTOFClusterFinder(AliTOFcalib *calib);
33   AliTOFClusterFinder(AliRunLoader* runLoader, AliTOFcalib *calib);
34   AliTOFClusterFinder(const AliTOFClusterFinder &source); // copy constructor
35   AliTOFClusterFinder& operator=(const AliTOFClusterFinder &source); // ass. op.
36   virtual ~AliTOFClusterFinder();
37
38   void Digits2RecPoints(TTree* digitsTree, TTree* clusterTree);
39   void Digits2RecPoints(Int_t ievt);
40   void Digits2RecPoints(AliRawReader *rawReader, TTree *clustersTree);
41   void Digits2RecPoints(Int_t ievt, AliRawReader *rawReader);
42   void Raw2Digits(Int_t ievt, AliRawReader *rawReader); // temporary solution
43   void Raw2Digits(AliRawReader *rawReader, TTree* digitsTree); 
44   void FillRecPoint();
45   void ResetRecpoint();
46   void Load();
47   void LoadClusters();
48   void UnLoad();
49   void UnLoadClusters();
50   void SetVerbose(Int_t Verbose){fVerbose=Verbose;} // To set the verbose level
51   void SetDecoderVersion(Int_t version){fDecoderVersion=version;} // To set the decoder version
52   Int_t GetDecoderVersion() const {return fDecoderVersion;} // To get the decoder version
53   UShort_t  GetClusterVolIndex(const Int_t * const ind) const; //Volume Id getter
54   void GetClusterPars(Int_t *ind, Double_t *pos, Double_t *cov) const; //cluster par getter
55
56  protected:
57   AliRunLoader *fRunLoader;      // Pointer to Run Loader
58   AliLoader    *fTOFLoader;      // Pointer to specific detector loader
59
60   TTree        *fTreeD;          // Digits tree
61   TTree        *fTreeR;          // Reconstructed points
62
63   AliTOFcluster *fTofClusters[kTofMaxCluster];  // pointers to the TOF clusters
64
65   TClonesArray *fDigits;         // List of digits
66   TClonesArray *fRecPoints;      // List of reconstructed points
67
68   Int_t fNumberOfTofClusters;    // Number of TOF Clusters
69
70  private:
71
72   //Int_t InsertCluster(Int_t *aa, Double_t *bb);    // Fills TofClusters Array
73   //Int_t InsertCluster(Int_t *aa, Double_t *bb, Int_t *cc, Int_t d); // Fills TofClusters Array
74   Int_t InsertCluster(AliTOFcluster *tofCluster);    // Fills TofClusters Array
75   Int_t FindClusterIndex(Double_t z) const; // Returns cluster index 
76   void  CalibrateRecPoint(UInt_t timestamp = 0); // Apply calibration pars to Clusters
77
78   Int_t fVerbose;           // Verbose level (0:no msg,
79                             //  1:msg, 2:digits in txt files)
80   Int_t fDecoderVersion;   //setting whether to use the new decoder version 
81   AliTOFcalib *fTOFcalib;         // pointer to the TOF calibration info
82   AliTOFRawStream fTOFRawStream; // AliTOFRawStream variable
83
84   ClassDef(AliTOFClusterFinder,7) // To run TOF clustering
85 };
86 #endif
87