]>
Commit | Line | Data |
---|---|---|
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 | ||
17 | class AliMUONGeometryTransformer; | |
18 | class AliMUONVClusterFinder; | |
19 | class AliMUONVClusterServer; | |
20 | class AliMUONVTrackReconstructor; | |
21 | class AliMUONESDInterface; | |
22 | class AliMUONVClusterStore; | |
23 | class AliMUONVTrackStore; | |
24 | class AliMUONTrack; | |
a0dc65b4 | 25 | class AliMUONRecoParam; |
7deb8eb0 | 26 | |
27 | class AliMUONRefitter : public TObject | |
28 | { | |
29 | public: | |
30 | ||
a0dc65b4 | 31 | AliMUONRefitter(const AliMUONRecoParam* recoParam); |
7deb8eb0 | 32 | virtual ~AliMUONRefitter(); |
33 | ||
6cac085d | 34 | /// connect to the ESD interface containing MUON data to refit |
5a240757 | 35 | void Connect(const AliMUONESDInterface* esdInterface) {fkESDInterface = esdInterface;} |
7deb8eb0 | 36 | |
37 | // re-reconstruct all tracks (clusters) in the ESD event | |
38 | AliMUONVTrackStore* ReconstructFromDigits(); | |
39 | AliMUONVTrackStore* ReconstructFromClusters(); | |
40 | ||
41 | // refit a particular track in the ESD event | |
630711ed | 42 | AliMUONTrack* RetrackFromDigits(UInt_t trackId); |
43 | AliMUONTrack* RetrackFromClusters(UInt_t trackId); | |
7deb8eb0 | 44 | |
45 | // re-clusterize a particular cluster in the ESD event | |
630711ed | 46 | AliMUONVClusterStore* ReClusterize(UInt_t trackId, UInt_t clusterId); |
7deb8eb0 | 47 | AliMUONVClusterStore* ReClusterize(UInt_t clusterId); |
48 | ||
fe0324de | 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;} | |
7deb8eb0 | 51 | |
52 | protected: | |
53 | ||
54 | AliMUONRefitter (const AliMUONRefitter&); ///< copy constructor | |
55 | AliMUONRefitter& operator=(const AliMUONRefitter&); ///< assignment operator | |
56 | ||
57 | ||
58 | private: | |
59 | ||
630711ed | 60 | void CreateGeometryTransformer(); |
61 | void CreateClusterServer(AliMUONGeometryTransformer& transformer); | |
62 | ||
63 | AliMUONTrack* RetrackFromDigits(const AliMUONTrack& track); | |
7deb8eb0 | 64 | |
ad6250dc | 65 | Bool_t AddClusterToTracks(const AliMUONVClusterStore &localClusterStore, AliMUONVTrackStore &trackStore); |
7deb8eb0 | 66 | |
7deb8eb0 | 67 | private: |
68 | ||
5a240757 | 69 | const AliMUONRecoParam* fkRecoParam; ///< pointer to reco param (not owner) |
70 | const AliMUONESDInterface* fkESDInterface; ///< container of MUON tracks/clusters/digits (not owner) | |
7deb8eb0 | 71 | AliMUONGeometryTransformer* fGeometryTransformer; ///< geometry transformer (owner) |
72 | AliMUONVClusterServer* fClusterServer; ///< clusterizer (owner) | |
73 | AliMUONVTrackReconstructor* fTracker; ///< tracker (owner) | |
7deb8eb0 | 74 | |
fe0324de | 75 | Int_t nextClusterIndex; ///< Index of the next cluster produced by this refitter (to build its uniqueID) |
7deb8eb0 | 76 | |
77 | ClassDef(AliMUONRefitter,0) | |
78 | }; | |
79 | ||
80 | #endif | |
81 |