35 fSpiderOption =
"DRLF";
66 AddMethod(
"SaveCurrentGrid");
67 AddMethod(
"SpiderIdentification");
68 AddMethod(
"ChangeMasses");
69 AddMethod(
"ChangeCharges");
70 AddMethod(
"SelectLinesByZ");
71 AddMethod(
"MakeScaleX");
72 AddMethod(
"MakeScaleY");
73 AddMethod(
"SetSelectedColor");
74 AddMethod(
"SetPointStyle");
75 AddMethod(
"SetPointSize");
76 AddMethod(
"SetVarXVarY");
77 AddMethod(
"SetRunList");
78 AddMethod(
"AddParameter");
79 AddMethod(
"SetXScaleFactor");
80 AddMethod(
"SetYScaleFactor");
81 AddMethod(
"SetSVGMode");
83 ft =
new TF1(
"tranlation",
"(x+[0])", 0, 50000);
84 fs =
new TF1(
"scale",
"(x-[0])*[1]+[0]", 0, 50000);
85 fsy =
new TF1(
"scale_y",
"(x-[0])*[1]+[0]", 0, 50000);
87 frx =
new TF2(
"rotation_x",
"(x-[0])*TMath::Cos([2])-(y-[1])*TMath::Sin([2])+[0]", 0, 50000);
88 fry =
new TF2(
"rotation_y",
"(x-[0])*TMath::Sin([2])+(y-[1])*TMath::Cos([2])+[1]", 0, 50000);
94 lplabel->SetOwner(
kTRUE);
96 lplabel2->SetOwner(
kTRUE);
98 lplabel3->SetOwner(
kTRUE);
100 lplabel4->SetOwner(
kTRUE);
102 lplabel5->SetOwner(
kTRUE);
121 fCanvas->AddExec(
"transform",
"gIDGridEditor->MakeTransformation()");
122 fCanvas->AddExec(
"recommence",
"gIDGridEditor->SelectLabel()");
125 fCanvas->Connect(
"Closed()",
"KVIDGridEditor",
this,
"CanvasWasClosed()");
126 fPad = fCanvas->cd();
129 if (TheHisto) TheHisto->Draw(
"col");
130 if (TheGrid) TheGrid->Draw();
167 itrans = iact = iopt = 0;
205 fCanvas->Disconnect(
"Closed()",
this,
"CanvasWasClosed()");
230 ResetColor(ListOfLines);
231 ListOfLines->Clear();
244 if (!IsClosed()) TheGrid->UnDraw();
252 lplabel->Execute(
"SetTextSize",
"0.625");
253 lplabel->Execute(
"SetFillColor",
"kWhite");
254 lplabel2->Execute(
"SetTextSize",
"0.625");
255 lplabel2->Execute(
"SetFillColor",
"kWhite");
256 lplabel3->Execute(
"SetTextSize",
"0.6");
257 lplabel3->Execute(
"SetFillColor",
"kWhite");
258 lplabel4->Execute(
"SetTextSize",
"0.6");
259 lplabel4->Execute(
"SetFillColor",
"kWhite");
261 lplabel->Execute(
"SetBorderSize",
"1");
262 lplabel2->Execute(
"SetBorderSize",
"1");
263 lplabel3->Execute(
"SetBorderSize",
"1");
264 lplabel4->Execute(
"SetBorderSize",
"1");
265 lplabel5->Execute(
"SetBorderSize",
"1");
283 fCanvas->SaveAs(
Form(
"%s/gIDGridEditorPrint-%d.png", dir.
Data(), fSVGIndex));
432 templabel =
new TPaveLabel(x1, y1, x2, y2,
"+",
"NDC");
438 y1 = 0.90 - i * 0.06;
447 y1 = 0.90 - i * 0.06;
450 templabel =
new TPaveLabel(x1, y1, x2, y2,
"-",
"NDC");
518 thelist->
Add(templabel);
535 if (!the_directory)
return;
538 while ((key = (
TKey*)next_key())) {
574 while ((obj = nextmem())) {
582 while ((
f = (
TFile*)next())) {
587 HistosNames.
Begin(
" ");
588 while (!HistosNames.
End()) {
590 if (
g !=
"gIDGridEditorDefaultHistogram") histos.
Add(
new TObjString(
g.Data()));
597 while ((canv = (
TCanvas*)nextc())) {
599 if (strcmp(canv->
GetName(),
"gIDGridEditorCanvas")) {
602 while ((obj1 = next_step1())) {
606 TIter next_step2(((
TPad*)obj1)->GetListOfPrimitives());
607 while ((obj2 = next_step2())) {
608 printf(
"%s\n", obj2->
GetName());
645 HistosNames +=
Form(
" %s",
s->GetString().Data());
671 result = Iter.
Data();
680 result = Iter.
Data();
704 Choices +=
"Current ";
706 else Default =
"Dummy";
710 else if (Select ==
"") {
715 Choices += Select.
Data();
720 while (!Listo.
End()) {
722 if (
s != Select) Choices +=
Form(
"%s ",
s.Data());
736 else Answer = Default;
752 else Answer =
"Dummy";
769 if ((TmpH = (
TH2*)
gROOT->FindObject(hname.
Data())))
delete TmpH;
775 cout <<
"ERROR: KVIDGridEditor::SetHisto(): '" << hh->
GetName() <<
"' must be a 2D histogram !" << endl;
809 if (strcmp(
cc->GetName(),
"gIDGridEditorCanvas")) {
810 if ((obj =
cc->FindObject(histoname))) {
851 cout <<
"ERROR: KVIDGridEditor::SetHisto(): invalid pointer on the grid !" << endl;
882 if (!strcmp(GridName.
Data(),
"")) {
884 Bool_t proposename =
false;
891 new KVInputDialog(
gClient->GetDefaultRoot(),
"Enter the name of your grid :", &Answer, &okpressed);
892 if (!okpressed)
return;
893 GridName = Answer.
Data();
900 cout <<
"WARNING: KVIDGridEditor::SetGrid(): Unknown grid named '" << GridName.
Data() <<
"' !" << endl;
903 else SetGrid(tempgrid, sethisto);
1092 Double_t ddX = (X1 + X0) * 0.5 - px;
1094 if (distX >= 0.5)
return;
1102 Double_t ddY = (Y1 + Y0) * 0.5 - py;
1104 if (distY >= 0.5)
return;
1106 if ((distX <=
size) && (distY <=
size))
return;
1116 if ((X0 - dX > 0) && (X1 - dX < NbinsX)) {
1120 if ((Y0 - dY > 0) && (Y1 - dY < NbinsY)) {
1185 Int_t zmin, zmax, amin, amax;
1186 if (LastZ == SeleZ) {
1192 else if (LastZ < SeleZ) {
1206 for (
int Z = zmin; Z <= zmax; Z++) {
1213 if ((
line->GetA() > amin) && (
line->GetA() < amax)) {
1219 if ((
line->GetZ() == zmin) && (
line->GetA() > amin)) {
1224 if ((
line->GetZ() == zmax) && (
line->GetA() < amax)) {
1229 if ((
line->GetZ() != zmax) && (
line->GetZ() != zmin)) {
1272 else if (!strcmp(who,
"T_{X}"))
TranslateX(sign);
1273 else if (!strcmp(who,
"T_{Y}"))
TranslateY(sign);
1274 else if (!strcmp(who,
"R_{Z}"))
RotateZ(sign);
1275 else if (!strcmp(who,
"S_{X}"))
ScaleX(sign);
1276 else if (!strcmp(who,
"S_{Y}"))
ScaleY(sign);
1277 else if (!strcmp(who,
"S_{XY}"))
ScaleXY(sign);
1299 if ((ratio2 - ratio1 > 0.05)) {
1308 if ((ratio2 - ratio1 > 0.05)) {
1333 else if (commande.
Contains(
"Fit")) {
1340 else if (commande.
Contains(
"Test")) {
1347 else if (commande.
Contains(
"Mass")) {
1354 else if (commande.
Contains(
"Info")) {
1362 else if (commande.
Contains(
"More")) {
1369 else if (commande.
Contains(
"Delete")) {
1372 if (color ==
kRed) {
1383 else cout <<
"WARNING: KVIDGridEditor::DispatchOrder(): unknown order '" << commande <<
"' !" << endl;
1469 "Choose class of new identifier :",
1474 if (!okpressed)
return;
1476 else cut_class = cut_choices;
1484 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewLine(): New Line has been added to the current grid..." << endl;
1515 if (!strcmp(cut_default,
"")) {
1516 cut_types.
Begin(
" ");
1517 cut_default = cut_types.
Next();
1520 "Choose class of new cut :",
1532 else cut_class = cut_types;
1541 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewCut(): New Cut has been added to the current grid..." << endl;
1560 if (info_choices ==
"") info_choices =
gEnv->
GetValue(
Form(
"%s.InfoClass",
"KVIDGraph"),
"");
1563 if (info_choices ==
"") info_choices =
gEnv->
GetValue(
Form(
"%s.DefaultInfoClass",
"KVIDGraph"),
"");
1568 KVString info_types = info_choices;
1573 if (!strcmp(info_default,
"")) {
1574 info_types.
Begin(
" ");
1575 info_default = info_types.
Next();
1578 "Choose class of new info :",
1580 info_default.
Data(),
1590 else info_class = info_types;
1595 Info(
"NewInfo",
"Adding new info contour or line of class '%s'", info_class.
Data());
1600 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewInfo(): New info has been added to the current grid..." << endl;
1797 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TestGrid(): testing the current grid..." << endl;
1811 TMethod*
m = fitter->IsA()->GetMethodAny(
"FitPanel");
1813 cm->Action(fitter,
m);
1816 if (
fDebug) cout <<
"INFO: KVIDGridEditor::FitGrid(): fitting grid '" <<
TheGrid->
GetName() <<
"'..." << endl;
1833 if (!okpressed)
return;
1837 else if ((
m =
TheGrid->IsA()->GetMethodAllAny(Answer.
Data()))) {
1842 else if ((
m = IsA()->GetMethodAllAny(Answer.
Data()))) {
1844 cm->Action(
this,
m);
1847 else cout <<
"INFO: KVIDGridEditor::SuggestMoreAction(): '" << Answer <<
"' not implemented..." << endl;
1870 if ((found == -1) || (!
line))
continue;
1890 const char* filetypes[] = {
1891 "ID Grid files",
"*.dat",
1904 if (!filenam.
Contains(
'.')) filenam +=
".dat";
1917 static TString dir(
"$HISTOROOT");
1922 const char* filetypes[] = {
"Root files",
"*.root",
"All files",
"*", 0, 0};
1945 Choices +=
"kBlack kGreen kBlue kRed kYellow kCyan kMagenta";
1950 if (!okpressed)
return;
2066 Form(
"This will undo all changes to the grid. Are you sure, %s?", username.
Data()),
2069 if (ret_val &
kMBOk) {
2111 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TranslateX(): translation on the X axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2132 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TranslateY(): translation on the Y axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2166 if (X0 >= X1) X0 = X1 - 1;
2168 if ((X0 - dX) < 0) ax->
SetRange(0, X1 - X0);
2170 else ax->
SetRange(X0 - dX, X1 - dX);
2180 if (Y0 >= Y1) Y0 = Y1 - 1;
2182 if ((Y0 - dY) < 0) ax->
SetRange(0, Y1 - Y0);
2184 else ax->
SetRange(Y0 - dY, Y1 - dY);
2201 if (step >= 45.) step = 45.;
2213 if (
fDebug) cout <<
"INFO: KVIDGridEditor::RotateZ(): rotation around the Z axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2286 if (
fDebug)
Info(
"ScaleX",
"scaling on the X axis (*%f) !", factor);
2310 if (
fDebug)
Info(
"ScaleY",
"scaling on the Y axis (*%f) !", factor);
2342 if (
fDebug)
Info(
"ScaleXY",
"scaling (*%f) !", factor);
2418 TIter nextidd(IdentList);
2444 if (
fDebug) cout <<
"INFO: KVIDGridEditor::ForceUpdate(): Canvas and Co has been updated !" << endl;
2578 gROOT->ForceStyle();
2627 gROOT->ForceStyle();
2812 if ((XX1 == 1) && (sign == 1))
return;
2813 if ((XX2 == xAxis->
GetNbins() - 1) && (sign == -1))
return;
2815 Int_t dX = (
Int_t)sign * (XX1 - XX2) * 0.25 * speed;
2817 xAxis->
SetRange(XX1 + dX, XX2 + dX);
2836 Int_t dX = (
Int_t) - 1 * (XX1 - XX2) * 0.1 * speed;
2838 axis->
SetRange(XX1 + dX, XX2 - dX);
2856 if ((XX1 == 1) && (sign == 1))
return;
2857 if ((XX2 == yAxis->
GetNbins() - 1) && (sign == -1))
return;
2859 Int_t dX = (
Int_t)sign * (XX1 - XX2) * 0.25 * speed;
2861 yAxis->
SetRange(XX1 + dX, XX2 + dX);
2948 Info(
"ChangeMasses",
"%d lines found for Z=%d", ll->
GetSize(), Z);
2953 Info(
"ChangeMasses",
"A=%d -> A=%d", id->
GetA(), id->
GetA() + dA);
2954 id->SetA(id->
GetA() + dA);
2972 for (
int i =
n - 1; i > 0; i--) {
2975 Info(
"ChangeMasses",
"%d lines found for Z=%d", ll->
GetSize(), Z);
2980 Info(
"ChangeMasses",
"Z=%d -> Z=%d", id->
GetZ(), id->
GetZ() + dZ);
2981 id->SetZ(id->
GetZ() + dZ);
3010 Info(
"PrintScalingRecap",
3011 "Scaling recap:\n X --> %f X + %f\n Y --> %f Y + %f"
KVIDGridEditor * gIDGridEditor
KVIDGridManager * gIDGridManager
std::vector< Int_t > IntArray
ClassImp(KVPartitionList) void KVPartitionList
Initialisation.
KVTreeAnalyzer * gTreeAnalyzer
size_t size(const MatrixT &matrix)
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
virtual void Copy(TObject &) const
Make a copy of this object.
Ask user to choose between several options in a drop-down list.
Extended version of ROOT THashList.
Wrapper for histograms and graphical cuts used by KVTreeAnalyzer.
Base class for particle identification in a 2D map.
void RemoveIdentifier(KVIDentifier *)
Remove and destroy identifier.
void RemoveInfo(KVIDentifier *)
Remove and destroy cut.
void Draw(Option_t *opt="")
TVirtualPad * GetPad() const
void RevertToLastSavedVersion()
KVList * GetInfos() const
void FindAxisLimits()
Calculate X/Y min/max of all objects in graph.
virtual void DrawAndAdd(const Char_t *type="ID", const Char_t *classname="KVIDentifier")
const Char_t * GetName() const
void WriteAsciiFile(const Char_t *filename)
Open, write and close ascii file containing this grid.
virtual void SetEditable(Bool_t editable=kTRUE)
virtual void Initialize()=0
KVList * GetIdentifiers() const
void RemoveCut(KVIDentifier *)
Remove and destroy cut.
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 Copy(TObject &) const
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
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()
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)
void MakeScaleX(Double_t scaleFactor)
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 MakeScaleY(Double_t scaleFactor)
KVList * ListOfLines
liste des lignes selectionnees
void SetSelectedColor(Int_t color)
TH2 * TheHisto
pointeur sur l'histogramme
void SelectTrans(TPaveLabel *label)
void ResetColor(KVIDentifier *Ident)
void Clear(const Option_t *opt="")
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.
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
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)
Double_t y0
coordonne y du pivot
Bool_t dlmode
true si mode delete
void AddAction(TString label)
Hybrid 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 void Scale(Double_t sx=-1, Double_t sy=-1)
virtual Int_t GetA() const
virtual Int_t GetZ() const
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
KVSeqCollection * GetSubListWithMethod(const Char_t *retvalue, const Char_t *method) const
virtual void AddLast(TObject *obj)
virtual void SetOwner(Bool_t enable=kTRUE)
virtual void Clear(Option_t *option="")
virtual Int_t GetSize() const
virtual TObject * At(Int_t idx) const
virtual void Execute(const char *method, const char *params, Int_t *error=0)
virtual void Add(TObject *obj)
virtual TObject * Remove(TObject *obj)
Remove object from list.
virtual void Delete(Option_t *option="")
virtual TObject * FindObject(const char *name) const
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.
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 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
void Clear(Option_t *option="") override
TVirtualPad * cd(Int_t subpadnumber=0) override
virtual void AddAll(const TCollection *col)
virtual Int_t GetEntries() const
virtual Bool_t IsEmpty() const
Bool_t Contains(const char *name) const
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 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 void SetName(const char *name="")
virtual void Draw(Option_t *chopt="")
virtual void SetMinimum(Double_t minimum=-1111)
virtual void Draw(Option_t *option="")
virtual Double_t GetMinimum(Double_t minval=-FLT_MAX) const
virtual const char * GetClassName() const
virtual const char * GetName() const
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
const char * GetName() const override
TList * GetListOfPrimitives() const override
virtual void SetLabel(const char *label)
const char * GetTitle() const
virtual void Draw(Option_t *option="")
virtual TText * AddText(const char *label)
virtual void SetName(const char *name="")
virtual void SetBorderSize(Int_t bordersize=4)
Option_t * GetName() const
Bool_t EndsWith(const char *pat, ECaseCompare cmp=kExact) const
Bool_t EqualTo(const char *cs, ECaseCompare cmp=kExact) const
const char * Data() 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 SetPalette(Int_t ncolors=kBird, Int_t *colors=0, Float_t alpha=1.)
void SetPadTickY(Int_t ticky)
void SetTitleOffset(Float_t offset=1, Option_t *axis="X")
void SetPadTickX(Int_t tickx)
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 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 TObject * GetSelected() const=0
virtual TFrame * GetFrame()=0
virtual Int_t GetEventX() 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
const long double g
masses
const long double cc
volumes
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)