// @(#)root/fitpanel:$Id$
// Author: David Gonzalez Maline 11/12/2008

/*************************************************************************
 * Copyright (C) 1995-2006, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT__TAdvancedGraphicsDialog__
#define ROOT__TAdvancedGraphicsDialog__

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TAdvancedGraphicsDialog                                              //
//                                                                      //
// Allows to create advanced graphics from the last fit made in the     //
// fitpanel. This includes the scan graphics, the contour and the       //
// confidence levels.                                                   //
//////////////////////////////////////////////////////////////////////////

#include "TGFrame.h"
#include "TTreeInput.h"
#include "TGButton.h"
#include "TGComboBox.h"
#include "TGLabel.h"
#include "TGTextEntry.h"
#include "TGNumberEntry.h"
#include "TGTab.h"
#include "TGColorSelect.h"

#include "TBackCompFitter.h"
#include "TF1.h"

enum EAdvanceGraphicsDialog {
   kAGD_TMETHOD,  kAGD_CONTOURMETHOD, kAGD_SCANMETHOD,
   kAGD_CONTPAR1, kAGD_CONTPAR2,      kAGD_CONTERR,
   kAGD_CONTOVER, kAGD_CONTCOLOR,
   kAGD_BDRAW, kAGD_BCLOSE,
   kAGD_SCANPAR, kAGD_SCANMIN, kAGD_SCANMAX,

   kAGD_PARCOUNTER = 1000
};

class TAdvancedGraphicsDialog : public TGTransientFrame {

private:
   TGVerticalFrame  *fMainFrame;     // Main Vertical Frame
   TGTab            *fTab;           // Tab containing the available methods

   TGVerticalFrame  *fContourFrame;  // Contour Frame
   TGNumberEntry    *fContourPoints; // Number of points for the graph
   TGComboBox       *fContourPar1;   // Parameter 1 for Contour
   TGComboBox       *fContourPar2;   // Parameter 2 for Contour
   TGNumberEntry    *fContourError;  // Error Level for Contour
   TGCheckButton    *fContourOver;   // Superimpose the graphics
   TGColorSelect    *fContourColor;  // Color for the graph

   TGVerticalFrame  *fScanFrame;     // Scan Frame
   TGNumberEntry    *fScanPoints;    // Number of points for the graph
   TGComboBox       *fScanPar;       // Parameter for Scan
   TGNumberEntry    *fScanMin;       // Min Value for Contour
   TGNumberEntry    *fScanMax;       // Max Value for Contour

   TGVerticalFrame  *fConfFrame;     // Confidence Intervals Frame
   TGNumberEntry    *fConfLevel;     // Confidence Level
   TGColorSelect    *fConfColor;     // Color for the graph

   TGTextButton     *fDraw;          // ok button
   TGTextButton     *fClose;         // cancel button

   TBackCompFitter  *fFitter;        // Fitter.

   void CreateContourFrame();
   void CreateScanFrame();
   void CreateConfFrame();
   void AddParameters(TGComboBox*);

   void DrawContour();
   void DrawScan();
   void DrawConfidenceLevels();

   void ConnectSlots();

   TAdvancedGraphicsDialog(const TAdvancedGraphicsDialog&);  // Not implemented
   TAdvancedGraphicsDialog &operator= (const TAdvancedGraphicsDialog&); // Not implemented

public:
   TAdvancedGraphicsDialog(const TGWindow *p, const TGWindow *main);
   ~TAdvancedGraphicsDialog();

   void DoDraw();
   void DoChangedScanPar(Int_t selected);

   ClassDef(TAdvancedGraphicsDialog, 0)  // Simple input dialog
};

#endif

 TAdvancedGraphicsDialog.h:1
 TAdvancedGraphicsDialog.h:2
 TAdvancedGraphicsDialog.h:3
 TAdvancedGraphicsDialog.h:4
 TAdvancedGraphicsDialog.h:5
 TAdvancedGraphicsDialog.h:6
 TAdvancedGraphicsDialog.h:7
 TAdvancedGraphicsDialog.h:8
 TAdvancedGraphicsDialog.h:9
 TAdvancedGraphicsDialog.h:10
 TAdvancedGraphicsDialog.h:11
 TAdvancedGraphicsDialog.h:12
 TAdvancedGraphicsDialog.h:13
 TAdvancedGraphicsDialog.h:14
 TAdvancedGraphicsDialog.h:15
 TAdvancedGraphicsDialog.h:16
 TAdvancedGraphicsDialog.h:17
 TAdvancedGraphicsDialog.h:18
 TAdvancedGraphicsDialog.h:19
 TAdvancedGraphicsDialog.h:20
 TAdvancedGraphicsDialog.h:21
 TAdvancedGraphicsDialog.h:22
 TAdvancedGraphicsDialog.h:23
 TAdvancedGraphicsDialog.h:24
 TAdvancedGraphicsDialog.h:25
 TAdvancedGraphicsDialog.h:26
 TAdvancedGraphicsDialog.h:27
 TAdvancedGraphicsDialog.h:28
 TAdvancedGraphicsDialog.h:29
 TAdvancedGraphicsDialog.h:30
 TAdvancedGraphicsDialog.h:31
 TAdvancedGraphicsDialog.h:32
 TAdvancedGraphicsDialog.h:33
 TAdvancedGraphicsDialog.h:34
 TAdvancedGraphicsDialog.h:35
 TAdvancedGraphicsDialog.h:36
 TAdvancedGraphicsDialog.h:37
 TAdvancedGraphicsDialog.h:38
 TAdvancedGraphicsDialog.h:39
 TAdvancedGraphicsDialog.h:40
 TAdvancedGraphicsDialog.h:41
 TAdvancedGraphicsDialog.h:42
 TAdvancedGraphicsDialog.h:43
 TAdvancedGraphicsDialog.h:44
 TAdvancedGraphicsDialog.h:45
 TAdvancedGraphicsDialog.h:46
 TAdvancedGraphicsDialog.h:47
 TAdvancedGraphicsDialog.h:48
 TAdvancedGraphicsDialog.h:49
 TAdvancedGraphicsDialog.h:50
 TAdvancedGraphicsDialog.h:51
 TAdvancedGraphicsDialog.h:52
 TAdvancedGraphicsDialog.h:53
 TAdvancedGraphicsDialog.h:54
 TAdvancedGraphicsDialog.h:55
 TAdvancedGraphicsDialog.h:56
 TAdvancedGraphicsDialog.h:57
 TAdvancedGraphicsDialog.h:58
 TAdvancedGraphicsDialog.h:59
 TAdvancedGraphicsDialog.h:60
 TAdvancedGraphicsDialog.h:61
 TAdvancedGraphicsDialog.h:62
 TAdvancedGraphicsDialog.h:63
 TAdvancedGraphicsDialog.h:64
 TAdvancedGraphicsDialog.h:65
 TAdvancedGraphicsDialog.h:66
 TAdvancedGraphicsDialog.h:67
 TAdvancedGraphicsDialog.h:68
 TAdvancedGraphicsDialog.h:69
 TAdvancedGraphicsDialog.h:70
 TAdvancedGraphicsDialog.h:71
 TAdvancedGraphicsDialog.h:72
 TAdvancedGraphicsDialog.h:73
 TAdvancedGraphicsDialog.h:74
 TAdvancedGraphicsDialog.h:75
 TAdvancedGraphicsDialog.h:76
 TAdvancedGraphicsDialog.h:77
 TAdvancedGraphicsDialog.h:78
 TAdvancedGraphicsDialog.h:79
 TAdvancedGraphicsDialog.h:80
 TAdvancedGraphicsDialog.h:81
 TAdvancedGraphicsDialog.h:82
 TAdvancedGraphicsDialog.h:83
 TAdvancedGraphicsDialog.h:84
 TAdvancedGraphicsDialog.h:85
 TAdvancedGraphicsDialog.h:86
 TAdvancedGraphicsDialog.h:87
 TAdvancedGraphicsDialog.h:88
 TAdvancedGraphicsDialog.h:89
 TAdvancedGraphicsDialog.h:90
 TAdvancedGraphicsDialog.h:91
 TAdvancedGraphicsDialog.h:92
 TAdvancedGraphicsDialog.h:93
 TAdvancedGraphicsDialog.h:94
 TAdvancedGraphicsDialog.h:95
 TAdvancedGraphicsDialog.h:96
 TAdvancedGraphicsDialog.h:97
 TAdvancedGraphicsDialog.h:98
 TAdvancedGraphicsDialog.h:99
 TAdvancedGraphicsDialog.h:100
 TAdvancedGraphicsDialog.h:101