1 #ifndef ALIMUONPAINTERDATASOURCEFRAME_H
2 #define ALIMUONPAINTERDATASOURCEFRAME_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONPainterDataSourceFrame
11 /// \brief Frame to select input data source(s) to be displayed
13 // Author Laurent Aphecetche, Subatech
19 class AliMUONAttPainter;
20 class AliMUONPainterDataSourceItem;
21 class AliMUONPainterMatrix;
22 class AliMUONVTrackerDataMaker;
23 class AliMUONVTrackerData;
31 class AliMUONPainterDataSourceFrame : public TGCompositeFrame
34 AliMUONPainterDataSourceFrame(const TGWindow* p, UInt_t w, UInt_t h);
35 virtual ~AliMUONPainterDataSourceFrame();
37 void CalibrateButtonClicked();
39 void CreateOCDBDataSource();
41 void CreateACFDataSource();
43 void CreateRawDataSource();
45 void DataMakerWasRegistered(AliMUONVTrackerDataMaker* reader);
47 void DataMakerWasUnregistered(AliMUONVTrackerDataMaker* reader);
49 void HistogramButtonClicked();
51 void OpenFileDialog();
53 void OpenFileDialogACF();
55 void OpenRecentSource();
61 static void CreatePedestalCanvases(AliMUONVTrackerData* data,
62 Double_t pedMin=0, Double_t pedMax=500,
63 Double_t sigmaMin=0, Double_t sigmaMax=5);
65 static AliMUONPainterMatrix* CreateFullTracker(AliMUONVTrackerData* data,
67 Double_t xmin, Double_t xmax,
68 const AliMUONAttPainter& att);
72 AliMUONPainterDataSourceFrame(const AliMUONPainterDataSourceFrame& rhs);
74 AliMUONPainterDataSourceFrame& operator=(const AliMUONPainterDataSourceFrame& rhs);
76 void AddRecentSource(const char* name);
78 Bool_t CreateRawDataSource(const TString& uri);
80 void CreateOCDBDataSource(const TString& uri);
82 void CreateOCDBDataSource(const TString& cdbPath, Int_t runNumber, const TString& type);
84 void CreateACFDataSource(const TString& uri);
86 void CreateACFDataSource(const TString& acfPath, const TString& type);
88 void RegisterDataSource(AliMUONVTrackerDataMaker* reader, const char* dsName);
92 TGGroupFrame* fRecentSourceSelector; ///< to select recently used sources
94 TGGroupFrame* fRawSelector; ///< to select a new raw data source
95 TGCompositeFrame* fRawSelector2; ///< idem
96 TGCompositeFrame* fRawSelector21; ///< idem
97 TGCompositeFrame* fRawSelector22; ///< idem
98 TGCompositeFrame* fRawSelector23; ///< idem
99 TGCheckButton* fCalibrateNoGain; ///< to trig calibration of raw data (only 0 suppression)
100 TGCheckButton* fCalibrateGainConstantCapa; ///< to trig calibration of raw data (0-supp and gain w/ constant capacitance)
101 TGCheckButton* fCalibrateGain; ///< to trig calibration of raw data (full blown calibration)
102 TGCheckButton* fCalibrateEmelecGain; ///< to trig calibration of raw data (full blown calibration but with factory gains)
103 TGCheckButton* fHistogramButton; ///< to trig histogramming of raw data
104 TGNumberEntry* fHistoMin; ///< xmin of histo to make
105 TGNumberEntry* fHistoMax; ///< xmax of histo to make
106 TGTextEntry* fRawOCDBPath; ///< OCDB path for raw data calibration
108 TGGroupFrame* fOCDBSelector; ///< to select a new OCDB data source
109 TGGroupFrame* fDataReaders; ///< to display currently active data sources
110 TGTextEntry* fFilePath; ///< raw data file path text entry widget
111 TGTextEntry* fOCDBPath; ///< OCDB path text entry widget
112 TGNumberEntry* fRunSelector; ///< OCDB run number entry widget
113 TGComboBox* fOCDBTypes; ///< OCDB type combo box entry widget
114 TGComboBox* fRecentSources; ///< recent sources combo box
115 TObjArray* fItems; ///< list of data readers we handle
117 TGGroupFrame* fACFSelector; ///< to select ACF (ASCII calibration files)
118 TGTextEntry* fACFPath; ///< path to ASCII calibration file
119 TGComboBox* fACFTypes; ///< types of ASCII calibration files
121 static const char* fgkNumberOfDataSourcesKey; ///< key used to store the # of data sources in the resource file
122 static const char* fgkDataSourceURIKey; ///< key usde to store the data source URIs in the resource file
124 ClassDef(AliMUONPainterDataSourceFrame,4) // Data source selection frame