#include <Overlayer.h>
Public Member Functions | |
Overlayer & | clear () |
Overlayer & | find (std::string) |
Overlayer & | legendLeft (bool state=true) |
Overlayer & | logy (bool state=true) |
Overlayer (std::string filename, std::string datadir, std::string simdir, Color_t color) | |
void | print (std::string) |
Overlayer & | withLegend (bool state=true) |
Overlayer & | xlabel (std::string s) |
Overlayer & | ylabel (std::string s) |
Private Member Functions | |
std::string | getStats (const TH1 *const) const |
Private Attributes | |
const Color_t | color_ |
TH1 * | data_ |
const std::string | dataLocation_ |
TFile *const | file_ |
std::string | histName_ |
bool | left_ |
TLegend * | legend_ |
bool | logy_ |
TH1 * | sim_ |
const std::string | simLocation_ |
std::string | title_ |
std::string | xlabel_ |
std::string | ylabel_ |
Definition at line 12 of file Overlayer.h.
Overlayer::Overlayer | ( | std::string | filename, |
std::string | datadir, | ||
std::string | simdir, | ||
Color_t | color | ||
) | [inline] |
Definition at line 15 of file Overlayer.h.
References clear().
: file_(new TFile(filename.c_str(),"READ")), dataLocation_(datadir), simLocation_(simdir), color_(color) { clear(); }
Overlayer & Overlayer::clear | ( | void | ) |
Definition at line 43 of file Overlayer.h.
References gather_cfg::cout, data_, histName_, left_, legend_, logy_, sim_, title_, xlabel_, and ylabel_.
Referenced by Overlayer().
Overlayer & Overlayer::find | ( | std::string | name | ) |
Definition at line 54 of file Overlayer.h.
References gather_cfg::cout, data_, dataLocation_, file_, histName_, mergeVDriftHistosByStation::name, sim_, and simLocation_.
std::string Overlayer::getStats | ( | const TH1 * const | hist | ) | const [private] |
Definition at line 81 of file Overlayer.h.
Referenced by withLegend().
{ stringstream ss; ss << "N: " << hist->GetEntries() << ", " << "#mu: " << round_string()(std::make_pair(hist->GetMean(),hist->GetMeanError())) << ", " << "#sigma: " << round_string()(std::make_pair(hist->GetRMS(),hist->GetRMSError())); return ss.str().c_str(); }
Overlayer& Overlayer::legendLeft | ( | bool | state = true | ) | [inline] |
Definition at line 28 of file Overlayer.h.
: std::string getStats(const TH1* const) const;
Overlayer& Overlayer::logy | ( | bool | state = true | ) | [inline] |
Definition at line 26 of file Overlayer.h.
void Overlayer::print | ( | std::string | suffix | ) |
Definition at line 90 of file Overlayer.h.
References trackerHits::c, color_, gather_cfg::cout, data_, histName_, legend_, logy_, max(), sim_, title_, xlabel_, and ylabel_.
{ std::cout << "print\t" << std::flush; sim_->GetXaxis()->SetLabelSize(0.05); sim_->GetXaxis()->SetTitleSize(0.05); sim_->GetYaxis()->SetLabelSize(0.05); sim_->GetYaxis()->SetTitleSize(0.05); sim_->SetTitle((title_+";"+xlabel_+";"+ylabel_).c_str()); sim_->Scale(data_->Integral()/sim_->Integral()); sim_->SetMinimum( (logy_?0.1:0) ); sim_->SetMaximum( (logy_?2:1.1) * std::max( sim_->GetBinContent(sim_->GetMaximumBin()) + sim_->GetBinError(sim_->GetMaximumBin()) , data_->GetBinContent(data_->GetMaximumBin()) + data_->GetBinError(data_->GetMaximumBin()) ) ); sim_->SetFillColor(color_); TH1* sim_errors = (TH1*) sim_->Clone((histName_+"_clone").c_str()); sim_->SetLineColor(kRed); sim_errors->SetFillColor(kRed); sim_errors->SetFillStyle(3244); data_->SetMarkerStyle(20); TCanvas c("c","",800,600); if(logy_) c.SetLogy(); sim_->Draw("hist"); sim_errors->Draw("e2same"); data_->Draw("same"); if(legend_) legend_->Draw(); c.Print((histName_+suffix).c_str()); }
Overlayer & Overlayer::withLegend | ( | bool | state = true | ) |
Definition at line 62 of file Overlayer.h.
References gather_cfg::cout, data_, dataLocation_, getStats(), left_, legend_, max(), sim_, and simLocation_.
{ std::cout << "legend: " << (state?"true\t":"false\t") << std::flush; if(!state) {legend_=0; return *this;} std::string data_stats = getStats(data_); std::string sim_stats = getStats(sim_); unsigned maxlength = std::max( std::max( dataLocation_.size(), simLocation_.size()), std::max( data_stats.size(), sim_stats.size()) ); if(left_) legend_ = new TLegend(0,0.75,maxlength*0.015,1.0); else legend_ = new TLegend(1.0-maxlength*0.015,0.75,1.0,1.0); legend_->SetFillColor(kWhite); legend_->AddEntry(data_,("#splitline{"+dataLocation_+"}{"+ data_stats + "}").c_str() ); legend_->AddEntry(sim_,("#splitline{"+simLocation_+"}{"+ sim_stats + "}").c_str() ); return *this; }
Overlayer& Overlayer::xlabel | ( | std::string | s | ) | [inline] |
Definition at line 24 of file Overlayer.h.
References asciidump::s, and ylabel_.
Overlayer& Overlayer::ylabel | ( | std::string | s | ) | [inline] |
Definition at line 25 of file Overlayer.h.
References logy_, and evf::utils::state.
const Color_t Overlayer::color_ [private] |
Definition at line 35 of file Overlayer.h.
Referenced by print().
TH1* Overlayer::data_ [private] |
Definition at line 37 of file Overlayer.h.
Referenced by clear(), find(), print(), and withLegend().
const std::string Overlayer::dataLocation_ [private] |
Definition at line 34 of file Overlayer.h.
Referenced by find(), and withLegend().
TFile* const Overlayer::file_ [private] |
Definition at line 33 of file Overlayer.h.
Referenced by find().
std::string Overlayer::histName_ [private] |
Definition at line 36 of file Overlayer.h.
bool Overlayer::left_ [private] |
Definition at line 39 of file Overlayer.h.
Referenced by clear(), and withLegend().
TLegend* Overlayer::legend_ [private] |
Definition at line 40 of file Overlayer.h.
Referenced by clear(), print(), and withLegend().
bool Overlayer::logy_ [private] |
Definition at line 39 of file Overlayer.h.
TH1* Overlayer::sim_ [private] |
Definition at line 38 of file Overlayer.h.
Referenced by clear(), find(), print(), and withLegend().
const std::string Overlayer::simLocation_ [private] |
Definition at line 34 of file Overlayer.h.
Referenced by find(), and withLegend().
std::string Overlayer::title_ [private] |
Definition at line 36 of file Overlayer.h.
std::string Overlayer::xlabel_ [private] |
Definition at line 36 of file Overlayer.h.
std::string Overlayer::ylabel_ [private] |
Definition at line 36 of file Overlayer.h.