1 #ifndef ALIMUONREFITTER_H
2 #define ALIMUONREFITTER_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONRefitter
11 /// \brief class to refit the ESD clusters/tracks
13 // Author Philippe Pillot
17 class AliMUONGeometryTransformer;
18 class AliMUONVClusterFinder;
19 class AliMUONVClusterServer;
20 class AliMUONVTrackReconstructor;
21 class AliMUONESDInterface;
22 class AliMUONVClusterStore;
23 class AliMUONVTrackStore;
26 class AliMUONRefitter : public TObject
31 virtual ~AliMUONRefitter();
33 void Connect(AliMUONESDInterface* esdInterface) {fESDInterface = esdInterface;}
35 // re-reconstruct all tracks (clusters) in the ESD event
36 AliMUONVTrackStore* ReconstructFromDigits();
37 AliMUONVTrackStore* ReconstructFromClusters();
39 // refit a particular track in the ESD event
40 AliMUONTrack* RetrackFromDigits(Int_t iTrack);
41 AliMUONTrack* RetrackFromClusters(Int_t iTrack);
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);
50 AliMUONRefitter (const AliMUONRefitter&); ///< copy constructor
51 AliMUONRefitter& operator=(const AliMUONRefitter&); ///< assignment operator
56 void CreateGeometryTransformer();
57 void CreateClusterServer(AliMUONGeometryTransformer& transformer);
58 AliMUONVClusterFinder* CreateClusterFinder();
59 void CreateTrackReconstructor(AliMUONVClusterServer& clusterServer);
61 void AddClusterToTracks(const AliMUONVClusterStore &localClusterStore, AliMUONVTrackStore &trackStore);
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)
72 ClassDef(AliMUONRefitter,0)