ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/csander/HEPTutorial/Plotter.C
Revision: 1.1
Committed: Mon Jun 25 14:39:49 2012 UTC (12 years, 10 months ago) by csander
Content type: text/plain
Branch: MAIN
Log Message:
automated plotting

File Contents

# User Rev Content
1 csander 1.1 /*
2     * Plotter.C
3     *
4     * Created on: 25.06.2012
5     * Author: csander
6     */
7    
8     #include "Plotter.h"
9    
10     Plotter::Plotter() {
11     // TODO Auto-generated constructor stub
12    
13     }
14    
15     Plotter::~Plotter() {
16     // TODO Auto-generated destructor stub
17     }
18    
19     void Plotter::Plot(std::string filename) {
20    
21     gROOT->Reset();
22     //gROOT->SetStyle("Plain");
23     gStyle->SetStatColor(0);
24     gStyle->SetCanvasColor(0);
25     gStyle->SetPadColor(0);
26     gStyle->SetPadBorderMode(0);
27     gStyle->SetCanvasBorderMode(0);
28     gStyle->SetFrameBorderMode(0);
29     gStyle->SetOptStat(0);
30     gStyle->SetStatBorderSize(2);
31     gStyle->SetOptTitle(0);
32     gStyle->SetPadTickX(1);
33     gStyle->SetPadTickY(1);
34     gStyle->SetPadBorderSize(2);
35     gStyle->SetPalette(51, 0);
36     gStyle->SetPadBottomMargin(0.15);
37     gStyle->SetPadTopMargin(0.05);
38     gStyle->SetPadLeftMargin(0.1);
39     gStyle->SetPadRightMargin(0.25);
40     gStyle->SetTitleOffset(1.5, "x");
41     gStyle->SetTitleOffset(1.5, "y");
42     gStyle->SetTitleOffset(1.0, "z");
43     gStyle->SetLabelSize(0.05, "x");
44     gStyle->SetLabelSize(0.05, "y");
45     gStyle->SetLabelSize(0.05, "z");
46     gStyle->SetLabelOffset(0.03, "x");
47     gStyle->SetLabelOffset(0.03, "y");
48     gStyle->SetLabelOffset(0.03, "z");
49     gStyle->SetTitleSize(0.05, "x");
50     gStyle->SetTitleSize(0.05, "y");
51     gStyle->SetTitleSize(0.05, "z");
52     gStyle->SetTitleColor(1);
53     gStyle->SetTitleFillColor(0);
54     gStyle->SetTitleFontSize(0.05);
55     gStyle->SetTitleBorderSize(0);
56     gStyle->SetLineWidth(1);
57     gStyle->SetHistLineWidth(3);
58     gStyle->SetLegendBorderSize(0);
59     gStyle->SetNdivisions(502, "x");
60     gStyle->SetMarkerSize(0.8);
61     gStyle->SetTickLength(0.03);
62     gROOT->ForceStyle();
63    
64     bool DrawLog = true;
65    
66     for (int i = 0; i < N_histos; ++i) {
67    
68     THStack *hs;
69     TLegend *l;
70     if (bg.size() > 0) {
71     hs = new THStack("hs", bg.at(0).at(i)->GetName());
72     int Nset = data.size() + bg.size() + signal.size();
73     if (Nset > 20)
74     Nset = 20.;
75     l = new TLegend(0.76, 0.95 - 0.8 * Nset / 20., 1.0, 1.0);
76     l->SetFillStyle(1001);
77     l->SetFillColor(kWhite);
78     l->SetLineColor(kWhite);
79     l->SetLineWidth(2);
80     int j = 0;
81     for (std::vector<std::vector<TH1F*> >::const_iterator it = bg.begin(); it != bg.end(); ++it) {
82     switch (j) {
83     case 0:
84     it->at(i)->SetFillColor(kRed);
85     break;
86     case 1:
87     it->at(i)->SetFillColor(kOrange);
88     break;
89     case 2:
90     it->at(i)->SetFillColor(kYellow);
91     break;
92     case 3:
93     it->at(i)->SetFillColor(kGreen);
94     break;
95     case 4:
96     it->at(i)->SetFillColor(kCyan);
97     break;
98     case 5:
99     it->at(i)->SetFillColor(kBlue);
100     break;
101     case 6:
102     it->at(i)->SetFillColor(kMagenta);
103     break;
104     case 7:
105     it->at(i)->SetFillColor(kGray);
106     break;
107     case 8:
108     it->at(i)->SetFillColor(kGray + 2);
109     break;
110     default:
111     it->at(i)->SetFillColor(kBlack);
112     break;
113     }
114     hs->Add(it->at(i));
115     l->AddEntry(it->at(i), bg_names.at(j).c_str(), "f");
116     ++j;
117     }
118     }
119    
120     TCanvas *c = new TCanvas("c", "c", 600, 600);
121     c->SetLogy(DrawLog);
122     if (data.size() > 0) {
123     data.at(0).at(i)->SetMaximum(5 * data.at(0).at(i)->GetMaximum());
124     data.at(0).at(i)->Draw("");
125     l->AddEntry(data.at(0).at(i), data_names.at(0).c_str(), "p");
126     hs->Draw("histsame");
127     int j = 0;
128     for (std::vector<std::vector<TH1F*> >::const_iterator it = signal.begin(); it != signal.end(); ++it) {
129     switch (j) {
130     case 0:
131     it->at(i)->SetLineColor(kRed);
132     break;
133     case 1:
134     it->at(i)->SetLineColor(kOrange);
135     break;
136     case 2:
137     it->at(i)->SetLineColor(kYellow);
138     break;
139     case 3:
140     it->at(i)->SetLineColor(kGreen);
141     break;
142     case 4:
143     it->at(i)->SetLineColor(kCyan);
144     break;
145     case 5:
146     it->at(i)->SetLineColor(kBlue);
147     break;
148     case 6:
149     it->at(i)->SetLineColor(kMagenta);
150     break;
151     case 7:
152     it->at(i)->SetLineColor(kGray);
153     break;
154     case 8:
155     it->at(i)->SetLineColor(kGray + 2);
156     break;
157     default:
158     it->at(i)->SetLineColor(kBlack);
159     break;
160     }
161     it->at(i)->SetLineWidth(2);
162     it->at(i)->Draw("histsame");
163     l->AddEntry(it->at(i), signal_names.at(j).c_str(), "l");
164     data.at(0).at(i)->SetMarkerStyle(20);
165     data.at(0).at(i)->Draw("psame");
166     l->Draw("same");
167     ++j;
168     }
169     }
170     if (data.size() == 0) {
171     hs->Draw("hist");
172     }
173     if (i == 0 && N_histos > 1) {
174     c->Print("results.pdf(");
175     } else if (i > 0 && i == N_histos - 1)
176     c->Print("results.pdf)");
177     else
178     c->Print("results.pdf");
179    
180     }
181    
182     }