1 #ifndef ALIMUONPAINTERPLOTSELECTOR_H
2 #define ALIMUONPAINTERPLOTSELECTOR_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
10 /// \class AliMUONPainterPlotSelector
11 /// \brief Widget to pick what to plot for the painters
13 // Author Laurent Aphecetche, Subatech
18 #ifndef ROOT_RQ_OBJECT
19 # include <RQ_OBJECT.h>
25 class AliMUONPainterMatrix;
26 class AliMUONVTrackerData;
30 class AliMUONPainterPlotSelector : public TGCompositeFrame
32 RQ_OBJECT("AliMUONPainterPlotSelector")
35 AliMUONPainterPlotSelector(const TGWindow* window, UInt_t w=1, UInt_t h=1);
36 virtual ~AliMUONPainterPlotSelector();
38 void DataSourceWasRegistered(AliMUONVTrackerData* data);
40 void DataSourceWasUnregistered(AliMUONVTrackerData* data);
42 void DataSourceWasChanged(const char* type,
43 AliMUONVTrackerData* data,
44 Int_t dataIndex); // *SIGNAL*
46 void DimensionButtonWasClicked(Int_t id);
48 void SourceButtonWasClicked(Int_t id);
50 void TypeButtonWasClicked(Int_t id);
52 void Update(const AliMUONPainterMatrix& painterMatrix);
54 void NumberOfEventsChanged();
58 AliMUONPainterPlotSelector(const AliMUONPainterPlotSelector& rhs);
60 AliMUONPainterPlotSelector& operator=(const AliMUONPainterPlotSelector& rhs);
62 void BackupDimensionButtons();
64 void CreateDimensionButtons(const char* dataSourceName);
66 void CreateTypeButtons(const TObjArray& types);
68 void DataSourceWasChanged();
70 void ResetDimensionButtonMap();
72 void RestoreDimensionButtons(const char* dataSourceName,
73 Bool_t updateCurrentDimension);
75 void SetCurrentData(AliMUONVTrackerData* data);
77 void SetCurrentDimension(Long_t i);
79 void SetCurrentType(const char* type);
81 void UpdateDimensionButton();
83 void UpdateSourceButton();
85 void UpdateTypeButton();
89 TGButtonGroup* fTypes; ///< types buttons
90 TGButtonGroup* fDataSourceNames; ///< data source names buttons
91 TGButtonGroup* fDataSourceDimensions; ///< data source dimensions buttons
92 TMap* fDimensionButtonMap; ///< cache for button group
93 TString fCurrentType; ///< current type
94 AliMUONVTrackerData* fCurrentData; ///< current data
95 Long_t fCurrentDimension; ///< current data index
96 static const char* fgkDefaultSourceName; ///< default source name
98 ClassDef(AliMUONPainterPlotSelector,1) // Widget to select what to plot for painters