#include "AliEveKinkListEditor.h"
#include "AliEveKink.h"
#include "TEveGValuators.h"
#include "TVirtualPad.h"
#include "TColor.h"
#include "TGLabel.h"
#include "TGButton.h"
#include "TGNumberEntry.h"
#include "TGColorSelect.h"
#include "TGDoubleSlider.h"
#include "TGComboBox.h"
#include "TGLabel.h"
ClassImp(AliEveKinkListEditor)
AliEveKinkListEditor::AliEveKinkListEditor(const TGWindow *p, Int_t width, Int_t height,
UInt_t options, Pixel_t back) :
TGedFrame(p, width, height, options | kVerticalFrame, back),
fM(0),
fMinMaxRCut(0),
fMinMaxKinkAngleCut (0),
fMinMaxPt(0),
fMinMaxInvariantMass(0),
fDaughterSpecies(0),
fDaughterCheckMaxPidProbability(0),
fDaughterLevelPidProbability(0)
{
MakeTitle("AliEveKinkList");
fMinMaxRCut = new TEveGDoubleValuator(this,"Radius:", 130, 0);
fMinMaxRCut->SetNELength(5);
fMinMaxRCut->SetLabelWidth(74);
fMinMaxRCut->Build();
fMinMaxRCut->GetSlider()->SetWidth(200);
fMinMaxRCut->SetLimits(0, 250, TGNumberFormat::kNESRealOne);
fMinMaxRCut->Connect("ValueSet()", "AliEveKinkListEditor", this, "DoMinMaxRCut()");
AddFrame(fMinMaxRCut, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
fMinMaxKinkAngleCut = new TEveGDoubleValuator(this,"Kink Angle:", 130, 0);
fMinMaxKinkAngleCut->SetNELength(5);
fMinMaxKinkAngleCut->SetLabelWidth(74);
fMinMaxKinkAngleCut->Build();
fMinMaxKinkAngleCut->GetSlider()->SetWidth(200);
fMinMaxKinkAngleCut->SetLimits(0, 280, TGNumberFormat::kNESRealOne);
fMinMaxKinkAngleCut->Connect("ValueSet()", "AliEveKinkListEditor", this, "DoMinMaxKinkAngleCut()");
AddFrame(fMinMaxKinkAngleCut, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
fMinMaxPt = new TEveGDoubleValuator(this,"pT:", 80, 0);
fMinMaxPt->SetNELength(5);
fMinMaxPt->SetLabelWidth(74);
fMinMaxPt->Build();
fMinMaxPt->GetSlider()->SetWidth(200);
fMinMaxPt->SetLimits(0, 20, TGNumberFormat::kNESRealOne);
fMinMaxPt->Connect("ValueSet()", "AliEveKinkListEditor", this, "DoMinMaxPt()");
AddFrame(fMinMaxPt, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
fMinMaxInvariantMass = new TEveGDoubleValuator(this,"Inv. Mass:", 80, 0);
fMinMaxInvariantMass->SetNELength(5);
fMinMaxInvariantMass->SetLabelWidth(74);
fMinMaxInvariantMass->Build();
fMinMaxInvariantMass->GetSlider()->SetWidth(200);
fMinMaxInvariantMass->SetLimits(0, 1.0, TGNumberFormat::kNESRealThree);
fMinMaxInvariantMass->Connect("ValueSet()", "AliEveKinkListEditor", this, "DoMinMaxInvariantMass()");
AddFrame(fMinMaxInvariantMass, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
TGHorizontalFrame* fDaugFrame = new TGHorizontalFrame(this);
TGLabel* labDaug = new TGLabel(fDaugFrame, "Daug:");
fDaugFrame->AddFrame(labDaug, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 1, 1, 1));
fDaughterSpecies = new TGComboBox(fDaugFrame);
fDaughterSpecies->AddEntry("e", 11);
fDaughterSpecies->AddEntry("mu", 13);
fDaughterSpecies->AddEntry("pi", 211);
TGListBox* lbaug = fDaughterSpecies->GetListBox();
lbaug->Resize(lbaug->GetWidth(), 2*18);
fDaughterSpecies->Resize(45, 20);
fDaughterSpecies->Connect("Selected(Int_t)", "AliEveKinkListEditor", this, "DoSelectDaugPid(Int_t)");
fDaugFrame->AddFrame(fDaughterSpecies, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
AddFrame(fDaugFrame);
fDaughterCheckMaxPidProbability = new TGCheckButton(fDaugFrame, "Check");
fDaugFrame->AddFrame(fDaughterCheckMaxPidProbability, new TGLayoutHints(kLHintsLeft, 0, 2, 1, 1));
fDaughterCheckMaxPidProbability->Connect("Toggled(Bool_t)", "AliEveKinkListEditor", this, "DoCheckDaugPid()");
fDaughterLevelPidProbability = new TGNumberEntry(fDaugFrame, 0.5, 3, -1, TGNumberFormat::kNESRealTwo, TGNumberFormat::kNEANonNegative,TGNumberFormat::kNELLimitMinMax, 0, 1);
fDaughterLevelPidProbability->Resize(50,20);
fDaughterLevelPidProbability->Connect("ValueSet(Long_t)", "AliEveKinkListEditor", this, "DoSelectDaugProb()");
fDaugFrame->AddFrame(fDaughterLevelPidProbability, new TGLayoutHints(kLHintsLeft|kLHintsExpandX, 1, 1, 1, 1));
}
void AliEveKinkListEditor::SetModel(TObject* obj)
{
fM = static_cast<AliEveKinkList*>(obj);
fMinMaxRCut->SetValues(fM->fMinRCut, fM->fMaxRCut);
fMinMaxKinkAngleCut->SetValues(fM->fMinKinkAngle, fM->fMaxKinkAngle);
fMinMaxPt->SetValues(fM->fMinPt, fM->fMaxPt);
fMinMaxInvariantMass->SetValues(fM->fMinInvariantMass, fM->fMaxInvariantMass);
}
void AliEveKinkListEditor::DoMinMaxRCut()
{
fM->FilterByRadius(fMinMaxRCut->GetMin(), fMinMaxRCut->GetMax());
}
void AliEveKinkListEditor::DoMinMaxKinkAngleCut()
{
fM->FilterByKinkAngle(fMinMaxRCut->GetMin(), fMinMaxRCut->GetMax());
}
void AliEveKinkListEditor::DoMinMaxPt()
{
fM->FilterByPt(fMinMaxPt->GetMin(), fMinMaxPt->GetMax());
}
void AliEveKinkListEditor::DoMinMaxInvariantMass()
{
fM->FilterByInvariantMass(fMinMaxInvariantMass->GetMin(), fMinMaxInvariantMass->GetMax(),13);
}
void AliEveKinkListEditor::DoSelectDaugPid(Int_t rDaugPid)
{
fM->SetDaugCheckedPid(rDaugPid);
Update();
}
void AliEveKinkListEditor::DoCheckDaugPid()
{
Int_t lDaugPid = fM->GetDaugCheckedPid();
Float_t lDaugProb = fM->GetDaugCheckedProb();
if (lDaugPid) {
fM->FilterByCheckedPidMinProb(fDaughterCheckMaxPidProbability->IsOn(),lDaugPid,lDaugProb);
printf("Selection for daughter pid %d prob %.2f \n",lDaugPid,lDaugProb);
Update();
}
}
void AliEveKinkListEditor::DoSelectDaugProb()
{
Float_t rMinDaugProb = (Float_t)fDaughterLevelPidProbability->GetNumber();
fM->SetDaugCheckedProb(rMinDaugProb);
Update();
}
AliEveKinkListEditor.cxx:1 AliEveKinkListEditor.cxx:2 AliEveKinkListEditor.cxx:3 AliEveKinkListEditor.cxx:4 AliEveKinkListEditor.cxx:5 AliEveKinkListEditor.cxx:6 AliEveKinkListEditor.cxx:7 AliEveKinkListEditor.cxx:8 AliEveKinkListEditor.cxx:9 AliEveKinkListEditor.cxx:10 AliEveKinkListEditor.cxx:11 AliEveKinkListEditor.cxx:12 AliEveKinkListEditor.cxx:13 AliEveKinkListEditor.cxx:14 AliEveKinkListEditor.cxx:15 AliEveKinkListEditor.cxx:16 AliEveKinkListEditor.cxx:17 AliEveKinkListEditor.cxx:18 AliEveKinkListEditor.cxx:19 AliEveKinkListEditor.cxx:20 AliEveKinkListEditor.cxx:21 AliEveKinkListEditor.cxx:22 AliEveKinkListEditor.cxx:23 AliEveKinkListEditor.cxx:24 AliEveKinkListEditor.cxx:25 AliEveKinkListEditor.cxx:26 AliEveKinkListEditor.cxx:27 AliEveKinkListEditor.cxx:28 AliEveKinkListEditor.cxx:29 AliEveKinkListEditor.cxx:30 AliEveKinkListEditor.cxx:31 AliEveKinkListEditor.cxx:32 AliEveKinkListEditor.cxx:33 AliEveKinkListEditor.cxx:34 AliEveKinkListEditor.cxx:35 AliEveKinkListEditor.cxx:36 AliEveKinkListEditor.cxx:37 AliEveKinkListEditor.cxx:38 AliEveKinkListEditor.cxx:39 AliEveKinkListEditor.cxx:40 AliEveKinkListEditor.cxx:41 AliEveKinkListEditor.cxx:42 AliEveKinkListEditor.cxx:43 AliEveKinkListEditor.cxx:44 AliEveKinkListEditor.cxx:45 AliEveKinkListEditor.cxx:46 AliEveKinkListEditor.cxx:47 AliEveKinkListEditor.cxx:48 AliEveKinkListEditor.cxx:49 AliEveKinkListEditor.cxx:50 AliEveKinkListEditor.cxx:51 AliEveKinkListEditor.cxx:52 AliEveKinkListEditor.cxx:53 AliEveKinkListEditor.cxx:54 AliEveKinkListEditor.cxx:55 AliEveKinkListEditor.cxx:56 AliEveKinkListEditor.cxx:57 AliEveKinkListEditor.cxx:58 AliEveKinkListEditor.cxx:59 AliEveKinkListEditor.cxx:60 AliEveKinkListEditor.cxx:61 AliEveKinkListEditor.cxx:62 AliEveKinkListEditor.cxx:63 AliEveKinkListEditor.cxx:64 AliEveKinkListEditor.cxx:65 AliEveKinkListEditor.cxx:66 AliEveKinkListEditor.cxx:67 AliEveKinkListEditor.cxx:68 AliEveKinkListEditor.cxx:69 AliEveKinkListEditor.cxx:70 AliEveKinkListEditor.cxx:71 AliEveKinkListEditor.cxx:72 AliEveKinkListEditor.cxx:73 AliEveKinkListEditor.cxx:74 AliEveKinkListEditor.cxx:75 AliEveKinkListEditor.cxx:76 AliEveKinkListEditor.cxx:77 AliEveKinkListEditor.cxx:78 AliEveKinkListEditor.cxx:79 AliEveKinkListEditor.cxx:80 AliEveKinkListEditor.cxx:81 AliEveKinkListEditor.cxx:82 AliEveKinkListEditor.cxx:83 AliEveKinkListEditor.cxx:84 AliEveKinkListEditor.cxx:85 AliEveKinkListEditor.cxx:86 AliEveKinkListEditor.cxx:87 AliEveKinkListEditor.cxx:88 AliEveKinkListEditor.cxx:89 AliEveKinkListEditor.cxx:90 AliEveKinkListEditor.cxx:91 AliEveKinkListEditor.cxx:92 AliEveKinkListEditor.cxx:93 AliEveKinkListEditor.cxx:94 AliEveKinkListEditor.cxx:95 AliEveKinkListEditor.cxx:96 AliEveKinkListEditor.cxx:97 AliEveKinkListEditor.cxx:98 AliEveKinkListEditor.cxx:99 AliEveKinkListEditor.cxx:100 AliEveKinkListEditor.cxx:101 AliEveKinkListEditor.cxx:102 AliEveKinkListEditor.cxx:103 AliEveKinkListEditor.cxx:104 AliEveKinkListEditor.cxx:105 AliEveKinkListEditor.cxx:106 AliEveKinkListEditor.cxx:107 AliEveKinkListEditor.cxx:108 AliEveKinkListEditor.cxx:109 AliEveKinkListEditor.cxx:110 AliEveKinkListEditor.cxx:111 AliEveKinkListEditor.cxx:112 AliEveKinkListEditor.cxx:113 AliEveKinkListEditor.cxx:114 AliEveKinkListEditor.cxx:115 AliEveKinkListEditor.cxx:116 AliEveKinkListEditor.cxx:117 AliEveKinkListEditor.cxx:118 AliEveKinkListEditor.cxx:119 AliEveKinkListEditor.cxx:120 AliEveKinkListEditor.cxx:121 AliEveKinkListEditor.cxx:122 AliEveKinkListEditor.cxx:123 AliEveKinkListEditor.cxx:124 AliEveKinkListEditor.cxx:125 AliEveKinkListEditor.cxx:126 AliEveKinkListEditor.cxx:127 AliEveKinkListEditor.cxx:128 AliEveKinkListEditor.cxx:129 AliEveKinkListEditor.cxx:130 AliEveKinkListEditor.cxx:131 AliEveKinkListEditor.cxx:132 AliEveKinkListEditor.cxx:133 AliEveKinkListEditor.cxx:134 AliEveKinkListEditor.cxx:135 AliEveKinkListEditor.cxx:136 AliEveKinkListEditor.cxx:137 AliEveKinkListEditor.cxx:138 AliEveKinkListEditor.cxx:139 AliEveKinkListEditor.cxx:140 AliEveKinkListEditor.cxx:141 AliEveKinkListEditor.cxx:142 AliEveKinkListEditor.cxx:143 AliEveKinkListEditor.cxx:144 AliEveKinkListEditor.cxx:145 AliEveKinkListEditor.cxx:146 AliEveKinkListEditor.cxx:147 AliEveKinkListEditor.cxx:148 AliEveKinkListEditor.cxx:149 AliEveKinkListEditor.cxx:150 AliEveKinkListEditor.cxx:151 AliEveKinkListEditor.cxx:152 AliEveKinkListEditor.cxx:153 AliEveKinkListEditor.cxx:154 AliEveKinkListEditor.cxx:155 AliEveKinkListEditor.cxx:156 AliEveKinkListEditor.cxx:157 AliEveKinkListEditor.cxx:158 AliEveKinkListEditor.cxx:159 AliEveKinkListEditor.cxx:160 AliEveKinkListEditor.cxx:161 AliEveKinkListEditor.cxx:162 AliEveKinkListEditor.cxx:163 AliEveKinkListEditor.cxx:164 AliEveKinkListEditor.cxx:165 AliEveKinkListEditor.cxx:166 AliEveKinkListEditor.cxx:167 AliEveKinkListEditor.cxx:168 AliEveKinkListEditor.cxx:169 AliEveKinkListEditor.cxx:170 AliEveKinkListEditor.cxx:171 AliEveKinkListEditor.cxx:172 AliEveKinkListEditor.cxx:173 AliEveKinkListEditor.cxx:174 AliEveKinkListEditor.cxx:175 AliEveKinkListEditor.cxx:176