First version of the PS QA macros (K.McDermont,A.Kalweit,S.Bjelogrlic)
[u/mrichter/AliRoot.git] / ANALYSIS / macros / PhysSelQA / AliPSQAVisualization.h
1 /////////////////////////////////////
2 // Created by: Kevin McDermott     //
3 // email: kmcderm3@nd.edu          //
4 // CERN Summer Student 2012        //
5 // University of Notre Dame du Lac //
6 //                                 // 
7 // Revision: 1.0                   //
8 // Created on: August 6, 2012      //
9 /////////////////////////////////////
10
11 #ifndef ALIPSQAVISUALIZATION_H
12 #define ALIPSQAVISUALIZATION_H
13
14 #if !defined(__CINT__) || defined(__MAKECINT__)
15 #include "TCanvas.h"
16 #include "TH1D.h"
17 #include "TGraphErrors.h"
18 #include "TFile.h"
19 #include <Riostream.h>
20 #include "TGaxis.h"
21 #include "TStyle.h"
22 #include "TLegend.h"
23 #include "TSystem.h"
24 #endif
25
26 class AliPSQAVisualization : public TObject
27 {
28  public: 
29   AliPSQAVisualization();
30   virtual ~AliPSQAVisualization();
31   
32   void InitializeSelectedPlots(const Char_t * listOfPlots);
33   void InitializeColorArray(const Char_t * listOfColors); // called only if fUseColorArray == kTRUE
34
35   void PostProcessQA(); // First call of macro
36   void ScaleMinAndMax(); // called only if fScaleAuto == kTRUE
37   void MakeDir(TString dir); // called if anything is to be saved, first check to make sure directory exists.
38   void DrawSelected(Int_t iplot);
39   void ConvertTGraphErrorsToTH1Ds();
40   TString SetDrawSelectedYTitle(TString TGEtitle);
41   void SavePDFs(Int_t iplot);
42   void DrawOverPlotCA(Int_t iplot);
43   void DrawOverPlotNoCA(Int_t iplot);
44   void SaveOverPlotPDF(); 
45   void SaveOverPlotEPS(); 
46
47   // Getters and setters from the macro
48
49   void     SetInDirectory(TString indir){fInDirectory = indir;};
50   TString  GetInDirectory(){return fInDirectory;};
51
52   void     SetROOTInput(TString RI){fROOTInput = RI;};
53   TString  GetROOTInput(){return fROOTInput;};
54     
55   void     SetSavePDFs(Bool_t pdf){fSavePDFs = pdf;};
56   Bool_t   GetSavePDFs(){return fSavePDFs;};
57   
58   void     SetSaveOverPlotPDF(Bool_t pdf){fSaveOverPlotPDF = pdf;};
59   Bool_t   GetSaveOverPlotPDF(){return fSaveOverPlotPDF;};
60
61   void     SetOutPDFName(TString name){fOutPDFName = name;};
62   TString  GetOutPDFName(){return fOutPDFName;};
63
64   void     SetSaveOverPlotEPS(Bool_t eps){fSaveOverPlotEPS = eps;};
65   Bool_t   GetSaveOverPlotEPS(){return fSaveOverPlotEPS;};
66   
67   void     SetOutEPSName(TString name){fOutEPSName = name;};
68   TString  GetOutEPSName(){return fOutEPSName;};
69
70   void     SetOutDirectory(TString out){fOutDirectory = out;};
71   TString  GetOutDirectory(){return fOutDirectory;};  
72
73   void     SetDrawSelected(Bool_t select){fDrawSelected = select;};
74   Bool_t   GetDrawSelected(){return fDrawSelected;};
75
76   void     SetUseColorArray(Bool_t ca){fUseColorArray = ca;};
77   Bool_t   GetUseColorArray(){return fUseColorArray;};
78
79   void     SetDrawOverPlot(Bool_t op){fDrawOverPlot = op;};
80   Bool_t   GetDrawOverPlot(){return fDrawOverPlot;};
81
82   void     SetOverPlotTitle(TString opt){fOverPlotTitle = opt;};
83   TString  GetOverPlotTitle(){return fOverPlotTitle;};
84
85   // Scaling Options
86
87   void     SetScaleAuto(Bool_t sa){fScaleAuto = sa;};
88   Bool_t   GetScaleAuto(){return fScaleAuto;};
89
90   void     SetScaleAutoDivMin(Double_t div_min){fDivMin = div_min;};
91   Double_t GetScaleAutoDivMin(){return fDivMin;};
92
93   void     SetScaleAutoMultMax(Double_t mult_max){fMultMax = mult_max;};
94   Double_t GetScaleAutoMultMax(){return fMultMax;};
95
96   void     SetScaleManMin(Double_t min){fMinimum = min;};
97   Double_t GetScaleManMin(){return fMinimum;};
98
99   void     SetScaleManMax(Double_t max){fMaximum = max;};
100   Double_t GetScaleManMax(){return fMaximum;};
101
102  private:
103   // Input variables
104   TString * fSelectedPlots; // List of plots to be turned from tragphs to th1ds
105   Int_t     fNSelectedPlots; // number of plots to be turned from tgraphs to th1ds
106   TString   fInDirectory; // input directory of root file, most likely the one just analyzed from AliPSQA
107   TString   fROOTInput; // name of root file specified by user
108   TFile *   fRootFile; // Root file to be used to produce plots
109   
110   // Save DrawSelected
111   Bool_t  fDrawSelected;
112
113   // Save PDF variables
114   
115   Bool_t  fSavePDFs; // if kTRUE, save pdfs of th1ds
116   TString fOutDirectory; // save pdfs to this directory
117   TString fOutPDFName; // common pdf name, group pdf files together
118
119   // Overplot variables
120
121   Bool_t  fDrawOverPlot; // if kTrue, save overplot of all the th1ds
122   TString fOverPlotTitle; // title specified by user for overplot, most likely the name of the trigger mask, channel, and logic
123   Bool_t    fSaveOverPlotPDF; //if ktrue, save overplot to pdf file
124   TCanvas   fOverCanvas; // Overplot canvas
125   TLegend * fOverLegend; // Overplot legend
126   Bool_t    fSaveOverPlotEPS; // if ktrue, save overplot eps file
127   TString   fOutEPSName; // eps file name for overplot together
128
129   // Overplot color array variables
130   
131   Bool_t    fUseColorArray; // if ktrue, use colorarray specified in a list file
132   Color_t * fColors; // set in a list file, using enums of colors (just use AliRoot and type in the color, e.g. root [0] kBlue returns (const enum EColor)600)
133   Int_t fNColors; // number of colors used
134
135   // Overplot Scaling Variables
136
137   Bool_t   fScaleAuto; // If kTRUE, set scaling automatically with GetMinAndMax()
138   Double_t fMultMax; // Auto scaling factor, multiply the max
139   Double_t fDivMin; // Auto scaling factor, divide the min
140
141   Double_t fMinimum; // Maximum val in selected tgraphs, used for setting range for overplot
142   Double_t fMaximum; // Minimum val in selected tgraphs, used for setting range for overplot
143
144   // Plotting variables needed
145
146   TCanvas * fCanvas; // new array in InitializeDrawSelected with the amount of fNDrawSelected
147   TH1D *  fDrawPlot; // new array in InitializeDrawSelected with the amount of fNDrawSelected
148   
149   ClassDef(AliPSQAVisualization, 1)
150
151 };
152
153 #endif