Create the magnetic field map in the reconstruction macros (Yuri)
[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 CreateRawDataSource();
39   
40   void DataMakerWasRegistered(AliMUONVTrackerDataMaker* reader);
41   
42   void DataMakerWasUnregistered(AliMUONVTrackerDataMaker* reader);
43
44   void HistogramButtonClicked();
45   
46   void OpenFileDialog();
47   
48   void OpenRecentSource();
49
50   void StartRunning(AliMUONPainterDataSourceItem* item);
51
52   void StopRunning(AliMUONPainterDataSourceItem* item);
53
54 private:
55   /// Not implemented
56   AliMUONPainterDataSourceFrame(const AliMUONPainterDataSourceFrame& rhs);
57   /// Not implemented
58   AliMUONPainterDataSourceFrame& operator=(const AliMUONPainterDataSourceFrame& rhs);
59
60   void AddRecentSource(const char* name);
61
62   Bool_t CreateRawDataSource(const TString& uri);
63   
64   void CreateOCDBDataSource(const TString& uri);
65
66   void CreateOCDBDataSource(const TString& cdbPath, Int_t runNumber, const TString& type);
67
68 private:
69     
70   TGGroupFrame* fRecentSourceSelector; ///< to select recently used sources   
71   
72   TGGroupFrame* fRawSelector; ///< to select a new raw data source
73   TGCompositeFrame* fRawSelector2; ///< idem
74   TGCompositeFrame* fRawSelector21; ///< idem
75   TGCompositeFrame* fRawSelector22; ///< idem
76   TGCompositeFrame* fRawSelector23; ///< idem
77   TGCheckButton* fCalibrateNoGain; ///< to trig calibration of raw data (only 0 suppression)
78   TGCheckButton* fCalibrateGainConstantCapa; ///< to trig calibration of raw data (0-supp and gain w/ constant capacitance)
79   TGCheckButton* fCalibrateGain; ///< to trig calibration of raw data (full blown calibration)
80   TGCheckButton* fHistogramButton; ///< to trig histogramming of raw data
81   TGNumberEntry* fHistoMin; ///< xmin of histo to make
82   TGNumberEntry* fHistoMax; ///< xmax of histo to make
83   TGTextEntry* fRawOCDBPath; ///< OCDB path for raw data calibration
84   
85   TGGroupFrame* fOCDBSelector; ///< to select a new OCDB data source
86   TGGroupFrame* fDataReaders; ///< to display currently active data sources  
87   TGTextEntry* fFilePath; ///< raw data file path text entry widget
88   TGTextEntry* fOCDBPath; ///< OCDB path text entry widget
89   TGNumberEntry* fRunSelector; ///< OCDB run number entry widget
90   TGComboBox* fOCDBTypes; ///< OCDB type combo box entry widget  
91   TGComboBox* fRecentSources; ///< recent sources combo box  
92   TObjArray* fItems; ///< list of data readers we handle
93   
94   static const char* fgkNumberOfDataSourcesKey; ///< key used to store the # of data sources in the resource file
95   static const char* fgkDataSourceURIKey; ///< key usde to store the data source URIs in the resource file
96
97   ClassDef(AliMUONPainterDataSourceFrame,2) // Data source selection frame
98 };
99
100 #endif