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