219 Error(
"GetContourList",
"Contour level (%g) outside the Z scope [%g,%g]",
241 std::vector<Double_t>
xs0(
fNdt);
242 std::vector<Double_t>
ys0(
fNdt);
243 std::vector<Double_t>
xs1(
fNdt);
244 std::vector<Double_t>
ys1(
fNdt);
245 for (i=0;i<
fNdt;i++) {
258 for(it=0; it<
fNdt; it++) {
276 if (
i0==0 &&
i2==0) {
277 Error(
"GetContourList",
"wrong vertices ordering");
292 if(contour >= z0 && contour <=
z2) {
293 r20 = (contour-z0)/(
z2-z0);
296 if(contour >=
z1 && contour <=
z2) {
301 r10 = (contour-z0)/(
z1-z0);
334 if (
i0==0 &&
i2==0) {
335 Error(
"GetContourList",
"wrong vertices ordering");
350 if(contour >= z0 && contour <=
z2) {
351 r20 = (contour-z0)/(
z2-z0);
354 if(contour >=
z1 && contour <=
z2) {
359 r10 = (contour-z0)/(
z1-z0);
395 if (
is==
js)
continue;
409 list->Add(graph);
npg = 0;
445 list->Add(graph);
npg = 0;
486 list->Add(graph);
npg = 0;
535 first =
yaxis->GetFirst();
569 for (
Int_t k=0; k<ndiv; k++) {
573 while (
auto obj = next()) {
597 Error(
"PaintErrors",
"No TView in current pad");
723 if (zmin==-1111 && zmax==-1111) {
732 if (
fZ[
p[1]]<=z0) {z0=
fZ[
p[1]]; x0=
x[1];
y0=
y[1];
i0=1;}
734 if (
fZ[
p[2]]<=z0) {z0=
fZ[
p[2]]; x0=
x[2];
y0=
y[2];
i0=2;}
741 if (z0>zmax) z0 = zmax;
742 if (
z2>zmax)
z2 = zmax;
743 if (z0<zmin) z0 = zmin;
744 if (
z2<zmin)
z2 = zmin;
745 if (
z1>zmax)
z1 = zmax;
746 if (
z1<zmin)
z1 = zmin;
786 gPad->PaintFillArea(3,
x,
y);
794 zi = (((
ci+1)*(zmax-zmin))/(ncolors-1))+zmin;
828 zi = (((
ci+1)*(zmax-zmin))/(ncolors-1))+zmin;
867 for(i=0; i<
nblev; i++){
900 Error(
"PaintPolyMarker",
"No TView in current pad");
971 for (it=0; it<
npd; it++) {
975 gPad->PaintPolyMarker(1,
xm.data()+it,
ym.data()+it);
997 Error(
"PaintPolyLine",
"No TView in current pad");
1045 for (
Int_t i=0; i<
n; i++) {
1049 gPad->PaintPolyMarker(1,&
x[i],&
y[i]);
1053 gPad->PaintPolyMarker(1,&
x[i],&
y[i]);
1078 std::vector<Int_t> order;
1079 std::vector<Double_t> dist;
1083 Error(
"PaintTriangles",
"No TView in current pad");
1098 std::vector<Double_t>
glev;
1102 Double_t binLow = 0, binHigh = 0, binWidth = 0;
1107 if (!
r0 || !
r1)
return;
1111 binLow, binHigh, nbins, binWidth,
" ");
1116 binWidth = (binHigh-binLow)/nbins;
1145 for (it=0; it<
fNdt; it++) {
1151 if ((
cp >= 0) && (
sp >= 0.)) {
1153 }
else if ((
cp <= 0) && (
sp >= 0.)) {
1156 }
else if ((
cp <= 0) && (
sp <= 0.)) {
1175 for (it=0; it<
fNdt; it++) {
1179 for (
Int_t k=0; k<3; k++) {
1182 if(
fZ[t[k]-1] < zmin ||
fZ[t[k]-1] > zmax)
goto endloop;
1201 gPad->PaintFillArea(3,
x,
y);
1213 gPad->PaintPolyMarker(3,
x,
y);
1237 Error(
"PaintTriangles",
"No TView in current pad");
1252 std::vector<Double_t>
glev;
1256 Double_t binLow = 0, binHigh = 0, binWidth = 0;
1261 if (!
r0 || !
r1)
return;
1265 binLow, binHigh, nbins, binWidth,
" ");
1270 binWidth = (binHigh-binLow)/nbins;
1298 if ((
cp >= 0) && (
sp >= 0.)) {
1300 }
else if ((
cp <= 0) && (
sp >= 0.)) {
1303 }
else if ((
cp <= 0) && (
sp <= 0.)) {
1310 typedef std::pair<Double_t, TGraphDelaunay2D::Triangles::const_iterator>
DistEntry;
1311 std::vector<DistEntry> dist;
1317 dist.emplace_back(fDist(
xd,
yd), it);
1320 std::sort(dist.begin(), dist.end(),
1321 [&](
const DistEntry &
a,
const DistEntry &
b){ return !reverse ? (a.first < b.first) : (b.first < a .first); });
1333 for (
const auto & it : dist) {
1334 p[0] = it.second->idx[0];
1335 p[1] = it.second->idx[1];
1336 p[2] = it.second->idx[2];
1337 for (
Int_t k=0; k<3; k++) {
1359 gPad->PaintFillArea(3,
x,
y);
1371 gPad->PaintPolyMarker(3,
x,
y);
int Int_t
Signed integer 4 bytes (int)
float Float_t
Float 4 bytes (float)
double Double_t
Double 8 bytes.
const char Option_t
Option string (const char)
ROOT::Detail::TRangeCast< T, true > TRangeDynCast
TRangeDynCast is an adapter class that allows the typed iteration through a TCollection.
winID h TVirtualViewer3D TVirtualGLPainter p
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 fs
Option_t Option_t TPoint TPoint const char y1
R__EXTERN TH1 * gCurrentHist
R__EXTERN Hoption_t Hoption
R__EXTERN TStyle * gStyle
virtual Int_t GetNdivisions() const
virtual Color_t GetFillColor() const
Return the fill area color.
virtual Style_t GetFillStyle() const
Return the fill area style.
virtual void SetFillColor(Color_t fcolor)
Set the fill area color.
virtual void SetFillStyle(Style_t fstyle)
Set the fill area style.
virtual Color_t GetLineColor() const
Return the line color.
virtual void SetLineStyle(Style_t lstyle)
Set the line style.
virtual Width_t GetLineWidth() const
Return the line width.
virtual void SetLineWidth(Width_t lwidth)
Set the line width.
virtual void SetLineColor(Color_t lcolor)
Set the line color.
virtual Style_t GetLineStyle() const
Return the line style.
virtual Style_t GetMarkerStyle() const
Return the marker style.
virtual void SetMarkerColor(Color_t mcolor=1)
Set the marker color.
virtual Color_t GetMarkerColor() const
Return the marker color.
virtual Size_t GetMarkerSize() const
Return the marker size.
virtual void SetMarkerStyle(Style_t mstyle=1)
Set the marker style.
virtual void SetMarkerSize(Size_t msize=1)
Set the marker size.
Class to manage histogram axis.
void PaintContour(Option_t *option)
Paints the 2D graph as a contour plot.
Int_t * fNTried
! Pointer to fDelaunay->fNTried
Double_t * fYN
! Pointer to fDelaunay->fYN
TGraphDelaunay * fDelaunay
! Pointer to the TGraphDelaunay2D to be painted
void Paint(Option_t *option) override
Paint a TGraphDelaunay according to the value of "option":
Double_t fYmin
! fGraph2D->fHistogram Ymin
Double_t * fZ
! Pointer to fGraph2D->fZ
void PaintLevels(Int_t *v, Double_t *x, Double_t *y, Int_t nblev=0, Double_t *glev=nullptr)
Paints one triangle.
TGraphDelaunay2D * fDelaunay2D
! Pointer to the TGraphDelaunay2D to be painted
TGraph2D * fGraph2D
! Pointer to the TGraph2D in fDelaunay
void PaintErrors(Option_t *option)
Paints the 2D graph as error bars.
Double_t * fXN
! Pointer to fDelaunay->fXN
Int_t * fMTried
! Pointer to fDelaunay->fMTried
void FindTriangles()
Find triangles in fDelaunay and initialise the TGraph2DPainter values needed to paint triangles or fi...
Int_t * fPTried
! Pointer to fDelaunay->fPTried
Double_t fXNmin
! Equal to fDelaunay->fXNmin
Double_t fXmax
! fGraph2D->fHistogram Xmax
Double_t * fEZhigh
! Pointer to fGraph2D->fZEhigh
Int_t fNpoints
! Equal to fGraph2D->fNpoints
Double_t fZmin
! fGraph2D->fHistogram Zmin
Int_t fNdt
! Equal to fDelaunay->fNdt
Double_t * fEYlow
! Pointer to fGraph2D->fYElow
TList * GetContourList(Double_t contour)
Returns the X and Y graphs building a contour.
Double_t * fX
! Pointer to fGraph2D->fX
Double_t fYmax
! fGraph2D->fHistogram Ymax
Double_t * fEXhigh
! Pointer to fGraph2D->fXEhigh
void PaintPolyMarker0(Int_t n, Double_t *x, Double_t *y)
Paints a circle at each vertex. Each circle background is white.
void PaintTriangles(Option_t *option)
Paints the 2D graph as triangles.
void PaintPolyMarker(Option_t *option)
Paints the 2D graph as PaintPolyMarker.
Double_t * fY
! Pointer to fGraph2D->fY
Double_t fYNmin
! Equal to fDelaunay->fYNmin
Double_t * fEXlow
! Pointer to fGraph2D->fXElow
void PaintPolyLine(Option_t *option)
Paints the 2D graph as PaintPolyLine.
Double_t * fEYhigh
! Pointer to fGraph2D->fYEhigh
TGraph2DPainter()
TGraph2DPainter default constructor.
Double_t fZmax
! fGraph2D->fHistogram Zmax
void PaintTriangles_old(Option_t *option)
Paints the 2D graph as triangles (old implementation)
void GetGraph2dProperties()
Protected method to get all TGraph2D properties.
~TGraph2DPainter() override
TGraph2DPainter destructor.
Double_t fYNmax
! Equal to fDelaunay->fYNmax
Double_t * fEZlow
! Pointer to fGraph2D->fZElow
Double_t fXmin
! fGraph2D->fHistogram Xmin
Double_t fXNmax
! Equal to fDelaunay->fXNmax
void PaintTriangles_new(Option_t *option)
Paints the 2D graph as triangles (new implementation)
virtual Double_t * GetEZhigh() const
Double_t GetMaximum() const
virtual Double_t GetZminE() const
Double_t GetMinimum() const
virtual Double_t GetZmaxE() const
virtual Double_t * GetEZ() const
Double_t GetZmax() const
Returns the Z maximum.
virtual Double_t * GetEYhigh() const
virtual Double_t * GetEY() const
virtual Double_t * GetEXhigh() const
virtual Double_t * GetEXlow() const
virtual Double_t * GetEX() const
virtual Double_t * GetEZlow() const
virtual Double_t * GetEYlow() const
TGraphDelaunay2D generates a Delaunay triangulation of a TGraph2D.
Triangles::const_iterator begin() const
Double_t GetXNmax() const
TGraph2D * GetGraph2D() const
Triangles::const_iterator end() const
Double_t GetXNmin() const
Double_t GetYNmax() const
Double_t GetYNmin() const
TGraphDelaunay generates a Delaunay triangulation of a TGraph2D.
Double_t GetYNmax() const
Int_t * GetMTried() const
Double_t GetXNmin() const
TGraph2D * GetGraph2D() const
Double_t GetXNmax() const
void FindAllTriangles()
Attempt to find all the Delaunay triangles of the point set.
Int_t * GetPTried() const
Int_t * GetNTried() const
Double_t GetYNmin() const
A TGraph is an object made of two arrays X and Y with npoints each.
virtual void SetPoint(Int_t i, Double_t x, Double_t y)
Set x and y values for point number i.
TH1 is the base class of all histogram classes in ROOT.
virtual Double_t GetContourLevelPad(Int_t level) const
Return the value of contour number "level" in Pad coordinates.
@ kUserContour
User specified contour levels.
virtual Double_t GetMaximum(Double_t maxval=FLT_MAX) const
Return maximum value smaller than maxval of bins in the range, unless the value has been overridden b...
virtual Int_t GetContour(Double_t *levels=nullptr)
Return contour values into array levels if pointer levels is non zero.
virtual void SetContour(Int_t nlevels, const Double_t *levels=nullptr)
Set the number and values of contour levels.
virtual Double_t GetMinimum(Double_t minval=-FLT_MAX) const
Return minimum value larger than minval of bins in the range, unless the value has been overridden by...
static void Optimize(Double_t A1, Double_t A2, Int_t nold, Double_t &BinLow, Double_t &BinHigh, Int_t &nbins, Double_t &BWID, Option_t *option="")
Static function to compute reasonable axis limits.
R__ALWAYS_INLINE Bool_t TestBit(UInt_t f) const
virtual void Delete(Option_t *option="")
Delete this object.
virtual void Error(const char *method, const char *msgfmt,...) const
Issue error message.
void ToLower()
Change string to lower-case.
Bool_t Contains(const char *pat, ECaseCompare cmp=kExact) const
Int_t GetColorPalette(Int_t i) const
Return color number i in current palette.
Int_t GetNumberOfColors() const
Return number of colors in the color palette.
Int_t GetNumberContours() const
virtual Double_t * GetRmax()=0
virtual Double_t * GetRmin()=0
virtual Double_t GetLongitude()=0
virtual void WCtoNDC(const Float_t *pw, Float_t *pn)=0
Short_t Max(Short_t a, Short_t b)
Returns the largest of a and b.
Short_t Min(Short_t a, Short_t b)
Returns the smallest of a and b.
Double_t Cos(Double_t)
Returns the cosine of an angle of x radians.
Double_t Sin(Double_t)
Returns the sine of an angle of x radians.
void Sort(Index n, const Element *a, Index *index, Bool_t down=kTRUE)
Sort the n elements of the array a of generic templated type Element.
Double_t Log10(Double_t x)
Returns the common (base-10) logarithm of x.
Short_t Abs(Short_t d)
Returns the absolute value of parameter Short_t d.
Histograms' drawing options structure.
int Logx
log scale in X. Also set by histogram option
int Logz
log scale in Z. Also set by histogram option
int Logy
log scale in Y. Also set by histogram option