ALIROOT-5420 Changes for CDH v3
[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 AliMUONAttPainter;
20 class AliMUONPainterDataSourceItem;
21 class AliMUONPainterMatrix;
22 class AliMUONVTrackerDataMaker;
23 class AliMUONVTrackerData;
24 class TGCheckButton;
25 class TGComboBox;
26 class TGGroupFrame;
27 class TGNumberEntry;
28 class TGTextEntry;
29 class TObjArray;
30
31 class AliMUONPainterDataSourceFrame : public TGCompositeFrame
32 {
33 public:
34   AliMUONPainterDataSourceFrame(const TGWindow* p, UInt_t w, UInt_t h);
35   virtual ~AliMUONPainterDataSourceFrame();
36   
37   void CalibrateButtonClicked(); 
38   
39   void CreateOCDBDataSource();
40
41   void CreateACFDataSource();
42
43   void CreateRawDataSource();
44   
45   void DataMakerWasRegistered(AliMUONVTrackerDataMaker* reader);
46   
47   void DataMakerWasUnregistered(const AliMUONVTrackerDataMaker* reader);
48
49   void HistogramButtonClicked();
50
51   void EventRangeButtonClicked();
52
53   void OpenFileDialog();
54   
55   void OpenFileDialogACF();
56   
57   void OpenRecentSource();
58
59   void StartRunning();
60
61   void StopRunning();
62
63   static void CreatePedestalCanvases(AliMUONVTrackerData* data,
64                                      Double_t pedMin=0, Double_t pedMax=500,
65                                      Double_t sigmaMin=0, Double_t sigmaMax=5);
66   
67   static AliMUONPainterMatrix* CreateFullTracker(AliMUONVTrackerData* data, 
68                                                  Int_t dim, 
69                                                  Double_t xmin, Double_t xmax, 
70                                                  const AliMUONAttPainter& att);
71
72 private:
73   /// Not implemented
74   AliMUONPainterDataSourceFrame(const AliMUONPainterDataSourceFrame& rhs);
75   /// Not implemented
76   AliMUONPainterDataSourceFrame& operator=(const AliMUONPainterDataSourceFrame& rhs);
77
78   void AddRecentSource(const char* name);
79
80   Bool_t CreateRawDataSource(const TString& uri);
81   
82   void CreateOCDBDataSource(const TString& uri);
83
84   void CreateOCDBDataSource(const TString& cdbPath, Int_t runNumber, const TString& type);
85
86   void CreateACFDataSource(const TString& uri);
87
88   void CreateACFDataSource(const TString& acfPath, const TString& type);
89   
90   void RegisterDataSource(AliMUONVTrackerDataMaker* reader, const char* dsName);
91   
92 private:
93     
94   TGGroupFrame* fRecentSourceSelector; ///< to select recently used sources   
95   
96   TGGroupFrame* fRawSelector; ///< to select a new raw data source
97   TGCompositeFrame* fRawSelector2; ///< idem
98   TGCompositeFrame* fRawSelector21; ///< idem
99   TGCompositeFrame* fRawSelector22; ///< idem
100   TGCompositeFrame* fRawSelector24; ///< idem
101   TGCompositeFrame* fRawSelector23; ///< idem
102   TGCheckButton* fCalibrateNoGain; ///< to trig calibration of raw data (only 0 suppression)
103   TGCheckButton* fCalibrateGainConstantCapa; ///< to trig calibration of raw data (0-supp and gain w/ constant capacitance)
104   TGCheckButton* fCalibrateGain; ///< to trig calibration of raw data (full blown calibration)
105   TGCheckButton* fCalibrateEmelecGain; ///< to trig calibration of raw data (full blown calibration but with factory gains)
106   TGCheckButton* fHistogramButton; ///< to trig histogramming of raw data  
107   TGNumberEntry* fHistoMin; ///< xmin of histo to make
108   TGNumberEntry* fHistoMax; ///< xmax of histo to make
109   TGCheckButton* fEventRangeButton; ///< to trig limitation of event range
110   TGNumberEntry* fEventMin; ///< min event number to consider
111   TGNumberEntry* fEventMax; ///< max event number to consider  
112   TGTextEntry* fRawOCDBPath; ///< OCDB path for raw data calibration
113   
114   TGGroupFrame* fOCDBSelector; ///< to select a new OCDB data source
115   TGGroupFrame* fDataReaders; ///< to display currently active data sources  
116   TGTextEntry* fFilePath; ///< raw data file path text entry widget
117   TGTextEntry* fOCDBPath; ///< OCDB path text entry widget
118   TGNumberEntry* fRunSelector; ///< OCDB run number entry widget
119   TGComboBox* fOCDBTypes; ///< OCDB type combo box entry widget  
120   TGComboBox* fRecentSources; ///< recent sources combo box  
121   TObjArray* fItems; ///< list of data readers we handle
122   
123   TGGroupFrame* fACFSelector; ///< to select ACF (ASCII calibration files)
124   TGTextEntry* fACFPath; ///< path to ASCII calibration file
125   TGComboBox* fACFTypes; ///< types of ASCII calibration files 
126
127   static const char* fgkNumberOfDataSourcesKey; ///< key used to store the # of data sources in the resource file
128   static const char* fgkDataSourceURIKey; ///< key usde to store the data source URIs in the resource file
129
130   ClassDef(AliMUONPainterDataSourceFrame,5) // Data source selection frame
131 };
132
133 #endif