]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUONRefitter.h
Coverity fix for uninitialized variables and check for returned null value
[u/mrichter/AliRoot.git] / MUON / AliMUONRefitter.h
... / ...
CommitLineData
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;
25class AliMUONRecoParam;
26
27class AliMUONRefitter : public TObject
28{
29public:
30
31 AliMUONRefitter(const AliMUONRecoParam* recoParam);
32 virtual ~AliMUONRefitter();
33
34 /// connect to the ESD interface containing MUON data to refit
35 void Connect(const AliMUONESDInterface* esdInterface) {fkESDInterface = esdInterface;}
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
42 AliMUONTrack* RetrackFromDigits(UInt_t trackId);
43 AliMUONTrack* RetrackFromClusters(UInt_t trackId);
44
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);
48
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;}
51
52protected:
53
54 AliMUONRefitter (const AliMUONRefitter&); ///< copy constructor
55 AliMUONRefitter& operator=(const AliMUONRefitter&); ///< assignment operator
56
57
58private:
59
60 void CreateGeometryTransformer();
61 void CreateClusterServer(AliMUONGeometryTransformer& transformer);
62
63 AliMUONTrack* RetrackFromDigits(const AliMUONTrack& track);
64
65 Bool_t AddClusterToTracks(const AliMUONVClusterStore &localClusterStore, AliMUONVTrackStore &trackStore);
66
67private:
68
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)
74
75 Int_t nextClusterIndex; ///< Index of the next cluster produced by this refitter (to build its uniqueID)
76
77 ClassDef(AliMUONRefitter,0)
78};
79
80#endif
81