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 AliMUONDigitMaker;
20 class AliMUONVDigitStore;
21 class AliMUONVTriggerStore;
23 class AliMUONGeometryTransformer;
25 class AliMUONTriggerCrateStore;
26 class AliMUONTriggerCircuit;
28 class AliMUONVTriggerStore;
30 class AliMUONDigitCalibrator;
31 class AliMUONCalibrationData;
33 class AliMUONClusterReconstructor;
34 class AliMUONVClusterStore;
37 class AliMUONVTrackStore;
39 class AliMUONTriggerChamberEff;
41 class AliMUONStopwatchGroup;
43 class AliMUONReconstructor : public AliReconstructor
46 AliMUONReconstructor();
47 virtual ~AliMUONReconstructor();
49 virtual Bool_t HasDigitConversion() const;
51 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
53 virtual Bool_t HasLocalReconstruction() const;
55 virtual void Reconstruct(AliRunLoader* runLoader) const;
57 virtual void Reconstruct(AliRunLoader* runLoader, AliRawReader* rawReader) const;
59 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
61 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
63 virtual AliTracker* CreateTracker(AliRunLoader* runLoader) const;
67 AliMUONReconstructor(const AliMUONReconstructor&);
69 AliMUONReconstructor& operator=(const AliMUONReconstructor&);
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;
86 AliMUONVDigitStore* DigitStore() const;
87 AliMUONVClusterStore* ClusterStore() const;
88 AliMUONVTriggerStore* TriggerStore() const;
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
105 ClassDef(AliMUONReconstructor,1) // Implementation of AliReconstructor