84 QObject::connect(CircleBox, &QCheckBox::toggled, EllipseA2Spinbox, &QDoubleSpinBox::setDisabled);
85 QObject::connect(CircleBox, &QCheckBox::toggled, EllipseTiltDial, &QDial::setDisabled);
86 QObject::connect(CircleBox, &QCheckBox::toggled, EllipseTiltEdit, &QLineEdit::setDisabled);
87 QObject::connect(BoxshapeBox, &QCheckBox::toggled, EllipseNptsSpin, &QSpinBox::setDisabled);
88 QObject::connect(FreeshapeBox, &QCheckBox::toggled, EllipseCxSpinbox, &QDoubleSpinBox::setDisabled);
89 QObject::connect(FreeshapeBox, &QCheckBox::toggled, EllipseCySpinbox, &QDoubleSpinBox::setDisabled);
90 QObject::connect(FreeshapeBox, &QCheckBox::toggled, EllipseA1Spinbox, &QDoubleSpinBox::setDisabled);
91 QObject::connect(FreeshapeBox, &QCheckBox::toggled, EllipseA2Spinbox, &QDoubleSpinBox::setDisabled);
92 QObject::connect(FreeshapeBox, &QCheckBox::toggled, EllipseTiltDial, &QDial::setDisabled);
93 QObject::connect(FreeshapeBox, &QCheckBox::toggled, EllipseTiltEdit, &QLineEdit::setDisabled);
99 LCDCounts->setDigitCount(10);
100 LCDTrueCounts->setDigitCount(10);
102 setWindowTitle(
"Condition editor");
105 parentWidget()->adjustSize();
109 CutTable->setContextMenuPolicy(Qt::CustomContextMenu);
116 if (!cl)
return false;
117 bool res = cl->InheritsFrom(TGo4Condition::Class());
126 if (cl->InheritsFrom(TGo4Condition::Class()))
151 if (strcmp(linkname,
"Condition") == 0) {
161 if (strcmp(linkname,
"Condition") == 0)
170 if (con && (con->IsChanged() != 0) && (strcmp(conditemname,itemname) != 0)) {
171 QMessageBox msgBox(QMessageBox::Question,
"Condition editor",
172 QString(
"Current condition %1 is modified!\nNew condition %2 is selected.").arg(conditemname).arg(itemname));
174 auto btnContinue = msgBox.addButton(
"Continue with current", QMessageBox::ActionRole);
175 msgBox.addButton(
"Start with new", QMessageBox::ActionRole);
176 msgBox.setDefaultButton(btnContinue);
179 if (msgBox.clickedButton() == btnContinue)
183 if (!conditemname || (strcmp(conditemname,itemname) != 0)) {
185 CondNameLbl->setText(itemname);
186 AddLink(itemname,
"Condition");
189 QString iconname =
":/icons/right.png";
190 QString tooltip =
"Refresh condition from analysis";
192 iconname =
":/icons/refresh.png";
193 tooltip =
"Refresh condition from source";
195 RefreshButton->setIcon( QIcon(iconname) );
196 RefreshButton->setToolTip(tooltip);
217 CondNameLbl->setText(
"");
218 CondClassLbl->setText(
"");
220 PleaseUpdateLabel->setVisible(
false);
222 ArrayAllButton->setVisible(
false);
223 ArrayElements->setVisible(
false);
225 HistogramChk->setVisible(
false);
226 HistogramChk->setChecked(
false);
227 HistogramChk->setText(
"null");
228 HistogramChk->setEnabled(
false);
230 CondVisibleChk->setVisible(
false);
231 DrawInfoLbl->setText(
"");
232 CondTabs->setEnabled(
false);
234 LCDCounts->display(0);
235 LCDTrueCounts->display(0);
237 Win1_low->setDisabled(
true);
238 Win1_up->setDisabled(
true);
239 Win2_low->setDisabled(
true);
240 Win2_up->setDisabled(
true);
242 ResultCombo->setEnabled(
false);
243 InvertCombo->setEnabled(
false);
261 PleaseUpdateLabel->setVisible(cond->IsChanged() != 0);
265 TH1 *histo =
nullptr;
272 if (selname == cond->GetName())
282 ArrayAllButton->setVisible(arr !=
nullptr);
283 ArrayElements->setVisible(arr !=
nullptr);
287 ArrayElements->setMaximum(arr->
GetNumber()-1);
304 CondClassLbl->setText(
"Win 2-D ");
306 CondClassLbl->setText(
"Win 1-D ");
309 CondClassLbl->setText(
"Ellipse ");
311 CondClassLbl->setText(
"Circle ");
312 else if (econd->
IsBox())
313 CondClassLbl->setText(
"Box ");
315 CondClassLbl->setText(
"Free shape ");
317 CondClassLbl->setText(
"Polygon ");
319 CondClassLbl->setText(
"Value list ");
321 CondClassLbl->setText(
"");
326 if (!hname || (*hname == 0)) {
327 HistogramChk->setChecked(
false);
328 HistogramChk->setText(
"null");
329 HistogramChk->setEnabled(
false);
332 HistogramChk->setChecked(cond->IsHistogramLink());
333 HistogramChk->setText(hname);
334 HistogramChk->setEnabled(
true);
336 if (hitemname.length()>0)
337 infolbl += hitemname;
343 CondVisibleChk->setVisible(
true);
344 CondVisibleChk->setChecked(cond->IsVisible());
347 if (infolbl.length() > 0)
349 infolbl +=
"Drawn: ";
350 infolbl += panel->objectName();
351 if (pad && (pad != (TPad *) panel->
GetCanvas())) {
353 infolbl += pad->GetName();
356 DrawInfoLbl->setText(infolbl);
358 CondTabs->setEnabled(
true);
360 ResultCombo->setEnabled(
true);
361 InvertCombo->setEnabled(
true);
363 if (cond->IsEnabled())
364 ResultCombo->setCurrentIndex(0);
365 else if (cond->FixedResult())
366 ResultCombo->setCurrentIndex(1);
368 ResultCombo->setCurrentIndex(2);
370 if(cond->IsTrue()) InvertCombo->setCurrentIndex(0);
371 else InvertCombo->setCurrentIndex(1);
373 LCDCounts->display(cond->Counts());
374 LCDTrueCounts->display(cond->TrueCounts());
377 if (cond->Counts()>0)
378 ratio = 1.*cond->TrueCounts() / cond->Counts();
380 if ((ratio >= 0.) && (ratio <= 100.))
381 sratio = QString(
"%1%2").arg(ratio * 100, 4,
'f', 2).arg(
"%");
384 PercentLabel->setText(sratio);
386 CondLimits->setChecked(cond->IsLimitsDraw());
387 CondLabel->setChecked(cond->IsLabelDraw());
389 Win1_low->setText(QString::number(cond->GetXLow()));
390 Win1_up->setText(QString::number(cond->GetXUp()));
392 if (cond->GetDimension()==2) {
393 Win2_low->setText(QString::number(cond->GetYLow()));
394 Win2_up->setText(QString::number(cond->GetYUp()));
396 Win2_low->setText(
"");
397 Win2_up->setText(
"");
401 Win1_low->setEnabled(
true);
402 Win1_up->setEnabled(
true);
406 Win1_low->setDisabled(
true);
407 Win1_up->setDisabled(
true);
408 Win2_low->setDisabled(
true);
409 Win2_up->setDisabled(
true);
413 int oldindex = CondTabs->currentIndex();
414 CondTabs->setCurrentIndex(2);
415 CondTabs->setCurrentIndex(oldindex);
417 if (!pcond && ((CondTabs->currentIndex() == 1) || (CondTabs->currentIndex() == 2)))
418 CondTabs->setCurrentIndex(0);
420 if (!econd && pcond && (CondTabs->currentIndex() == 2))
421 CondTabs->setCurrentIndex(1);
424 CondTabs->setCurrentIndex(1);
426 CondTabs->setTabEnabled(1, pcond || lcond);
427 CondTabs->setTabEnabled(2, econd !=
nullptr);
429 CondTabs->setTabEnabled(3, !lcond);
430 CondTabs->setTabEnabled(4, !lcond);
431 CondTabs->setTabEnabled(5, !lcond);
435 CondTabs->setTabText(1,
"Cut");
439 CondTabs->setCurrentIndex(2);
442 CondTabs->setCurrentIndex(1);
446 CondTabs->setTabText(1,
"Values");
448 CondTabs->setCurrentIndex(1);
451 CondTabs->setCurrentIndex(0);
454 IntBox->setChecked(cond->IsIntDraw());
455 MaxCBox->setChecked(cond->IsCMaxDraw());
456 MaxXBox->setChecked(cond->IsXMaxDraw());
457 MaxYBox->setChecked(cond->IsYMaxDraw());
459 XMeanBox->setChecked(cond->IsXMeanDraw());
460 YMeanBox->setChecked(cond->IsYMeanDraw());
461 XRMSBox->setChecked(cond->IsXRMSDraw());
462 YRMSBox->setChecked(cond->IsYRMSDraw());
464 IntBox->setText(QString(
"Integr: ") + QString::number(cond->GetIntegral(histo,
"")));
465 MaxXBox->setText(QString(
"MaxX: ") + QString::number(cond->GetXMax(histo)));
466 MaxYBox->setText(QString(
"MaxY: ") + QString::number(cond->GetYMax(histo)));
467 MaxCBox->setText(QString(
"Max: ") + QString::number(cond->GetCMax(histo)));
469 XMeanBox->setText(QString(
"XMean: ") + QString::number(cond->GetMean(histo, 1)));
470 XRMSBox->setText(QString(
"XRMS: ") + QString::number(cond->GetRMS(histo, 1)));
471 YMeanBox->setText(QString(
"YMean: ") + QString::number(cond->GetMean(histo, 2)));
472 YRMSBox->setText(QString(
"YRMS: ") + QString::number(cond->GetRMS(histo, 2)));
479 if (!panel && HistogramChk->isChecked() &&
480 Browser()->DefineRelatedObject(conditemname, hname, hitemname))
489 if (!cond)
return nullptr;
509 PleaseUpdateLabel->setVisible(
true);
524 ArrayElements->setValue(-1);
532 case 0: cond->
Enable();
break;
533 case 1: cond->
Disable(kTRUE);
break;
534 case 2: cond->
Disable(kFALSE );
break;
535 default: cond->
Enable();
break;
552 if (!con || !conditemname)
return;
584 bool okx1, okx2, res =
false;
585 Double_t x1 = Win1_low->text().toDouble(&okx1);
586 Double_t x2 = Win1_up->text().toDouble(&okx2);
590 Double_t y1 = Win2_low->text().toDouble(&oky1);
591 Double_t y2 = Win2_up->text().toDouble(&oky2);
592 if (okx1 && okx2 && oky1 && oky2) {
684#if QT_VERSION < QT_VERSION_CHECK(6,0,0)
713 if (cond) cond->SetChanged(changed);
744 if (!conditemname)
return;
751 DrawItem(conditemname, panel,
nullptr,
false, 0);
776 const char *hname =
nullptr;
777 if (cond->IsHistogramLink())
778 hname = cond->GetLinkedHistogram();
784 panel =
DrawItem(hitemname.Data(),
nullptr);
786 AddLink(hitemname.Data(),
"Histogram");
787 DrawItem(conditemname, panel,
nullptr,
false, 0);
798 if (!conditemname)
return;
818 cond->PrintCondition(kFALSE);
819 cond->Print(
"go4log-limits-stats");
826 if (!cond)
return false;
830 const char *hname = cond->GetLinkedHistogram();
831 if (hname && (strlen(hname) != 0)) {
832 TString foldername, objname;
834 cond->SetHistogram(objname.Data());
848 if (!panel || !pad)
return;
863 CutTable->setColumnCount(2);
865 CutTable->setRowCount(0);
866 NPointsSpin->setValue(0);
868 CutTable->setRowCount(cut->GetN());
869 NPointsSpin->setValue(cut->GetN());
870 for (
int n = 0; n < cut->GetN(); n++) {
872 cut->GetPoint(n, x,y);
873 CutTable->setItem(n, 0,
new QTableWidgetItem(QString::number(x)));
874 CutTable->setItem(n, 1,
new QTableWidgetItem(QString::number(y)));
875 CutTable->setVerticalHeaderItem(n,
new QTableWidgetItem(QString::number(n)));
887 double a1 = 0, a2 = 0, x = 0, y = 0;
891 elli-> GetCenter(x,y);
894 EllipseCxSpinbox->setValue(x);
895 EllipseCySpinbox->setValue(y);
896 EllipseA1Spinbox->setValue(a1);
897 EllipseA2Spinbox->setValue(a2);
898 EllipseTiltDial->setValue(theta);
899 EllipseTiltEdit->setText(QString::number(theta));
901 CircleBox->setChecked(elli->
IsCircle());
902 EllipseBox->setChecked(elli->
IsEllipse());
903 BoxshapeBox->setChecked(elli->
IsBox());
911 EllipseCxSpinbox->setVisible(show);
912 EllipseCySpinbox->setVisible(show);
913 EllipseA1Spinbox->setVisible(show);
914 EllipseA2Spinbox->setVisible(show);
915 EllipseTiltDial->setVisible(show);
916 EllipseTiltEdit->setVisible(show);
918 ShapegroupBox->setVisible(show);
919 CircleBox->setVisible(show);
920 EllipseBox->setVisible(show);
921 BoxshapeBox->setVisible(show);
922 FreeshapeBox->setVisible(show);
923 EllipseNptsSpin->setVisible(show);
925 AutoRefreshBox->setVisible(show);
926 EllipseCenterLabel->setVisible(show);
927 EllipseTitlLabel->setVisible(show);
928 EllipseRadiusLabel->setVisible(show);
929 EllipseNptsLabel->setVisible(show);
930 EllipsCxLabel->setVisible(show);
931 EllipsCyLabel->setVisible(show);
932 EllipsA1Label->setVisible(show);
933 EllipsA2Label->setVisible(show);
935 verticalLayout_2->setEnabled(show);
936 verticalLayout_5->setEnabled(show);
937 horizontalLayout_4->setEnabled(show);
945 CutTable->setColumnCount(1);
947 CutTable->setRowCount(0);
948 NPointsSpin->setValue(0);
951 CutTable->setRowCount(points);
952 NPointsSpin->setValue(points);
953 for (
int n = 0; n < points; n++) {
955 CutTable->setItem(n, 0,
new QTableWidgetItem(QString::number(val)));
957 CutTable->setVerticalHeaderItem(n,
new QTableWidgetItem(QString::number(n)));
971 TCutG *cut = pcond->
GetCut(kFALSE);
974 cut =
new TCutG(
"conditioncut", npoint);
975 Double_t x = 0., y = 0.;
976 for (
int n = 0; n < npoint - 1; n++)
977 cut->SetPoint(n, n * 10, n * 10);
978 cut->GetPoint(0, x, y);
979 cut->SetPoint(npoint - 1, x, y);
986 int old = cut->GetN();
987 Double_t x = 0., y = 0.;
989 cut->GetPoint(old - 2, x, y);
991 for (
int n = (old - 1 >= 0 ? old - 1 : 0); n < npoint - 1; n++)
992 cut->SetPoint(n, x, y + (n - old + 2) * 10);
993 cut->GetPoint(0, x, y);
994 cut->SetPoint(npoint - 1, x, y);
1014 double zn = CutTable->item(nrow, ncol)->text().toDouble(&ok);
1018 TCutG *cut = pcond->
GetCut(kFALSE);
1022 cut->GetX()[nrow] = zn;
1024 cut->GetY()[nrow] = zn;
1025 if ((nrow == 0) || (nrow == cut->GetN() - 1)) {
1026 int nrow1 = (nrow == 0) ? cut->GetN() - 1 : 0;
1028 CutTable->setItem(nrow1, ncol,
new QTableWidgetItem(CutTable->item(nrow, ncol)->text()));
1030 cut->GetX()[nrow1] = zn;
1032 cut->GetY()[nrow1] = zn;
1038 if ((nrow == 0) || (nrow == numvals - 1)) {
1039 int nrow1 = (nrow == 0) ? numvals - 1 : 0;
1041 CutTable->setItem(nrow1, ncol,
new QTableWidgetItem(CutTable->item(nrow, ncol)->text()));
1057 QTableWidgetItem* item = CutTable->itemAt (pos);
1063 if(!pcond && !lcond)
return;
1067 TCutG *cut = pcond->
GetCut(kFALSE);
1077 int nrow = CutTable->row(item);
1081 auto actInsert =
new QAction(
"Insert point", &menu);
1082 menu.addAction(actInsert);
1085 auto actDelete =
new QAction(
"Delete point", &menu);
1086 menu.addAction(actDelete);
1088 actDelete->setEnabled((nrow > 0) && (nrow < maxn - 1));
1090 menu.exec(CutTable->mapToGlobal(pos));
1099 TCutG *cut = pcond->
GetCut(kFALSE);
1104 cut->RemovePoint(
id);
1106 Int_t npoints = cut->GetN();
1109 cut->Set(npoints + 1);
1112 for (
int n = npoints; n > id; n--) {
1113 cut->GetPoint(n - 1, x, y);
1114 cut->SetPoint(n, x, y);
1119 cut->GetPoint(
id - 1, x1, y1);
1120 cut->SetPoint(
id, (x1 + x) / 2., (y + y1) / 2.);
1147 EllipseTiltEdit->setText(QString::number(deg));
1164 double y = EllipseCySpinbox->value();
1178 double x = EllipseCxSpinbox->value();
1221 Int_t theta = EllipseTiltEdit->text().toInt(&ok);
1222 if(theta < 0) theta = 0;
1223 theta = theta % 360;
1226 EllipseTiltDial->setValue(theta);
1242 std::cout <<
"UpdateEllipse did not find ellipse condition!!!" << std::endl;
1246 if (FreeshapeBox->isChecked()) {
1249 double cx = EllipseCxSpinbox->value();
1250 double cy = EllipseCySpinbox->value();
1251 double a1 = EllipseA1Spinbox->value();
1252 double a2 = EllipseA2Spinbox->value();
1253 double th = EllipseTiltDial->value();
1261 TCutG *cut = econd->
GetCut(
false);
1262 Int_t n = cut->GetN();
1263 Double_t *xarr = cut->GetX();
1264 Double_t *yarr = cut->GetY();
1266 for (
int i = 0; i < n; ++i) {
1267 rarr[i] = TMath::Sqrt(TMath::Power((xarr[i] - cx), 2) + TMath::Power((yarr[i] - cy), 2));
1269 Int_t nrmax = TMath::LocMax(n, rarr.GetArray());
1270 Int_t nrmin = TMath::LocMin(n, rarr.GetArray());
1276 th = TMath::ACos((econd->
GetXUp() - cx) / a1) * 180 / TMath::Pi();
1280 if (CircleBox->isChecked())
1281 econd->
SetCircle(cx, cy, a1, EllipseNptsSpin->value());
1282 else if (EllipseBox->isChecked())
1283 econd->
SetEllipse(cx, cy, a1, a2, th, EllipseNptsSpin->value());
1284 else if (BoxshapeBox->isChecked()) {
1292 econd->
SetBox(cx, cy, a1, a2, th);
TGo4ServerProxy * DefineAnalysisObject(const char *itemname, TString &analysisname)
Bool_t DefineRelatedObject(const char *itemname, const char *objectname, TString &objectitem, Int_t mask=3)
TGo4ServerProxy * DefineServerObject(const char *itemname, TString *objname=nullptr, Bool_t onlyanalysis=kTRUE)
Int_t GetNumber() const
Returns number of conditions in array.
TGo4Condition * At(Int_t i) const
Returns condition object i from object array.
void SetCurrentIndex(Int_t ix) override
set index for array type subclasses
virtual void DrawCondition(bool useactive)
void enterEvent(QEnterEvent *) override
virtual void NPointsSpin_valueChanged(int npoint)
virtual void EllipseTheta_valueChanged(int deg)
virtual void EllipseNPoints_valueChanged(int npoint)
virtual void SetXMeanDraw(bool on)
virtual void EllipseRefreshBox_toggled(bool on)
virtual void RefreshClicked()
virtual void SetChangeFlag(bool changed)
void leaveEvent(QEvent *) override
void DropItem(const char *itemname, TClass *cl, int kind) override
virtual void SetYMaxDraw(bool on)
virtual void UpdatePressed()
virtual void PrintConditionLog()
virtual void EllipseA2_valueChanged(double r2)
bool IsAcceptDrag(const char *itemname, TClass *cl, int kind) override
virtual bool PrepareForAnalysis()
virtual void EllipseTheta_returnPressed()
virtual TGo4Condition * SelectedCondition()
void ResetWidget() override
virtual void LimitsReturnPressed()
virtual void FillListWidget(TGo4ListCond *lcon)
virtual void SetIntDraw(bool on)
virtual void SetXRMSDraw(bool on)
virtual void WorkWithCondition(const char *itemname)
virtual void CutTable_valueChanged(int ncol, int nrow)
virtual void SetInvertMode(int mode)
virtual void ClearCounters()
virtual void FillCutWidget(TCutG *cut)
bool fbEllipseAutoRefresh
virtual void PleaseUpdateSlot()
void linkedObjectUpdated(const char *linkname, TObject *obj) override
virtual void EllipseA1_valueChanged(double r1)
void linkedObjectRemoved(const char *linkname) override
virtual void CutTable_contextMenuRequested(const QPoint &)
virtual void SaveCondition()
void CutTable_contextMenuHandler(int, bool)
virtual void SelectedCond(int t)
virtual void SetCondVisible(bool on)
virtual void ModifyButton_clicked()
virtual void ShowEllipseWidget(bool show)
virtual void SetLabel(bool on)
virtual void SetXMaxDraw(bool on)
virtual void SetCMaxDraw(bool on)
virtual void LimitsChanged(const QString &)
virtual void FillEllipseWidget(TGo4ShapedCond *elli)
virtual void EllipseCircleBox_toggled(bool on)
virtual void RefreshWidget(bool checkindex)
virtual void RedrawCondition()
virtual void ChangeConditionProperty(int id, bool on)
virtual void SetResultMode(int mode)
virtual void EllipseCx_valueChanged(double x)
virtual void DisplayPressed()
virtual void SetDrawLimits(bool on)
virtual void UpdateEllipse()
virtual void EllipseCy_valueChanged(double y)
TGo4ConditionEditor(QWidget *parent=nullptr, const char *name=nullptr)
virtual void SetYMeanDraw(bool on)
virtual void SetYRMSDraw(bool on)
virtual bool UpdateLimits()
virtual void SetYMeanDraw(Bool_t on)
virtual void SetLabelDraw(Bool_t on)
virtual void SetVisible(Bool_t on)
Set/Unset visibility.
virtual void Enable()
Enable (unfreeze) Test execution.
virtual void SetLimitsDraw(Bool_t on)
virtual void SetValues()
Set values needed, i.e.
Int_t GetDimension() const
const char * GetLinkedHistogram() const
Access name of the associated histogram.
virtual void SetIntDraw(Bool_t on)
virtual void SetYRMSDraw(Bool_t on)
virtual void SetYMaxDraw(Bool_t on)
void SetMultiEdit(Bool_t on)
virtual void SetXRMSDraw(Bool_t on)
virtual void SetXMeanDraw(Bool_t on)
virtual void SetChanged(Bool_t on=kTRUE)
virtual void Disable(Bool_t result)
Freeze condition, on Test() return result.
virtual void Invert(Bool_t on)
Inverts return values, when on is true, i.e.
virtual void SetCMaxDraw(Bool_t on)
virtual void SetXMaxDraw(Bool_t on)
Condition that checks a value against a list of "good" (or bad) values.
void Resize(size_t newsize)
void RemoveValue(UInt_t ix)
UInt_t GetNumValues() const
void InsertValue(UInt_t ix, Int_t val)
Int_t GetValue(UInt_t ix) const
void SetValue(UInt_t ix, Int_t val)
Double_t GetXUp() const override
maximum extension of polygon in x axis
Double_t GetYUp() const override
maximum extension of polygon in y axis
Double_t GetYLow() const override
minimum extension of polygon in y axis
void SetValues(Double_t *x, Double_t *y, Int_t len) override
Delete old cut and create a new cut with X,Y values.
TCutG * GetCut(Bool_t changeowner) override
Used to return the cut pointer of a TGo4PolyCond.
Double_t GetXLow() const override
minimum extension of polygon in x axis
special base class for remote data servers like DABC, HTTP, hist server
virtual Bool_t CanSubmitObjects() const
virtual void ClearAnalysisObject(const char *fullpath)
void SetEllipse(Double_t cx, Double_t cy, Double_t a1, Double_t a2, Double_t theta=0, Int_t npoints=0)
void SetTheta(Double_t angle)
void GetRadius(Double_t &a1, Double_t &a2) const
void SetCenter(Double_t x, Double_t y)
Bool_t IsFreeShape() const
Double_t GetTheta() const
Int_t GetResolution() const
void SetBox(Double_t cx, Double_t cy, Double_t a1, Double_t a2, Double_t theta=0)
void SetCircle(Double_t cx, Double_t cy, Double_t r, Int_t npoints=0)
static void ProduceFolderAndName(const char *fullname, TString &foldername, TString &objectname)
virtual void ShootRepaintTimer()
virtual const char * GetDrawObjectLinkName(TPad *pad, TObject *obj)
virtual void MarkPadModified(TPad *pad)
virtual void SetSelectedMarker(TPad *pad, const QString &selname, int selindex)
virtual QString GetSelectedMarkerName(TPad *pad)
virtual int GetSelectedMarkerIndex(TPad *pad)
virtual void StartConditionEditing(TPad *pad)
virtual TPad * FindPadWithItem(const char *itemname)
virtual TPad * GetActivePad()
virtual TH1 * GetPadHistogram(TPad *pad)
virtual void SetActivePad(TPad *pad)
virtual TCanvas * GetCanvas()