]>
Commit | Line | Data |
---|---|---|
f6e5d0e9 | 1 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
2 | * See cxx source for full Copyright notice */ | |
3 | ||
4 | // $Id$ | |
5 | ||
46df088d | 6 | /// \ingroup core |
f6e5d0e9 | 7 | /// \class AliMUON2DMap |
4178b5c7 | 8 | /// \brief Basic implementation of AliMUONVStore container using |
e5cc543e | 9 | /// AliMpExMap internally. |
f6e5d0e9 | 10 | /// |
5398f946 | 11 | // Author Laurent Aphecetche |
f6e5d0e9 | 12 | |
7d5d0cc5 | 13 | #ifndef ALIMUON2DMAP_H |
14 | #define ALIMUON2DMAP_H | |
f6e5d0e9 | 15 | |
4178b5c7 | 16 | #include "AliMUONVStore.h" |
f6e5d0e9 | 17 | |
18 | class AliMpExMap; | |
19 | ||
4178b5c7 | 20 | class AliMUON2DMap : public AliMUONVStore |
f6e5d0e9 | 21 | { |
22 | public: | |
630711ed | 23 | AliMUON2DMap(TRootIOCtor* ioCtor); |
24 | AliMUON2DMap(Bool_t optimizeForDEManu); | |
4178b5c7 | 25 | AliMUON2DMap(const AliMUON2DMap& other); |
26 | AliMUON2DMap& operator = (const AliMUON2DMap& other); | |
f6e5d0e9 | 27 | virtual ~AliMUON2DMap(); |
28 | ||
4178b5c7 | 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; | |
d91c6144 | 38 | |
f246123b | 39 | /// The returned iterator is owned by the client. |
4178b5c7 | 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; | |
f246123b | 46 | |
4178b5c7 | 47 | virtual TObject* FindObject(Int_t i, Int_t j) const; |
f6e5d0e9 | 48 | |
49419555 | 49 | virtual TObject* FindObject(UInt_t uid) const; |
50 | ||
4178b5c7 | 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; | |
9d5f6a64 | 57 | |
58 | private: | |
630711ed | 59 | /// Not implemented |
60 | AliMUON2DMap(); | |
61 | ||
4178b5c7 | 62 | Bool_t Set(Int_t i, Int_t j, TObject* object, Bool_t replace); |
f246123b | 63 | |
7332f213 | 64 | static const Int_t fgkOptimalSizeForDEManu; ///< Optimal size for DEManu |
65 | ||
18b6b8c7 | 66 | AliMpExMap* fMap; ///< Our internal map (an AliMpExMap of AliMpExMaps) |
d91c6144 | 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. |
f6e5d0e9 | 68 | |
d91c6144 | 69 | ClassDef(AliMUON2DMap,2) // A 2D container |
f6e5d0e9 | 70 | }; |
71 | ||
72 | #endif |