37 ClassImp(TEveTrackEditor);
42 TEveTrackEditor::TEveTrackEditor(
const TGWindow *p, Int_t width, Int_t height,
43 UInt_t options, Pixel_t back) :
44 TGedFrame(p, width, height, options | kVerticalFrame, back),
48 MakeTitle(
"TEveTrack");
50 TGHorizontalFrame* f =
new TGHorizontalFrame(
this);
52 fRSEditor =
new TGTextButton(f,
"Edit Propagator");
53 fRSEditor->Connect(
"Clicked()",
"TEveTrackEditor",
this,
"DoEditPropagator()");
54 f->AddFrame(fRSEditor,
new TGLayoutHints(kLHintsLeft, 2, 1, 4, 4));
56 AddFrame(f,
new TGLayoutHints(kLHintsTop, 0,0,2,1));
62 void TEveTrackEditor::SetModel(TObject* obj)
64 fM =
dynamic_cast<TEveTrack*
>(obj);
70 void TEveTrackEditor::DoEditPropagator()
72 fGedEditor->SetModel(fGedEditor->GetPad(), fM->GetPropagator(), kButton1Down);
80 ClassImp(TEveTrackListEditor);
85 TEveTrackListEditor::TEveTrackListEditor(
const TGWindow *p,
86 Int_t width, Int_t height,
87 UInt_t options, Pixel_t back) :
88 TGedFrame(p, width, height, options | kVerticalFrame, back),
96 TGHorizontalFrame* f =
new TGHorizontalFrame(
this);
98 fRnrPoints =
new TGCheckButton(f,
"Draw Marker");
99 f->AddFrame(fRnrPoints,
new TGLayoutHints(kLHintsLeft, 2,1,0,0));
100 fRnrPoints->Connect(
"Toggled(Bool_t)",
"TEveTrackListEditor",
this,
"DoRnrPoints()");
102 fRnrLine =
new TGCheckButton(f,
"Draw Line");
103 f->AddFrame(fRnrLine,
new TGLayoutHints(kLHintsLeft, 1,2,0,0));
104 fRnrLine->Connect(
"Toggled(Bool_t)",
"TEveTrackListEditor",
this,
"DoRnrLine()");
106 AddFrame(f,
new TGLayoutHints(kLHintsTop, 0,0,2,1));
112 fPtRange =
new TEveGDoubleValuator(
this,
"Pt rng:", 40, 0);
113 fPtRange->SetNELength(6);
114 fPtRange->SetLabelWidth(labelW);
116 fPtRange->GetSlider()->SetWidth(dbW);
117 fPtRange->SetLimits(0, 10, TGNumberFormat::kNESRealTwo);
118 fPtRange->Connect(
"ValueSet()",
119 "TEveTrackListEditor",
this,
"DoPtRange()");
120 AddFrame(fPtRange,
new TGLayoutHints(kLHintsTop, 1, 1, 4, 1));
122 fPRange =
new TEveGDoubleValuator(
this,
"P rng:", 40, 0);
123 fPRange->SetNELength(6);
124 fPRange->SetLabelWidth(labelW);
126 fPRange->GetSlider()->SetWidth(dbW);
127 fPRange->SetLimits(0, 100, TGNumberFormat::kNESRealTwo);
128 fPRange->Connect(
"ValueSet()",
129 "TEveTrackListEditor",
this,
"DoPRange()");
130 AddFrame(fPRange,
new TGLayoutHints(kLHintsTop, 1, 1, 4, 1));
133 MakeTitle(
"RenderStyle");
134 fRSSubEditor =
new TEveTrackPropagatorSubEditor(
this);
135 fRSSubEditor->Connect(
"Changed()",
"TEveTrackListEditor",
this,
"Update()");
136 AddFrame(fRSSubEditor,
new TGLayoutHints(kLHintsTop | kLHintsExpandX, 0,0,0,0));
143 void TEveTrackListEditor::CreateRefsTab()
145 fRefs = CreateEditorTabSubFrame(
"Refs");
147 TGCompositeFrame *title1 =
new TGCompositeFrame(fRefs, 145, 10,
152 title1->AddFrame(
new TGLabel(title1,
"PathMarks"),
153 new TGLayoutHints(kLHintsLeft, 1, 1, 0, 0));
154 title1->AddFrame(
new TGHorizontal3DLine(title1),
155 new TGLayoutHints(kLHintsExpandX, 5, 5, 7, 7));
156 fRefs->AddFrame(title1,
new TGLayoutHints(kLHintsTop, 0, 0, 2, 0));
159 fRSSubEditor->CreateRefsContainer(fRefs);
160 fRSSubEditor->fPMAtt->SetGedEditor((TGedEditor*)gEve->GetEditor());
161 fRSSubEditor->fFVAtt->SetGedEditor((TGedEditor*)gEve->GetEditor());
167 void TEveTrackListEditor::SetModel(TObject* obj)
169 fTC =
dynamic_cast<TEveTrackList*
>(obj);
170 fRnrLine ->SetState(fTC->GetRnrLine() ? kButtonDown : kButtonUp);
171 fRnrPoints->SetState(fTC->GetRnrPoints() ? kButtonDown : kButtonUp);
174 fPtRange->SetValues(fTC->fMinPt, fTC->fMaxPt);
175 llim = fTC->fLimPt > 1 ? TMath::Log10(fTC->fLimPt) : 0;
176 fPtRange->SetLimits(0, fTC->fLimPt, llim < 2 ? TGNumberFormat::kNESRealTwo : (llim < 3 ? TGNumberFormat::kNESRealOne : TGNumberFormat::kNESInteger));
177 fPRange ->SetValues(fTC->fMinP, fTC->fMaxP);
178 llim = fTC->fLimP > 1 ? TMath::Log10(fTC->fLimP) : 0;
179 fPRange ->SetLimits(0, fTC->fLimP, llim < 2 ? TGNumberFormat::kNESRealTwo : (llim < 3 ? TGNumberFormat::kNESRealOne : TGNumberFormat::kNESInteger));
181 fRSSubEditor->SetModel(fTC->GetPropagator());
187 void TEveTrackListEditor::DoRnrLine()
189 fTC->SetRnrLine(fRnrLine->IsOn());
196 void TEveTrackListEditor::DoRnrPoints()
198 fTC->SetRnrPoints(fRnrPoints->IsOn());
205 void TEveTrackListEditor::DoPtRange()
207 fTC->SelectByPt(fPtRange->GetMin(), fPtRange->GetMax());
214 void TEveTrackListEditor::DoPRange()
216 fTC->SelectByP(fPRange->GetMin(), fPRange->GetMax());