]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONRefitter.h
Fix memory leak (in simulations with trigger chamber efficiency < 1)
[u/mrichter/AliRoot.git] / MUON / AliMUONRefitter.h
index df700ff9310a7906f54d5f21706558cbd81566c9..2cbab77602ba6006d074e5c46fadc39c836b0ae8 100644 (file)
@@ -22,27 +22,28 @@ class AliMUONESDInterface;
 class AliMUONVClusterStore;
 class AliMUONVTrackStore;
 class AliMUONTrack;
+class AliMUONRecoParam;
 
 class AliMUONRefitter : public TObject
 {
 public:
   
-  AliMUONRefitter();
+  AliMUONRefitter(const AliMUONRecoParam* recoParam);
   virtual ~AliMUONRefitter();
   
   /// connect to the ESD interface containing MUON data to refit
-  void Connect(AliMUONESDInterface* esdInterface) {fESDInterface = esdInterface;}
+  void Connect(const AliMUONESDInterface* esdInterface) {fkESDInterface = esdInterface;}
   
   // re-reconstruct all tracks (clusters) in the ESD event
   AliMUONVTrackStore* ReconstructFromDigits();
   AliMUONVTrackStore* ReconstructFromClusters();
   
   // refit a particular track in the ESD event
-  AliMUONTrack* RetrackFromDigits(Int_t iTrack);
-  AliMUONTrack* RetrackFromClusters(Int_t iTrack);
+  AliMUONTrack* RetrackFromDigits(UInt_t trackId);
+  AliMUONTrack* RetrackFromClusters(UInt_t trackId);
   
   // re-clusterize a particular cluster in the ESD event
-  AliMUONVClusterStore* ReClusterize(Int_t iTrack, Int_t iCluster);
+  AliMUONVClusterStore* ReClusterize(UInt_t trackId, UInt_t clusterId);
   AliMUONVClusterStore* ReClusterize(UInt_t clusterId);
   
   
@@ -54,18 +55,20 @@ protected:
   
 private:
   
-  void                   CreateGeometryTransformer();
-  void                   CreateClusterServer(AliMUONGeometryTransformer& transformer);
+  void CreateGeometryTransformer();
+  void CreateClusterServer(AliMUONGeometryTransformer& transformer);
   
-  void AddClusterToTracks(const AliMUONVClusterStore &localClusterStore, AliMUONVTrackStore &trackStore);
+  AliMUONTrack* RetrackFromDigits(const AliMUONTrack& track);
   
+  Bool_t AddClusterToTracks(const AliMUONVClusterStore &localClusterStore, AliMUONVTrackStore &trackStore);
   
 private:
     
+  const AliMUONRecoParam*     fkRecoParam;          ///< pointer to reco param (not owner)
+  const AliMUONESDInterface*  fkESDInterface;       ///< container of MUON tracks/clusters/digits (not owner)
   AliMUONGeometryTransformer* fGeometryTransformer; ///< geometry transformer (owner)
   AliMUONVClusterServer*      fClusterServer;       ///< clusterizer (owner)
   AliMUONVTrackReconstructor* fTracker;             ///< tracker (owner)
-  AliMUONESDInterface*        fESDInterface;        ///< container of MUON tracks/clusters/digits (not owner)
   
   
   ClassDef(AliMUONRefitter,0)