]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONRefitter.h
Afterburner to generate light nuclei
[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;
a0dc65b4 25class AliMUONRecoParam;
7deb8eb0 26
27class AliMUONRefitter : public TObject
28{
29public:
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
52protected:
53
54 AliMUONRefitter (const AliMUONRefitter&); ///< copy constructor
55 AliMUONRefitter& operator=(const AliMUONRefitter&); ///< assignment operator
56
57
58private:
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 67private:
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