ROOT logo
// This class is used to print a table which can be pasted on a latex
// document

#ifndef ALILATEXTABLE_H
#define ALILATEXTABLE_H

#if !defined(__CINT__) || defined(__MAKECINT__)

#include "TObject.h"
#include "TString.h"
class TObjArray;

#endif


using namespace std;

class AliLatexTable : public TObject {

public:
  AliLatexTable() ;
  AliLatexTable(Int_t ncol, TString format);
  ~AliLatexTable();


  void LoadTeXFromFileAndPrintASCII(const char * filename);
  // first you set the value of each column
  void SetNextCol(Int_t val); 
  void SetNextCol(Int_t val, Int_t err); 

  void SetNextCol(Double_t val, Int_t scientificNotation = -1, Bool_t rounding = kTRUE); // if different from -1 gives significant digits
  void SetNextCol(Double_t val, Double_t err, Int_t scientificNotation = -1, Bool_t rounding = kTRUE); 
  void SetNextCol(Double_t val, Double_t err, Double_t errSyst, Int_t scientificNotation = -1, Bool_t rounding = kTRUE); 

  void SetNextCol(TString val); 
//   // allows to use printf syntax
//   void SetNextColPrintf(const char *va_(fmt), ...);

  // Then you add the row (it's up to user make sure all columns are
  // there)
  void InsertRow();


  // insert a row without building it up with the methods. May be
  // usefull for header or multcol rows
  void InsertCustomRow(TString row);


  void InsertHline();

  void PrintTable(Option_t * opt = "");
  //  void ParseExponent(TString &expo);
  void GetMantissaAndExpBase10(Double_t num, Double_t &man, Double_t &exp) ;

  // used to print columns with correct width
  Int_t * GetColWidths();
  void StripLatex(TString &row, TString format) ;
  

private:

  Int_t fNcol;     // number of columns
  TString fFormat; // latex format (es "c|ccc")
  
  TObjArray * fRows; // rows 
  TObjArray * fCols; // columns
  
  Int_t fNcolReady; // number of cols ready to be insert


  AliLatexTable(const AliLatexTable&);
  AliLatexTable& operator=(const AliLatexTable&);

  ClassDef(AliLatexTable, 1)


};

#endif

 AliLatexTable.h:1
 AliLatexTable.h:2
 AliLatexTable.h:3
 AliLatexTable.h:4
 AliLatexTable.h:5
 AliLatexTable.h:6
 AliLatexTable.h:7
 AliLatexTable.h:8
 AliLatexTable.h:9
 AliLatexTable.h:10
 AliLatexTable.h:11
 AliLatexTable.h:12
 AliLatexTable.h:13
 AliLatexTable.h:14
 AliLatexTable.h:15
 AliLatexTable.h:16
 AliLatexTable.h:17
 AliLatexTable.h:18
 AliLatexTable.h:19
 AliLatexTable.h:20
 AliLatexTable.h:21
 AliLatexTable.h:22
 AliLatexTable.h:23
 AliLatexTable.h:24
 AliLatexTable.h:25
 AliLatexTable.h:26
 AliLatexTable.h:27
 AliLatexTable.h:28
 AliLatexTable.h:29
 AliLatexTable.h:30
 AliLatexTable.h:31
 AliLatexTable.h:32
 AliLatexTable.h:33
 AliLatexTable.h:34
 AliLatexTable.h:35
 AliLatexTable.h:36
 AliLatexTable.h:37
 AliLatexTable.h:38
 AliLatexTable.h:39
 AliLatexTable.h:40
 AliLatexTable.h:41
 AliLatexTable.h:42
 AliLatexTable.h:43
 AliLatexTable.h:44
 AliLatexTable.h:45
 AliLatexTable.h:46
 AliLatexTable.h:47
 AliLatexTable.h:48
 AliLatexTable.h:49
 AliLatexTable.h:50
 AliLatexTable.h:51
 AliLatexTable.h:52
 AliLatexTable.h:53
 AliLatexTable.h:54
 AliLatexTable.h:55
 AliLatexTable.h:56
 AliLatexTable.h:57
 AliLatexTable.h:58
 AliLatexTable.h:59
 AliLatexTable.h:60
 AliLatexTable.h:61
 AliLatexTable.h:62
 AliLatexTable.h:63
 AliLatexTable.h:64
 AliLatexTable.h:65
 AliLatexTable.h:66
 AliLatexTable.h:67
 AliLatexTable.h:68
 AliLatexTable.h:69
 AliLatexTable.h:70
 AliLatexTable.h:71
 AliLatexTable.h:72
 AliLatexTable.h:73
 AliLatexTable.h:74
 AliLatexTable.h:75
 AliLatexTable.h:76
 AliLatexTable.h:77
 AliLatexTable.h:78
 AliLatexTable.h:79
 AliLatexTable.h:80