1 #ifndef ALIMUONRECONSTRUCTOR_H
2 #define ALIMUONRECONSTRUCTOR_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONReconstructor
11 /// \brief Implementation of AliReconstructor for MUON (both tracker and trigger)
13 // Author Laurent Aphecetche, Subatech
15 #ifndef ALIRECONSTRUCTOR_H
16 # include "AliReconstructor.h"
19 class AliMUONCalibrationData;
20 class AliMUONDigitCalibrator;
21 class AliMUONDigitMaker;
22 class AliMUONGeometryTransformer;
23 class AliMUONRecoParam;
25 class AliMUONTriggerCircuit;
26 class AliMUONVClusterFinder;
27 class AliMUONVClusterServer;
28 class AliMUONVClusterStore;
29 class AliMUONVDigitStore;
30 class AliMUONVTrackStore;
31 class AliMUONVTriggerStore;
32 class AliMUONVTriggerStore;
35 #include "AliDetectorRecoParam.h"
36 #include "AliMUONRecoParam.h"
38 class AliMUONReconstructor : public AliReconstructor
41 AliMUONReconstructor();
42 virtual ~AliMUONReconstructor();
44 virtual Bool_t HasDigitConversion() const;
46 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
48 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
50 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
52 virtual AliTracker* CreateTracker() const;
54 static const AliMUONRecoParam* GetRecoParam() { return dynamic_cast<const AliMUONRecoParam*>(AliReconstructor::GetRecoParam(7)); }
56 static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
60 AliMUONReconstructor(const AliMUONReconstructor&);
62 AliMUONReconstructor& operator=(const AliMUONReconstructor&);
64 void ConvertDigits(AliRawReader* rawReader,
65 AliMUONVDigitStore* digitStore,
66 AliMUONVTriggerStore* triggerStore) const;
67 void Calibrate(AliMUONVDigitStore& digitStore) const;
68 void CreateCalibrator() const;
69 void CreateDigitMaker() const;
70 void CreateTriggerCircuit() const;
71 void CreateClusterServer() const;
72 void FillTreeR(AliMUONVTriggerStore* triggerStore,
73 TTree& clustersTree) const;
75 AliMUONVDigitStore* DigitStore() const;
76 AliMUONVTriggerStore* TriggerStore() const;
80 mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
81 AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
82 mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
83 mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
84 mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
85 mutable AliMUONDigitCalibrator* fDigitCalibrator; //!< Digit to calibrate digit converter
86 mutable AliMUONVClusterServer* fClusterServer; //!< Clusterizer
87 mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
88 mutable AliMUONVTrackStore* fTrackStore; //!< Track container
89 mutable AliMUONVClusterStore* fClusterStore; //!< cluster store (when not in combined tracking mode)
91 ClassDef(AliMUONReconstructor,8) // Implementation of AliReconstructor