next50 trigger mask in AliHLTGlobalEsdConverterComponent
[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 #ifndef ROOT_TObjArray
19 #define "TObjArray.h"
20 #endif
21
22 class AliMUONCalibrationData;
23 class AliMUONDigitCalibrator;
24 class AliMUONDigitMaker;
25 class AliMUONGeometryTransformer;
26 class AliMUONTracker;
27 class AliMUONTriggerCircuit;
28 class AliMUONVClusterFinder;
29 class AliMUONVClusterServer;
30 class AliMUONVClusterStore;
31 class AliMUONVDigitStore;
32 class AliMUONVTrackStore;
33 class AliMUONVTriggerStore;
34 class AliMUONTriggerElectronics;
35 class TClonesArray;
36 class AliMUONTriggerUtilities;
37
38 #include "AliMUONRecoParam.h"
39
40 class AliMUONReconstructor : public AliReconstructor
41 {
42 public:
43   AliMUONReconstructor();
44   virtual ~AliMUONReconstructor();
45   
46   virtual Bool_t HasDigitConversion() const;
47
48   virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
49   
50   virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
51   
52   virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
53   
54   virtual AliTracker* CreateTracker() const;
55   
56   /// Get param object
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 CreateCalibrationData() const;
72   void CreateCalibrator() const;
73   void CreateDigitMaker() const;
74   void CreateTriggerCircuit() const;
75   void CreateTriggerUtilities() const;
76   AliMUONVClusterServer* CreateClusterServer(const AliMUONRecoParam& rp) const;
77   void FillTreeR(AliMUONVTriggerStore* triggerStore,
78                  TTree& clustersTree) const;
79   
80   AliMUONVDigitStore* DigitStore() const;
81   AliMUONVTriggerStore* TriggerStore() const;
82   void ResponseRemovingChambers(AliMUONVTriggerStore* triggerStore) const;
83   
84 private:
85
86   mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
87   AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
88   mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
89   mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
90   mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
91   mutable AliMUONDigitCalibrator* fDigitCalibrator; //!<  Digit to calibrate digit converter
92   mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
93   mutable AliMUONVTrackStore* fTrackStore; //!< Track container
94   mutable AliMUONVClusterStore* fClusterStore; //!< cluster store (when not in combined tracking mode)
95   mutable AliMUONTriggerElectronics* fTriggerProcessor; //!< Processor to recalculate trigger response
96   mutable AliMUONTriggerUtilities* fTriggerUtilities; //!< Trigger utilities for masks
97   mutable TObjArray fClusterServers; //!<  Clusterizers (one per event specie)
98   mutable TObjArray fTrackers; //!< trackers (one per event specie)
99   mutable Bool_t fShouldCalibrate; // whether the fDigitCalibrator should be non-null
100   
101   ClassDef(AliMUONReconstructor,12) // Implementation of AliReconstructor
102 };
103
104 #endif