]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONSt1Decoder.h
Using TGeo to retrieve the mean material budget between two points (M.Ivanov)
[u/mrichter/AliRoot.git] / MUON / AliMUONSt1Decoder.h
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$ */
7 // Revision of includes 07/05/2004
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
22 #include <Rtypes.h>
23 #include <string>
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  
32
33 typedef vector<string>  StringVector; 
34 typedef vector<Int_t>   IntVector; 
35 typedef pair<Int_t, Int_t> IntPair;
36 typedef vector<IntPair>    IntPairVector;
37 typedef pair<Double_t, Double_t>  DoublePair;
38 typedef vector<DoublePair>        DoublePairVector;
39
40 namespace decoder
41 {
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="/");
53 }
54
55 #endif //ALI_MUON_ST1_DECODER_H