]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - MUON/AliMUON2DMap.h
In AliMUONPedestal:
[u/mrichter/AliRoot.git] / MUON / AliMUON2DMap.h
... / ...
CommitLineData
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
18class AliMpExMap;
19
20class AliMUON2DMap : public AliMUONVStore
21{
22public:
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
58private:
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