Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[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 #ifndef ALIMUONVCLUSTER_H
20 #  include "AliMUONVCluster.h" // must be there for covariant return type of FindObjet methods
21 #endif
22
23 class AliMUONVCluster;
24
25 class AliMUONVClusterStore : public AliMUONVStore
26 {
27 public:
28   AliMUONVClusterStore();
29   virtual ~AliMUONVClusterStore();
30   
31   virtual Bool_t Add(TObject* object);
32
33   /// Add a cluster object to the store
34   virtual AliMUONVCluster* Add(const AliMUONVCluster& Cluster) = 0;
35   /// Create a new cluster with an unique ID and add it to the store
36   virtual AliMUONVCluster* Add(Int_t chamberId, Int_t detElemId, Int_t clusterIndex) = 0;
37
38   using AliMUONVStore::Create;
39   
40   static AliMUONVClusterStore* Create(TTree& tree);
41   
42   /// Create a cluster
43   virtual AliMUONVCluster* CreateCluster(Int_t chamberId, Int_t detElemId, Int_t clusterIndex) const = 0;
44   
45   /// Return an iterator to loop over the whole store
46   virtual TIterator* CreateIterator() const = 0;
47
48   /// Return an iterator to loop over the store in the given chamber range
49   virtual TIterator* CreateChamberIterator(Int_t firstChamberId, Int_t lastChamberId) const = 0;
50   
51   /// Clear container
52   virtual void Clear(Option_t* opt="") = 0;
53   
54   /// Remove a cluster object to the store
55   virtual AliMUONVCluster* Remove(AliMUONVCluster& cluster) = 0;
56     
57   using AliMUONVStore::FindObject;
58
59   // Find an object (default is the same as in AliMUONVStore)
60   virtual AliMUONVCluster* FindObject(const TObject* object) const;
61   
62   // Find an object by its uniqueID (default is the same as in AliMUONVStore)
63   virtual AliMUONVCluster* FindObject(UInt_t uniqueID) const;
64   
65   ClassDef(AliMUONVClusterStore,1) // Cluster container interface
66 };
67
68 #endif
69