4 #include "KVIDGridEditor.h"
14 #include <KVSpIdGUI.h>
15 #include <KVZAFinderDialog.h>
17 #include "KVTreeAnalyzer.h"
18 #include <KVHistogram.h>
19 #include "KVTestIDGridDialog.h"
20 #include "KVItvFinderDialog.h"
37 fSpiderOption =
"DRLF";
69 AddMethod(
"SaveCurrentGrid");
70 AddMethod(
"SpiderIdentification");
71 AddMethod(
"ChangeMasses");
72 AddMethod(
"ChangeCharges");
73 AddMethod(
"SelectLinesByZ");
74 AddMethod(
"MakeScaleX");
75 AddMethod(
"MakeScaleY");
76 AddMethod(
"SetSelectedColor");
77 AddMethod(
"SetPointStyle");
78 AddMethod(
"SetPointSize");
79 AddMethod(
"SetVarXVarY");
80 AddMethod(
"SetRunList");
81 AddMethod(
"AddParameter");
82 AddMethod(
"SetXScaleFactor");
83 AddMethod(
"SetYScaleFactor");
84 AddMethod(
"SetSVGMode");
86 ft =
new TF1(
"tranlation",
"(x+[0])", 0, 70000);
87 fs =
new TF1(
"scale",
"(x-[0])*[1]+[0]", 0, 70000);
88 fsy =
new TF1(
"scale_y",
"(x-[0])*[1]+[0]", 0, 70000);
90 frx =
new TF2(
"rotation_x",
"(x-[0])*TMath::Cos([2])-(y-[1])*TMath::Sin([2])+[0]", 0, 70000);
91 fry =
new TF2(
"rotation_y",
"(x-[0])*TMath::Sin([2])+(y-[1])*TMath::Cos([2])+[1]", 0, 70000);
96 lplabel->SetOwner(
kTRUE);
98 lplabel2->SetOwner(
kTRUE);
100 lplabel3->SetOwner(
kTRUE);
102 lplabel4->SetOwner(
kTRUE);
104 lplabel5->SetOwner(
kTRUE);
128 dynamic_cast<TGMainFrame*
>(fCanvas->GetCanvasImp())->Connect(
"CloseWindow()",
"KVIDGridEditor",
this,
"CanvasWasClosed()");
129 fPad = fCanvas->cd();
132 if (TheHisto) TheHisto->Draw(
"col");
178 itrans = iact = iopt = 0;
217 dynamic_cast<TGMainFrame*
>(fCanvas->GetCanvasImp())->Disconnect(
"CloseWindow()",
"KVIDGridEditor",
this,
"CanvasWasClosed()");
242 ResetColor(ListOfLines);
243 ListOfLines->Clear();
245 if (
option.Contains(
"AL")) {
256 if (!IsClosed()) TheGrid->UnDraw();
280 fCanvas->SaveAs(
Form(
"%s/gIDGridEditorPrint-%d.png", dir.
Data(), fSVGIndex));
338 if (gIDGridEditor ==
this) gIDGridEditor = 0x0;
438 y1 = 0.90 - i * 0.06;
449 y1 = 0.90 - i * 0.06;
531 thelist->
Add(templabel);
548 if (!the_directory)
return;
551 while ((key = (
TKey*)next_key())) {
587 while ((obj = nextmem())) {
595 while ((
f = (
TFile*)next())) {
602 HistosNames.
Begin(
" ");
603 while (!HistosNames.
End()) {
605 if (
g !=
"gIDGridEditorDefaultHistogram") histos.
Add(
new TObjString(
g.Data()));
612 while ((canv = (
TCanvas*)nextc())) {
614 if (strcmp(canv->
GetName(),
"gIDGridEditorCanvas")) {
617 while ((obj1 = next_step1())) {
621 TIter next_step2(((
TPad*)obj1)->GetListOfPrimitives());
622 while ((obj2 = next_step2())) {
623 printf(
"%s\n", obj2->
GetName());
660 HistosNames +=
Form(
" %s", s->GetString().Data());
719 Choices +=
"Current ";
721 else Default =
"Dummy";
725 else if (Select ==
"") {
730 Choices += Select.
Data();
735 while (!Listo.
End()) {
737 if (s != Select) Choices +=
Form(
"%s ", s.Data());
751 else Answer = Default;
767 else Answer =
"Dummy";
784 if ((TmpH = (
TH2*)
gROOT->FindObject(hname.
Data())))
delete TmpH;
790 cout <<
"ERROR: KVIDGridEditor::SetHisto(): '" << hh->
GetName() <<
"' must be a 2D histogram !" << endl;
829 while ((cc = (
TCanvas*)nextc())) {
830 if (strcmp(cc->GetName(),
"gIDGridEditorCanvas")) {
831 if ((obj = cc->FindObject(histoname))) {
872 cout <<
"ERROR: KVIDGridEditor::SetHisto(): invalid pointer on the grid !" << endl;
906 if (!strcmp(GridName.
Data(),
"")) {
908 Bool_t proposename =
false;
915 new KVInputDialog(
gClient->GetDefaultRoot(),
"Enter the name of your grid :", &Answer, &okpressed);
916 if (!okpressed)
return;
917 GridName = Answer.
Data();
922 if (!gIDGridManager)
return;
924 cout <<
"WARNING: KVIDGridEditor::SetGrid(): Unknown grid named '" << GridName.
Data() <<
"' !" << endl;
927 else SetGrid(tempgrid, sethisto);
1120 Double_t ddX = (X1 + X0) * 0.5 - px;
1122 if (distX >= 0.5)
return;
1130 Double_t ddY = (Y1 + Y0) * 0.5 - py;
1132 if (distY >= 0.5)
return;
1134 if ((distX <=
size) && (distY <=
size))
return;
1144 if ((X0 - dX > 0) && (X1 - dX < NbinsX)) {
1148 if ((Y0 - dY > 0) && (Y1 - dY < NbinsY)) {
1201 Int_t zmin, zmax, amin, amax;
1202 if (LastZ == SeleZ) {
1208 else if (LastZ < SeleZ) {
1222 for (
int Z = zmin; Z <= zmax; Z++) {
1229 if ((
line->GetA() > amin) && (
line->GetA() < amax)) {
1235 if ((
line->GetZ() == zmin) && (
line->GetA() > amin)) {
1240 if ((
line->GetZ() == zmax) && (
line->GetA() < amax)) {
1245 if ((
line->GetZ() != zmax) && (
line->GetZ() != zmin)) {
1288 else if (!strcmp(who,
"T_{X}"))
TranslateX(sign);
1289 else if (!strcmp(who,
"T_{Y}"))
TranslateY(sign);
1290 else if (!strcmp(who,
"R_{Z}"))
RotateZ(sign);
1291 else if (!strcmp(who,
"S_{X}"))
ScaleX(sign);
1292 else if (!strcmp(who,
"S_{Y}"))
ScaleY(sign);
1293 else if (!strcmp(who,
"S_{XY}"))
ScaleXY(sign);
1315 if ((ratio2 - ratio1 > 0.05)) {
1324 if ((ratio2 - ratio1 > 0.05)) {
1349 else if (commande.
Contains(
"Fit")) {
1356 else if (commande.
Contains(
"Test")) {
1363 else if (commande.
Contains(
"Mass")) {
1370 else if (commande.
Contains(
"Info")) {
1378 else if (commande.
Contains(
"More")) {
1385 else if (commande.
Contains(
"Delete")) {
1388 if (color ==
kRed) {
1399 else cout <<
"WARNING: KVIDGridEditor::DispatchOrder(): unknown order '" << commande <<
"' !" << endl;
1485 "Choose class of new identifier :",
1490 if (!okpressed)
return;
1492 else cut_class = cut_choices;
1500 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewLine(): New Line has been added to the current grid..." << endl;
1531 if (!strcmp(cut_default,
"")) {
1532 cut_types.
Begin(
" ");
1533 cut_default = cut_types.
Next();
1536 "Choose class of new cut :",
1548 else cut_class = cut_types;
1557 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewCut(): New Cut has been added to the current grid..." << endl;
1576 if (info_choices ==
"") info_choices =
gEnv->
GetValue(
Form(
"%s.InfoClass",
"KVIDGraph"),
"");
1579 if (info_choices ==
"") info_choices =
gEnv->
GetValue(
Form(
"%s.DefaultInfoClass",
"KVIDGraph"),
"");
1584 KVString info_types = info_choices;
1589 if (!strcmp(info_default,
"")) {
1590 info_types.
Begin(
" ");
1591 info_default = info_types.
Next();
1594 "Choose class of new info :",
1596 info_default.
Data(),
1606 else info_class = info_types;
1611 Info(
"NewInfo",
"Adding new info contour or line of class '%s'", info_class.
Data());
1616 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewInfo(): New info has been added to the current grid..." << endl;
1813 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TestGrid(): testing the current grid..." << endl;
1829 cm->Action(fitter,
m);
1832 if (
fDebug) cout <<
"INFO: KVIDGridEditor::FitGrid(): fitting grid '" <<
TheGrid->
GetName() <<
"'..." << endl;
1849 if (!okpressed)
return;
1858 else if ((
m =
IsA()->GetMethodAllAny(Answer.
Data()))) {
1860 cm->Action(
this,
m);
1863 else cout <<
"INFO: KVIDGridEditor::SuggestMoreAction(): '" << Answer <<
"' not implemented..." << endl;
1886 if ((found == -1) || (!
line))
continue;
1913 "KVIDGridEditor::SaveCurrentGrid",
Form(
"Do you wat to save the grid here : %s", fn.
Data()),
1917 if (ret_code ==
kMBYes) {
1923 const char* filetypes[] = {
1924 "ID Grid files",
"*.dat",
1937 if (!filenam.
Contains(
'.')) filenam +=
".dat";
1959 for (
int ii = 0; ii <
id->GetN(); ii++) {
1960 double xx =
id->
GetX()[ii];
1961 double yy =
id->GetY()[ii];
1963 if (ref) dyref =
abs(yy - ref->
Eval(xx)) / 2;
1967 int nfound = spec.
Search(hh, dyref,
"goff", 0.05);
1974 for (
int ip = 0; ip < nfound; ip++) {
1978 if (ypeaks[ip] > threshold && (idr.
Z ==
id->GetZ() && idr.
A ==
id->GetA())) {}
1981 if (
abs(xpeaks[ip] - yy) < dy) {
1982 dy =
abs(xpeaks[ip] - yy);
1986 if (ygood > 0)
id->GetY()[ii] = ygood;
1998 static TString dir(
"$(HISTOROOT)");
2001 if (dir ==
"$(HISTOROOT)" &&
gSystem->
Getenv(
"HISTOROOT")) {
2007 const char* filetypes[] = {
"Root files",
"*.root",
"All files",
"*", 0, 0};
2030 Choices +=
"kBlack kGreen kBlue kRed kYellow kCyan kMagenta";
2035 if (!okpressed)
return;
2151 Form(
"This will undo all changes to the grid. Are you sure, %s?", username.
Data()),
2154 if (ret_val &
kMBOk) {
2199 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TranslateX(): translation on the X axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2222 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TranslateY(): translation on the Y axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2256 if (X0 >= X1) X0 = X1 - 1;
2258 if ((X0 - dX) < 0) ax->
SetRange(0, X1 - X0);
2260 else ax->
SetRange(X0 - dX, X1 - dX);
2270 if (Y0 >= Y1) Y0 = Y1 - 1;
2272 if ((Y0 - dY) < 0) ax->
SetRange(0, Y1 - Y0);
2274 else ax->
SetRange(Y0 - dY, Y1 - dY);
2291 if (step >= 45.) step = 45.;
2303 if (
fDebug) cout <<
"INFO: KVIDGridEditor::RotateZ(): rotation around the Z axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2374 if (
fDebug)
Info(
"ScaleX",
"scaling on the X axis (*%f) !", factor);
2375 KVEnv scale_factors(
"KVIDGridEditor_scalings.dat");
2376 scale_factors.
AddCommentLine(
"# Cumulative linear scalings applied to grids with KVIDGridEditor");
2377 scale_factors.
AddCommentLine(
"# Parameters are a0,a1 of linear transform using pol1 X -> a0 + a1*X");
2410 if (
fDebug)
Info(
"ScaleY",
"scaling on the Y axis (*%f) !", factor);
2412 KVEnv scale_factors(
"KVIDGridEditor_scalings.dat");
2413 scale_factors.
AddCommentLine(
"# Cumulative linear scalings applied to grids with KVIDGridEditor");
2414 scale_factors.
AddCommentLine(
"# Parameters are a0,a1 of linear transform using pol1 X -> a0 + a1*X");
2451 if (
fDebug)
Info(
"ScaleXY",
"scaling (*%f) !", factor);
2530 TIter nextidd(IdentList);
2556 if (
fDebug) cout <<
"INFO: KVIDGridEditor::ForceUpdate(): Canvas and Co has been updated !" << endl;
2690 gROOT->ForceStyle();
2739 gROOT->ForceStyle();
2924 if ((XX1 == 1) && (sign == 1))
return;
2925 if ((XX2 == xAxis->
GetNbins() - 1) && (sign == -1))
return;
2927 Int_t dX = (
Int_t)sign * (XX1 - XX2) * 0.25 * speed;
2929 xAxis->
SetRange(XX1 + dX, XX2 + dX);
2948 Int_t dX = (
Int_t) - 1 * (XX1 - XX2) * 0.1 * speed;
2950 axis->
SetRange(XX1 + dX, XX2 - dX);
2968 if ((XX1 == 1) && (sign == 1))
return;
2969 if ((XX2 == yAxis->
GetNbins() - 1) && (sign == -1))
return;
2971 Int_t dX = (
Int_t)sign * (XX1 - XX2) * 0.25 * speed;
2973 yAxis->
SetRange(XX1 + dX, XX2 + dX);
3060 Info(
"ChangeMasses",
"%d lines found for Z=%d", ll->
GetSize(), Z);
3065 Info(
"ChangeMasses",
"A=%d -> A=%d",
id->GetA(),
id->GetA() + dA);
3066 id->SetA(
id->GetA() + dA);
3084 for (
int i =
n - 1; i > 0; i--) {
3087 Info(
"ChangeMasses",
"%d lines found for Z=%d", ll->
GetSize(), Z);
3092 Info(
"ChangeMasses",
"Z=%d -> Z=%d",
id->GetZ(),
id->GetZ() + dZ);
3093 id->SetZ(
id->GetZ() + dZ);
3122 Info(
"PrintScalingRecap",
3123 "Scaling recap:\n X --> %f X + %f\n Y --> %f Y + %f"
size_t size(const MatrixT &matrix)
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t result
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize id
Option_t Option_t SetLineColor
Option_t Option_t TPoint TPoint const char x2
Option_t Option_t TPoint TPoint const char x1
Option_t Option_t TPoint TPoint const char y2
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t g
Option_t Option_t TPoint TPoint percent
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize fs
Option_t Option_t TPoint TPoint const char y1
char * Form(const char *fmt,...)
char * StrDup(const char *str)
R__EXTERN TStyle * gStyle
R__EXTERN TSystem * gSystem
Base class for KaliVeda framework.
virtual Bool_t IsType(const Char_t *typ) const
void Copy(TObject &) const override
Make a copy of this object.
Ask user to choose between several options in a drop-down list.
Extension of TEnv to allow the writing of comments in the file.
void AddCommentLine(const Char_t *line)
Extended version of ROOT THashList.
Wrapper for histograms and graphical cuts used by KVTreeAnalyzer.
Base class for particle identification in a 2D map.
void Draw(Option_t *opt="") override
void RemoveIdentifier(KVIDentifier *)
Remove and destroy identifier.
void SetEditable(Bool_t editable=kTRUE) override
void UpdateLastSavedVersion()
update last saved version. mkae copy of current state of graph.
void RemoveInfo(KVIDentifier *)
Remove and destroy cut.
const KVList * GetCuts() const
TVirtualPad * GetPad() const
const KVList * GetInfos() const
void RevertToLastSavedVersion()
virtual void Identify(Double_t, Double_t, KVIdentificationResult *) const =0
const Char_t * GetName() const override
virtual void DrawAndAdd(const TString &type="ID", const TString &classname="KVIDentifier")
KVIDentifier * GetIdentifier(Int_t Z, Int_t A) const
void FindAxisLimits()
Calculate X/Y min/max of all objects in graph.
void WriteAsciiFile(const Char_t *filename)
Open, write and close ascii file containing this grid.
virtual void Initialize()=0
void RemoveCut(KVIDentifier *)
Remove and destroy cut.
const KVList * GetIdentifiers() const
Extended version of KVCanvas used by KVIDGridEditor.
Identification grid editor GUI ,.
Bool_t drawmode
true si mode draw (line, cut)
void SelectLinesByZ(const Char_t *ListOfZ)
Int_t imod
utilise pour le placement des boutons
void AddTransformation(TString label)
void DynamicZoom(Int_t Sign, Int_t px=0, Int_t py=0, Double_t speed=.5)
Zoom in or out of histogram with mouse wheel.
void SelectLines(const Char_t *label)
KVIDGridEditor()
Default constructor.
void MakeTransformation()
KVHashList * lplabel5
contient la liste des TPaveLabel pour moduler les pas (vert)
KVHashList * lplabel4
contient la liste des TPaveLabel pour editer la grille (rouge)
void SetGrid(KVIDGraph *gg, Bool_t histo=true)
void SetPiedestal(Double_t ppdx, Double_t ppdy)
piedestal used during SpiderIdentification
std::vector< Color_t > identifier_line_colors_with_mass
void MoveHor(Int_t sign, Double_t speed=1, Bool_t update=true)
Bool_t aoemode
true si mode age of empire
void RecurseFileStructureFindHistos(TString &hist_names, TDirectory *the_directory)
TString ListOfHistogramInMemory()
KVUnownedList * ListOfLines
liste des lignes selectionnees
void ChangeZoomRatio(Int_t sign, Double_t speed=.5)
TString PreselectHistogram(TString ListOfName, Int_t ipert=0)
void TranslateX(Int_t Sign)
void ChooseSelectedColor()
void ConstructModulator()
void ScaleCurvature(Int_t Sign)
void ChangeCharges(const Char_t *Zl, Int_t dZ)
const char * WhoIsSelected()
void ChangeStep(const char *title, Int_t dstep=1)
void AddGridOption(TString label, KVHashList *thelist)
TH2 * FindInCanvases(const Char_t *name)
void SetPointStyle(int pstyle)
void StartViewer()
Close();.
void DispatchOrder(TPaveLabel *label)
virtual ~KVIDGridEditor()
Destructor.
void TranslateY(Int_t Sign)
void SetSelectedColor(Int_t color)
TH2 * TheHisto
pointeur sur l'histogramme
void Clear(const Option_t *opt="") override
void SelectTrans(TPaveLabel *label)
void ResetColor(KVIDentifier *Ident)
std::vector< Color_t > cut_line_colors
KVIDGridEditorCanvas * fCanvas
void AddMethod(const char *theMethod)
KVIDGraph * TheGrid
pointeur sur la grille courante
Bool_t HandleKey(Int_t px, Int_t py)
Handle keys.
std::vector< Color_t > cut_marker_colors
KVHashList * lplabel2
contient la liste des TPaveLabel pour les actions (rouge)
KVHashList * lplabel3
contient la liste des TPaveLabel pour les selections de lignes (vert)
void MoveVert(Int_t sign, Double_t speed=1, Bool_t update=true)
void SetPointSize(double psize)
void ChangeMasses(const Char_t *Zl, Int_t dA)
Int_t SelectedColor
couleur des lignes selectionnees
std::vector< Color_t > identifier_marker_colors_with_mass
Bool_t venermode
true si mode select
Bool_t ownhisto
true si histo par defaut
void SetPivot(Double_t xx0, Double_t yy0)
void SetEditable(TPaveLabel *label)
void SpiderIdentification()
Bool_t selectmode
true si mode vener
Double_t fBy
scaling recap for current grid
Double_t ymax
utilises pour les differents zooms
KVHashList * lplabel
contient la liste des TPaveLabel pour les transformations (rouge)
Double_t x0
coordonne x du pivot
void DeleteObject(KVIDentifier *obj)
void Copy(TObject &) const override
std::vector< Color_t > identifier_line_colors_no_mass
std::vector< Color_t > identifier_marker_colors_no_mass
Double_t y0
coordonne y du pivot
Bool_t dlmode
true si mode delete
void AddAction(TString label)
KVSeqCollection * GetGrids()
Hybrid charge & mass identification grid.
Identification grid with lines corresponding to different nuclear isotopes (KVIDZALine)
Base class for identification ridge lines corresponding to different nuclear species.
Base class for graphical cuts used in particle identification.
virtual Bool_t HasMassFits() const
void Scale(TF1 *sx, TF1 *sy)
Full result of one attempted particle identification.
Int_t A
A of particle found (if Aident==kTRUE)
Int_t Z
Z of particle found (if Zident==kTRUE)
GUI for finding/fixing mass identification intervals.
Extended TList class which owns its objects by default.
void Sort(Bool_t order=kSortAscending)
Strings used to represent a set of ranges of values.
IntArray GetArray() const
KaliVeda extensions to ROOT collection classes.
void Execute(const char *method, const char *params, Int_t *error=0) override
KVSeqCollection * GetSubListWithMethod(const Char_t *retvalue, const Char_t *method) const
TObject * Remove(TObject *obj) override
Remove object from list.
void Add(TObject *obj) override
TObject * FindObject(const char *name) const override
void AddLast(TObject *obj) override
Int_t GetSize() const override
void Clear(Option_t *option="") override
TObject * At(Int_t idx) const override
void Delete(Option_t *option="") override
Extension of ROOT TString class which allows backwards compatibility with ROOT v3....
void Begin(TString delim) const
KVString Next(Bool_t strip_whitespace=kFALSE) const
GUI for testing identification grids.
const KVList * GetHistoList() const
TH1 * GetHistogram(const Char_t *name) const
Return histogram with given name.
Extended TList class which does not own its objects by default.
ABC for fitting ID grids with functionals.
static KVVirtualIDFitter * GetDefaultFitter()
void SetPad(TVirtualPad *p)
void SetGrid(KVIDGraph *g)
Dialog box for KVZALineFinder class.
virtual void SetAxisColor(Color_t color=1, Float_t alpha=1.)
virtual void SetLabelColor(Color_t color=1, Float_t alpha=1.)
virtual Color_t GetFillColor() const
virtual void SetFillColor(Color_t fcolor)
virtual void SetFillStyle(Style_t fstyle)
virtual void SetLineColor(Color_t lcolor)
virtual void SetMarkerColor(Color_t mcolor=1)
virtual void SetMarkerStyle(Style_t mstyle=1)
virtual void SetMarkerSize(Size_t msize=1)
virtual void SetTextAlign(Short_t align=11)
virtual void SetTextColor(Color_t tcolor=1)
virtual void SetTextSize(Float_t tsize=1)
virtual Int_t FindBin(const char *label)
virtual void SetRangeUser(Double_t ufirst, Double_t ulast)
virtual void SetRange(Int_t first=0, Int_t last=0)
virtual Double_t GetBinWidth(Int_t bin) const
virtual Int_t IsInside(Double_t x, Double_t y) const
void Clear(Option_t *option="") override
TCanvasImp * GetCanvasImp() const override
TVirtualPad * cd(Int_t subpadnumber=0) override
TMethod * GetMethodAllAny(const char *method)
TMethod * GetMethodAny(const char *method)
virtual void AddAll(const TCollection *col)
virtual Int_t GetEntries() const
virtual void SetOwner(Bool_t enable=kTRUE)
virtual Bool_t IsEmpty() const
Bool_t Contains(const char *name) const
TClass * IsA() const override
virtual TDirectory * GetDirectory(const char *namecycle, Bool_t printError=false, const char *funcname="GetDirectory")
virtual TList * GetListOfKeys() const
virtual const char * GetValue(const char *name, const char *dflt) const
virtual void SetValue(const char *name, const char *value, EEnvLevel level=kEnvChange, const char *type=nullptr)
virtual void SaveLevel(EEnvLevel level)
virtual void SetParameters(const Double_t *params)
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
virtual void SetParameter(const TString &name, Double_t value)
static TFile * Open(const char *name, Option_t *option="", const char *ftitle="", Int_t compress=ROOT::RCompressionSetting::EDefaults::kUseCompiledDefault, Int_t netopt=0)
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
virtual Bool_t IsEditable() const
virtual Double_t Eval(Double_t x, TSpline *spline=nullptr, Option_t *option="") const
void SetName(const char *name="") override
void Draw(Option_t *chopt="") override
void Draw(Option_t *option="") override
virtual void SetMinimum(Double_t minimum=-1111)
virtual Double_t GetMinimum(Double_t minval=-FLT_MAX) const
TH1D * ProjectionY(const char *name="_py", Int_t firstxbin=0, Int_t lastxbin=-1, Option_t *option="") const
Bool_t IsFolder() const override
virtual const char * GetClassName() const
const char * GetName() const override
TClass * IsA() const override
virtual const char * GetName() const
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual const char * ClassName() const
virtual Bool_t InheritsFrom(const char *classname) const
virtual void Draw(Option_t *option="")
virtual void Info(const char *method, const char *msgfmt,...) const
TList * GetListOfPrimitives() const override
const char * GetName() const override
virtual void SetLabel(const char *label)
const char * GetTitle() const override
virtual TText * AddText(const char *label)
void Draw(Option_t *option="") override
const char * GetName() const override
virtual void SetName(const char *name="")
virtual void SetBorderSize(Int_t bordersize=4)
Double_t * GetPositionY() const
virtual Int_t Search(const TH1 *hist, Double_t sigma=2, Option_t *option="", Double_t threshold=0.05)
Double_t * GetPositionX() const
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
const char * Data() const
Bool_t EqualTo(const char *cs, ECaseCompare cmp=kExact) const
TString & Prepend(char c, Ssiz_t rep=1)
virtual Int_t Sizeof() const
void Form(const char *fmt,...)
TString & Remove(EStripType s, char c)
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
TString & ReplaceAll(const char *s1, const char *s2)
void SetOptTitle(Int_t tit=1)
void SetPadTopMargin(Float_t margin=0.1)
void SetOptStat(Int_t stat=1)
void SetPadBottomMargin(Float_t margin=0.1)
void SetFrameFillColor(Color_t color=1)
void SetPadRightMargin(Float_t margin=0.1)
void SetTitleFont(Style_t font=62, Option_t *axis="X")
void SetPadTickY(Int_t ticky)
void SetTitleOffset(Float_t offset=1, Option_t *axis="X")
void SetPadTickX(Int_t tickx)
void SetPalette(Int_t ncolors=kBird, Int_t *colors=nullptr, Float_t alpha=1.)
void SetLabelFont(Style_t font=62, Option_t *axis="X")
void SetPadLeftMargin(Float_t margin=0.1)
void SetTitleSize(Float_t size=0.02, Option_t *axis="X")
void SetNdivisions(Int_t n=510, Option_t *axis="X")
void SetHatchesSpacing(Double_t h)
void SetHatchesLineWidth(Int_t l)
void SetLabelSize(Float_t size=0.04, Option_t *axis="X")
Bool_t cd(const char *path)
virtual const char * Getenv(const char *env)
virtual UserGroup_t * GetUserInfo(const char *user=nullptr)
virtual Bool_t AccessPathName(const char *path, EAccessMode mode=kFileExists)
virtual const char * BaseName(const char *pathname)
virtual char * ExpandPathName(const char *path)
virtual void Modified(Bool_t flag=1)=0
virtual void SetLogx(Int_t value=1)=0
virtual Double_t GetUymax() const=0
virtual TFrame * GetFrame()=0
virtual Int_t GetEventX() const=0
virtual TObject * GetSelected() const=0
virtual void SetLogz(Int_t value=1)=0
virtual Double_t AbsPixeltoX(Int_t px)=0
virtual Double_t GetUxmax() const=0
virtual Double_t AbsPixeltoY(Int_t py)=0
virtual Double_t GetUymin() const=0
virtual Int_t GetEvent() const=0
virtual Double_t GetUxmin() const=0
virtual void SetLogy(Int_t value=1)=0
virtual Int_t GetEventY() const=0
RVec< PromoteType< T > > abs(const RVec< T > &v)
void update(const LAYERDATA &prevLayerData, LAYERDATA &currLayerData, double factorWeightDecay, EnumRegularization regularization)
Double_t Min(Double_t a, Double_t b)
Double_t Sign(Double_t a, Double_t b)
constexpr Double_t DegToRad()
Double_t Max(Double_t a, Double_t b)