48 m_color.push_back(kOrange + 10);
63 m_color.push_back(kMagenta + 1);
64 m_color.push_back(kMagenta + 2);
65 m_color.push_back(kMagenta + 3);
66 m_color.push_back(kMagenta + 4);
67 m_color.push_back(kMagenta + 5);
68 m_color.push_back(kMagenta + 6);
69 m_color.push_back(kMagenta + 7);
70 m_color.push_back(kMagenta + 8);
76 unsigned int index ) {
79 index = ((TObjArray*)gROOT->GetListOfColors())->GetLast() + 1;
83 first.GetRGB(r1, g1, b1);
84 last.GetRGB(r2, g2, b2);
86 float delta_g = (g2 -
g1) / (steps - 1);
87 float delta_b = (b2 - b1) / (steps - 1);
90 for (
unsigned int i = 0;
i <
steps; ++
i) {
91 new TColor(static_cast<Int_t>(index +
i), r1 + delta_r *
i, g1 + delta_g * i, b1 + delta_b * i);
101 unsigned int index ) {
103 *(TColor*)gROOT->GetListOfColors()->At(first), *(TColor*)gROOT->GetListOfColors()->At(last),
steps,
index);
107 const float rzMinZ = -
maxZ;
108 const float rzMaxZ =
maxZ;
109 const float rzMinR = 0.;
110 const float rzMaxR = maxR;
111 const int rzBinsZ = (
int)(2. * maxZ * resolution);
112 const int rzBinsR = (
int)(maxR * resolution);
114 std::vector<double>
max;
116 max.push_back(0.00016);
118 2, rzBinsZ, rzBinsR, std::make_pair(rzMinZ, rzMaxZ), std::make_pair(rzMinR, rzMaxR),
m_color.size(),
max);
120 TColor::InitializeColors();
126 std::vector<double>
w(2);
137 std::vector<double>
w(2);
148 const double scale = 10.;
152 canvas =
new TCanvas(
"radlen_rz",
"RadiationLengths - RZ view", (
int)(600 * scale * 1.25), (
int)(120 * scale * 1.50));
153 gStyle->SetOptStat(0);
156 canvas->GetFrame()->SetFillColor(kWhite);
157 radlen->Draw(
"colz");
158 radlen->Draw(
"same axis y+");
159 radlen->SaveAs(
"radlen.root");
160 canvas->SaveAs(
"radlen.png");
165 double stops[9] = {0.0000, 0.1250, 0.2500, 0.3750, 0.5000, 0.6250, 0.7500, 0.8750, 1.0000};
167 0. / 255., 5. / 255., 15. / 255., 35. / 255., 102. / 255., 196. / 255., 208. / 255., 199. / 255., 110. / 255.};
169 0. / 255., 48. / 255., 124. / 255., 192. / 255., 206. / 255., 226. / 255., 97. / 255., 16. / 255., 0. / 255.};
171 99. / 255., 142. / 255., 198. / 255., 201. / 255., 90. / 255., 22. / 255., 13. / 255., 8. / 255., 2. / 255.};
172 int palette_index = TColor::CreateGradientColorTable(9, stops, red, green, blue, 100 - white_slots);
173 for (
int i = 0;
i < white_slots;
i++)
174 MyPalette[
i] = kWhite;
175 for (
int i = 0;
i < 100 - white_slots;
i++)
176 MyPalette[
i + white_slots] = palette_index +
i;
178 gStyle->SetNumberContours(100);
179 gStyle->SetPalette(100, MyPalette);
180 radlen->Draw(
"colz");
181 radlen->Draw(
"same axis y+");
182 canvas->SaveAs(
"radlenColor.png");
187 canvas =
new TCanvas(
"dedx_rz",
"-dE/dx term - RZ view", (
int)(600 * scale * 1.25), (
int)(120 * scale * 1.50));
188 canvas->GetFrame()->SetFillColor(kWhite);
189 gStyle->SetOptStat(0);
193 dedx->Draw(
"same axis y+");
194 dedx->SaveAs(
"dedx.root");
195 canvas->SaveAs(
"dedx.png");
197 gStyle->SetNumberContours(100);
198 gStyle->SetPalette(100, MyPalette);
200 dedx->Draw(
"same axis y+");
201 canvas->SaveAs(
"dedxColor.png");
205 canvas =
new TCanvas(
"layer_rz",
"Layers - RZ view", (
int)(600 * scale * 1.25), (
int)(120 * scale * 1.50));
206 canvas->GetFrame()->SetFillColor(kWhite);
207 gStyle->SetOptStat(0);
209 gStyle->SetNumberContours(
m_color.size());
210 colormap->SetMinimum(1);
211 colormap->SetMaximum(
m_color.size());
212 colormap->Draw(
"col");
213 colormap->Draw(
"same axis y+");
214 colormap->SaveAs(
"layers.root");
215 canvas->SaveAs(
"layers.png");
void plotSegmentUnassigned(const MaterialAccountingStep &step)
ColorMap * colormap(void) const
access the colormap
double length(void) const
double radiationLengths(void) const
Histogram * get(size_t h=0) const
access one of the histograms
std::vector< int > m_color
double energyLoss(void) const
TrackingMaterialPlotter(float maxZ, float maxR, float resolution)
double delta_r(const Fourvec &a, const Fourvec &b)
Find the distance between two four-vectors in the two-dimensional space .
std::vector< int > m_gradient
unsigned int fill_gradient(const TColor &first, const TColor &last, unsigned int steps=100, unsigned int index=0)
const GlobalPoint & out(void) const
void plotSegmentInLayer(const MaterialAccountingStep &step, int layer)
void fill(double x, double y, const std::vector< double > &weight, double norm)
fill one point
const GlobalPoint & in(void) const