]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONRefitter.h
1) New class "AliMUONRefitter" to:
[u/mrichter/AliRoot.git] / MUON / AliMUONRefitter.h
1 #ifndef ALIMUONREFITTER_H
2 #define ALIMUONREFITTER_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 AliMUONRefitter
11 /// \brief class to refit the ESD clusters/tracks
12 /// 
13 //  Author Philippe Pillot
14
15 #include <TObject.h>
16
17 class AliMUONGeometryTransformer;
18 class AliMUONVClusterFinder;
19 class AliMUONVClusterServer;
20 class AliMUONVTrackReconstructor;
21 class AliMUONESDInterface;
22 class AliMUONVClusterStore;
23 class AliMUONVTrackStore;
24 class AliMUONTrack;
25
26 class AliMUONRefitter : public TObject
27 {
28 public:
29   
30   AliMUONRefitter();
31   virtual ~AliMUONRefitter();
32   
33   void Connect(AliMUONESDInterface* esdInterface) {fESDInterface = esdInterface;}
34   
35   // re-reconstruct all tracks (clusters) in the ESD event
36   AliMUONVTrackStore* ReconstructFromDigits();
37   AliMUONVTrackStore* ReconstructFromClusters();
38   
39   // refit a particular track in the ESD event
40   AliMUONTrack* RetrackFromDigits(Int_t iTrack);
41   AliMUONTrack* RetrackFromClusters(Int_t iTrack);
42   
43   // re-clusterize a particular cluster in the ESD event
44   AliMUONVClusterStore* ReClusterize(Int_t iTrack, Int_t iCluster);
45   AliMUONVClusterStore* ReClusterize(UInt_t clusterId);
46   
47   
48 protected:
49   
50   AliMUONRefitter (const AliMUONRefitter&); ///< copy constructor
51   AliMUONRefitter& operator=(const AliMUONRefitter&); ///< assignment operator
52   
53   
54 private:
55   
56   void                   CreateGeometryTransformer();
57   void                   CreateClusterServer(AliMUONGeometryTransformer& transformer);
58   AliMUONVClusterFinder* CreateClusterFinder();
59   void                   CreateTrackReconstructor(AliMUONVClusterServer& clusterServer);
60   
61   void AddClusterToTracks(const AliMUONVClusterStore &localClusterStore, AliMUONVTrackStore &trackStore);
62   
63   
64 private:
65     
66   AliMUONGeometryTransformer* fGeometryTransformer; ///< geometry transformer (owner)
67   AliMUONVClusterServer*      fClusterServer;       ///< clusterizer (owner)
68   AliMUONVTrackReconstructor* fTracker;             ///< tracker (owner)
69   AliMUONESDInterface*        fESDInterface;        ///< container of MUON tracks/clusters/digits (not owner)
70   
71   
72   ClassDef(AliMUONRefitter,0)
73 };
74
75 #endif
76