]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/Rec/AliTPCReconstructor.h
6e092252a05a09df2b13adf7a5edd0d995423a9d
[u/mrichter/AliRoot.git] / TPC / Rec / AliTPCReconstructor.h
1 #ifndef ALITPCRECONSTRUCTOR_H
2 #define ALITPCRECONSTRUCTOR_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 #include "AliReconstructor.h"
9 #include "AliTPCRecoParam.h"
10
11 class AliTPCParam;
12 class AliTPCclusterer;
13 class AliTPCtracker;
14 class AliTPCAltroEmulator;
15 class TObjArray;
16
17 class AliTPCReconstructor: public AliReconstructor {
18 public:
19   AliTPCReconstructor();
20   virtual ~AliTPCReconstructor();
21   virtual void         Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
22   virtual void         Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
23
24   virtual AliTracker*  CreateTracker() const;
25
26   virtual void         FillESD(TTree* /*digitsTree*/, TTree* /*clustersTree*/, 
27                                AliESDEvent* esd) const;
28   virtual void         FillESD(AliRawReader* /*rawReader*/, TTree* /*clustersTree*/, 
29                                AliESDEvent* esd) const
30   {FillESD((TTree*)NULL,(TTree*)NULL,esd);}
31
32   static const AliTPCRecoParam* GetRecoParam() { return dynamic_cast<const AliTPCRecoParam*>(AliReconstructor::GetRecoParam(1)); }
33   virtual void                 GetPidSettings(AliESDpid *esdPID);
34   
35   //
36   static Double_t GetCtgRange()     { return GetRecoParam()->GetCtgRange();}
37   static Double_t GetMaxSnpTracker(){ return GetRecoParam()->GetMaxSnpTracker();}
38   static Double_t GetMaxSnpTrack()  { return GetRecoParam()->GetMaxSnpTrack();}
39
40   static Int_t StreamLevel()               { return fgStreamLevel;}
41   static void  SetStreamLevel(Int_t level) { fgStreamLevel = level;}
42   static void  SetAltroEmulator(AliTPCAltroEmulator *altro) { fAltroEmulator=altro;}
43   static AliTPCAltroEmulator *  GetAltroEmulator() { return fAltroEmulator;}
44
45   void ParseOptions(AliTPCtracker* tracker) const;
46
47 private:
48   AliTPCReconstructor(const AliTPCReconstructor&); //Not implemented
49   AliTPCReconstructor& operator=(const AliTPCReconstructor&); //Not implemented
50   AliTPCParam*         GetTPCParam() const;
51   static Int_t               fgStreamLevel; // flag for streaming      - for TPC reconstruction
52   AliTPCclusterer*           fClusterer;   // TPC clusterer
53   static AliTPCAltroEmulator * fAltroEmulator;    // ALTRO emulator
54
55   TObjArray *fArrSplines;                  // array of pid splines
56
57   void SetSplinesFromOADB(const char* tmplt, AliESDpid *esdPID);
58   
59   ClassDef(AliTPCReconstructor, 0)   // class for the TPC reconstruction
60 };
61
62 #endif