35 fSpiderOption =
"DRLF";
67 AddMethod(
"SaveCurrentGrid");
68 AddMethod(
"SpiderIdentification");
69 AddMethod(
"ChangeMasses");
70 AddMethod(
"ChangeCharges");
71 AddMethod(
"SelectLinesByZ");
72 AddMethod(
"MakeScaleX");
73 AddMethod(
"MakeScaleY");
74 AddMethod(
"SetSelectedColor");
75 AddMethod(
"SetPointStyle");
76 AddMethod(
"SetPointSize");
77 AddMethod(
"SetVarXVarY");
78 AddMethod(
"SetRunList");
79 AddMethod(
"AddParameter");
80 AddMethod(
"SetXScaleFactor");
81 AddMethod(
"SetYScaleFactor");
82 AddMethod(
"SetSVGMode");
84 ft =
new TF1(
"tranlation",
"(x+[0])", 0, 50000);
85 fs =
new TF1(
"scale",
"(x-[0])*[1]+[0]", 0, 50000);
86 fsy =
new TF1(
"scale_y",
"(x-[0])*[1]+[0]", 0, 50000);
88 frx =
new TF2(
"rotation_x",
"(x-[0])*TMath::Cos([2])-(y-[1])*TMath::Sin([2])+[0]", 0, 50000);
89 fry =
new TF2(
"rotation_y",
"(x-[0])*TMath::Sin([2])+(y-[1])*TMath::Cos([2])+[1]", 0, 50000);
95 lplabel->SetOwner(
kTRUE);
97 lplabel2->SetOwner(
kTRUE);
99 lplabel3->SetOwner(
kTRUE);
101 lplabel4->SetOwner(
kTRUE);
103 lplabel5->SetOwner(
kTRUE);
122 fCanvas->AddExec(
"transform",
"gIDGridEditor->MakeTransformation()");
123 fCanvas->AddExec(
"recommence",
"gIDGridEditor->SelectLabel()");
127 dynamic_cast<TGMainFrame*
>(fCanvas->GetCanvasImp())->Connect(
"CloseWindow()",
"KVIDGridEditor",
this,
"CanvasWasClosed()");
128 fPad = fCanvas->cd();
131 if (TheHisto) TheHisto->Draw(
"col");
132 if (TheGrid) TheGrid->Draw();
174 itrans = iact = iopt = 0;
213 dynamic_cast<TGMainFrame*
>(fCanvas->GetCanvasImp())->Disconnect(
"CloseWindow()",
"KVIDGridEditor",
this,
"CanvasWasClosed()");
238 ResetColor(ListOfLines);
239 ListOfLines->Clear();
252 if (!IsClosed()) TheGrid->UnDraw();
260 lplabel->Execute(
"SetTextSize",
"0.625");
261 lplabel->Execute(
"SetFillColor",
"kWhite");
262 lplabel2->Execute(
"SetTextSize",
"0.625");
263 lplabel2->Execute(
"SetFillColor",
"kWhite");
264 lplabel3->Execute(
"SetTextSize",
"0.6");
265 lplabel3->Execute(
"SetFillColor",
"kWhite");
266 lplabel4->Execute(
"SetTextSize",
"0.6");
267 lplabel4->Execute(
"SetFillColor",
"kWhite");
269 lplabel->Execute(
"SetBorderSize",
"1");
270 lplabel2->Execute(
"SetBorderSize",
"1");
271 lplabel3->Execute(
"SetBorderSize",
"1");
272 lplabel4->Execute(
"SetBorderSize",
"1");
273 lplabel5->Execute(
"SetBorderSize",
"1");
291 fCanvas->SaveAs(
Form(
"%s/gIDGridEditorPrint-%d.png", dir.
Data(), fSVGIndex));
441 templabel =
new TPaveLabel(x1, y1, x2, y2,
"+",
"NDC");
447 y1 = 0.90 - i * 0.06;
456 y1 = 0.90 - i * 0.06;
459 templabel =
new TPaveLabel(x1, y1, x2, y2,
"-",
"NDC");
527 thelist->
Add(templabel);
544 if (!the_directory)
return;
547 while ((key = (
TKey*)next_key())) {
583 while ((obj = nextmem())) {
591 while ((
f = (
TFile*)next())) {
596 HistosNames.
Begin(
" ");
597 while (!HistosNames.
End()) {
599 if (
g !=
"gIDGridEditorDefaultHistogram") histos.
Add(
new TObjString(
g.Data()));
606 while ((canv = (
TCanvas*)nextc())) {
608 if (strcmp(canv->
GetName(),
"gIDGridEditorCanvas")) {
611 while ((obj1 = next_step1())) {
615 TIter next_step2(((
TPad*)obj1)->GetListOfPrimitives());
616 while ((obj2 = next_step2())) {
617 printf(
"%s\n", obj2->
GetName());
654 HistosNames +=
Form(
" %s",
s->GetString().Data());
680 result = Iter.
Data();
689 result = Iter.
Data();
713 Choices +=
"Current ";
715 else Default =
"Dummy";
719 else if (Select ==
"") {
724 Choices += Select.
Data();
729 while (!Listo.
End()) {
731 if (
s != Select) Choices +=
Form(
"%s ",
s.Data());
745 else Answer = Default;
761 else Answer =
"Dummy";
778 if ((TmpH = (
TH2*)
gROOT->FindObject(hname.
Data())))
delete TmpH;
784 cout <<
"ERROR: KVIDGridEditor::SetHisto(): '" << hh->
GetName() <<
"' must be a 2D histogram !" << endl;
824 if (strcmp(
cc->GetName(),
"gIDGridEditorCanvas")) {
825 if ((obj =
cc->FindObject(histoname))) {
866 cout <<
"ERROR: KVIDGridEditor::SetHisto(): invalid pointer on the grid !" << endl;
897 if (!strcmp(GridName.
Data(),
"")) {
899 Bool_t proposename =
false;
906 new KVInputDialog(
gClient->GetDefaultRoot(),
"Enter the name of your grid :", &Answer, &okpressed);
907 if (!okpressed)
return;
908 GridName = Answer.
Data();
915 cout <<
"WARNING: KVIDGridEditor::SetGrid(): Unknown grid named '" << GridName.
Data() <<
"' !" << endl;
918 else SetGrid(tempgrid, sethisto);
1107 Double_t ddX = (X1 + X0) * 0.5 - px;
1109 if (distX >= 0.5)
return;
1117 Double_t ddY = (Y1 + Y0) * 0.5 - py;
1119 if (distY >= 0.5)
return;
1121 if ((distX <=
size) && (distY <=
size))
return;
1131 if ((X0 - dX > 0) && (X1 - dX < NbinsX)) {
1135 if ((Y0 - dY > 0) && (Y1 - dY < NbinsY)) {
1200 Int_t zmin, zmax, amin, amax;
1201 if (LastZ == SeleZ) {
1207 else if (LastZ < SeleZ) {
1221 for (
int Z = zmin; Z <= zmax; Z++) {
1228 if ((
line->GetA() > amin) && (
line->GetA() < amax)) {
1234 if ((
line->GetZ() == zmin) && (
line->GetA() > amin)) {
1239 if ((
line->GetZ() == zmax) && (
line->GetA() < amax)) {
1244 if ((
line->GetZ() != zmax) && (
line->GetZ() != zmin)) {
1287 else if (!strcmp(who,
"T_{X}"))
TranslateX(sign);
1288 else if (!strcmp(who,
"T_{Y}"))
TranslateY(sign);
1289 else if (!strcmp(who,
"R_{Z}"))
RotateZ(sign);
1290 else if (!strcmp(who,
"S_{X}"))
ScaleX(sign);
1291 else if (!strcmp(who,
"S_{Y}"))
ScaleY(sign);
1292 else if (!strcmp(who,
"S_{XY}"))
ScaleXY(sign);
1314 if ((ratio2 - ratio1 > 0.05)) {
1323 if ((ratio2 - ratio1 > 0.05)) {
1348 else if (commande.
Contains(
"Fit")) {
1355 else if (commande.
Contains(
"Test")) {
1362 else if (commande.
Contains(
"Mass")) {
1369 else if (commande.
Contains(
"Info")) {
1377 else if (commande.
Contains(
"More")) {
1384 else if (commande.
Contains(
"Delete")) {
1387 if (color ==
kRed) {
1398 else cout <<
"WARNING: KVIDGridEditor::DispatchOrder(): unknown order '" << commande <<
"' !" << endl;
1484 "Choose class of new identifier :",
1489 if (!okpressed)
return;
1491 else cut_class = cut_choices;
1499 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewLine(): New Line has been added to the current grid..." << endl;
1530 if (!strcmp(cut_default,
"")) {
1531 cut_types.
Begin(
" ");
1532 cut_default = cut_types.
Next();
1535 "Choose class of new cut :",
1547 else cut_class = cut_types;
1556 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewCut(): New Cut has been added to the current grid..." << endl;
1575 if (info_choices ==
"") info_choices =
gEnv->
GetValue(
Form(
"%s.InfoClass",
"KVIDGraph"),
"");
1578 if (info_choices ==
"") info_choices =
gEnv->
GetValue(
Form(
"%s.DefaultInfoClass",
"KVIDGraph"),
"");
1583 KVString info_types = info_choices;
1588 if (!strcmp(info_default,
"")) {
1589 info_types.
Begin(
" ");
1590 info_default = info_types.
Next();
1593 "Choose class of new info :",
1595 info_default.
Data(),
1605 else info_class = info_types;
1610 Info(
"NewInfo",
"Adding new info contour or line of class '%s'", info_class.
Data());
1615 if (
fDebug) cout <<
"INFO: KVIDGridEditor::NewInfo(): New info has been added to the current grid..." << endl;
1812 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TestGrid(): testing the current grid..." << endl;
1826 TMethod*
m = fitter->IsA()->GetMethodAny(
"FitPanel");
1828 cm->Action(fitter,
m);
1831 if (
fDebug) cout <<
"INFO: KVIDGridEditor::FitGrid(): fitting grid '" <<
TheGrid->
GetName() <<
"'..." << endl;
1848 if (!okpressed)
return;
1852 else if ((
m =
TheGrid->IsA()->GetMethodAllAny(Answer.
Data()))) {
1857 else if ((
m = IsA()->GetMethodAllAny(Answer.
Data()))) {
1859 cm->Action(
this,
m);
1862 else cout <<
"INFO: KVIDGridEditor::SuggestMoreAction(): '" << Answer <<
"' not implemented..." << endl;
1885 if ((found == -1) || (!
line))
continue;
1912 "KVIDGridEditor::SaveCurrentGrid",
Form(
"Do you wat to save the grid here : %s", fn.
Data()),
1916 if (ret_code ==
kMBYes) {
1922 const char* filetypes[] = {
1923 "ID Grid files",
"*.dat",
1936 if (!filenam.
Contains(
'.')) filenam +=
".dat";
1958 for (
int ii = 0; ii <
id->GetN(); ii++) {
1959 double xx =
id->
GetX()[ii];
1960 double yy =
id->GetY()[ii];
1962 if (ref) dyref = abs(yy - ref->
Eval(xx)) / 2;
1966 int nfound = spec.
Search(hh, dyref,
"goff", 0.05);
1973 for (
int ip = 0; ip < nfound; ip++) {
1977 if (ypeaks[ip] > threshold && (idr.
Z == id->
GetZ() && idr.
A == id->
GetA())) {}
1980 if (abs(xpeaks[ip] - yy) < dy) {
1981 dy = abs(xpeaks[ip] - yy);
1985 if (ygood > 0)
id->GetY()[ii] = ygood;
1997 static TString dir(
"$HISTOROOT");
2002 const char* filetypes[] = {
"Root files",
"*.root",
"All files",
"*", 0, 0};
2025 Choices +=
"kBlack kGreen kBlue kRed kYellow kCyan kMagenta";
2030 if (!okpressed)
return;
2146 Form(
"This will undo all changes to the grid. Are you sure, %s?", username.
Data()),
2149 if (ret_val &
kMBOk) {
2191 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TranslateX(): translation on the X axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2212 if (
fDebug) cout <<
"INFO: KVIDGridEditor::TranslateY(): translation on the Y axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2246 if (X0 >= X1) X0 = X1 - 1;
2248 if ((X0 - dX) < 0) ax->
SetRange(0, X1 - X0);
2250 else ax->
SetRange(X0 - dX, X1 - dX);
2260 if (Y0 >= Y1) Y0 = Y1 - 1;
2262 if ((Y0 - dY) < 0) ax->
SetRange(0, Y1 - Y0);
2264 else ax->
SetRange(Y0 - dY, Y1 - dY);
2281 if (step >= 45.) step = 45.;
2293 if (
fDebug) cout <<
"INFO: KVIDGridEditor::RotateZ(): rotation around the Z axis (" << (
Sign > 0 ?
"+" :
"-") << step <<
") !" << endl;
2366 if (
fDebug)
Info(
"ScaleX",
"scaling on the X axis (*%f) !", factor);
2390 if (
fDebug)
Info(
"ScaleY",
"scaling on the Y axis (*%f) !", factor);
2422 if (
fDebug)
Info(
"ScaleXY",
"scaling (*%f) !", factor);
2498 TIter nextidd(IdentList);
2524 if (
fDebug) cout <<
"INFO: KVIDGridEditor::ForceUpdate(): Canvas and Co has been updated !" << endl;
2658 gROOT->ForceStyle();
2707 gROOT->ForceStyle();
2892 if ((XX1 == 1) && (sign == 1))
return;
2893 if ((XX2 == xAxis->
GetNbins() - 1) && (sign == -1))
return;
2895 Int_t dX = (
Int_t)sign * (XX1 - XX2) * 0.25 * speed;
2897 xAxis->
SetRange(XX1 + dX, XX2 + dX);
2916 Int_t dX = (
Int_t) - 1 * (XX1 - XX2) * 0.1 * speed;
2918 axis->
SetRange(XX1 + dX, XX2 - dX);
2936 if ((XX1 == 1) && (sign == 1))
return;
2937 if ((XX2 == yAxis->
GetNbins() - 1) && (sign == -1))
return;
2939 Int_t dX = (
Int_t)sign * (XX1 - XX2) * 0.25 * speed;
2941 yAxis->
SetRange(XX1 + dX, XX2 + dX);
3028 Info(
"ChangeMasses",
"%d lines found for Z=%d", ll->
GetSize(), Z);
3033 Info(
"ChangeMasses",
"A=%d -> A=%d", id->
GetA(), id->
GetA() + dA);
3034 id->SetA(id->
GetA() + dA);
3052 for (
int i =
n - 1; i > 0; i--) {
3055 Info(
"ChangeMasses",
"%d lines found for Z=%d", ll->
GetSize(), Z);
3060 Info(
"ChangeMasses",
"Z=%d -> Z=%d", id->
GetZ(), id->
GetZ() + dZ);
3061 id->SetZ(id->
GetZ() + dZ);
3090 Info(
"PrintScalingRecap",
3091 "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 UpdateLastSavedVersion()
update last saved version. mkae copy of current state of graph.
void RemoveInfo(KVIDentifier *)
Remove and destroy cut.
void Draw(Option_t *opt="")
const KVList * GetCuts() const
TVirtualPad * GetPad() const
const KVList * GetInfos() const
void RevertToLastSavedVersion()
virtual void Identify(Double_t, Double_t, KVIdentificationResult *) const =0
KVIDentifier * GetIdentifier(Int_t Z, Int_t A) 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
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 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 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 void Scale(Double_t sx=-1, Double_t sy=-1)
virtual Int_t GetA() const
virtual Int_t GetZ() const
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
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
TCanvasImp * GetCanvasImp() const override
TVirtualPad * cd(Int_t subpadnumber=0) override
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
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 Double_t Eval(Double_t x, TSpline *spline=nullptr, Option_t *option="") const
virtual void SetMinimum(Double_t minimum=-1111)
virtual void Draw(Option_t *option="")
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
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
virtual Int_t Search(const TH1 *hist, Double_t sigma=2, Option_t *option="", Double_t threshold=0.05)
Double_t * GetPositionX() const
Double_t * GetPositionY() 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)