Migrating PWG2/SPECTRA/Fit to new PWG structure
[u/mrichter/AliRoot.git] / PWG / Tools / AliLatexTable.h
CommitLineData
4c0d7bc7 1// This class is used to print a table which can be pasted on a latex
2// document
3
4#ifndef ALILATEXTABLE_H
5#define ALILATEXTABLE_H
6
7#if !defined(__CINT__) || defined(__MAKECINT__)
8
9#include "TObject.h"
10#include "TString.h"
11class TObjArray;
12
13#endif
14
15
16using namespace std;
17
18class AliLatexTable : public TObject {
19
20public:
048a89c1 21 AliLatexTable() ;
4c0d7bc7 22 AliLatexTable(Int_t ncol, TString format);
23 ~AliLatexTable();
24
048a89c1 25
26 void LoadTeXFromFileAndPrintASCII(const char * filename);
4c0d7bc7 27 // first you set the value of each column
28 void SetNextCol(Int_t val);
29 void SetNextCol(Int_t val, Int_t err);
30
24a1ac33 31 void SetNextCol(Double_t val, Int_t scientificNotation = -1, Bool_t rounding = kTRUE); // if different from -1 gives significant digits
32 void SetNextCol(Double_t val, Double_t err, Int_t scientificNotation = -1, Bool_t rounding = kTRUE);
33 void SetNextCol(Double_t val, Double_t err, Double_t errSyst, Int_t scientificNotation = -1, Bool_t rounding = kTRUE);
4c0d7bc7 34
35 void SetNextCol(TString val);
36// // allows to use printf syntax
37// void SetNextColPrintf(const char *va_(fmt), ...);
38
39 // Then you add the row (it's up to user make sure all columns are
40 // there)
41 void InsertRow();
42
43
44 // insert a row without building it up with the methods. May be
45 // usefull for header or multcol rows
46 void InsertCustomRow(TString row);
47
48
49 void InsertHline();
50
51 void PrintTable(Option_t * opt = "");
52 // void ParseExponent(TString &expo);
53 void GetMantissaAndExpBase10(Double_t num, Double_t &man, Double_t &exp) ;
54
55 // used to print columns with correct width
56 Int_t * GetColWidths();
57 void StripLatex(TString &row, TString format) ;
58
59
60private:
61
62 Int_t fNcol; // number of columns
63 TString fFormat; // latex format (es "c|ccc")
64
65 TObjArray * fRows; // rows
66 TObjArray * fCols; // columns
67
68 Int_t fNcolReady; // number of cols ready to be insert
69
70
71 AliLatexTable(const AliLatexTable&);
72 AliLatexTable& operator=(const AliLatexTable&);
73
74 ClassDef(AliLatexTable, 1)
75
76
77};
78
79#endif
80