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
22 class AliMUONPainterMatrix;
23 class AliMUONVTrackerData;
27 class AliMUONPainterPlotSelector : public TGCompositeFrame
30 AliMUONPainterPlotSelector(const TGWindow* window, UInt_t w=1, UInt_t h=1);
31 virtual ~AliMUONPainterPlotSelector();
33 void DataSourceWasRegistered(AliMUONVTrackerData* data);
35 void DataSourceWasUnregistered(AliMUONVTrackerData* data);
37 void DataSourceWasChanged(const char* type,
38 AliMUONVTrackerData* data,
39 Int_t dataIndex); // *SIGNAL*
41 void DimensionButtonWasClicked(Int_t id);
43 void SourceButtonWasClicked(Int_t id);
45 void TypeButtonWasClicked(Int_t id);
47 void Update(const AliMUONPainterMatrix& painterMatrix);
49 void NumberOfEventsChanged();
53 AliMUONPainterPlotSelector(const AliMUONPainterPlotSelector& rhs);
55 AliMUONPainterPlotSelector& operator=(const AliMUONPainterPlotSelector& rhs);
57 void BackupDimensionButtons();
59 void CreateDimensionButtons(const char* dataSourceName);
61 void CreateTypeButtons(const TObjArray& types);
63 void DataSourceWasChanged();
65 void ResetDimensionButtonMap();
67 void RestoreDimensionButtons(const char* dataSourceName,
68 Bool_t updateCurrentDimension);
70 void SetCurrentData(AliMUONVTrackerData* data);
72 void SetCurrentDimension(Long_t i);
74 void SetCurrentType(const char* type);
76 void UpdateDimensionButton();
78 void UpdateSourceButton();
80 void UpdateTypeButton();
84 TGButtonGroup* fTypes; ///< types buttons
85 TGButtonGroup* fDataSourceNames; ///< data source names buttons
86 TGButtonGroup* fDataSourceDimensions; ///< data source dimensions buttons
87 TMap* fDimensionButtonMap; ///< cache for button group
88 TString fCurrentType; ///< current type
89 AliMUONVTrackerData* fCurrentData; ///< current data
90 Long_t fCurrentDimension; ///< current data index
91 static const char* fgkDefaultSourceName; ///< default source name
93 ClassDef(AliMUONPainterPlotSelector,1) // Widget to select what to plot for painters