11 using namespace SegmentFit;
13 std::vector<std::unique_ptr<TObject>>
clone(
const std::vector<std::unique_ptr<TObject>>& cloneMe) {
14 std::vector<std::unique_ptr<TObject>> cloned{};
15 for (
auto&
obj : cloneMe) {
16 cloned.emplace_back(
obj->Clone());
22 const int fillStyle) {
23 auto ellipse = std::make_unique<TEllipse>(center.y(), center.z(),
radius);
24 ellipse->SetLineColor(
color);
25 ellipse->SetFillStyle(fillStyle);
26 ellipse->SetLineWidth(1);
27 ellipse->SetFillColorAlpha(
color, 0.2);
31 const int color,
const int lineStyle,
const int view){
35 arrow->SetLineColor(
color);
36 arrow->SetLineWidth(2);
37 arrow->SetLineStyle(lineStyle);
41 const double xPos,
const double yPos,
42 const unsigned int fontSize) {
43 auto tl = std::make_unique<TLatex>(xPos, yPos,
text.c_str());
46 tl->SetTextSize(fontSize);
50 const double boxWidth,
const double boxHeight,
51 const int color,
const int fillStyle,
53 return drawBox(boxCenter[
view] - 0.5*boxWidth, boxCenter.z() - 0.5*boxHeight,
54 boxCenter[
view] + 0.5*boxWidth, boxCenter.z() + 0.5*boxHeight,
57 std::unique_ptr<TBox>
drawBox(
const double x1,
const double y1,
58 const double x2,
const double y2,
59 const int color,
const int fillStyle) {
60 auto box = std::make_unique<TBox>(
x1,
y1,
x2,
y2);
61 box->SetFillColor(
color);
62 box->SetLineColor(
color);
63 box->SetFillStyle(fillStyle);
64 box->SetFillColorAlpha(
color, 0.8);
68 const double lowEnd,
const double highEnd,
69 const int color,
const int lineStyle,
72 const double x1 = (
pos + Amg::intersect<3>(
pos,
dir,Amg::Vector3D::UnitZ(), lowEnd).value_or(0.)*
dir)[
view];
73 const double x2 = (
pos + Amg::intersect<3>(
pos,
dir,Amg::Vector3D::UnitZ(), highEnd).value_or(0.)*
dir)[
view];
74 auto seedLine = std::make_unique<TLine>(
x1, lowEnd,
x2, highEnd);
75 seedLine->SetLineColor(
color);
76 seedLine->SetLineWidth(2);
77 seedLine->SetLineStyle(lineStyle);
81 const std::string&
status) {
86 const std::string_view sqrtS,
87 const std::string_view
lumi) {