Remove the dollar-id-dollar in the responsible name which interfere with CDB_MD metad...
[u/mrichter/AliRoot.git] / MUON / AliMUON2DMap.h
1 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice                               */
3
4 // $Id$
5
6 /// \ingroup core
7 /// \class AliMUON2DMap
8 /// \brief Basic implementation of AliMUONVStore container using
9 /// AliMpExMap internally.
10 ///
11 //  Author Laurent Aphecetche
12
13 #ifndef ALIMUON2DMAP_H
14 #define ALIMUON2DMAP_H
15
16 #include "AliMUONVStore.h"
17
18 class AliMpExMap;
19
20 class AliMUON2DMap : public AliMUONVStore
21 {
22 public:
23   AliMUON2DMap(TRootIOCtor* ioCtor);
24   AliMUON2DMap(Bool_t optimizeForDEManu);  
25   AliMUON2DMap(const AliMUON2DMap& other);
26   AliMUON2DMap&  operator = (const AliMUON2DMap& other);
27   virtual ~AliMUON2DMap();
28
29   virtual Bool_t Add(TObject* object);
30   
31   /// Mandatory methods from TCollection
32   virtual void Clear(Option_t* opt="");
33   
34   /// Whether the Connect(TTree&) method is implemented
35   virtual Bool_t CanConnect() const { return kFALSE; }
36   
37   virtual AliMUONVStore* Create() const;
38   
39   /// The returned iterator is owned by the client.
40   virtual TIterator* CreateIterator() const;
41
42   /// Iterate on part of the store (only for (i,j) where firstI<=i<=lastI
43   TIterator* CreateIterator(Int_t firstI, Int_t lastI) const;
44
45   using AliMUONVStore::FindObject;
46   
47   virtual TObject* FindObject(Int_t i, Int_t j) const;
48
49   virtual TObject* FindObject(UInt_t uid) const;
50
51   /// Whether our internal storage is optimize to store (detection element id, manu id)  
52   Bool_t IsOptimizedForDEManu() const { return fOptimizeForDEManu; }
53   
54   virtual Int_t GetSize() const;
55
56   virtual Int_t GetSize(Int_t i) const;
57
58 private:
59   /// Not implemented
60   AliMUON2DMap();
61
62   Bool_t Set(Int_t i, Int_t j, TObject* object, Bool_t replace);
63
64   static const Int_t fgkOptimalSizeForDEManu; ///< Optimal size for DEManu
65
66   AliMpExMap* fMap; ///< Our internal map (an AliMpExMap of AliMpExMaps)
67   Bool_t fOptimizeForDEManu; ///< whether (i,j) pair is supposed to be (DetElemId,ManuId) (allow us to allocate right amount of memory, that's all it does.
68   
69   ClassDef(AliMUON2DMap,2) // A 2D container
70 };
71
72 #endif