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;
25 class AliMUONRecoParam;
27 class AliMUONRefitter : public TObject
31 AliMUONRefitter(const AliMUONRecoParam* recoParam);
32 virtual ~AliMUONRefitter();
34 /// connect to the ESD interface containing MUON data to refit
35 void Connect(const AliMUONESDInterface* esdInterface) {fkESDInterface = esdInterface;}
37 // re-reconstruct all tracks (clusters) in the ESD event
38 AliMUONVTrackStore* ReconstructFromDigits();
39 AliMUONVTrackStore* ReconstructFromClusters();
41 // refit a particular track in the ESD event
42 AliMUONTrack* RetrackFromDigits(UInt_t trackId);
43 AliMUONTrack* RetrackFromClusters(UInt_t trackId);
45 // re-clusterize a particular cluster in the ESD event
46 AliMUONVClusterStore* ReClusterize(UInt_t trackId, UInt_t clusterId);
47 AliMUONVClusterStore* ReClusterize(UInt_t clusterId);
49 // set the first index of clusters produced by this refitter (to build its uniqueID)
50 void SetFirstClusterIndex(Int_t index) {nextClusterIndex = (index >= 0) ? index : 0;}
54 AliMUONRefitter (const AliMUONRefitter&); ///< copy constructor
55 AliMUONRefitter& operator=(const AliMUONRefitter&); ///< assignment operator
60 void CreateGeometryTransformer();
61 void CreateClusterServer(AliMUONGeometryTransformer& transformer);
63 AliMUONTrack* RetrackFromDigits(const AliMUONTrack& track);
65 Bool_t AddClusterToTracks(const AliMUONVClusterStore &localClusterStore, AliMUONVTrackStore &trackStore);
69 const AliMUONRecoParam* fkRecoParam; ///< pointer to reco param (not owner)
70 const AliMUONESDInterface* fkESDInterface; ///< container of MUON tracks/clusters/digits (not owner)
71 AliMUONGeometryTransformer* fGeometryTransformer; ///< geometry transformer (owner)
72 AliMUONVClusterServer* fClusterServer; ///< clusterizer (owner)
73 AliMUONVTrackReconstructor* fTracker; ///< tracker (owner)
75 Int_t nextClusterIndex; ///< Index of the next cluster produced by this refitter (to build its uniqueID)
77 ClassDef(AliMUONRefitter,0)