Changes needed on Sun with Root v4-03-04
[u/mrichter/AliRoot.git] / MUON / AliMUONSt1Decoder.h
CommitLineData
ba030c0e 1#ifndef ALI_MUON_ST1_DECODER_H
2#define ALI_MUON_ST1_DECODER_H
3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
30178c30 7// Revision of includes 07/05/2004
ba030c0e 8
9// Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay
10//
11// Class AliMUONSt1Decoder
12// -----------------------
13// A generic set of functions (defined in the <decoder> namespace).
14// Used to decode formatted strings, eg. a list of integer ranges,
15// or a list of sub-strings separated by delimiters such as '(','{','[', ... .
16// Example:
17// (string 1) (string 2) [string3] {string4} [ (string5.1) (string5.2) ]
18// note : |_____________________|
19// |
20// this is just ONE substring.
21
2524c56f 22#include <Rtypes.h>
ba030c0e 23#include <string>
1eb40170 24#include <utility>
25#include <vector>
26
27#ifndef __HP_aCC
28 using std::string;
29 using std::pair;
30 using std::vector;
31#endif
5f91c9e8 32
1eb40170 33typedef vector<string> StringVector;
34typedef vector<Int_t> IntVector;
35typedef pair<Int_t, Int_t> IntPair;
36typedef vector<IntPair> IntPairVector;
37typedef pair<Double_t, Double_t> DoublePair;
38typedef vector<DoublePair> DoublePairVector;
ba030c0e 39
40namespace decoder
41{
1eb40170 42 StringVector SplitNtuples(const string& s,
43 const string& leftSep ="({[\"'/",
44 const string& rightSep=")}]\"'/");
45 StringVector SplitList(const string& s, const string& sep=";,");
46
47 IntVector DecodeListRanges(const string& s, const string& sep=";,",
48 const string& rangeSep="/");
49 IntPairVector DecodeListOfIntRanges(const string& s, const string& sep=";,",
50 const string& rangeSep="/");
51 DoublePairVector DecodeListOfFloatRanges(const string& s, const string& sep=";,",
52 const string& rangeSep="/");
ba030c0e 53}
54
55#endif //ALI_MUON_ST1_DECODER_H