]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONReconstructor.h
- Some algorithm fixes for complex clusters
[u/mrichter/AliRoot.git] / MUON / AliMUONReconstructor.h
... / ...
CommitLineData
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
19class AliMUONDigitMaker;
20class AliMUONVDigitStore;
21class AliMUONVTriggerStore;
22
23class AliMUONGeometryTransformer;
24
25class AliMUONTriggerCrateStore;
26class AliMUONTriggerCircuit;
27class TClonesArray;
28class AliMUONVTriggerStore;
29
30class AliMUONDigitCalibrator;
31class AliMUONCalibrationData;
32
33class AliMUONClusterReconstructor;
34class AliMUONVClusterStore;
35
36class AliMUONTracker;
37class AliMUONVTrackStore;
38
39class AliMUONTriggerChamberEff;
40
41class AliMUONRecoParam;
42
43class AliMUONReconstructor : public AliReconstructor
44{
45public:
46 AliMUONReconstructor();
47 virtual ~AliMUONReconstructor();
48
49 virtual Bool_t HasDigitConversion() const;
50
51 virtual void ConvertDigits(AliRawReader* rawReader, TTree* digitsTree) const;
52
53 virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
54
55 virtual void Reconstruct(TTree* digitsTree, TTree* clustersTree) const;
56
57 virtual AliTracker* CreateTracker() const;
58
59 static void SetRecoParam(AliMUONRecoParam *param);
60 /// return reconstruction parametres
61 static const AliMUONRecoParam* GetRecoParam() {return fgRecoParam;}
62
63private:
64 /// Not implemented
65 AliMUONReconstructor(const AliMUONReconstructor&);
66 /// Not implemented
67 AliMUONReconstructor& operator=(const AliMUONReconstructor&);
68
69 void ConvertDigits(AliRawReader* rawReader,
70 AliMUONVDigitStore* digitStore,
71 AliMUONVTriggerStore* triggerStore) const;
72 void Calibrate(AliMUONVDigitStore& digitStore) const;
73 void Clusterize(const AliMUONVDigitStore& digitStore, AliMUONVClusterStore& clusterStore) const;
74 AliMUONTriggerCrateStore* CrateManager() const;
75 void CreateCalibrator() const;
76 void CreateDigitMaker() const;
77 void CreateTriggerCircuit() const;
78 void CreateClusterReconstructor() const;
79 void CreateTriggerChamberEff() const;
80 void FillTreeR(AliMUONVTriggerStore* triggerStore,
81 AliMUONVClusterStore* clusterStore,
82 TTree& clustersTree) const;
83
84 AliMUONVDigitStore* DigitStore() const;
85 AliMUONVClusterStore* ClusterStore() const;
86 AliMUONVTriggerStore* TriggerStore() const;
87
88private:
89 mutable AliMUONTriggerCrateStore* fCrateManager; //!< Trigger Crate manager
90 mutable AliMUONDigitMaker* fDigitMaker; //!< Raw to Digits converter
91 AliMUONGeometryTransformer* fTransformer; //!< Geometry transformer (local<->global)
92 mutable AliMUONVDigitStore* fDigitStore; //!< Digit container
93 mutable AliMUONTriggerCircuit* fTriggerCircuit; //!< Trigger Circuit
94 mutable AliMUONCalibrationData* fCalibrationData; //!< Calibration data
95 mutable AliMUONDigitCalibrator* fDigitCalibrator; //!< Digit to calibrate digit converter
96 mutable AliMUONClusterReconstructor* fClusterReconstructor; //!< Clusterizer
97 mutable AliMUONVClusterStore* fClusterStore; //!< Cluster container
98 mutable AliMUONVTriggerStore* fTriggerStore; //!< Trigger container
99 mutable AliMUONVTrackStore* fTrackStore; //!< Track container
100 mutable AliMUONTriggerChamberEff* fTrigChamberEff; //!< pointer to trigger chamber efficiency class
101
102 static AliMUONRecoParam* fgRecoParam; //!< parameters used to tune the MUON reconstruction
103
104 ClassDef(AliMUONReconstructor,3) // Implementation of AliReconstructor
105};
106
107#endif