ROOT logo
// @(#)root/eve:$Id$
// Main author: Davide Caffarri 2009

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

#include "AliEveHFListEditor.h"
#include "AliEveHF.h"

#include "TEveGValuators.h"

#include "TVirtualPad.h"
#include "TColor.h"

// Cleanup these includes:
#include "TGLabel.h"
#include "TGButton.h"
#include "TGNumberEntry.h"
#include "TGColorSelect.h"
#include "TGDoubleSlider.h"
#include "TGComboBox.h"
#include "TGLabel.h"
#include "TGSlider.h"

//______________________________________________________________________________
// GUI editor for AliEveHFList.
//

ClassImp(AliEveHFListEditor)

//______________________________________________________________________________
AliEveHFListEditor::AliEveHFListEditor(const TGWindow *p, Int_t width, Int_t height,
             UInt_t options, Pixel_t back) :
  TGedFrame(p, width, height, options | kVerticalFrame, back),
  fM(0),
  fMinMaxPt(0),
  fMinMaxCosPointingAngle(0),
  fValueInvMass(0)

{
  // Constructor.

  MakeTitle("AliEveHFList");

  // Create widgets
  // fXYZZ = new TGSomeWidget(this, ...);
  // AddFrame(fXYZZ, new TGLayoutHints(...));
  // fXYZZ->Connect("SignalName()", "Reve::AliEveHFListEditor", this, "DoXYZZ()");

   fMinMaxPt = new TEveGDoubleValuator(this,"pT:", 80, 0);
   fMinMaxPt->SetNELength(5);
   fMinMaxPt->SetLabelWidth(120);
   fMinMaxPt->Build();
   fMinMaxPt->GetSlider()->SetWidth(200);
   fMinMaxPt->SetLimits(0, 20, TGNumberFormat::kNESRealOne);
   fMinMaxPt->Connect("ValueSet()", "AliEveHFListEditor", this, "DoMinMaxPt()");
   AddFrame(fMinMaxPt, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));

   fMinMaxCosPointingAngle = new TEveGDoubleValuator(this,"Cos Pointing Angle:", 80, 0);
   fMinMaxCosPointingAngle->SetNELength(5);
   fMinMaxCosPointingAngle->SetLabelWidth(120);
   fMinMaxCosPointingAngle->Build();
   fMinMaxCosPointingAngle->GetSlider()->SetWidth(200);
   fMinMaxCosPointingAngle->SetLimits(0, 1, TGNumberFormat::kNESRealOne);
   fMinMaxCosPointingAngle->Connect("ValueSet()", "AliEveHFListEditor", this, "DoMinMaxCosPointingAngle()");
   AddFrame(fMinMaxCosPointingAngle, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));


   fValueInvMass = new TEveGDoubleValuator(this, "Delta Invariant Mass:", 80, 0);
   fValueInvMass->SetNELength(5);
   fValueInvMass->SetLabelWidth(120);
   fValueInvMass->Build();
   fValueInvMass->GetSlider()->SetWidth(200);
   fValueInvMass->SetLimits(0,1, TGNumberFormat::kNESRealTwo);
   fValueInvMass->Connect("ValueSet()", "AliEveHFListEditor", this, "DoMinMaxInvMass()");
   AddFrame(fValueInvMass, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));


}



/******************************************************************************/

//______________________________________________________________________________
void AliEveHFListEditor::SetModel(TObject* obj)
{
  // Set model object.

  fM = static_cast<AliEveHFList*>(obj);

  // Set values of widgets
  // fXYZZ->SetValue(fM->GetXYZZ());

  fMinMaxPt->SetValues(fM->fMinPt, fM->fMaxPt);
  fMinMaxCosPointingAngle->SetValues(fM->fMinCosPointingAngle, fM->fMaxCosPointingAngle);
  fValueInvMass->SetValues(0, fM->fDeltaInvariantMass);
}

/******************************************************************************/

// Implements callback/slot methods

//______________________________________________________________________________
// void AliEveV0ListEditor::DoXYZZ()
// {
//    // Slot for XYZZ.
//
//    fM->SetXYZZ(fXYZZ->GetValue());
//    Update();
// }



void AliEveHFListEditor::DoMinMaxPt()
{
  fM->FilterByPt(fMinMaxPt->GetMin(), fMinMaxPt->GetMax());
}

void AliEveHFListEditor::DoMinMaxCosPointingAngle()
{
  fM->FilterByCosPointingAngle(fMinMaxCosPointingAngle->GetMin(), fMinMaxCosPointingAngle->GetMax());
}

void AliEveHFListEditor::DoMinMaxInvMass()
{
  fM->FilterByInvariantMass(0, fValueInvMass->GetMax());
}
 AliEveHFListEditor.cxx:1
 AliEveHFListEditor.cxx:2
 AliEveHFListEditor.cxx:3
 AliEveHFListEditor.cxx:4
 AliEveHFListEditor.cxx:5
 AliEveHFListEditor.cxx:6
 AliEveHFListEditor.cxx:7
 AliEveHFListEditor.cxx:8
 AliEveHFListEditor.cxx:9
 AliEveHFListEditor.cxx:10
 AliEveHFListEditor.cxx:11
 AliEveHFListEditor.cxx:12
 AliEveHFListEditor.cxx:13
 AliEveHFListEditor.cxx:14
 AliEveHFListEditor.cxx:15
 AliEveHFListEditor.cxx:16
 AliEveHFListEditor.cxx:17
 AliEveHFListEditor.cxx:18
 AliEveHFListEditor.cxx:19
 AliEveHFListEditor.cxx:20
 AliEveHFListEditor.cxx:21
 AliEveHFListEditor.cxx:22
 AliEveHFListEditor.cxx:23
 AliEveHFListEditor.cxx:24
 AliEveHFListEditor.cxx:25
 AliEveHFListEditor.cxx:26
 AliEveHFListEditor.cxx:27
 AliEveHFListEditor.cxx:28
 AliEveHFListEditor.cxx:29
 AliEveHFListEditor.cxx:30
 AliEveHFListEditor.cxx:31
 AliEveHFListEditor.cxx:32
 AliEveHFListEditor.cxx:33
 AliEveHFListEditor.cxx:34
 AliEveHFListEditor.cxx:35
 AliEveHFListEditor.cxx:36
 AliEveHFListEditor.cxx:37
 AliEveHFListEditor.cxx:38
 AliEveHFListEditor.cxx:39
 AliEveHFListEditor.cxx:40
 AliEveHFListEditor.cxx:41
 AliEveHFListEditor.cxx:42
 AliEveHFListEditor.cxx:43
 AliEveHFListEditor.cxx:44
 AliEveHFListEditor.cxx:45
 AliEveHFListEditor.cxx:46
 AliEveHFListEditor.cxx:47
 AliEveHFListEditor.cxx:48
 AliEveHFListEditor.cxx:49
 AliEveHFListEditor.cxx:50
 AliEveHFListEditor.cxx:51
 AliEveHFListEditor.cxx:52
 AliEveHFListEditor.cxx:53
 AliEveHFListEditor.cxx:54
 AliEveHFListEditor.cxx:55
 AliEveHFListEditor.cxx:56
 AliEveHFListEditor.cxx:57
 AliEveHFListEditor.cxx:58
 AliEveHFListEditor.cxx:59
 AliEveHFListEditor.cxx:60
 AliEveHFListEditor.cxx:61
 AliEveHFListEditor.cxx:62
 AliEveHFListEditor.cxx:63
 AliEveHFListEditor.cxx:64
 AliEveHFListEditor.cxx:65
 AliEveHFListEditor.cxx:66
 AliEveHFListEditor.cxx:67
 AliEveHFListEditor.cxx:68
 AliEveHFListEditor.cxx:69
 AliEveHFListEditor.cxx:70
 AliEveHFListEditor.cxx:71
 AliEveHFListEditor.cxx:72
 AliEveHFListEditor.cxx:73
 AliEveHFListEditor.cxx:74
 AliEveHFListEditor.cxx:75
 AliEveHFListEditor.cxx:76
 AliEveHFListEditor.cxx:77
 AliEveHFListEditor.cxx:78
 AliEveHFListEditor.cxx:79
 AliEveHFListEditor.cxx:80
 AliEveHFListEditor.cxx:81
 AliEveHFListEditor.cxx:82
 AliEveHFListEditor.cxx:83
 AliEveHFListEditor.cxx:84
 AliEveHFListEditor.cxx:85
 AliEveHFListEditor.cxx:86
 AliEveHFListEditor.cxx:87
 AliEveHFListEditor.cxx:88
 AliEveHFListEditor.cxx:89
 AliEveHFListEditor.cxx:90
 AliEveHFListEditor.cxx:91
 AliEveHFListEditor.cxx:92
 AliEveHFListEditor.cxx:93
 AliEveHFListEditor.cxx:94
 AliEveHFListEditor.cxx:95
 AliEveHFListEditor.cxx:96
 AliEveHFListEditor.cxx:97
 AliEveHFListEditor.cxx:98
 AliEveHFListEditor.cxx:99
 AliEveHFListEditor.cxx:100
 AliEveHFListEditor.cxx:101
 AliEveHFListEditor.cxx:102
 AliEveHFListEditor.cxx:103
 AliEveHFListEditor.cxx:104
 AliEveHFListEditor.cxx:105
 AliEveHFListEditor.cxx:106
 AliEveHFListEditor.cxx:107
 AliEveHFListEditor.cxx:108
 AliEveHFListEditor.cxx:109
 AliEveHFListEditor.cxx:110
 AliEveHFListEditor.cxx:111
 AliEveHFListEditor.cxx:112
 AliEveHFListEditor.cxx:113
 AliEveHFListEditor.cxx:114
 AliEveHFListEditor.cxx:115
 AliEveHFListEditor.cxx:116
 AliEveHFListEditor.cxx:117
 AliEveHFListEditor.cxx:118
 AliEveHFListEditor.cxx:119
 AliEveHFListEditor.cxx:120
 AliEveHFListEditor.cxx:121
 AliEveHFListEditor.cxx:122
 AliEveHFListEditor.cxx:123
 AliEveHFListEditor.cxx:124
 AliEveHFListEditor.cxx:125
 AliEveHFListEditor.cxx:126
 AliEveHFListEditor.cxx:127
 AliEveHFListEditor.cxx:128
 AliEveHFListEditor.cxx:129
 AliEveHFListEditor.cxx:130
 AliEveHFListEditor.cxx:131