]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONRefitter.h
1) New class "AliMUONRefitter" to:
[u/mrichter/AliRoot.git] / MUON / AliMUONRefitter.h
CommitLineData
7deb8eb0 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
17class AliMUONGeometryTransformer;
18class AliMUONVClusterFinder;
19class AliMUONVClusterServer;
20class AliMUONVTrackReconstructor;
21class AliMUONESDInterface;
22class AliMUONVClusterStore;
23class AliMUONVTrackStore;
24class AliMUONTrack;
25
26class AliMUONRefitter : public TObject
27{
28public:
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
48protected:
49
50 AliMUONRefitter (const AliMUONRefitter&); ///< copy constructor
51 AliMUONRefitter& operator=(const AliMUONRefitter&); ///< assignment operator
52
53
54private:
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
64private:
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