#include "AliEveV0ListEditor.h"
#include "AliEveV0.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(AliEveV0ListEditor)
AliEveV0ListEditor::AliEveV0ListEditor(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),
fMinMaxDaughterDCA(0),
fMinMaxPt(0),
fNegativeSpecies(0),
fPositiveSpecies(0),
fNegativeCheckMaxPidProbability(0),
fPositiveCheckMaxPidProbability(0),
fNegativeLevelPidProbability(0),
fPositiveLevelPidProbability(0),
fMinMaxInvariantMass(0)
{
MakeTitle("AliEveV0List");
fMinMaxRCut = new TEveGDoubleValuator(this,"Radius:", 130, 0);
fMinMaxRCut->SetNELength(5);
fMinMaxRCut->SetLabelWidth(74);
fMinMaxRCut->Build();
fMinMaxRCut->GetSlider()->SetWidth(200);
fMinMaxRCut->SetLimits(0, 100, TGNumberFormat::kNESRealOne);
fMinMaxRCut->Connect("ValueSet()", "AliEveV0ListEditor", this, "DoMinMaxRCut()");
AddFrame(fMinMaxRCut, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
fMinMaxDaughterDCA = new TEveGDoubleValuator(this,"DCA:", 130, 0);
fMinMaxDaughterDCA->SetNELength(5);
fMinMaxDaughterDCA->SetLabelWidth(74);
fMinMaxDaughterDCA->Build();
fMinMaxDaughterDCA->GetSlider()->SetWidth(200);
fMinMaxDaughterDCA->SetLimits(0, 1, TGNumberFormat::kNESRealTwo);
fMinMaxDaughterDCA->Connect("ValueSet()", "AliEveV0ListEditor", this, "DoMinMaxDaughterDCA()");
AddFrame(fMinMaxDaughterDCA, 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()", "AliEveV0ListEditor", this, "DoMinMaxPt()");
AddFrame(fMinMaxPt, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
TGHorizontalFrame* fNegFrame = new TGHorizontalFrame(this);
TGLabel* labNeg = new TGLabel(fNegFrame, "Neg:");
fNegFrame->AddFrame(labNeg, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 1, 1, 1));
fNegativeSpecies = new TGComboBox(fNegFrame);
fNegativeSpecies->AddEntry("e", 11);
fNegativeSpecies->AddEntry("mu", 13);
fNegativeSpecies->AddEntry("pi", 211);
fNegativeSpecies->AddEntry("K", 321);
fNegativeSpecies->AddEntry("p", 2212);
TGListBox* lbNeg = fNegativeSpecies->GetListBox();
lbNeg->Resize(lbNeg->GetWidth(), 2*18);
fNegativeSpecies->Resize(45, 20);
fNegativeSpecies->Connect("Selected(Int_t)", "AliEveV0ListEditor", this, "DoSelectNegPid(Int_t)");
fNegFrame->AddFrame(fNegativeSpecies, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
AddFrame(fNegFrame);
fNegativeCheckMaxPidProbability = new TGCheckButton(fNegFrame, "Check");
fNegFrame->AddFrame(fNegativeCheckMaxPidProbability, new TGLayoutHints(kLHintsLeft, 0, 2, 1, 1));
fNegativeCheckMaxPidProbability->Connect("Toggled(Bool_t)", "AliEveV0ListEditor", this, "DoCheckNegPid()");
fNegativeLevelPidProbability = new TGNumberEntry(fNegFrame, 0.5, 3, -1, TGNumberFormat::kNESRealTwo, TGNumberFormat::kNEANonNegative,TGNumberFormat::kNELLimitMinMax, 0, 1);
fNegativeLevelPidProbability->Resize(50,20);
fNegativeLevelPidProbability->Connect("ValueSet(Long_t)", "AliEveV0ListEditor", this, "DoSelectNegProb()");
fNegFrame->AddFrame(fNegativeLevelPidProbability, new TGLayoutHints(kLHintsLeft|kLHintsExpandX, 1, 1, 1, 1));
TGHorizontalFrame* fPosFrame = new TGHorizontalFrame(this);
TGLabel* labPos = new TGLabel(fPosFrame, "Pos:");
fPosFrame->AddFrame(labPos, new TGLayoutHints(kLHintsLeft|kLHintsBottom, 1, 1, 1, 1));
fPositiveSpecies = new TGComboBox(fPosFrame);
fPositiveSpecies->AddEntry("e", 11);
fPositiveSpecies->AddEntry("mu", 13);
fPositiveSpecies->AddEntry("pi", 211);
fPositiveSpecies->AddEntry("K", 321);
fPositiveSpecies->AddEntry("p", 2212);
TGListBox* lbPos = fPositiveSpecies->GetListBox();
lbPos->Resize(lbPos->GetWidth(), 2*18);
fPositiveSpecies->Resize(45, 20);
fPositiveSpecies->Connect("Selected(Int_t)", "AliEveV0ListEditor", this, "DoSelectPosPid(Int_t)");
fPosFrame->AddFrame(fPositiveSpecies, new TGLayoutHints(kLHintsTop, 3, 1, 1, 1));
AddFrame(fPosFrame);
fPositiveCheckMaxPidProbability = new TGCheckButton(fPosFrame, "Check");
fPosFrame->AddFrame(fPositiveCheckMaxPidProbability, new TGLayoutHints(kLHintsLeft, 0, 2, 1, 1));
fPositiveCheckMaxPidProbability->Connect("Toggled(Bool_t)", "AliEveV0ListEditor", this, "DoCheckPosPid()");
fPositiveLevelPidProbability = new TGNumberEntry(fPosFrame, 0.5, 3, -1, TGNumberFormat::kNESRealTwo, TGNumberFormat::kNEANonNegative,TGNumberFormat::kNELLimitMinMax, 0, 1);
fPositiveLevelPidProbability->Resize(50,20);
fPositiveLevelPidProbability->Connect("ValueSet(Long_t)", "AliEveV0ListEditor", this, "DoSelectPosProb()");
fPosFrame->AddFrame(fPositiveLevelPidProbability, new TGLayoutHints(kLHintsLeft|kLHintsExpandX, 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.2, TGNumberFormat::kNESRealThree);
fMinMaxInvariantMass->Connect("ValueSet()", "AliEveV0ListEditor", this, "DoMinMaxInvariantMass()");
AddFrame(fMinMaxInvariantMass, new TGLayoutHints(kLHintsTop, 1, 1, 1, 1));
}
void AliEveV0ListEditor::SetModel(TObject* obj)
{
fM = static_cast<AliEveV0List*>(obj);
fMinMaxRCut->SetValues(fM->fMinRCut, fM->fMaxRCut);
fMinMaxDaughterDCA->SetValues(fM->fMinDaughterDCA, fM->fMaxDaughterDCA);
fMinMaxPt->SetValues(fM->fMinPt, fM->fMaxPt);
fMinMaxInvariantMass->SetValues(fM->fMinInvariantMass, fM->fMaxInvariantMass);
}
void AliEveV0ListEditor::DoMinMaxRCut()
{
fM->FilterByRadius(fMinMaxRCut->GetMin(), fMinMaxRCut->GetMax());
}
void AliEveV0ListEditor::DoMinMaxDaughterDCA()
{
fM->FilterByDaughterDCA(fMinMaxDaughterDCA->GetMin(), fMinMaxDaughterDCA->GetMax());
}
void AliEveV0ListEditor::DoMinMaxPt()
{
fM->FilterByPt(fMinMaxPt->GetMin(), fMinMaxPt->GetMax());
}
void AliEveV0ListEditor::DoSelectNegPid(Int_t rNegPid)
{
fM->SetNegCheckedPid(rNegPid);
Update();
}
void AliEveV0ListEditor::DoCheckNegPid()
{
Int_t lNegPid = fM->GetNegCheckedPid();
Float_t lNegProb = fM->GetNegCheckedProb();
if (lNegPid) {
fM->FilterByCheckedPidMinProb(fNegativeCheckMaxPidProbability->IsOn(),0,lNegPid,lNegProb);
printf("Selection for negative daughter pid %d prob %.2f \n",lNegPid,lNegProb);
Update();
}
}
void AliEveV0ListEditor::DoSelectNegProb()
{
Float_t rMinNegProb = (Float_t)fNegativeLevelPidProbability->GetNumber();
fM->SetNegCheckedProb(rMinNegProb);
Update();
}
void AliEveV0ListEditor::DoSelectPosPid(Int_t rPosPid)
{
fM->SetPosCheckedPid(rPosPid);
Update();
}
void AliEveV0ListEditor::DoCheckPosPid()
{
Int_t lPosPid = fM->GetPosCheckedPid();
Float_t lPosProb = fM->GetPosCheckedProb();
if (lPosPid) {
fM->FilterByCheckedPidMinProb(fPositiveCheckMaxPidProbability->IsOn(),1,lPosPid,lPosProb);
printf("Selection for positive daughter pid %d prob %.2f \n",lPosPid,lPosProb);
Update();
}
}
void AliEveV0ListEditor::DoSelectPosProb()
{
Float_t rMinPosProb = (Float_t)fPositiveLevelPidProbability->GetNumber();
fM->SetPosCheckedProb(rMinPosProb);
Update();
}
void AliEveV0ListEditor::DoMinMaxInvariantMass()
{
Int_t lNegPid = fM->GetNegCheckedPid();
Int_t lPosPid = fM->GetPosCheckedPid();
if( lNegPid && lPosPid)
fM->FilterByInvariantMass(fMinMaxInvariantMass->GetMin(), fMinMaxInvariantMass->GetMax(),lNegPid,lPosPid);
else
fM->FilterByInvariantMass(fMinMaxInvariantMass->GetMin(), fMinMaxInvariantMass->GetMax(),211,-211);
}
AliEveV0ListEditor.cxx:10 AliEveV0ListEditor.cxx:11 AliEveV0ListEditor.cxx:12 AliEveV0ListEditor.cxx:13 AliEveV0ListEditor.cxx:14 AliEveV0ListEditor.cxx:15 AliEveV0ListEditor.cxx:16 AliEveV0ListEditor.cxx:17 AliEveV0ListEditor.cxx:18 AliEveV0ListEditor.cxx:19 AliEveV0ListEditor.cxx:20 AliEveV0ListEditor.cxx:21 AliEveV0ListEditor.cxx:22 AliEveV0ListEditor.cxx:23 AliEveV0ListEditor.cxx:24 AliEveV0ListEditor.cxx:25 AliEveV0ListEditor.cxx:26 AliEveV0ListEditor.cxx:27 AliEveV0ListEditor.cxx:28 AliEveV0ListEditor.cxx:29 AliEveV0ListEditor.cxx:30 AliEveV0ListEditor.cxx:31 AliEveV0ListEditor.cxx:32 AliEveV0ListEditor.cxx:33 AliEveV0ListEditor.cxx:34 AliEveV0ListEditor.cxx:35 AliEveV0ListEditor.cxx:36 AliEveV0ListEditor.cxx:37 AliEveV0ListEditor.cxx:38 AliEveV0ListEditor.cxx:39 AliEveV0ListEditor.cxx:40 AliEveV0ListEditor.cxx:41 AliEveV0ListEditor.cxx:42 AliEveV0ListEditor.cxx:43 AliEveV0ListEditor.cxx:44 AliEveV0ListEditor.cxx:45 AliEveV0ListEditor.cxx:46 AliEveV0ListEditor.cxx:47 AliEveV0ListEditor.cxx:48 AliEveV0ListEditor.cxx:49 AliEveV0ListEditor.cxx:50 AliEveV0ListEditor.cxx:51 AliEveV0ListEditor.cxx:52 AliEveV0ListEditor.cxx:53 AliEveV0ListEditor.cxx:54 AliEveV0ListEditor.cxx:55 AliEveV0ListEditor.cxx:56 AliEveV0ListEditor.cxx:57 AliEveV0ListEditor.cxx:58 AliEveV0ListEditor.cxx:59 AliEveV0ListEditor.cxx:60 AliEveV0ListEditor.cxx:61 AliEveV0ListEditor.cxx:62 AliEveV0ListEditor.cxx:63 AliEveV0ListEditor.cxx:64 AliEveV0ListEditor.cxx:65 AliEveV0ListEditor.cxx:66 AliEveV0ListEditor.cxx:67 AliEveV0ListEditor.cxx:68 AliEveV0ListEditor.cxx:69 AliEveV0ListEditor.cxx:70 AliEveV0ListEditor.cxx:71 AliEveV0ListEditor.cxx:72 AliEveV0ListEditor.cxx:73 AliEveV0ListEditor.cxx:74 AliEveV0ListEditor.cxx:75 AliEveV0ListEditor.cxx:76 AliEveV0ListEditor.cxx:77 AliEveV0ListEditor.cxx:78 AliEveV0ListEditor.cxx:79 AliEveV0ListEditor.cxx:80 AliEveV0ListEditor.cxx:81 AliEveV0ListEditor.cxx:82 AliEveV0ListEditor.cxx:83 AliEveV0ListEditor.cxx:84 AliEveV0ListEditor.cxx:85 AliEveV0ListEditor.cxx:86 AliEveV0ListEditor.cxx:87 AliEveV0ListEditor.cxx:88 AliEveV0ListEditor.cxx:89 AliEveV0ListEditor.cxx:90 AliEveV0ListEditor.cxx:91 AliEveV0ListEditor.cxx:92 AliEveV0ListEditor.cxx:93 AliEveV0ListEditor.cxx:94 AliEveV0ListEditor.cxx:95 AliEveV0ListEditor.cxx:96 AliEveV0ListEditor.cxx:97 AliEveV0ListEditor.cxx:98 AliEveV0ListEditor.cxx:99 AliEveV0ListEditor.cxx:100 AliEveV0ListEditor.cxx:101 AliEveV0ListEditor.cxx:102 AliEveV0ListEditor.cxx:103 AliEveV0ListEditor.cxx:104 AliEveV0ListEditor.cxx:105 AliEveV0ListEditor.cxx:106 AliEveV0ListEditor.cxx:107 AliEveV0ListEditor.cxx:108 AliEveV0ListEditor.cxx:109 AliEveV0ListEditor.cxx:110 AliEveV0ListEditor.cxx:111 AliEveV0ListEditor.cxx:112 AliEveV0ListEditor.cxx:113 AliEveV0ListEditor.cxx:114 AliEveV0ListEditor.cxx:115 AliEveV0ListEditor.cxx:116 AliEveV0ListEditor.cxx:117 AliEveV0ListEditor.cxx:118 AliEveV0ListEditor.cxx:119 AliEveV0ListEditor.cxx:120 AliEveV0ListEditor.cxx:121 AliEveV0ListEditor.cxx:122 AliEveV0ListEditor.cxx:123 AliEveV0ListEditor.cxx:124 AliEveV0ListEditor.cxx:125 AliEveV0ListEditor.cxx:126 AliEveV0ListEditor.cxx:127 AliEveV0ListEditor.cxx:128 AliEveV0ListEditor.cxx:129 AliEveV0ListEditor.cxx:130 AliEveV0ListEditor.cxx:131 AliEveV0ListEditor.cxx:132 AliEveV0ListEditor.cxx:133 AliEveV0ListEditor.cxx:134 AliEveV0ListEditor.cxx:135 AliEveV0ListEditor.cxx:136 AliEveV0ListEditor.cxx:137 AliEveV0ListEditor.cxx:138 AliEveV0ListEditor.cxx:139 AliEveV0ListEditor.cxx:140 AliEveV0ListEditor.cxx:141 AliEveV0ListEditor.cxx:142 AliEveV0ListEditor.cxx:143 AliEveV0ListEditor.cxx:144 AliEveV0ListEditor.cxx:145 AliEveV0ListEditor.cxx:146 AliEveV0ListEditor.cxx:147 AliEveV0ListEditor.cxx:148 AliEveV0ListEditor.cxx:149 AliEveV0ListEditor.cxx:150 AliEveV0ListEditor.cxx:151 AliEveV0ListEditor.cxx:152 AliEveV0ListEditor.cxx:153 AliEveV0ListEditor.cxx:154 AliEveV0ListEditor.cxx:155 AliEveV0ListEditor.cxx:156 AliEveV0ListEditor.cxx:157 AliEveV0ListEditor.cxx:158 AliEveV0ListEditor.cxx:159 AliEveV0ListEditor.cxx:160 AliEveV0ListEditor.cxx:161 AliEveV0ListEditor.cxx:162 AliEveV0ListEditor.cxx:163 AliEveV0ListEditor.cxx:164 AliEveV0ListEditor.cxx:165 AliEveV0ListEditor.cxx:166 AliEveV0ListEditor.cxx:167 AliEveV0ListEditor.cxx:168 AliEveV0ListEditor.cxx:169 AliEveV0ListEditor.cxx:170 AliEveV0ListEditor.cxx:171 AliEveV0ListEditor.cxx:172 AliEveV0ListEditor.cxx:173 AliEveV0ListEditor.cxx:174 AliEveV0ListEditor.cxx:175 AliEveV0ListEditor.cxx:176 AliEveV0ListEditor.cxx:177 AliEveV0ListEditor.cxx:178 AliEveV0ListEditor.cxx:179 AliEveV0ListEditor.cxx:180 AliEveV0ListEditor.cxx:181 AliEveV0ListEditor.cxx:182 AliEveV0ListEditor.cxx:183 AliEveV0ListEditor.cxx:184 AliEveV0ListEditor.cxx:185 AliEveV0ListEditor.cxx:186 AliEveV0ListEditor.cxx:187 AliEveV0ListEditor.cxx:188 AliEveV0ListEditor.cxx:189 AliEveV0ListEditor.cxx:190 AliEveV0ListEditor.cxx:191 AliEveV0ListEditor.cxx:192 AliEveV0ListEditor.cxx:193 AliEveV0ListEditor.cxx:194 AliEveV0ListEditor.cxx:195 AliEveV0ListEditor.cxx:196 AliEveV0ListEditor.cxx:197 AliEveV0ListEditor.cxx:198 AliEveV0ListEditor.cxx:199 AliEveV0ListEditor.cxx:200 AliEveV0ListEditor.cxx:201 AliEveV0ListEditor.cxx:202 AliEveV0ListEditor.cxx:203 AliEveV0ListEditor.cxx:204 AliEveV0ListEditor.cxx:205 AliEveV0ListEditor.cxx:206 AliEveV0ListEditor.cxx:207 AliEveV0ListEditor.cxx:208 AliEveV0ListEditor.cxx:209 AliEveV0ListEditor.cxx:210 AliEveV0ListEditor.cxx:211 AliEveV0ListEditor.cxx:212 AliEveV0ListEditor.cxx:213 AliEveV0ListEditor.cxx:214 AliEveV0ListEditor.cxx:215 AliEveV0ListEditor.cxx:216 AliEveV0ListEditor.cxx:217 AliEveV0ListEditor.cxx:218 AliEveV0ListEditor.cxx:219 AliEveV0ListEditor.cxx:220 AliEveV0ListEditor.cxx:221 AliEveV0ListEditor.cxx:222 AliEveV0ListEditor.cxx:223 AliEveV0ListEditor.cxx:224 AliEveV0ListEditor.cxx:225 AliEveV0ListEditor.cxx:226 AliEveV0ListEditor.cxx:227 AliEveV0ListEditor.cxx:228 AliEveV0ListEditor.cxx:229 AliEveV0ListEditor.cxx:230 AliEveV0ListEditor.cxx:231 AliEveV0ListEditor.cxx:232 AliEveV0ListEditor.cxx:233 AliEveV0ListEditor.cxx:234 AliEveV0ListEditor.cxx:235 AliEveV0ListEditor.cxx:236 AliEveV0ListEditor.cxx:237 AliEveV0ListEditor.cxx:238 AliEveV0ListEditor.cxx:239 AliEveV0ListEditor.cxx:240 AliEveV0ListEditor.cxx:241 AliEveV0ListEditor.cxx:242 AliEveV0ListEditor.cxx:243 AliEveV0ListEditor.cxx:244 AliEveV0ListEditor.cxx:245 AliEveV0ListEditor.cxx:246 AliEveV0ListEditor.cxx:247