]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONReconstructor.h
- Reshape the architecture of the Kalman tracking to make it more modular
[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 AliMUONTriggerCrateStore;
26 class AliMUONTriggerCircuit;
27 class TClonesArray;
28 class AliMUONVTriggerStore;
29
30 class AliMUONDigitCalibrator;
31 class AliMUONCalibrationData;
32
33 class AliMUONClusterReconstructor;
34 class AliMUONVClusterStore;
35
36 class AliMUONTracker;
37 class AliMUONVTrackStore;
38
39 class AliMUONTriggerChamberEff;
40
41 class AliMUONStopwatchGroup;
42
43 class AliMUONReconstructor : public AliReconstructor
44 {
45 public:
46   AliMUONReconstructor();
47   virtual ~AliMUONReconstructor();
48   
49   virtual Bool_t HasDigitConversion() const;
50
51   virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
52   
53   virtual Bool_t HasLocalReconstruction() const;
54   
55   virtual void Reconstruct(AliRunLoader* runLoader) const;
56   
57   virtual void Reconstruct(AliRunLoader* runLoader, AliRawReader* rawReader) const;
58
59   virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
60   
61   virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
62   
63   virtual AliTracker* CreateTracker(AliRunLoader* runLoader) const;
64     
65 private:
66   /// Not implemented
67   AliMUONReconstructor(const AliMUONReconstructor&);
68   /// Not implemented
69   AliMUONReconstructor& operator=(const AliMUONReconstructor&);
70   
71   void ConvertDigits(AliRawReader* rawReader, 
72                      AliMUONVDigitStore* digitStore,
73                      AliMUONVTriggerStore* triggerStore) const;
74   void Calibrate(AliMUONVDigitStore& digitStore) const;
75   void Clusterize(const AliMUONVDigitStore& digitStore, AliMUONVClusterStore& clusterStore) const;
76   AliMUONTriggerCrateStore* CrateManager() const;
77   void CreateCalibrator() const;
78   void CreateDigitMaker() const;
79   void CreateTriggerCircuit() const;
80   void CreateClusterReconstructor() const;
81   void CreateTriggerChamberEff() const;
82   void FillTreeR(AliMUONVTriggerStore* triggerStore,
83                  AliMUONVClusterStore* clusterStore,
84                  TTree& clustersTree) const;
85   
86   AliMUONVDigitStore* DigitStore() const;
87   AliMUONVClusterStore* ClusterStore() const;
88   AliMUONVTriggerStore* TriggerStore() const;
89
90 private:
91   mutable AliMUONTriggerCrateStore* fCrateManager; //!< Trigger Crate manager
92   mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
93   AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
94   mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
95   mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
96   mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
97   mutable AliMUONDigitCalibrator* fDigitCalibrator; //!<  Digit to calibrate digit converter
98   mutable AliMUONClusterReconstructor* fClusterReconstructor; //!<  Clusterizer
99   mutable AliMUONVClusterStore* fClusterStore; //!< Cluster container
100   mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
101   mutable AliMUONVTrackStore* fTrackStore; //!< Track container
102   mutable AliMUONTriggerChamberEff* fTrigChamberEff; //!< pointer to trigger chamber efficiency class
103   AliMUONStopwatchGroup* fTimers; //!< Internal timers
104   
105   ClassDef(AliMUONReconstructor,1) // Implementation of AliReconstructor
106 };
107
108 #endif