32 cout <<
"No information about " << title <<
" available in directory " << dirName <<
" of file " << fin << endl;
48 xPad = 1; yPad = 1; width = 550; height = 0.90*width;
break;
50 xPad = 2; yPad = 1; width = 600; height = 0.50*width;
break;
52 xPad = 3; yPad = 1; width = 900; height = 0.4*width;
break;
54 xPad = 2; yPad = 2; width = 600; height = width;
break;
56 xPad = 3; yPad = 2; width = 800; height = 0.55*width;
break;
59 Int_t noPadPerCanv = xPad * yPad ;
62 Int_t countCanvas = 0;
74 std::vector<TString>::iterator variter = varnames.begin();
75 std::vector<TString>::iterator classiter = classnames.begin();
93 variter = varnames.begin();
94 for(; variter!=varnames.end(); ++variter){
97 if (countPad%noPadPerCanv==0) {
99 canv =
new TCanvas(
Form(
"canvas%d", countCanvas), title,
100 countCanvas*50+50, countCanvas*20, width, height );
104 TPad* cPad = (
TPad*)canv->
cd(countPad++%noPadPerCanv+1);
105 classiter = classnames.begin();
108 for(; classiter!=classnames.end(); ++classiter){
110 TString hname(*variter +
"__" + *classiter +
"_" + tmp);
114 cout <<
"ERROR!!! couldn't find " << *variter <<
" histogram for class " << *classiter << endl;
125 ((
TH1*)hists.
First())->SetTitle(
TString( htitle ) +
": " + *variter );
133 if(((
TH1*)hists[i])->GetMaximum() > histmax)
134 histmax = ((
TH1*)hists[i])->GetMaximum();
139 if (countPad == 1) sc = 1.3;
140 ((
TH1*)hists.
First())->SetMaximum( histmax*sc );
144 ((
TH1*)hists.
First())->GetYaxis()->SetTitleOffset( 1.70 );
148 ((
TH1*)hists[i])->Draw(
"histsame");
150 ((
TH1*)hists[i])->GetYaxis()->SetTitle( ytit );
162 classiter = classnames.begin();
170 legend->
Draw(
"same");
183 classiter = classnames.begin();
185 if(((
TH1*)hists[i])->GetBinContent(0)!=0 || ((
TH1*)hists[i])->GetBinContent(nbin+1)!=0){
186 uoflow += *classiter;
187 uoflow +=
Form(
" U/O-flow: %.1f / %.1f %%",
188 ((
TH1*)hists[i])->GetBinContent(0)*dxu*100, ((
TH1*)hists[i])->GetBinContent(nbin+1)*dxo*100);
200 if (countPad%noPadPerCanv==0) {
201 TString fname = dataset+
Form(
"/plots/%s_c%i", outfname.
Data(), countCanvas );
207 createNewFig =
kTRUE;
212 TString fname = dataset+
Form(
"/plots/%s_c%i", outfname.
Data(), countCanvas );
void variablesMultiClass(TString dataset, TString fin="TMVA.root", TString dirName="InputVariables_Id", TString title="TMVA Input Variables", Bool_t isRegression=kFALSE, Bool_t useTMVAStyle=kTRUE)
void imgconv(TCanvas *c, const TString &fname)
Float_t GetLeftMargin() const
virtual TList * GetListOfKeys() const
std::vector< TString > GetInputVariableNames(TDirectory *dir)
This class displays a legend box (TPaveText) containing several legend entries.
Int_t GetNumberOfInputVariables(TDirectory *dir)
virtual TObject * Get(const char *namecycle)
Return pointer to object identified by namecycle.
TString & ReplaceAll(const TString &s1, const TString &s2)
TFile * OpenFile(const TString &fin)
virtual void Draw(Option_t *option="")
Draw this legend with its current attributes.
std::vector< TString > GetClassNames(TDirectory *dir)
A ROOT file is a suite of consecutive data records (TKey instances) with a well defined format...
TVirtualPad * cd(Int_t subpadnumber=0)
Set current canvas & pad.
void NormalizeHist(TH1 *h)
void SetFrameStyle(TH1 *frame, Float_t scale=1.0)
void ToLower()
Change string to lower-case.
void SetMargin(Float_t margin)
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual void AppendPad(Option_t *option="")
Append graphics object to current pad.
Base class for several text objects.
virtual void SetNDC(Bool_t isNDC=kTRUE)
Set NDC mode on if isNDC = kTRUE, off otherwise.
void SetMultiClassStyle(TObjArray *hists)
TObject * First() const
Return the object in the first slot.
void Initialize(Bool_t useTMVAStyle=kTRUE)
virtual void SetTextAngle(Float_t tangle=0)
Set the text angle.
The most important graphics class in the ROOT system.
Int_t GetEntriesFast() const
char * Form(const char *fmt,...)
void plot_logo(Float_t v_scale=1.0, Float_t skew=1.0)
virtual TDirectory * GetDirectory(const char *apath, Bool_t printError=false, const char *funcname="GetDirectory")
Find a directory named "apath".
TLegendEntry * AddEntry(const TObject *obj, const char *label="", Option_t *option="lpf")
Add a new entry to this legend.
Describe directory structure in memory.
virtual void Draw(Option_t *option="")
Draw a canvas.
Float_t GetTopMargin() const
virtual Bool_t cd(const char *path=0)
Change current directory to "this" directory.
virtual void Divide(Int_t nx=1, Int_t ny=1, Float_t xmargin=0.01, Float_t ymargin=0.01, Int_t color=0)
Automatic pad generation by division.
virtual void SetTextSize(Float_t tsize=1)
Set the text size.
virtual void SetBorderSize(Int_t bordersize=4)
virtual void SetLeftMargin(Float_t leftmargin)
Set Pad left margin in fraction of the pad width.
const char * Data() const