]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONReconstructor.h
Gros chantier trigger:
[u/mrichter/AliRoot.git] / MUON / AliMUONReconstructor.h
1 #ifndef ALIMUONRECONSTRUCTOR_H
2 #define ALIMUONRECONSTRUCTOR_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup rec
10 /// \class AliMUONReconstructor
11 /// \brief Implementation of AliReconstructor for MUON (both tracker and trigger)
12 /// 
13 // Author Laurent Aphecetche, Subatech
14
15 #ifndef ALIRECONSTRUCTOR_H
16 #  include "AliReconstructor.h"
17 #endif
18
19 class AliMUONDigitMaker;
20 class AliMUONVDigitStore;
21 class AliMUONVTriggerStore;
22
23 class AliMUONGeometryTransformer;
24
25 class AliMUONTriggerCircuit;
26 class TClonesArray;
27 class AliMUONVTriggerStore;
28
29 class AliMUONDigitCalibrator;
30 class AliMUONCalibrationData;
31
32 class AliMUONTracker;
33 class AliMUONVTrackStore;
34
35 class AliMUONRecoParam;
36
37 class AliMUONVClusterFinder;
38
39 class AliMUONVClusterServer;
40
41 class AliMUONReconstructor : public AliReconstructor
42 {
43 public:
44   AliMUONReconstructor();
45   virtual ~AliMUONReconstructor();
46   
47   virtual Bool_t HasDigitConversion() const;
48
49   virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
50   
51   virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
52   
53   virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
54   
55   virtual AliTracker* CreateTracker() const;
56   
57   static const AliMUONRecoParam* GetRecoParam();
58   
59   static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
60
61 private:
62   /// Not implemented
63   AliMUONReconstructor(const AliMUONReconstructor&);
64   /// Not implemented
65   AliMUONReconstructor& operator=(const AliMUONReconstructor&);
66   
67   void ConvertDigits(AliRawReader* rawReader, 
68                      AliMUONVDigitStore* digitStore,
69                      AliMUONVTriggerStore* triggerStore) const;
70   void Calibrate(AliMUONVDigitStore& digitStore) const;
71   void CreateCalibrator() const;
72   void CreateDigitMaker() const;
73   void CreateTriggerCircuit() const;
74   void CreateClusterServer() const;
75   void FillTreeR(AliMUONVTriggerStore* triggerStore,
76                  TTree& clustersTree) const;
77   
78   AliMUONVDigitStore* DigitStore() const;
79   AliMUONVTriggerStore* TriggerStore() const;
80   
81 private:
82
83   mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
84   AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
85   mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
86   mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
87   mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
88   mutable AliMUONDigitCalibrator* fDigitCalibrator; //!<  Digit to calibrate digit converter
89   mutable AliMUONVClusterServer* fClusterServer; //!<  Clusterizer
90   mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
91   mutable AliMUONVTrackStore* fTrackStore; //!< Track container
92   
93   static AliMUONRecoParam* fgRecoParam; //!< parameters used to tune the MUON reconstruction
94   
95   ClassDef(AliMUONReconstructor,6) // Implementation of AliReconstructor
96 };
97
98 #endif