ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/csander/HEPTutorial/Plotter.C
Revision: 1.2
Committed: Fri Jun 29 13:44:57 2012 UTC (12 years, 10 months ago) by csander
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +59 -49 lines
Log Message:
Switched to v7, added MT

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