]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/mapping/AliMpExMap.h
Updated for modifs in AliMpFiles
[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$
5// $MpId: AliMpExMap.h,v 1.1 2005/09/26 16:16:16 ivana Exp $
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///
14/// Author: Ivana Hrivnacova; IPN Orsay
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
24class TString;
25
26class AliMpIntPair;
27
28class AliMpExMap : public TObject
29{
30 public:
31 AliMpExMap(Bool_t standardConstructor);
32 AliMpExMap();
33 virtual ~AliMpExMap();
34
35 // static methods
36 // conversion between varius keys and Long_t
37 //
38 static Long_t GetIndex(const AliMpIntPair& pair);
39 static Long_t GetIndex(const TString& s);
40 static AliMpIntPair GetPair(Long_t index);
41 static TString GetString(Long_t index);
42
43 // set methods
44 void Add(const AliMpIntPair& key, TObject* object);
45 void Add(const TString& key, TObject* object);
46 void Add(Int_t key, TObject* object);
47
48 void SetSize(Int_t size);
49 void SetOwner(Bool_t owner);
50
51 // get methods
52 Int_t GetSize() const;
53 TExMapIter GetIterator() const;
54
55 TObject* GetValue(const AliMpIntPair& key) const;
56 TObject* GetValue(const TString& key) const;
57 TObject* GetValue(Int_t key) const;
58
59 private:
60 // methods
61 void FillMap();
62 void AddKey(Long_t key);
63
64 // static data members
65 static const Int_t fgkDefaultSize; // Default initial size
66 static const Bool_t fgkDefaultOwnership; // Default ownership
67
68 static const Int_t fgkSeparator1; // the separator used for conversion
69 // of AliMpIntPair to Int_t
70 static const Int_t fgkSeparator2; // the separator used for conversion
71 // of TString to Int_t
72 static const TString fgkCharacterMap; // the string mapping characters
73 // to integers
74
75 // data members
76 mutable TExMap fMap; //! Transient map class
77 TObjArray fObjects; // Array of objects
78 TArrayL fKeys; // Array of keys
79
80 ClassDef(AliMpExMap,1) // Root persistent TExMap
81};
82
83#endif //ALI_MP_EX_MAP_H
84