From Stefano:
[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 ShowPosCharge();
43    void ShowNegCharge();
44    void ShowElectrons();
45    void ShowMuons();
46    void ShowPions();
47    void ShowKaons();
48    void ShowProtons();
49    void ShowPosChargeAE();
50    void ShowNegChargeAE();
51    void ShowElectronsAE();
52    void ShowMuonsAE();
53    void ShowPionsAE();
54    void ShowKaonsAE();
55    void ShowProtonsAE();
56    void SetThreshold();
57    void SetThresholdAE();
58    void SetMaxPt();
59    void SetMaxPtAE();
60    void ShowByTracks(Int_t id);
61    void ShowByTracksAE(Int_t id);
62    void CreateAllEventsEditor();
63    void ApplyChanges();
64    void DataIsMC();
65    void CollisionCandidatesOnly();
66
67 protected:
68    AliEveLego            *fM; // Model object.
69
70    // Single event GUI
71    TGTextButton  *fAllEventsButton; // text button for all events
72    TGGroupFrame  *fParticlesBG;     // particle selection button
73    TGButtonGroup *fTrackSelection;  // track selection button
74    TGCheckButton *fPosCharged;      // check button for positive only charged particles
75    TGCheckButton *fNegCharged;      // check button for negative only charged particles
76    TGCheckButton *fElectrons;       // check button for electrons
77    TGCheckButton *fMuons;           // check button for muons
78    TGCheckButton *fPions;           // check button for pions
79    TGCheckButton *fKaons;           // check button for kaons
80    TGCheckButton *fProtons;         // check button for protons
81    TGRadioButton *fRtracks[2];      // radio button for track selection
82    TGLabel       *fLabel;           // label for track selection
83    TGLabel       *fLabel1;          // label for event selection
84    TGNumberEntry *fThreshold;       // number entry to setup threshold
85    TGNumberEntry *fMaxPt;           // number entry to setup max pt
86    TGComboBox    *fSelect;          // combo box to filter events
87
88
89    // All events GUI
90    TGButtonGroup *fParticlesBGAE;    // particle selection button for all events
91    TGButtonGroup *fTrackSelectionAE; // track selection for all events
92    TGCheckButton *fPosChargedAE;     // check button for positive only charged particles
93    TGCheckButton *fNegChargedAE;     // check button for negative only charged particles
94    TGCheckButton *fElectronsAE;      // check button for electrons
95    TGCheckButton *fMuonsAE;          // check button for muons
96    TGCheckButton *fPionsAE;          // check button for pions
97    TGCheckButton *fKaonsAE;          // check button for kaons
98    TGCheckButton *fProtonsAE;        // check button for protons
99    TGTextButton  *fApplyChanges;     // apply selections
100    TGRadioButton *fRtracksAE[2];     // radio button track
101    TGLabel       *fLabelAE;          // label for track selection
102    TGLabel       *fLabel1AE;         // label for event selection
103    TGNumberEntry *fThresholdAE;      // number entry to setup threshold
104    TGNumberEntry *fMaxPtAE;          // number entry to setup max pt
105
106    TGButtonGroup *fEventControl;            // event control panel
107    TGCheckButton *fIsMC;                    // check if data is from MC
108    TGCheckButton *fCollisionCandidatesOnly; // fill all collision candidates events
109
110 private:
111
112    AliEveLegoEditor(const AliEveLegoEditor&);            // Not implemented
113    AliEveLegoEditor& operator=(const AliEveLegoEditor&); // Not implemented
114
115    ClassDef(AliEveLegoEditor, 0); // GUI editor for AliEveLego.
116 };
117
118 #endif