ROOT logo
#ifndef ALIMUONTRACKERDATACOMPAREDIALOG_H
#define ALIMUONTRACKERDATACOMPAREDIALOG_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup graphics
/// \class AliMUONTrackerDataCompareDialog
/// \brief
/// 
/// Author Laurent Aphecetche, Subatech

#ifndef ROOT_TGFrame
#  include "TGFrame.h"
#endif

class AliMUONVTrackerData;
class TGButtonGroup;
class TGComboBox;
class TGCompositeFrame;
class TGTextEntry;

class AliMUONTrackerDataCompareDialog : public TGTransientFrame
{
public:
  AliMUONTrackerDataCompareDialog(const TGWindow* p = 0, const TGWindow* main = 0, UInt_t w = 1, UInt_t h = 1);
  virtual ~AliMUONTrackerDataCompareDialog();

  void DoOK();
  void DoCancel();
  
private:
  
    /// not defined
    AliMUONTrackerDataCompareDialog(const AliMUONTrackerDataCompareDialog& rhs);
  /// not defined
  AliMUONTrackerDataCompareDialog& operator=(const AliMUONTrackerDataCompareDialog& rhs);

  void CompareData(const char* d1name, const char* d2name, Int_t difftype) const;
  
  AliMUONVTrackerData* CompareData(const AliMUONVTrackerData& d1,
                                   const AliMUONVTrackerData& d2,
                                   const char* outname,
                                   Double_t (*difffunction)(Double_t,Double_t)) const;
  
private:

    TGCompositeFrame* fF1; ///< frame for data source 1 selection
  TGComboBox* fData1; ///< to select first data
  TGCompositeFrame* fF2; ///< frame for data source 2 selection
  TGComboBox* fData2; ///< to select second data
  TGCompositeFrame* fF3; ///< frame for difference type selection
  TGComboBox* fDiffType; ///< to select the kind of difference to make
  TGCompositeFrame* fF4; ///< frame for output basename selection
  TGTextEntry* fBasename; ///< basename of resulting (diff-ed) data
  TGCompositeFrame* fButtonFrame; ///< to hold OK and Cancel buttons
  TGTextButton* fOK; ///< ok button
  TGTextButton* fCancel; ///< cancel button
  
  static const Int_t fgkDifference; ///< D1-D2
  static const Int_t fgkAbsoluteDifference; ///< |D1-D2|
  static const Int_t fgkRelativeDifference; ///< (D1-D2)/D1
  static const Int_t fgkAbsoluteRelativeDifference; ///< | (D1-D2) | / | D1 |
  static const Int_t fgkAll; ///< All four differences at once
  
  ClassDef(AliMUONTrackerDataCompareDialog,1) // Dialog to select two data sources to compare
};

#endif
 AliMUONTrackerDataCompareDialog.h:1
 AliMUONTrackerDataCompareDialog.h:2
 AliMUONTrackerDataCompareDialog.h:3
 AliMUONTrackerDataCompareDialog.h:4
 AliMUONTrackerDataCompareDialog.h:5
 AliMUONTrackerDataCompareDialog.h:6
 AliMUONTrackerDataCompareDialog.h:7
 AliMUONTrackerDataCompareDialog.h:8
 AliMUONTrackerDataCompareDialog.h:9
 AliMUONTrackerDataCompareDialog.h:10
 AliMUONTrackerDataCompareDialog.h:11
 AliMUONTrackerDataCompareDialog.h:12
 AliMUONTrackerDataCompareDialog.h:13
 AliMUONTrackerDataCompareDialog.h:14
 AliMUONTrackerDataCompareDialog.h:15
 AliMUONTrackerDataCompareDialog.h:16
 AliMUONTrackerDataCompareDialog.h:17
 AliMUONTrackerDataCompareDialog.h:18
 AliMUONTrackerDataCompareDialog.h:19
 AliMUONTrackerDataCompareDialog.h:20
 AliMUONTrackerDataCompareDialog.h:21
 AliMUONTrackerDataCompareDialog.h:22
 AliMUONTrackerDataCompareDialog.h:23
 AliMUONTrackerDataCompareDialog.h:24
 AliMUONTrackerDataCompareDialog.h:25
 AliMUONTrackerDataCompareDialog.h:26
 AliMUONTrackerDataCompareDialog.h:27
 AliMUONTrackerDataCompareDialog.h:28
 AliMUONTrackerDataCompareDialog.h:29
 AliMUONTrackerDataCompareDialog.h:30
 AliMUONTrackerDataCompareDialog.h:31
 AliMUONTrackerDataCompareDialog.h:32
 AliMUONTrackerDataCompareDialog.h:33
 AliMUONTrackerDataCompareDialog.h:34
 AliMUONTrackerDataCompareDialog.h:35
 AliMUONTrackerDataCompareDialog.h:36
 AliMUONTrackerDataCompareDialog.h:37
 AliMUONTrackerDataCompareDialog.h:38
 AliMUONTrackerDataCompareDialog.h:39
 AliMUONTrackerDataCompareDialog.h:40
 AliMUONTrackerDataCompareDialog.h:41
 AliMUONTrackerDataCompareDialog.h:42
 AliMUONTrackerDataCompareDialog.h:43
 AliMUONTrackerDataCompareDialog.h:44
 AliMUONTrackerDataCompareDialog.h:45
 AliMUONTrackerDataCompareDialog.h:46
 AliMUONTrackerDataCompareDialog.h:47
 AliMUONTrackerDataCompareDialog.h:48
 AliMUONTrackerDataCompareDialog.h:49
 AliMUONTrackerDataCompareDialog.h:50
 AliMUONTrackerDataCompareDialog.h:51
 AliMUONTrackerDataCompareDialog.h:52
 AliMUONTrackerDataCompareDialog.h:53
 AliMUONTrackerDataCompareDialog.h:54
 AliMUONTrackerDataCompareDialog.h:55
 AliMUONTrackerDataCompareDialog.h:56
 AliMUONTrackerDataCompareDialog.h:57
 AliMUONTrackerDataCompareDialog.h:58
 AliMUONTrackerDataCompareDialog.h:59
 AliMUONTrackerDataCompareDialog.h:60
 AliMUONTrackerDataCompareDialog.h:61
 AliMUONTrackerDataCompareDialog.h:62
 AliMUONTrackerDataCompareDialog.h:63
 AliMUONTrackerDataCompareDialog.h:64
 AliMUONTrackerDataCompareDialog.h:65
 AliMUONTrackerDataCompareDialog.h:66
 AliMUONTrackerDataCompareDialog.h:67
 AliMUONTrackerDataCompareDialog.h:68
 AliMUONTrackerDataCompareDialog.h:69
 AliMUONTrackerDataCompareDialog.h:70
 AliMUONTrackerDataCompareDialog.h:71