1 |
fgolf |
1.1 |
#include "TROOT.h"
|
2 |
|
|
|
3 |
|
|
#include <iostream>
|
4 |
|
|
#include <string>
|
5 |
|
|
|
6 |
|
|
#include "printFRtable.h"
|
7 |
|
|
|
8 |
|
|
void printFRtable(TH2F* hist) {
|
9 |
|
|
|
10 |
|
|
// some commonly used charactors for printing table
|
11 |
|
|
std::string colsep = " & ";
|
12 |
|
|
std::string pmSign = " $\\pm$ ";
|
13 |
|
|
std::string endL = " \\\\ \\hline";
|
14 |
|
|
|
15 |
|
|
// print out header stuff for latex table
|
16 |
|
|
std::cout << "\\begin{table}[htb]" << std::endl;
|
17 |
|
|
std::cout << "\\begin{center}" << std::endl;
|
18 |
|
|
std::cout << "\\caption{}" << std::endl;
|
19 |
|
|
std::cout << "\\begin{tabular}{c|ccccc}" << std::endl;
|
20 |
|
|
std::cout << "\\hline" << std::endl;
|
21 |
|
|
std::cout << "\\backslashbox{$|\\eta|$}{$p_T$}";
|
22 |
|
|
|
23 |
|
|
int nbinsx = hist->GetNbinsX(); // number of bins along x axis
|
24 |
|
|
int nbinsy = hist->GetNbinsY(); // number of bins along y axis
|
25 |
|
|
|
26 |
|
|
// first, print pt ranges
|
27 |
|
|
for (int ny = 1; ny < nbinsy+1; ny++) {
|
28 |
|
|
float lowedge = hist->GetYaxis()->GetBinLowEdge(ny);
|
29 |
|
|
float width = hist->GetYaxis()->GetBinWidth(ny);
|
30 |
|
|
|
31 |
|
|
printf("%s%.3f%s%.3f", colsep.c_str(), lowedge, " -- ", lowedge+width);
|
32 |
|
|
}
|
33 |
|
|
|
34 |
|
|
std::cout << endL << "\\hline" << std::endl;
|
35 |
|
|
|
36 |
|
|
// loop over bins
|
37 |
|
|
for (int nx = 1; nx < nbinsx+1; nx++) {
|
38 |
|
|
for (int ny = 1; ny < nbinsy+1; ny++) {
|
39 |
|
|
|
40 |
|
|
int nbin = hist->GetBin(nx, ny);
|
41 |
|
|
|
42 |
|
|
// if first bin in column, print out eta range
|
43 |
|
|
if (ny == 1) {
|
44 |
|
|
float lowedge = hist->GetXaxis()->GetBinLowEdge(nx);
|
45 |
|
|
float width = hist->GetXaxis()->GetBinWidth(nx);
|
46 |
|
|
|
47 |
|
|
printf("%.3f%s%.3f", lowedge, " -- ", lowedge+width);
|
48 |
|
|
}
|
49 |
|
|
|
50 |
|
|
float fr = hist->GetBinContent(nbin);
|
51 |
|
|
float frerr = hist->GetBinError(nbin);
|
52 |
|
|
|
53 |
|
|
printf("%s%.4f%s%.4f", colsep.c_str(), fr, pmSign.c_str(), frerr);
|
54 |
|
|
}
|
55 |
|
|
|
56 |
|
|
std::cout << endL << std::endl;
|
57 |
|
|
}
|
58 |
|
|
|
59 |
|
|
// print out final header stuff for table
|
60 |
|
|
std::cout << "\\end{tabular}" << std::endl;
|
61 |
|
|
std::cout << "\\end{center}" << std::endl;
|
62 |
|
|
std::cout << "\\end{table}" << std::endl;
|
63 |
|
|
}
|