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"
18 #ifndef ROOT_TObjArray
22 class AliMUONCalibrationData;
23 class AliMUONDigitCalibrator;
24 class AliMUONDigitMaker;
25 class AliMUONGeometryTransformer;
27 class AliMUONTriggerCircuit;
28 class AliMUONVClusterFinder;
29 class AliMUONVClusterServer;
30 class AliMUONVClusterStore;
31 class AliMUONVDigitStore;
32 class AliMUONVTrackStore;
33 class AliMUONVTriggerStore;
34 class AliMUONTriggerElectronics;
36 class AliMUONTriggerUtilities;
38 #include "AliMUONRecoParam.h"
40 class AliMUONReconstructor : public AliReconstructor
43 AliMUONReconstructor();
44 virtual ~AliMUONReconstructor();
46 virtual Bool_t HasDigitConversion() const;
48 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
50 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
52 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
54 virtual AliTracker* CreateTracker() const;
57 static const AliMUONRecoParam* GetRecoParam();
59 static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
63 AliMUONReconstructor(const AliMUONReconstructor&);
65 AliMUONReconstructor& operator=(const AliMUONReconstructor&);
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;
80 AliMUONVDigitStore* DigitStore() const;
81 AliMUONVTriggerStore* TriggerStore() const;
82 void ResponseRemovingChambers(AliMUONVTriggerStore* triggerStore) const;
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
101 ClassDef(AliMUONReconstructor,12) // Implementation of AliReconstructor