]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/FORWARD/analysis2/corrs/CompareCorrs.C
Documentation fixes
[u/mrichter/AliRoot.git] / PWG2 / FORWARD / analysis2 / corrs / CompareCorrs.C
1 /**
2  * @file   CompareCorrs.C
3  * @author Christian Holm Christensen <cholm@dalsgaard.hehi.nbi.dk>
4  * @date   Fri Jan 28 23:01:59 2011
5  * 
6  * @brief  Utilities for comparing correction objects 
7  * 
8  *
9  * @ingroup pwg2_forward_scripts_corr
10  * 
11  */
12 #ifndef __CINT__
13 #include <TCanvas.h>
14 #include <TFile.h>
15 #include <TLatex.h>
16 #include <TStyle.h>
17 #include <TMath.h>
18 #include "AliForwardCorrectionManager.h"
19 #endif
20
21
22 //======================================================================
23 /**
24  * 
25  * 
26  *
27  * @ingroup pwg2_forward_scripts_corr
28  */
29 struct Canvas 
30 {
31   //____________________________________________________________________
32   Canvas(const char* name, const char* title,
33          const char* n1,   const char* n2)
34     : fName(name),
35       fTitle(title),
36       fN1(n1), 
37       fN2(n2),
38       fCanvas(0),
39       fBody(0)
40   {
41     gStyle->SetPalette(1);
42     gStyle->SetTitleX(.10);
43     gStyle->SetTitleY(.99);
44     gStyle->SetTitleW(.85);
45     gStyle->SetTitleH(.085);
46     gStyle->SetTitleFillColor(0);
47     gStyle->SetTitleBorderSize(0);
48   }
49   //____________________________________________________________________
50   void Open() 
51   {
52     fCanvas = new TCanvas(fName, fTitle, 800, TMath::Sqrt(2)*800);
53     fCanvas->SetFillColor(0);
54   
55     fCanvas->Print("comparison.pdf[", "pdf");
56   }
57   //____________________________________________________________________
58   TPad* 
59   Clear(UShort_t nPad, UShort_t d, Char_t r)
60   {
61     fCanvas->Clear();
62     TPad* top = new TPad("top", "Top", 0, .95, 1, 1, 0, 0);
63     top->Draw();
64     top->cd();
65
66     TLatex* l = new TLatex(.5, .5, Form("%s for FMD%d%c (%s / %s)", 
67                                         fTitle, d, r, fN1, fN2));
68     l->SetNDC();
69     l->SetTextAlign(22);
70     l->SetTextSize(0.3);
71     l->Draw();
72   
73     fCanvas->cd();
74     fBody = new TPad("body", "Body", 0, 0, 1, .95, 0, 0);
75     fBody->SetTopMargin(0.05);
76     fBody->SetRightMargin(0.05);
77     fBody->Divide(2, (nPad+1)/2, 0.001, 0.001);
78     fBody->Draw();
79     
80     return fBody;
81   }  
82   //____________________________________________________________________
83   TVirtualPad* cd(Int_t i) 
84   {
85     if (!fBody) return 0;
86     
87     return fBody->cd(i);
88   }
89   //____________________________________________________________________
90   void Print(UShort_t d, Char_t r, const char* extra="")
91   {
92     fCanvas->Print("comparison.pdf", 
93                    Form("Title:FMD%d%c %s", d, r, extra));
94   }
95   //____________________________________________________________________
96   void Close()
97   {
98     fCanvas->Print("comparison.pdf]", "pdf");
99   }    
100   //____________________________________________________________________
101   const char* fName;
102   const char* fTitle;
103   const char* fN1;
104   const char* fN2;
105   TCanvas*    fCanvas;
106   TPad*       fBody;
107 };
108
109 //======================================================================
110 /** 
111  * 
112  * 
113  * @param what 
114  * @param fn1 
115  * @param fn2 
116  * @param o1 
117  * @param o2 
118  *
119  * @ingroup pwg2_forward_scripts_corr
120  */
121 void
122 GetObjects(UShort_t    what, 
123            const char* fn1, const char* fn2, 
124            TObject*&   o1,  TObject*&   o2)
125 {
126   // --- Open files --------------------------------------------------
127   TFile* file1 = TFile::Open(fn1, "READ");
128   TFile* file2 = TFile::Open(fn2, "READ");
129
130   if (!file1) { 
131     Error("CompareSecMaps", "File %s cannot be opened", fn1);
132     return;
133   }
134
135   if (!file2) { 
136     Error("CompareSecMaps", "File %s cannot be opened", fn2);
137     return;
138   }
139   
140   // --- Find Objects ------------------------------------------------
141   AliForwardCorrectionManager::ECorrection ewhat = what;
142   // (AliForwardCorrectionManager::ECorrection)what;
143   const char* objName = 
144     AliForwardCorrectionManager::Instance().GetObjectName(ewhat);
145   
146   o1 = file1->Get(objName);
147   o2 = file2->Get(objName);
148   
149   if (!o1) {
150     Error("CompareSecMaps", "File %s does not contain an object named %s", 
151           fn1, objName);
152     return;
153   }
154   if (!o2) {
155     Error("CompareSecMaps", "File %s does not contain an object named %s", 
156           fn2, objName);
157     return;
158   }
159 };
160
161
162
163 //
164 // EOF
165 //