EW: provides centralized styling utilities for plots, including name prettification and style application.
More...
#include <Utils/Plotting/StyleManager.h>
|
| std::string | prettifyName (const std::string &origName, const std::string &nameType) const |
| |
EW: provides centralized styling utilities for plots, including name prettification and style application.
- Author
- Ewan Miller
Definition at line 21 of file StyleManager.h.
◆ StyleManager() [1/3]
| M3::Plotting::StyleManager::StyleManager |
( |
const std::string & |
configName | ) |
|
Constructor.
- Parameters
-
| configName | The style config to read from |
Definition at line 5 of file StyleManager.cpp.
#define M3OpenConfig(filename)
Macro to simplify calling LoadYaml with file and line info.
◆ StyleManager() [2/3]
| M3::Plotting::StyleManager::StyleManager |
( |
const StyleManager & |
| ) |
|
|
delete |
◆ StyleManager() [3/3]
| M3::Plotting::StyleManager::StyleManager |
( |
StyleManager && |
| ) |
|
|
default |
◆ ~StyleManager()
| M3::Plotting::StyleManager::~StyleManager |
( |
| ) |
|
|
inline |
◆ getBinWidthScale()
| double M3::Plotting::StyleManager::getBinWidthScale |
( |
const std::string & |
Name | ) |
const |
Get bin-width scaling factor for a given kinematic variable.
- Parameters
-
| variable | Name of the kinematic variable (e.g. RecoNeutrinoEnergy, TrueQ2) |
Definition at line 77 of file StyleManager.cpp.
78 constexpr
const double DefaultScalingFactor = 10;
79 if(!
_styleConfig[
"BinWidthScaleFactor"])
return DefaultScalingFactor;
81 return GetFromManager<double>(
_styleConfig[
"BinWidthScaleFactor"][Name], DefaultScalingFactor, __FILE__, __LINE__);
◆ prettifyKinematicName()
| std::string M3::Plotting::StyleManager::prettifyKinematicName |
( |
const std::string & |
origName | ) |
const |
|
inline |
Convert hideous and vulgar internal kinematics name into a beautiful presentable name.
The pretty kinematics names should be specified in the style config file
- Parameters
-
| origName | The "internal" name used to uniquely identify the kinematics inside the plotting code |
- Returns
- A beautiful formatted name that can be used in plots
Definition at line 58 of file StyleManager.h.
std::string prettifyName(const std::string &origName, const std::string &nameType) const
◆ prettifyName()
| std::string M3::Plotting::StyleManager::prettifyName |
( |
const std::string & |
origName, |
|
|
const std::string & |
nameType |
|
) |
| const |
|
private |
Definition at line 9 of file StyleManager.cpp.
10 YAML::Node prettyNames =
_styleConfig[
"PrettyNames"][nameType];
11 auto prettyName = GetFromManager<std::string>(prettyNames[origName], origName, __FILE__, __LINE__);
◆ prettifyParamName()
| std::string M3::Plotting::StyleManager::prettifyParamName |
( |
const std::string & |
origName | ) |
const |
|
inline |
Convert hideous and vulgar internal parameter name into a beautiful presentable name.
The pretty parameter names should be specified in the style config file
- Parameters
-
| origName | The "internal" name used to uniquely identify the parameter inside the plotting code |
- Returns
- A beautiful formatted name that can be used in plots
Definition at line 40 of file StyleManager.h.
◆ prettifySampleName()
| std::string M3::Plotting::StyleManager::prettifySampleName |
( |
const std::string & |
origName | ) |
const |
|
inline |
Convert hideous and vulgar internal sample name into a beautiful presentable name.
The pretty sample names should be specified in the style config file
- Parameters
-
| origName | The "internal" name used to uniquely identify the sample inside the plotting code |
- Returns
- A beautiful formatted name that can be used in plots
Definition at line 49 of file StyleManager.h.
◆ setPalette() [1/2]
| void M3::Plotting::StyleManager::setPalette |
( |
const int |
rootPlotStyle | ) |
const |
◆ setPalette() [2/2]
| void M3::Plotting::StyleManager::setPalette |
( |
const std::string & |
configStyleName | ) |
const |
Set the root colour palette to one of the ones defined in the style config.
- Parameters
-
| rootPlotStyle | The name of the palette you want to use, should be the same as it appears in the style config |
Definition at line 21 of file StyleManager.cpp.
28 styleDef = palettes[configStyleName];
31 auto paletteDef = GetFromManager<std::vector<std::vector<double>>>(
33 std::vector<std::vector<double>>{
35 {0.0 , 0.33 , 0.66 , 1.0},
36 {0.0 , 0.0 , 0.0 , 0.0},
37 {0.0 , 0.0 , 1.0 , 0.0},
38 {0.0 , 1.0 , 0.0 , 0.0}
39 }, __FILE__, __LINE__);
40 const Int_t NCont = Int_t(paletteDef[0][0]);
42 std::vector<double> stopVec = paletteDef[1];
43 std::vector<double> redsVec = paletteDef[2];
44 std::vector<double> greensVec = paletteDef[3];
45 std::vector<double> bluesVec = paletteDef[4];
48 const size_t NRGBs = stopVec.size();
49 if (redsVec.size() != NRGBs || greensVec.size() != NRGBs ||
50 bluesVec.size() != NRGBs)
52 MACH3LOG_ERROR(
"invalid colour palette defined in style config file: {}");
53 MACH3LOG_ERROR(
"RGB arrays don't all have the same size, please fix that");
57 TColor::CreateGradientColorTable(
int(NRGBs), stopVec.data(), redsVec.data(), greensVec.data(), bluesVec.data(), NCont);
58 gStyle->SetNumberContours(NCont);
◆ setTH1Style()
| void M3::Plotting::StyleManager::setTH1Style |
( |
TH1 * |
hist, |
|
|
const std::string & |
styleName |
|
) |
| const |
Set the style of a TH1 to one of the styles defined in the style config.
- Parameters
-
| hist | The TH1 that you wish to modify |
| styleName | The name of the style you want to use, as it appears in the config file |
Definition at line 61 of file StyleManager.cpp.
66 styleDef = TH1Styles[styleName];
69 hist->SetMarkerColor(GetFromManager<Color_t>(styleDef[
"MarkerColor"], kRed, __FILE__, __LINE__));
70 hist->SetMarkerStyle(GetFromManager<Color_t>(styleDef[
"MarkerStyle"], 7, __FILE__, __LINE__));
71 hist->SetFillColor(GetFromManager<Color_t>(styleDef[
"FillColor"], kRed, __FILE__, __LINE__));
72 hist->SetFillStyle(GetFromManager<Color_t>(styleDef[
"FillStyle"], 3003, __FILE__, __LINE__));
73 hist->SetLineColor(GetFromManager<Color_t>(styleDef[
"LineColor"], kRed, __FILE__, __LINE__));
74 hist->SetLineStyle(GetFromManager<Color_t>(styleDef[
"LineStyle"], 1, __FILE__, __LINE__));
◆ _styleConfig
| YAML::Node M3::Plotting::StyleManager::_styleConfig |
|
private |
The documentation for this class was generated from the following files: