#ifndef ALIANALYSISMUMUGRAPHUTIL_H
#define ALIANALYSISMUMUGRAPHUTIL_H
#ifndef ROOT_TObject
# include "TObject.h"
#endif
#include <vector>
#include <string>
#include <set>
class TGraph;
class TGraphErrors;
class TCanvas;
class TObjArray;
#include "TAttFill.h"
#include "TAttMarker.h"
#include "TAttLine.h"
#include "TAttAxis.h"
#include "TString.h"
class AliAnalysisMuMuGraphUtil : public TObject
{
public:
AliAnalysisMuMuGraphUtil(const char* ocdbpath="raw://");
virtual ~AliAnalysisMuMuGraphUtil() {}
static TGraphErrors* Combine(TObjArray& graph, Bool_t compact);
static void Compact(TGraph& g);
void DefaultStyle();
TCanvas* DrawWith2Scales(TGraph& g1, TGraph& g2, const char* canvasName="c1");
static Int_t GetRunNumber(const TGraph& g, Int_t i);
void GetRuns(std::set<int>& runs, TGraph& graph) const;
static Bool_t IsCompact(TGraph& g);
void PlotSameWithLegend(TObjArray& a, Double_t ymin, Double_t ymax) const;
void ShouldDrawPeriods(Bool_t value) { fShouldDrawPeriods = value; }
void StyleGraph(TGraph& graph, UInt_t index) const;
static void UnCompact(TGraph& g);
static void GetYMinAndMax(TGraph& g, Double_t& ymin, Double_t& ymax);
static TGraph* RelDif(TGraph& ga, TGraph& gb);
private:
AliAnalysisMuMuGraphUtil(const AliAnalysisMuMuGraphUtil& rhs);
AliAnalysisMuMuGraphUtil& operator=(const AliAnalysisMuMuGraphUtil& rhs);
TString fOCDBPath;
std::vector<TAttLine> fAttLine;
std::vector<TAttMarker> fAttMarker;
std::vector<TAttFill> fAttFill;
std::vector<TAttAxis> fAttXaxis;
std::vector<TAttAxis> fAttYaxis;
std::vector<std::string> fDrawOptions;
Bool_t fShouldDrawPeriods;
ClassDef(AliAnalysisMuMuGraphUtil,0)
};
#endif
AliAnalysisMuMuGraphUtil.h:1 AliAnalysisMuMuGraphUtil.h:2 AliAnalysisMuMuGraphUtil.h:3 AliAnalysisMuMuGraphUtil.h:4 AliAnalysisMuMuGraphUtil.h:5 AliAnalysisMuMuGraphUtil.h:6 AliAnalysisMuMuGraphUtil.h:7 AliAnalysisMuMuGraphUtil.h:8 AliAnalysisMuMuGraphUtil.h:9 AliAnalysisMuMuGraphUtil.h:10 AliAnalysisMuMuGraphUtil.h:11 AliAnalysisMuMuGraphUtil.h:12 AliAnalysisMuMuGraphUtil.h:13 AliAnalysisMuMuGraphUtil.h:14 AliAnalysisMuMuGraphUtil.h:15 AliAnalysisMuMuGraphUtil.h:16 AliAnalysisMuMuGraphUtil.h:17 AliAnalysisMuMuGraphUtil.h:18 AliAnalysisMuMuGraphUtil.h:19 AliAnalysisMuMuGraphUtil.h:20 AliAnalysisMuMuGraphUtil.h:21 AliAnalysisMuMuGraphUtil.h:22 AliAnalysisMuMuGraphUtil.h:23 AliAnalysisMuMuGraphUtil.h:24 AliAnalysisMuMuGraphUtil.h:25 AliAnalysisMuMuGraphUtil.h:26 AliAnalysisMuMuGraphUtil.h:27 AliAnalysisMuMuGraphUtil.h:28 AliAnalysisMuMuGraphUtil.h:29 AliAnalysisMuMuGraphUtil.h:30 AliAnalysisMuMuGraphUtil.h:31 AliAnalysisMuMuGraphUtil.h:32 AliAnalysisMuMuGraphUtil.h:33 AliAnalysisMuMuGraphUtil.h:34 AliAnalysisMuMuGraphUtil.h:35 AliAnalysisMuMuGraphUtil.h:36 AliAnalysisMuMuGraphUtil.h:37 AliAnalysisMuMuGraphUtil.h:38 AliAnalysisMuMuGraphUtil.h:39 AliAnalysisMuMuGraphUtil.h:40 AliAnalysisMuMuGraphUtil.h:41 AliAnalysisMuMuGraphUtil.h:42 AliAnalysisMuMuGraphUtil.h:43 AliAnalysisMuMuGraphUtil.h:44 AliAnalysisMuMuGraphUtil.h:45 AliAnalysisMuMuGraphUtil.h:46 AliAnalysisMuMuGraphUtil.h:47 AliAnalysisMuMuGraphUtil.h:48 AliAnalysisMuMuGraphUtil.h:49 AliAnalysisMuMuGraphUtil.h:50 AliAnalysisMuMuGraphUtil.h:51 AliAnalysisMuMuGraphUtil.h:52 AliAnalysisMuMuGraphUtil.h:53 AliAnalysisMuMuGraphUtil.h:54 AliAnalysisMuMuGraphUtil.h:55 AliAnalysisMuMuGraphUtil.h:56 AliAnalysisMuMuGraphUtil.h:57 AliAnalysisMuMuGraphUtil.h:58 AliAnalysisMuMuGraphUtil.h:59 AliAnalysisMuMuGraphUtil.h:60 AliAnalysisMuMuGraphUtil.h:61 AliAnalysisMuMuGraphUtil.h:62 AliAnalysisMuMuGraphUtil.h:63 AliAnalysisMuMuGraphUtil.h:64 AliAnalysisMuMuGraphUtil.h:65 AliAnalysisMuMuGraphUtil.h:66 AliAnalysisMuMuGraphUtil.h:67 AliAnalysisMuMuGraphUtil.h:68 AliAnalysisMuMuGraphUtil.h:69 AliAnalysisMuMuGraphUtil.h:70 AliAnalysisMuMuGraphUtil.h:71 AliAnalysisMuMuGraphUtil.h:72 AliAnalysisMuMuGraphUtil.h:73 AliAnalysisMuMuGraphUtil.h:74 AliAnalysisMuMuGraphUtil.h:75