ROOT logo
#ifndef ALIMUONCLUSTERSTOREV1_H
#define ALIMUONCLUSTERSTOREV1_H

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

// $Id$

/// \ingroup rec
/// \class AliMUONClusterStoreV1
/// \brief Implementation of VClusterStore
/// 
// Author Laurent Aphecetche, Subatech

#ifndef ALIMUONVCLUSTERSTORE_H
#  include "AliMUONVClusterStore.h"
#endif

class TObjArray;
class TClonesArray;

class AliMUONClusterStoreV1 : public AliMUONVClusterStore
{
public:
  AliMUONClusterStoreV1();
  AliMUONClusterStoreV1(const AliMUONClusterStoreV1& rhs);
  AliMUONClusterStoreV1& operator=(const AliMUONClusterStoreV1& rhs);  
  virtual ~AliMUONClusterStoreV1();
  
  virtual AliMUONClusterStoreV1* Create() const { return new AliMUONClusterStoreV1; }
  
  virtual AliMUONVCluster* CreateCluster(Int_t /*chamberId*/, Int_t detElemId, Int_t /*clusterIndex*/) const;
  
  using AliMUONVClusterStore::Add;
  
  virtual AliMUONVCluster* Add(const AliMUONVCluster& Cluster);
  virtual AliMUONVCluster* Add(Int_t chamberId, Int_t detElemId, Int_t /*clusterIndex*/);

  /// Whether the Connect(TTree&) method is implemented
  virtual Bool_t CanConnect() const { return kTRUE; }
  
  virtual TIterator* CreateIterator() const;

  virtual TIterator* CreateChamberIterator(Int_t firstChamberId, Int_t lastChamberId) const;
  
  virtual Bool_t Connect(TTree& tree, Bool_t alone=kTRUE) const;

  virtual void Clear(Option_t* opt="");
  
  using AliMUONVClusterStore::GetSize;
  
  virtual Int_t GetSize() const;

  virtual AliMUONVCluster* Remove(AliMUONVCluster& cluster);

private:

  TClonesArray* ChamberClusters(Int_t chamberId) const;
  TObject** ChamberClustersPtr(Int_t chamberId) const;
  //AliMUONVCluster* Find(Int_t clusterId, Int_t& index) const;
  
private:
  TObjArray* fClusters; //!< Array of TClonesArray of VClusters
  
  ClassDef(AliMUONClusterStoreV1,1) // Implementation of VClusterStore
};

#endif

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