AliMUONDigitCalibrator
[u/mrichter/AliRoot.git] / MUON / AliMUONPainterDataSourceFrame.h
1 #ifndef ALIMUONPAINTERDATASOURCEFRAME_H
2 #define ALIMUONPAINTERDATASOURCEFRAME_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice                               */
6
7 // $Id$
8
9 /// \ingroup graphics
10 /// \class AliMUONPainterDataSourceFrame
11 /// \brief Frame to select input data source(s) to be displayed
12 /// 
13 // Author Laurent Aphecetche, Subatech
14
15 #ifndef ROOT_TGFrame
16 #  include <TGFrame.h>
17 #endif
18
19 class AliMUONPainterDataSourceItem;
20 class AliMUONVTrackerDataMaker;
21 class TGCheckButton;
22 class TGComboBox;
23 class TGGroupFrame;
24 class TGNumberEntry;
25 class TGTextEntry;
26 class TObjArray;
27
28 class AliMUONPainterDataSourceFrame : public TGCompositeFrame
29 {
30 public:
31   AliMUONPainterDataSourceFrame(const TGWindow* p, UInt_t w, UInt_t h);
32   virtual ~AliMUONPainterDataSourceFrame();
33   
34   void CalibrateButtonClicked(); 
35   
36   void CreateOCDBDataSource();
37
38   void CreateACFDataSource();
39
40   void CreateRawDataSource();
41   
42   void DataMakerWasRegistered(AliMUONVTrackerDataMaker* reader);
43   
44   void DataMakerWasUnregistered(AliMUONVTrackerDataMaker* reader);
45
46   void HistogramButtonClicked();
47   
48   void OpenFileDialog();
49   
50   void OpenFileDialogACF();
51   
52   void OpenRecentSource();
53
54   void StartRunning();
55
56   void StopRunning();
57
58 private:
59   /// Not implemented
60   AliMUONPainterDataSourceFrame(const AliMUONPainterDataSourceFrame& rhs);
61   /// Not implemented
62   AliMUONPainterDataSourceFrame& operator=(const AliMUONPainterDataSourceFrame& rhs);
63
64   void AddRecentSource(const char* name);
65
66   Bool_t CreateRawDataSource(const TString& uri);
67   
68   void CreateOCDBDataSource(const TString& uri);
69
70   void CreateOCDBDataSource(const TString& cdbPath, Int_t runNumber, const TString& type);
71
72   void CreateACFDataSource(const TString& uri);
73
74   void CreateACFDataSource(const TString& acfPath, const TString& type);
75   
76 private:
77     
78   TGGroupFrame* fRecentSourceSelector; ///< to select recently used sources   
79   
80   TGGroupFrame* fRawSelector; ///< to select a new raw data source
81   TGCompositeFrame* fRawSelector2; ///< idem
82   TGCompositeFrame* fRawSelector21; ///< idem
83   TGCompositeFrame* fRawSelector22; ///< idem
84   TGCompositeFrame* fRawSelector23; ///< idem
85   TGCheckButton* fCalibrateNoGain; ///< to trig calibration of raw data (only 0 suppression)
86   TGCheckButton* fCalibrateGainConstantCapa; ///< to trig calibration of raw data (0-supp and gain w/ constant capacitance)
87   TGCheckButton* fCalibrateGain; ///< to trig calibration of raw data (full blown calibration)
88   TGCheckButton* fCalibrateEmelecGain; ///< to trig calibration of raw data (full blown calibration but with factory gains)
89   TGCheckButton* fHistogramButton; ///< to trig histogramming of raw data
90   TGNumberEntry* fHistoMin; ///< xmin of histo to make
91   TGNumberEntry* fHistoMax; ///< xmax of histo to make
92   TGTextEntry* fRawOCDBPath; ///< OCDB path for raw data calibration
93   
94   TGGroupFrame* fOCDBSelector; ///< to select a new OCDB data source
95   TGGroupFrame* fDataReaders; ///< to display currently active data sources  
96   TGTextEntry* fFilePath; ///< raw data file path text entry widget
97   TGTextEntry* fOCDBPath; ///< OCDB path text entry widget
98   TGNumberEntry* fRunSelector; ///< OCDB run number entry widget
99   TGComboBox* fOCDBTypes; ///< OCDB type combo box entry widget  
100   TGComboBox* fRecentSources; ///< recent sources combo box  
101   TObjArray* fItems; ///< list of data readers we handle
102   
103   TGGroupFrame* fACFSelector; ///< to select ACF (ASCII calibration files)
104   TGTextEntry* fACFPath; ///< path to ASCII calibration file
105   TGComboBox* fACFTypes; ///< types of ASCII calibration files 
106
107   static const char* fgkNumberOfDataSourcesKey; ///< key used to store the # of data sources in the resource file
108   static const char* fgkDataSourceURIKey; ///< key usde to store the data source URIs in the resource file
109
110   ClassDef(AliMUONPainterDataSourceFrame,4) // Data source selection frame
111 };
112
113 #endif