#include "rootlogon.h"

#include <TF1.h>
#include <TArrow.h>
#include <TH1F.h>
#include <TCanvas.h>
#include <TRandom.h>
#include <TGaxis.h>

int main()
{
	rootlogon();

	TF1* g1 = new TF1("gaus1", "-log(1/(2*pi*sqrt(1.2))*exp( -((x)/1)**2/(2*1.2**2)))",-2.5,2.5);
	TF1* g2 = new TF1("gaus2", "-log(1/(2*pi*sqrt(1.2))*exp( -((x)/1)**2/(2*1.5**2)))",-2.5,2.5);

	g1->GetXaxis()->SetTitle("a");
	g1->GetYaxis()->SetTitle("F");
	g1->GetYaxis()->SetTitleOffset(0.65);

	const double y0 = g1->Eval(0);
	TCanvas* cnv = new TCanvas;
	g1->SetLineStyle(kDashed);
	g1->SetTitle("");
	g1->Draw();

	g2->Draw("same");

	TArrow* arrow = new TArrow(1.0, g1->Eval(1.0), 1.0, g2->Eval(1.0), 0.015);
	arrow->SetLineColor(kRed);
	arrow->SetFillColor(kRed);
	arrow->Draw("|> same");

	arrow = new TArrow(2.0, g1->Eval(2.0), 2.0, g2->Eval(2.0), 0.015);
	arrow->SetLineColor(kRed);
	arrow->SetFillColor(kRed);
	arrow->Draw("|> same");

	arrow = new TArrow(-2.0, g1->Eval(-2.0), -2.0, g2->Eval(-2.0), 0.015);
	arrow->SetLineColor(kRed);
	arrow->SetFillColor(kRed);
	arrow->Draw("|> same");

	arrow = new TArrow(-1.0, g1->Eval(-1.0), -1.0, g2->Eval(-1.0), 0.015);
	arrow->SetLineColor(kRed);
	arrow->SetFillColor(kRed);
	arrow->Draw("|> same");

	TLine* line = new TLine(-2.5, y0+0.5, 2.5, y0+0.5);
	line->SetLineColor(kBlue);
	line->Draw("same");

/*
	TLine* line = new TLine(1, 1.55, 1, y0+0.5);
	line->SetLineColor(kRed);
	line->Draw("same");

	line = new TLine(-1, 1.55, -1, y0+0.5);
	line->SetLineColor(kRed);
	line->Draw("same");

	line = new TLine(-2.5, y0+0.5, 2.5, y0+0.5);
	line->SetLineColor(kRed);
	line->Draw("same");


	line = new TLine(2, 1.55, 2, y0+2.0);
	line->SetLineColor(kBlue);
	line->Draw("same");

	line = new TLine(-2, 1.55, -2, y0+2.0);
	line->SetLineColor(kBlue);
	line->Draw("same");

	line = new TLine(-2.5, y0+2.0, 2.5, y0+2.0);
	line->SetLineColor(kBlue);
	line->Draw("same");*/

	cnv->SetMargin(0.15, 0.9, 0.20, 0.9);
	cnv->SaveAs("out/profile.eps");
}
