11 #include <ecl/modules/eclDisplay/EclPainterPolar.h>
21 #include <ecl/modules/eclDisplay/geometry.h>
25 using namespace ECLDisplayUtility;
34 m_hist =
new TH2F(obj_name,
"title",
35 60, 0.0, 1.0, 60, 0.0, 1.0);
37 Double_t deg2rad = TMath::Pi() / 180;
42 for (
int i = 0; i < 36; i++) {
43 m_segs[i] =
new TCrown(0.5, 0.5, 0.3, 0.4, (i - 9) * 10, (i - 8) * 10);
45 float x = 0.475 + 0.45 * TMath::Cos(deg2rad * (i - 9) * 10);
46 float y = 0.48 + 0.44 * TMath::Sin(deg2rad * (i - 9) * 10);
47 snprintf(label_txt, 32,
"%d", i * 10);
48 m_labels[i] =
new TText(x, y, label_txt);
63 for (
int i = 0; i < 36; i++) {
m_segs[i] = other.
m_segs[i]; }
72 else if (
m_type == THETA) {
76 return 3 + theta_id * 12 / 23;
78 return 21 + (theta_id - 23) * 12 / 23;
86 const char* name[2][2] = {
87 {
"Events per phi",
"Events per theta"},
88 {
"Energy per phi",
"Energy per theta"}
90 const char* zname[2] = {
"Event count",
"Energy (MeV)"};
92 TString title = TString(name[GetMode()][
m_type]) +
" (" +
96 m_hist->SetZTitle(zname[GetMode()]);
97 m_hist->GetZaxis()->CenterTitle();
115 const int* ev_counts = data->getEventCounts();
116 const float* energy_sums = data->getEnergySums();
120 for (
int i = 0; i < 36; i++)
127 seg_val[id] += energy_sums[i];
129 seg_val[id] += ev_counts[i];
133 float min = seg_val[0];
134 for (
int i = 0; i < 36; i++) {
135 if (max < seg_val[i])
137 if (min > seg_val[i])
141 Double_t r[5] = { 0.00, 0.00, 0.87, 1.00, 0.51 };
142 Double_t g[5] = { 0.00, 0.81, 1.00, 0.20, 0.00 };
143 Double_t b[5] = { 0.51, 1.00, 0.12, 0.00, 0.00 };
144 Double_t stop[5] = { 0.00, 0.34, 0.61, 0.84, 1.00 };
146 int palette = TColor::CreateGradientColorTable(5, stop, r, g, b, 37);
148 m_hist->Fill(0.5, 0.05, 0.1);
153 for (
int i = 0; i < 36; i++) {
154 float val = 36.0 * TMath::Log(1 + seg_val[i]) / TMath::Log(1 + max);
155 segs[i]->SetFillColor(palette + val);