ROOT logo

#ifndef ALIHEPDATAPARSER_H
#define ALIHEPDATAPARSER_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//-------------------------------------------------------------------------
//                      Implementation of   Class AliHEPDataParser
//
//  This class is used to save the content of hisograms/graphs in the
//  HEP data format and viceversa
//  Author: Michele Floris, CERN
//-------------------------------------------------------------------------

#include "TObject.h"
#include "TString.h"

class TH1;
class TGraph;

class AliHEPDataParser : public TObject{


public:
  AliHEPDataParser();
  AliHEPDataParser(TH1 * hStat, TH1 * hSyst);
  AliHEPDataParser(TGraph * grStat, TGraph * grSyst);
  AliHEPDataParser(const char * hepfileName);

  ~AliHEPDataParser();
  
  TH1 * GetHistoStat() { return fHistStat;}
  TH1 * GetHistoSyst() { return fHistSyst;}
  TGraph * GetGraphStat() { return fGraphStat;}
  TGraph * GetGraphSyst() { return fGraphSyst;}
  void SaveHEPDataFile(const char * hepfileName, Bool_t trueUseGraphFalesUseHisto = 0);

  void SetName(const char * name) { fValueName = name;}
  void SetXaxisName (TString val) {fXaxisName = val ;}
  void SetTitle(TString val) {fTitle = val;}
  void SetReaction(TString val) {fReaction = val;}
  void SetEnergy(TString val) {fEnergy = val;}
  void SetRapidityRange(TString val) {fRapidityRange = val;}
  void SetPrecision(Int_t   val) {fPrecision = val;}


protected:

  Double_t RoundToSignificantFigures(double num, int n) ;
  TString GetFixWidthCol(Double_t number, Int_t width) ;


  TH1 * fHistStat; // statistical errors (hist)
  TH1 * fHistSyst; // systematic errors (hist) 
  TGraph * fGraphStat; // statistical errors (hist)
  TGraph * fGraphSyst; // systematic errors (hist)  
  TObjArray * fHEPDataFileLines;// TClones array of TObjString
  TString fValueName; // title for the y axis on the ascii file
  TString fXaxisName; // title for the y axis
  TString fTitle; // title for the HEP DATA file
  TString fReaction; // Raction ,e.g. RE : Pb + Pb --> pbar + X
  TString fEnergy; // Raction ,e.g. sqrts : 2760 GeV
  TString fRapidityRange; // Rapidity ABS(YRAP) : 0.5'
  Int_t   fPrecision; // number of significant figures for rounding

  ClassDef(AliHEPDataParser, 2);
    
private:


  AliHEPDataParser(const AliHEPDataParser&);
  AliHEPDataParser& operator=(const AliHEPDataParser&);
};

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