Separating run-dependent mapping data from data, which are not
[u/mrichter/AliRoot.git] / MUON / AliMUONReconstructor.h
CommitLineData
cac2eb58 1#ifndef ALIMUONRECONSTRUCTOR_H
2#define ALIMUONRECONSTRUCTOR_H
22899106 3
cac2eb58 4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
22899106 5* See cxx source for full Copyright notice */
cac2eb58 6
22899106 7// $Id$
cac2eb58 8
692de412 9/// \ingroup rec
10/// \class AliMUONReconstructor
22899106 11/// \brief Implementation of AliReconstructor for MUON (both tracker and trigger)
12///
13// Author Laurent Aphecetche, Subatech
692de412 14
22899106 15#ifndef ALIRECONSTRUCTOR_H
16# include "AliReconstructor.h"
17#endif
cac2eb58 18
9ec6a948 19class AliMUONCalibrationData;
20class AliMUONDigitCalibrator;
2cf44ef3 21class AliMUONDigitMaker;
9c4b1ee7 22class AliMUONGeometryTransformer;
3304fa09 23class AliMUONRecoParam;
9ec6a948 24class AliMUONTracker;
25class AliMUONTriggerCircuit;
c5ce806f 26class AliMUONVClusterFinder;
c5ce806f 27class AliMUONVClusterServer;
9ec6a948 28class AliMUONVClusterStore;
29class AliMUONVDigitStore;
30class AliMUONVTrackStore;
31class AliMUONVTriggerStore;
32class AliMUONVTriggerStore;
33class TClonesArray;
c5ce806f 34
22899106 35class AliMUONReconstructor : public AliReconstructor
36{
37public:
38 AliMUONReconstructor();
39 virtual ~AliMUONReconstructor();
40
41 virtual Bool_t HasDigitConversion() const;
42
43 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
44
22899106 45 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
46
47 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
48
d76c31f4 49 virtual AliTracker* CreateTracker() const;
3304fa09 50
9e99348e 51 static void SetRecoParam(AliMUONRecoParam* recoParam) {fgRecoParam = recoParam;}
15d30ed4 52 static const AliMUONRecoParam* GetRecoParam();
3304fa09 53
9bf6860b 54 static AliMUONVClusterFinder* CreateClusterFinder(const char* clusterFinderType);
55
22899106 56private:
57 /// Not implemented
58 AliMUONReconstructor(const AliMUONReconstructor&);
59 /// Not implemented
60 AliMUONReconstructor& operator=(const AliMUONReconstructor&);
61
62 void ConvertDigits(AliRawReader* rawReader,
63 AliMUONVDigitStore* digitStore,
64 AliMUONVTriggerStore* triggerStore) const;
65 void Calibrate(AliMUONVDigitStore& digitStore) const;
22899106 66 void CreateCalibrator() const;
67 void CreateDigitMaker() const;
68 void CreateTriggerCircuit() const;
c5ce806f 69 void CreateClusterServer() const;
22899106 70 void FillTreeR(AliMUONVTriggerStore* triggerStore,
22899106 71 TTree& clustersTree) const;
72
73 AliMUONVDigitStore* DigitStore() const;
22899106 74 AliMUONVTriggerStore* TriggerStore() const;
9bf6860b 75
22899106 76private:
92c23b09 77
22899106 78 mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
79 AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
80 mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
32ab62c9 81 mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
22899106 82 mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
83 mutable AliMUONDigitCalibrator* fDigitCalibrator; //!< Digit to calibrate digit converter
c5ce806f 84 mutable AliMUONVClusterServer* fClusterServer; //!< Clusterizer
22899106 85 mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
86 mutable AliMUONVTrackStore* fTrackStore; //!< Track container
9ec6a948 87 mutable AliMUONVClusterStore* fClusterStore; //!< cluster store (when not in combined tracking mode)
22899106 88
3304fa09 89 static AliMUONRecoParam* fgRecoParam; //!< parameters used to tune the MUON reconstruction
9ec6a948 90
91 ClassDef(AliMUONReconstructor,7) // Implementation of AliReconstructor
cac2eb58 92};
93
94#endif