1 #ifndef ALI_MUON_ST1_INI_READER_H
2 #define ALI_MUON_ST1_INI_READER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 // Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay
10 // Class AliMUONIniReader
11 // ----------------------
12 // General class to read data in ASCII file format,
13 // similar to the Windows ".ini" files (a set of sections tagged by a
15 // and values defined in the way:
16 // parameterName = value
18 // comment lines can be introduced if the first non-blank character
19 // is either ';' or '#'
35 class AliMUONSt1IniReader
38 enum IniType {kUndef, kChapter, kValue};
40 typedef pair<string, string> ValuePair;
41 typedef vector<ValuePair> ValueList;
42 typedef pair<string, ValueList> Chapter;
43 typedef multimap <string, ValueList> ChapterList;
46 AliMUONSt1IniReader();
47 AliMUONSt1IniReader(string fileName);
48 virtual ~AliMUONSt1IniReader();
51 IniType GetCurrentType() const {return fCurrentType; }
52 string GetCurrentName() const {return fCurrentName; }
53 string GetCurrentValue() const {return fCurrentValue;}
54 Chapter MakeCurrentChapter();
55 ValueList MakeCurrentValueList();
56 ChapterList MakeChapterList();
57 bool Eof() const {return fEndOfFile;}
61 string Trail(const string& s) const;
63 ifstream fFile; // the file to be read
64 IniType fCurrentType; // current type of line (either kChapter or kValue)
65 string fCurrentName; // name of chapter / name of parameter pair
66 string fCurrentValue;// value of the parameter pair if the type is kValue
67 bool fEndOfFile; // true if the file is entirely read
70 #endif //ALI_MUON_ST1_INI_READER_H