ROOT logo
// $Id$
// Author: Stefano Carrazza 2010, CERN, stefano.carrazza@cern.ch

/**************************************************************************
 * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

#ifndef ALIEVELEGOEDITOR_H
#define ALIEVELEGOEDITOR_H

#include "TGedFrame.h"

class TGButton;
class TGButtonGroup;
class TGCheckButton;
class TGColorSelect;
class TGComboBox;
class TGGroupFrame;
class TGLabel;
class TGNumberEntry;
class TGRadioButton;

class AliEveLego;

//______________________________________________________________________________
// AliEveLegoEditor is the class editor of AliEveLego
//

class AliEveLegoEditor : public TGedFrame
{
public:
   AliEveLegoEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
         UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
   virtual ~AliEveLegoEditor() {}

   virtual void SetModel(TObject* obj);

   // Slot methods
   void ApplyChanges();
   void CollisionCandidatesOnly();
   void CreateAllEventsEditor();
   void DataIsMC();
   void DoAllEvents();
   void ShowPosCharge();
   void ShowNegCharge();
   void ShowElectrons();
   void ShowMuons();
   void ShowPions();
   void ShowKaons();
   void ShowProtons();
   void ShowPosChargeAE();
   void ShowNegChargeAE();
   void ShowElectronsAE();
   void ShowMuonsAE();
   void ShowPionsAE();
   void ShowKaonsAE();
   void ShowProtonsAE();
   void SetThreshold();
   void SetThresholdAE();
   void SetMaxPt();
   void SetMaxPtAE();
   void ShowByTracks(Int_t id);
   void ShowByTracksAE(Int_t id);

protected:
   AliEveLego    *fM;                // Model object.

private:
   // Single event GUI
   TGTextButton  *fAllEventsButton;  // text button for all events
   TGGroupFrame  *fParticlesBG;      // particle selection button
   TGButtonGroup *fTrackSelection;   // track selection button
   TGCheckButton *fPosCharged;       // check button for positive only charged particles
   TGCheckButton *fNegCharged;       // check button for negative only charged particles
   TGCheckButton *fElectrons;        // check button for electrons
   TGCheckButton *fMuons;            // check button for muons
   TGCheckButton *fPions;            // check button for pions
   TGCheckButton *fKaons;            // check button for kaons
   TGCheckButton *fProtons;          // check button for protons
   TGRadioButton *fRtracks[2];       // radio button for track selection
   TGLabel       *fLabel;            // label for track selection
   TGLabel       *fLabel1;           // label for event selection
   TGNumberEntry *fThreshold;        // number entry to setup threshold
   TGNumberEntry *fMaxPt;            // number entry to setup max pt
   TGComboBox    *fSelect;           // combo box to filter events

   // All events GUI
   TGButtonGroup *fParticlesBGAE;    // particle selection button for all events
   TGButtonGroup *fTrackSelectionAE; // track selection for all events
   TGCheckButton *fPosChargedAE;     // check button for positive only charged particles
   TGCheckButton *fNegChargedAE;     // check button for negative only charged particles
   TGCheckButton *fElectronsAE;      // check button for electrons
   TGCheckButton *fMuonsAE;          // check button for muons
   TGCheckButton *fPionsAE;          // check button for pions
   TGCheckButton *fKaonsAE;          // check button for kaons
   TGCheckButton *fProtonsAE;        // check button for protons
   TGTextButton  *fApplyChanges;     // apply selections
   TGRadioButton *fRtracksAE[2];     // radio button track
   TGLabel       *fLabelAE;          // label for track selection
   TGLabel       *fLabel1AE;         // label for event selection
   TGNumberEntry *fThresholdAE;      // number entry to setup threshold
   TGNumberEntry *fMaxPtAE;          // number entry to setup max pt
   TGButtonGroup *fEventControl;     // event control panel
   TGCheckButton *fIsMC;             // check if data is from MC
   TGCheckButton *fCollisionCandidatesOnly; // fill all collision candidates events

   AliEveLegoEditor(const AliEveLegoEditor&);            // Not implemented
   AliEveLegoEditor& operator=(const AliEveLegoEditor&); // Not implemented

   ClassDef(AliEveLegoEditor, 0); // GUI editor for AliEveLego.
};

#endif
 AliEveLegoEditor.h:1
 AliEveLegoEditor.h:2
 AliEveLegoEditor.h:3
 AliEveLegoEditor.h:4
 AliEveLegoEditor.h:5
 AliEveLegoEditor.h:6
 AliEveLegoEditor.h:7
 AliEveLegoEditor.h:8
 AliEveLegoEditor.h:9
 AliEveLegoEditor.h:10
 AliEveLegoEditor.h:11
 AliEveLegoEditor.h:12
 AliEveLegoEditor.h:13
 AliEveLegoEditor.h:14
 AliEveLegoEditor.h:15
 AliEveLegoEditor.h:16
 AliEveLegoEditor.h:17
 AliEveLegoEditor.h:18
 AliEveLegoEditor.h:19
 AliEveLegoEditor.h:20
 AliEveLegoEditor.h:21
 AliEveLegoEditor.h:22
 AliEveLegoEditor.h:23
 AliEveLegoEditor.h:24
 AliEveLegoEditor.h:25
 AliEveLegoEditor.h:26
 AliEveLegoEditor.h:27
 AliEveLegoEditor.h:28
 AliEveLegoEditor.h:29
 AliEveLegoEditor.h:30
 AliEveLegoEditor.h:31
 AliEveLegoEditor.h:32
 AliEveLegoEditor.h:33
 AliEveLegoEditor.h:34
 AliEveLegoEditor.h:35
 AliEveLegoEditor.h:36
 AliEveLegoEditor.h:37
 AliEveLegoEditor.h:38
 AliEveLegoEditor.h:39
 AliEveLegoEditor.h:40
 AliEveLegoEditor.h:41
 AliEveLegoEditor.h:42
 AliEveLegoEditor.h:43
 AliEveLegoEditor.h:44
 AliEveLegoEditor.h:45
 AliEveLegoEditor.h:46
 AliEveLegoEditor.h:47
 AliEveLegoEditor.h:48
 AliEveLegoEditor.h:49
 AliEveLegoEditor.h:50
 AliEveLegoEditor.h:51
 AliEveLegoEditor.h:52
 AliEveLegoEditor.h:53
 AliEveLegoEditor.h:54
 AliEveLegoEditor.h:55
 AliEveLegoEditor.h:56
 AliEveLegoEditor.h:57
 AliEveLegoEditor.h:58
 AliEveLegoEditor.h:59
 AliEveLegoEditor.h:60
 AliEveLegoEditor.h:61
 AliEveLegoEditor.h:62
 AliEveLegoEditor.h:63
 AliEveLegoEditor.h:64
 AliEveLegoEditor.h:65
 AliEveLegoEditor.h:66
 AliEveLegoEditor.h:67
 AliEveLegoEditor.h:68
 AliEveLegoEditor.h:69
 AliEveLegoEditor.h:70
 AliEveLegoEditor.h:71
 AliEveLegoEditor.h:72
 AliEveLegoEditor.h:73
 AliEveLegoEditor.h:74
 AliEveLegoEditor.h:75
 AliEveLegoEditor.h:76
 AliEveLegoEditor.h:77
 AliEveLegoEditor.h:78
 AliEveLegoEditor.h:79
 AliEveLegoEditor.h:80
 AliEveLegoEditor.h:81
 AliEveLegoEditor.h:82
 AliEveLegoEditor.h:83
 AliEveLegoEditor.h:84
 AliEveLegoEditor.h:85
 AliEveLegoEditor.h:86
 AliEveLegoEditor.h:87
 AliEveLegoEditor.h:88
 AliEveLegoEditor.h:89
 AliEveLegoEditor.h:90
 AliEveLegoEditor.h:91
 AliEveLegoEditor.h:92
 AliEveLegoEditor.h:93
 AliEveLegoEditor.h:94
 AliEveLegoEditor.h:95
 AliEveLegoEditor.h:96
 AliEveLegoEditor.h:97
 AliEveLegoEditor.h:98
 AliEveLegoEditor.h:99
 AliEveLegoEditor.h:100
 AliEveLegoEditor.h:101
 AliEveLegoEditor.h:102
 AliEveLegoEditor.h:103
 AliEveLegoEditor.h:104
 AliEveLegoEditor.h:105
 AliEveLegoEditor.h:106
 AliEveLegoEditor.h:107
 AliEveLegoEditor.h:108
 AliEveLegoEditor.h:109
 AliEveLegoEditor.h:110
 AliEveLegoEditor.h:111
 AliEveLegoEditor.h:112
 AliEveLegoEditor.h:113
 AliEveLegoEditor.h:114
 AliEveLegoEditor.h:115