]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpExMap.h
In SetNofManusPerModule(): return false if no action
[u/mrichter/AliRoot.git] / MUON / mapping / AliMpExMap.h
CommitLineData
5006ec94 1/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
2 * See cxx source for full Copyright notice */
3
4// $Id$
13985652 5// $MpId: AliMpExMap.h,v 1.4 2006/05/24 13:58:07 ivana Exp $
5006ec94 6
7/// \ingroup basic
8/// \class AliMpExMap
9/// \brief Helper class making Root persistent TExMap
10///
11/// The objects and keys from TExMap are store in additional
12/// arrays which are Root persistent.
13///
13985652 14/// \author Ivana Hrivnacova; IPN Orsay
5006ec94 15
16#ifndef ALI_MP_EX_MAP_H
17#define ALI_MP_EX_MAP_H
18
19#include <TObject.h>
20#include <TObjArray.h>
21#include <TArrayL.h>
22#include <TExMap.h>
23
5006ec94 24class AliMpIntPair;
25
2a7ea2e6 26class TString;
27
5006ec94 28class AliMpExMap : public TObject
29{
30 public:
5006ec94 31 AliMpExMap();
f8919723 32 AliMpExMap(Bool_t standardConstructor);
33 AliMpExMap(const AliMpExMap& rhs);
34 AliMpExMap& operator=(const AliMpExMap& rhs);
5006ec94 35 virtual ~AliMpExMap();
36
37 // static methods
38 // conversion between varius keys and Long_t
39 //
40 static Long_t GetIndex(const AliMpIntPair& pair);
41 static Long_t GetIndex(const TString& s);
42 static AliMpIntPair GetPair(Long_t index);
43 static TString GetString(Long_t index);
44
45 // set methods
46 void Add(const AliMpIntPair& key, TObject* object);
47 void Add(const TString& key, TObject* object);
48 void Add(Int_t key, TObject* object);
49
50 void SetSize(Int_t size);
51 void SetOwner(Bool_t owner);
52
53 // get methods
54 Int_t GetSize() const;
55 TExMapIter GetIterator() const;
6b431a48 56 TObject* GetObject(Int_t index) const;
5006ec94 57
58 TObject* GetValue(const AliMpIntPair& key) const;
59 TObject* GetValue(const TString& key) const;
60 TObject* GetValue(Int_t key) const;
f8919723 61
62 void Copy(TObject& dest) const;
5006ec94 63
64 private:
65 // methods
66 void FillMap();
67 void AddKey(Long_t key);
68
69 // static data members
829425a5 70 static const Int_t fgkDefaultSize; ///< Default initial size
71 static const Bool_t fgkDefaultOwnership; ///< Default ownership
5006ec94 72
829425a5 73 static const Int_t fgkSeparator1; ///< \brief the separator used for conversion
74 /// of AliMpIntPair to Int_t
75 static const Int_t fgkSeparator2; ///< \brief the separator used for conversion
76 /// of TString to Int_t
77 static const TString fgkCharacterMap; ///< \brief the string mapping characters
78 /// to integers
5006ec94 79
80 // data members
829425a5 81 mutable TExMap fMap; //!< Transient map class
82 TObjArray fObjects; ///< Array of objects
83 TArrayL fKeys; ///< Array of keys
5006ec94 84
85 ClassDef(AliMpExMap,1) // Root persistent TExMap
86};
87
88#endif //ALI_MP_EX_MAP_H
89