d151fb427023bd8eab66d3cffda6be3c7d4d7846
[u/mrichter/AliRoot.git] / MUON / AliMUONVClusterStore.h
1 #ifndef ALIMUONVCLUSTERSTORE_H
2 #define ALIMUONVCLUSTERSTORE_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 AliMUONVClusterStore
11 /// \brief Interface of a cluster container
12 /// 
13 // Author Laurent Aphecetche, Subatech
14
15 #ifndef ALIMUONVSTORE_H
16 #  include "AliMUONVStore.h"
17 #endif
18
19 class AliMUONRawCluster;
20
21 class AliMUONVClusterStore : public AliMUONVStore
22 {
23 public:
24   AliMUONVClusterStore();
25   virtual ~AliMUONVClusterStore();
26   
27   virtual Bool_t Add(TObject* object);
28
29   /// Add a cluster object to the store
30   virtual Bool_t Add(const AliMUONRawCluster& Cluster) = 0;
31
32   using AliMUONVStore::Create;
33   
34   static AliMUONVClusterStore* Create(TTree& tree);
35   
36   /// Return an iterator to loop over the whole store
37   virtual TIterator* CreateIterator() const = 0;
38
39   /// Return an iterator to loop over the store in the given chamber range
40   virtual TIterator* CreateChamberIterator(Int_t firstChamberId, Int_t lastChamberId) const = 0;
41
42   /// Remove a cluster object to the store
43   virtual AliMUONRawCluster* Remove(AliMUONRawCluster& cluster) = 0;
44     
45   using AliMUONVStore::GetSize;
46   
47   ClassDef(AliMUONVClusterStore,1) // Cluster container interface
48 };
49
50 #endif