#ifndef mvaeffs__HH
#define mvaeffs__HH
#include <iostream>
#include <iomanip>
using std::cout;
using std::endl;

#include "tmvaglob.h"

#include "RQ_OBJECT.h"

#include "TH1.h"
#include "TROOT.h"
#include "TList.h"
#include "TIterator.h"
#include "TStyle.h"
#include "TPad.h"
#include "TCanvas.h"
#include "TLatex.h"
#include "TLegend.h"
#include "TLine.h"
#include "TH2.h"
#include "TFormula.h"
#include "TFile.h"
#include "TApplication.h"
#include "TKey.h"
#include "TClass.h"
#include "TGaxis.h"

#include "TGWindow.h"
#include "TGButton.h"
#include "TGLabel.h"
#include "TGNumberEntry.h"

namespace TMVA{

   void mvaeffs( TString fin = "TMVA.root", 
                 Bool_t useTMVAStyle = kTRUE, TString formula="S/sqrt(S+B)" );

   // this macro plots the signal and background efficiencies
   // as a function of the MVA cut.


   class MethodInfo : public TNamed {
   public:
   MethodInfo() :
      methodName(""),
         methodTitle(""),
         sig(0),
         bgd(0),
         origSigE(0),
         origBgdE(0),
         sigE(0),
         bgdE(0),
         purS(0),
         sSig(0),
         effpurS(0),
         canvas(0),
         line1(0),
         line2(0),
         rightAxis(0),
         maxSignificance(0),
         maxSignificanceErr(0)
         {}
      virtual ~MethodInfo();

      TString  methodName;
      TString  methodTitle;
      TH1*     sig;
      TH1*     bgd;
      TH1*     origSigE;
      TH1*     origBgdE;
      TH1*     sigE;
      TH1*     bgdE;
      TH1*     purS;
      TH1*     sSig;    
      TH1*     effpurS;
      TCanvas* canvas;
      TLatex*  line1;
      TLatex*  line2;
      TGaxis*  rightAxis;
      Double_t maxSignificance;
      Double_t maxSignificanceErr;

      void SetResultHists(); 

      ClassDef(MethodInfo,0);
   };

  class StatDialogMVAEffs {  

      RQ_OBJECT("StatDialogMVAEffs")
      
   public:

      StatDialogMVAEffs(const TGWindow* p, Float_t ns, Float_t nb);
      virtual ~StatDialogMVAEffs();
   
      void SetFormula(const TString& f) { fFormula = f; }
      TString GetFormula();
      TString GetFormulaString() { return fFormula; }
      TString GetLatexFormula();
   
      void ReadHistograms(TFile* file);
      void UpdateSignificanceHists();
      void DrawHistograms();

      void RaiseDialog() { if (fMain) { fMain->RaiseWindow(); fMain->Layout(); fMain->MapWindow(); } }

   private:

      TGMainFrame *fMain;
      Float_t fNSignal;
      Float_t fNBackground;  
      TString fFormula;
      TList * fInfoList;

      TGNumberEntry* fSigInput;
      TGNumberEntry* fBkgInput;

      TGHorizontalFrame* fButtons;
      TGTextButton* fDrawButton;
      TGTextButton* fCloseButton;

      Int_t maxLenTitle;

      void UpdateCanvases();

   public:

      // slots
      void SetNSignal(); //*SIGNAL*
      void SetNBackground(); //*SIGNAL*
      void Redraw(); //*SIGNAL*
      void Close(); //*SIGNAL*

      // result printing
      void PrintResults( const MethodInfo* info );
   };

}
#endif
 mvaeffs.h:1
 mvaeffs.h:2
 mvaeffs.h:3
 mvaeffs.h:4
 mvaeffs.h:5
 mvaeffs.h:6
 mvaeffs.h:7
 mvaeffs.h:8
 mvaeffs.h:9
 mvaeffs.h:10
 mvaeffs.h:11
 mvaeffs.h:12
 mvaeffs.h:13
 mvaeffs.h:14
 mvaeffs.h:15
 mvaeffs.h:16
 mvaeffs.h:17
 mvaeffs.h:18
 mvaeffs.h:19
 mvaeffs.h:20
 mvaeffs.h:21
 mvaeffs.h:22
 mvaeffs.h:23
 mvaeffs.h:24
 mvaeffs.h:25
 mvaeffs.h:26
 mvaeffs.h:27
 mvaeffs.h:28
 mvaeffs.h:29
 mvaeffs.h:30
 mvaeffs.h:31
 mvaeffs.h:32
 mvaeffs.h:33
 mvaeffs.h:34
 mvaeffs.h:35
 mvaeffs.h:36
 mvaeffs.h:37
 mvaeffs.h:38
 mvaeffs.h:39
 mvaeffs.h:40
 mvaeffs.h:41
 mvaeffs.h:42
 mvaeffs.h:43
 mvaeffs.h:44
 mvaeffs.h:45
 mvaeffs.h:46
 mvaeffs.h:47
 mvaeffs.h:48
 mvaeffs.h:49
 mvaeffs.h:50
 mvaeffs.h:51
 mvaeffs.h:52
 mvaeffs.h:53
 mvaeffs.h:54
 mvaeffs.h:55
 mvaeffs.h:56
 mvaeffs.h:57
 mvaeffs.h:58
 mvaeffs.h:59
 mvaeffs.h:60
 mvaeffs.h:61
 mvaeffs.h:62
 mvaeffs.h:63
 mvaeffs.h:64
 mvaeffs.h:65
 mvaeffs.h:66
 mvaeffs.h:67
 mvaeffs.h:68
 mvaeffs.h:69
 mvaeffs.h:70
 mvaeffs.h:71
 mvaeffs.h:72
 mvaeffs.h:73
 mvaeffs.h:74
 mvaeffs.h:75
 mvaeffs.h:76
 mvaeffs.h:77
 mvaeffs.h:78
 mvaeffs.h:79
 mvaeffs.h:80
 mvaeffs.h:81
 mvaeffs.h:82
 mvaeffs.h:83
 mvaeffs.h:84
 mvaeffs.h:85
 mvaeffs.h:86
 mvaeffs.h:87
 mvaeffs.h:88
 mvaeffs.h:89
 mvaeffs.h:90
 mvaeffs.h:91
 mvaeffs.h:92
 mvaeffs.h:93
 mvaeffs.h:94
 mvaeffs.h:95
 mvaeffs.h:96
 mvaeffs.h:97
 mvaeffs.h:98
 mvaeffs.h:99
 mvaeffs.h:100
 mvaeffs.h:101
 mvaeffs.h:102
 mvaeffs.h:103
 mvaeffs.h:104
 mvaeffs.h:105
 mvaeffs.h:106
 mvaeffs.h:107
 mvaeffs.h:108
 mvaeffs.h:109
 mvaeffs.h:110
 mvaeffs.h:111
 mvaeffs.h:112
 mvaeffs.h:113
 mvaeffs.h:114
 mvaeffs.h:115
 mvaeffs.h:116
 mvaeffs.h:117
 mvaeffs.h:118
 mvaeffs.h:119
 mvaeffs.h:120
 mvaeffs.h:121
 mvaeffs.h:122
 mvaeffs.h:123
 mvaeffs.h:124
 mvaeffs.h:125
 mvaeffs.h:126
 mvaeffs.h:127
 mvaeffs.h:128
 mvaeffs.h:129
 mvaeffs.h:130
 mvaeffs.h:131
 mvaeffs.h:132
 mvaeffs.h:133
 mvaeffs.h:134
 mvaeffs.h:135
 mvaeffs.h:136
 mvaeffs.h:137
 mvaeffs.h:138
 mvaeffs.h:139
 mvaeffs.h:140
 mvaeffs.h:141
 mvaeffs.h:142