# imports to write dynamic markdown contents
import os
from IPython.display import display, Markdown, Latex
from IPython.display import HTML
# turn off/on code for the result HTML page
display(Markdown('*For the result HTML page:* '))
HTML('''<script>
code_show=true;
function code_toggle() {
if (code_show){
$('div.input').hide();
} else {
$('div.input').show();
}
code_show = !code_show
}
$( document ).ready(code_toggle);
</script>
<form action="javascript:code_toggle()"><input type="submit" value="Click here to toggle on/off the raw code."></form>''')
For the result HTML page:
ECCE style works with any ECCE software distribution via Singularity container. Or use your own ROOT
plus simply download the style files to local folder from ECCEStyle.C
and ECCEStyle.h
.
And here is example ROOT
C++ macro to make an ECCE style plot:
{
TCanvas c;
TH1F h1("h1","H1;Mass [GeV];Counts [/ GeV];",20,0,20);
TH1F h2("h2","H2;Mass [GeV];Counts [/ GeV];",20,0,20);
for (int i = 0;i<1000;i++){h1.Fill(gRandom->Gaus(7,2));}
for (int i = 0;i<1000;i++){h1.Fill(gRandom->Exp(.5)*20);}
for (int i = 0;i<1000;i++){h2.Fill(gRandom->Exp(.5)*20);}
h1.Draw("e1");
h2.Draw("same");
h2.SetFillColor(5);
h1.Draw("e1same");
TLegend leg(.55,.70,.85,.93);
leg.AddEntry("","#it{#bf{ECCE}} Simulation","");
leg.AddEntry("","e+p 18+275 GeV","");
leg.AddEntry(&h1,"Data","LP");
leg.AddEntry(&h2,"MC","F");
leg.Draw();
c.RedrawAxis();
c.Print("test_style.pdf");
c.Print("test_style.png");
TCanvas c2;
c2.SetRightMargin(.2);
TF2 f2("f2","exp(-x/5)*sin(y)",-5,5,-5,5);
//f2.SetContour(100);
f2.SetNpx(100);
f2.SetNpy(100);
f2.Draw("surf2z");
f2.GetXaxis()->SetTitle("X");
f2.GetYaxis()->SetTitle("Y");
f2.GetZaxis()->SetTitle("Z");
c2.Print("test_style_f2.pdf");
c2.Print("test_style_f2.png");
}
os.environ["ROOT_INCLUDE_PATH"] = os.getenv("ROOT_INCLUDE_PATH") + ":/cvmfs/eic.opensciencegrid.org/ecce/gcc-8.3/release/release_new/new/rootmacros"
import ROOT
OFFLINE_MAIN = os.getenv("OFFLINE_MAIN")
if OFFLINE_MAIN is not None:
display(Markdown(f"via sPHENIX software distribution at `{OFFLINE_MAIN}`"))
Welcome to JupyROOT 6.24/06
via sPHENIX software distribution at /cvmfs/sphenix.sdcc.bnl.gov/gcc-8.3/release/release_new/new.4
%%cpp -d
#include <ECCEStyle.C>
// #include <sPhenixStyle.C>
%%cpp
// SetsPhenixStyle();
SetECCEStyle();
ECCEStyle: Applying nominal settings. ECCEStyle: ROOT6 mode
%%cpp
TCanvas c;
TH1F h1("h1","H1;Mass [GeV];Counts [/ GeV];",20,0,20);
TH1F h2("h2","H2;Mass [GeV];Counts [/ GeV];",20,0,20);
for (int i = 0;i<1000;i++){h1.Fill(gRandom->Gaus(7,2));}
for (int i = 0;i<1000;i++){h1.Fill(gRandom->Exp(.5)*20);}
for (int i = 0;i<1000;i++){h2.Fill(gRandom->Exp(.5)*20);}
h1.Draw("e1");
h2.Draw("same");
h2.SetFillColor(5);
h1.Draw("e1same");
TLegend leg(.55,.70,.85,.93);
leg.AddEntry("","#it{#bf{ECCE}} Simulation","");
leg.AddEntry("","e+p 18+275 GeV","");
leg.AddEntry(&h1,"Data","LP");
leg.AddEntry(&h2,"MC","F");
leg.Draw();
c.RedrawAxis();
c.Print("test_style.pdf");
c.Print("test_style.png");
c.Draw();
Info in <TCanvas::Print>: pdf file test_style.pdf has been created Info in <TCanvas::Print>: png file test_style.png has been created
%%cpp
TCanvas c2;
c2.SetRightMargin(.2);
TF2 f2("f2","exp(-x/5)*sin(y)",-5,5,-5,5);
//f2.SetContour(100);
f2.SetNpx(100);
f2.SetNpy(100);
f2.Draw("surf2z");
f2.GetXaxis()->SetTitle("X");
f2.GetYaxis()->SetTitle("Y");
f2.GetZaxis()->SetTitle("Z");
c2.Print("test_style_f2.pdf");
c2.Print("test_style_f2.png");
c2.Draw();
Info in <TCanvas::Print>: pdf file test_style_f2.pdf has been created Info in <TCanvas::Print>: png file test_style_f2.png has been created