2 // Main author: Davide Caffarri 2009
4 /**************************************************************************
5 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
10 #include "AliEveHFListEditor.h"
13 #include "TEveGValuators.h"
15 #include "TVirtualPad.h"
18 // Cleanup these includes:
21 #include "TGNumberEntry.h"
22 #include "TGColorSelect.h"
23 #include "TGDoubleSlider.h"
24 #include "TGComboBox.h"
28 //______________________________________________________________________________
29 // GUI editor for AliEveHFList.
32 ClassImp(AliEveHFListEditor)
34 //______________________________________________________________________________
35 AliEveHFListEditor::AliEveHFListEditor(const TGWindow *p, Int_t width, Int_t height,
36 UInt_t options, Pixel_t back) :
37 TGedFrame(p, width, height, options | kVerticalFrame, back),
40 fMinMaxCosPointingAngle(0),
46 MakeTitle("AliEveHFList");
49 // fXYZZ = new TGSomeWidget(this, ...);
50 // AddFrame(fXYZZ, new TGLayoutHints(...));
51 // fXYZZ->Connect("SignalName()", "Reve::AliEveHFListEditor", this, "DoXYZZ()");
53 fMinMaxPt = new TEveGDoubleValuator(this,"pT:", 80, 0);
54 fMinMaxPt->SetNELength(5);
55 fMinMaxPt->SetLabelWidth(120);
57 fMinMaxPt->GetSlider()->SetWidth(200);
58 fMinMaxPt->SetLimits(0, 20, TGNumberFormat::kNESRealOne);
59 fMinMaxPt->Connect("ValueSet()", "AliEveHFListEditor", this, "DoMinMaxPt()");
60 AddFrame(fMinMaxPt, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
62 fMinMaxCosPointingAngle = new TEveGDoubleValuator(this,"Cos Pointing Angle:", 80, 0);
63 fMinMaxCosPointingAngle->SetNELength(5);
64 fMinMaxCosPointingAngle->SetLabelWidth(120);
65 fMinMaxCosPointingAngle->Build();
66 fMinMaxCosPointingAngle->GetSlider()->SetWidth(200);
67 fMinMaxCosPointingAngle->SetLimits(0, 1, TGNumberFormat::kNESRealOne);
68 fMinMaxCosPointingAngle->Connect("ValueSet()", "AliEveHFListEditor", this, "DoMinMaxCosPointingAngle()");
69 AddFrame(fMinMaxCosPointingAngle, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
72 fValueInvMass = new TEveGDoubleValuator(this, "Delta Invariant Mass:", 80, 0);
73 fValueInvMass->SetNELength(5);
74 fValueInvMass->SetLabelWidth(120);
75 fValueInvMass->Build();
76 fValueInvMass->GetSlider()->SetWidth(200);
77 fValueInvMass->SetLimits(0,1, TGNumberFormat::kNESRealTwo);
78 fValueInvMass->Connect("ValueSet()", "AliEveHFListEditor", this, "DoMinMaxInvMass()");
79 AddFrame(fValueInvMass, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
86 /******************************************************************************/
88 //______________________________________________________________________________
89 void AliEveHFListEditor::SetModel(TObject* obj)
93 fM = dynamic_cast<AliEveHFList*>(obj);
95 // Set values of widgets
96 // fXYZZ->SetValue(fM->GetXYZZ());
98 fMinMaxPt->SetValues(fM->fMinPt, fM->fMaxPt);
99 fMinMaxCosPointingAngle->SetValues(fM->fMinCosPointingAngle, fM->fMaxCosPointingAngle);
100 fValueInvMass->SetValues(0, fM->fDeltaInvariantMass);
103 /******************************************************************************/
105 // Implements callback/slot methods
107 //______________________________________________________________________________
108 // void AliEveV0ListEditor::DoXYZZ()
112 // fM->SetXYZZ(fXYZZ->GetValue());
118 void AliEveHFListEditor::DoMinMaxPt()
120 fM->FilterByPt(fMinMaxPt->GetMin(), fMinMaxPt->GetMax());
123 void AliEveHFListEditor::DoMinMaxCosPointingAngle()
125 fM->FilterByCosPointingAngle(fMinMaxCosPointingAngle->GetMin(), fMinMaxCosPointingAngle->GetMax());
128 void AliEveHFListEditor::DoMinMaxInvMass()
130 fM->FilterByInvariantMass(0, fValueInvMass->GetMax());