11cccc3e001878c7ef68a8d9381f6aa5f8653968
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveLegoEditor.h
1 // $Id$
2 // Author: Stefano Carrazza 2010
3
4 /**************************************************************************
5  * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef ALIEVELEGOEDITOR_H
11 #define ALIEVELEGOEDITOR_H
12
13 #include "TGedFrame.h"
14
15 class TGButton;
16 class TGCheckButton;
17 class TGNumberEntry;
18 class TGColorSelect;
19 class TGButtonGroup;
20 class TGRadioButton;
21 class TGLabel;
22 class TGComboBox;
23 class TGGroupFrame;
24
25 class AliEveLego;
26
27 //______________________________________________________________________________
28 // Short description of AliEveLegoEditor
29 //
30
31 class AliEveLegoEditor : public TGedFrame
32 {
33 public:
34    AliEveLegoEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
35          UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
36    virtual ~AliEveLegoEditor() {}
37
38    virtual void SetModel(TObject* obj);
39
40    // Declare callback/slot methods
41    void DoAllEvents();
42    void ShowByCharge(Int_t id);
43    void ShowByChargeAE(Int_t id);
44    void SetThreshold();
45    void SetThresholdAE();
46    void SetMaxPt();
47    void SetMaxPtAE();
48    void ShowByTracks(Int_t id);
49    void ShowByTracksAE(Int_t id);
50    void ShowByEvents(Int_t id);
51    void ShowEventSelection();
52    void SelectEventSelection(Int_t id);
53    void CreateAllEventsEditor();
54    void ShowPrevEvent();
55    void ShowNextEvent();
56
57 protected:
58    AliEveLego            *fM; // Model object.
59
60    // Single event GUI
61    TGTextButton  *fAllEventsButton; // text button for all events
62    TGButtonGroup *fParticlesBG;     // particle selection button
63    TGButtonGroup *fTrackSelection;  // track selection button
64    TGGroupFrame *fEventSelection;   // event selection button
65    TGCheckButton *fRevents;         // check button for events
66    TGRadioButton *fRcharge[3];      // radio button for charge selection
67    TGRadioButton *fRtracks[2];      // radio button for track selection
68    TGLabel       *fLabel;           // label for track selection
69    TGLabel       *fLabel1;          // label for event selection
70    TGNumberEntry *fThreshold;       // number entry to setup threshold
71    TGNumberEntry *fMaxPt;           // number entry to setup max pt
72    TGComboBox    *fSelect;          // combo box to filter events
73    TGTextButton  *fButtonPrev;      // previous event selection button
74    TGTextButton  *fButtonNext;      // next event selection button
75
76    // All events GUI
77    TGButtonGroup *fParticlesBGAE;    // particle selection button for all events
78    TGButtonGroup *fTrackSelectionAE; // track selection for all events
79    TGGroupFrame  *fEventSelectionAE; // event selection for all events
80    TGCheckButton *fReventsAE;        // check button for event selection
81    TGRadioButton *fRchargeAE[3];     // radio button event
82    TGRadioButton *fRtracksAE[2];     // radio button track
83    TGLabel       *fLabelAE;          // label for track selection
84    TGLabel       *fLabel1AE;         // label for event selection
85    TGNumberEntry *fThresholdAE;      // number entry to setup threshold
86    TGNumberEntry *fMaxPtAE;          // number entry to setup max pt
87    TGComboBox    *fSelectAE;         // combo box to filter events
88    TGTextButton  *fButtonPrevAE;     // previous event selection button
89    TGTextButton  *fButtonNextAE;     // next event selection button
90
91
92 private:
93
94    AliEveLegoEditor(const AliEveLegoEditor&);            // Not implemented
95    AliEveLegoEditor& operator=(const AliEveLegoEditor&); // Not implemented
96
97    ClassDef(AliEveLegoEditor, 0); // GUI editor for AliEveLego.
98 };
99
100 #endif