ROOT logo
#ifndef ALIMUONTRACKSTOREV1_H
#define ALIMUONTRACKSTOREV1_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup rec
/// \class AliMUONTrackStoreV1
/// \brief Implementation of AliMUONVTrackStore
/// 
// Author Laurent Aphecetche

#ifndef ALIMUONVTRACKSTORE_H
#  include "AliMUONVTrackStore.h"
#endif

class TClonesArray;

class AliMUONTrackStoreV1 : public AliMUONVTrackStore
{
public:
  AliMUONTrackStoreV1();
  AliMUONTrackStoreV1(TRootIOCtor* dummy);
  virtual ~AliMUONTrackStoreV1();
  
  using AliMUONVTrackStore::Add;
  
  virtual AliMUONTrack* Add(const AliMUONTrack& track);

  virtual AliMUONTrack* Remove(AliMUONTrack& track);
  
  /// Whether the Connect(TTree&) method is implemented
  virtual Bool_t CanConnect() const { return kTRUE; }
  
  virtual Bool_t Connect(TTree& tree, Bool_t alone=kTRUE) const;

  virtual AliMUONTrackStoreV1* Create() const { return new AliMUONTrackStoreV1; }
  
  virtual TIterator* CreateIterator() const;
  
  virtual void Clear(Option_t* opt="");
  
  using AliMUONVTrackStore::GetSize;
  
  virtual Int_t GetSize() const;
  
private:
    /// Return the tracks array
    TClonesArray* Tracks() const { return fTracks; }
  
    void CreateTracks(); 
  
    /// Return the address of the tracks array
    TClonesArray** TracksPtr() const { return const_cast<TClonesArray**>(&fTracks); }

    /// Not implemented
    AliMUONTrackStoreV1(const AliMUONTrackStoreV1&);
    /// Not implemented
    AliMUONTrackStoreV1& operator=(const AliMUONTrackStoreV1&);
  
private:
    TClonesArray* fTracks; ///< Internal array
  
  ClassDef(AliMUONTrackStoreV1,1) // Implementation of AliMUONVTrackStore
};

#endif
 AliMUONTrackStoreV1.h:1
 AliMUONTrackStoreV1.h:2
 AliMUONTrackStoreV1.h:3
 AliMUONTrackStoreV1.h:4
 AliMUONTrackStoreV1.h:5
 AliMUONTrackStoreV1.h:6
 AliMUONTrackStoreV1.h:7
 AliMUONTrackStoreV1.h:8
 AliMUONTrackStoreV1.h:9
 AliMUONTrackStoreV1.h:10
 AliMUONTrackStoreV1.h:11
 AliMUONTrackStoreV1.h:12
 AliMUONTrackStoreV1.h:13
 AliMUONTrackStoreV1.h:14
 AliMUONTrackStoreV1.h:15
 AliMUONTrackStoreV1.h:16
 AliMUONTrackStoreV1.h:17
 AliMUONTrackStoreV1.h:18
 AliMUONTrackStoreV1.h:19
 AliMUONTrackStoreV1.h:20
 AliMUONTrackStoreV1.h:21
 AliMUONTrackStoreV1.h:22
 AliMUONTrackStoreV1.h:23
 AliMUONTrackStoreV1.h:24
 AliMUONTrackStoreV1.h:25
 AliMUONTrackStoreV1.h:26
 AliMUONTrackStoreV1.h:27
 AliMUONTrackStoreV1.h:28
 AliMUONTrackStoreV1.h:29
 AliMUONTrackStoreV1.h:30
 AliMUONTrackStoreV1.h:31
 AliMUONTrackStoreV1.h:32
 AliMUONTrackStoreV1.h:33
 AliMUONTrackStoreV1.h:34
 AliMUONTrackStoreV1.h:35
 AliMUONTrackStoreV1.h:36
 AliMUONTrackStoreV1.h:37
 AliMUONTrackStoreV1.h:38
 AliMUONTrackStoreV1.h:39
 AliMUONTrackStoreV1.h:40
 AliMUONTrackStoreV1.h:41
 AliMUONTrackStoreV1.h:42
 AliMUONTrackStoreV1.h:43
 AliMUONTrackStoreV1.h:44
 AliMUONTrackStoreV1.h:45
 AliMUONTrackStoreV1.h:46
 AliMUONTrackStoreV1.h:47
 AliMUONTrackStoreV1.h:48
 AliMUONTrackStoreV1.h:49
 AliMUONTrackStoreV1.h:50
 AliMUONTrackStoreV1.h:51
 AliMUONTrackStoreV1.h:52
 AliMUONTrackStoreV1.h:53
 AliMUONTrackStoreV1.h:54
 AliMUONTrackStoreV1.h:55
 AliMUONTrackStoreV1.h:56
 AliMUONTrackStoreV1.h:57
 AliMUONTrackStoreV1.h:58
 AliMUONTrackStoreV1.h:59
 AliMUONTrackStoreV1.h:60
 AliMUONTrackStoreV1.h:61
 AliMUONTrackStoreV1.h:62
 AliMUONTrackStoreV1.h:63
 AliMUONTrackStoreV1.h:64
 AliMUONTrackStoreV1.h:65
 AliMUONTrackStoreV1.h:66
 AliMUONTrackStoreV1.h:67
 AliMUONTrackStoreV1.h:68
 AliMUONTrackStoreV1.h:69