// @(#)root/graf:$Id$
// Author: Rene Brun, Olivier Couet   12/12/94

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>

#include "Riostream.h"
#include "TROOT.h"
#include "TGaxis.h"
#include "TVirtualPad.h"
#include "TVirtualX.h"
#include "TLine.h"
#include "TLatex.h"
#include "TStyle.h"
#include "TF1.h"
#include "TAxis.h"
#include "THashList.h"
#include "TObjString.h"
#include "TMath.h"
#include "THLimitsFinder.h"
#include "TColor.h"
#include "TClass.h"
#include "TTimeStamp.h"
#include "TSystem.h"

Int_t TGaxis::fgMaxDigits = 5;
Float_t TGaxis::fXAxisExpXOffset = 0.; //Exponent X offset for the X axis
Float_t TGaxis::fXAxisExpYOffset = 0.; //Exponent Y offset for the X axis
Float_t TGaxis::fYAxisExpXOffset = 0.; //Exponent X offset for the Y axis
Float_t TGaxis::fYAxisExpYOffset = 0.; //Exponent Y offset for the Y axis
const Int_t kHori = BIT(9); //defined in TPad

ClassImp(TGaxis)


//______________________________________________________________________________
/* Begin_Html
<center><h2>The axis painter class</h2></center>

Instances of this class are generated by the histograms and graphs painting
classes when <tt>TAxis</tt> are drawn. <tt>TGaxis</tt> is the "painter class"of
<tt>TAxis</tt>. Therefore it is mainly used via <tt>TAxis</tt>, even if is some
occasion  it can be used directly to draw an axis which is not part of a graph
or an instance. For instance to draw an extra scale on a plot.

<ul>
<li><a href="#GA00">Basic definition</li></a>
<li><a href="#GA01">Definition with a function</li></a>
<li><a href="#GA02">Logarithmic axis</li></a>
<li><a href="#GA03">Blank axis</li></a>
<li><a href="#GA04">Tick marks' orientation</li></a>
<li><a href="#GA05">Tick marks' size</li></a>
<li><a href="#GA06">Labels' positionning</li></a>
<li><a href="#GA07">Labels' orientation</li></a>
<li><a href="#GA08">Labels' position on tick marks</li></a>
<li><a href="#GA09">Labels' format</li></a>
<li><a href="#GA10">Alphanumeric labels</li></a>
<li><a href="#GA11">Number of divisions optimisation</li></a>
<li><a href="#GA12">Maximum Number of Digits for the axis labels</li></a>
<li><a href="#GA13"> Optional grid</li></a>
<li><a href="#GA14">Time axis</li></a>
</ul>

<a name="GA00"></a><h3>Basic definition</h3>
A <tt>TGaxis</tt> is defined the following way:
<p>
<big><b>
<pre>
TGaxis::TGaxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax,
               Double_t wmin, Double_t wmax, Int_t ndiv, Option_t *chopt,
               Double_t gridlength)
</pre>
</b></big>
Where:
<ul>
<li> xmin : X origin coordinate in user's coordinates space.
<li> xmax : X end axis coordinate in user's coordinates space.
<li> ymin : Y origin coordinate in user's coordinates space.
<li> ymax : Y end axis coordinate in user's coordinates space.
<li> wmin : Lowest value for the tick mark labels written on the axis.
<li> wmax : Highest value for the tick mark labels written on the axis.
<li> ndiv : Number of divisions.
<ul>
<li> ndiv=N1 + 100*N2 + 10000*N3
<li> N1=number of 1st divisions.
<li> N2=number of 2nd divisions.
<li> N3=number of 3rd divisions. e.g.:
<ul>
<li> ndiv=0 --> no tick marks.
<li> ndiv=2 --> 2 divisions, one tick mark in the middle of the axis.
</ul></ul>
<li>chopt : Drawing options (see below).
<li>gridlength: grid length on main tick marks.
</ul>

The example below generates various kind of axis.

End_Html
Begin_Macro(source)
{
   TCanvas *c1 = new TCanvas("c1","Examples of TGaxis",10,10,700,500);

   c1->Range(-10,-1,10,1);

   TGaxis *axis1 = new TGaxis(-4.5,-0.2,5.5,-0.2,-6,8,510,"");
   axis1->SetName("axis1");
   axis1->Draw();

   TGaxis *axis2 = new TGaxis(-4.5,0.2,5.5,0.2,0.001,10000,510,"G");
   axis2->SetName("axis2");
   axis2->Draw();

   TGaxis *axis3 = new TGaxis(-9,-0.8,-9,0.8,-8,8,50510,"");
   axis3->SetName("axis3");
   axis3->Draw();

   TGaxis *axis4 = new TGaxis(-7,-0.8,-7,0.8,1,10000,50510,"G");
   axis4->SetName("axis4");
   axis4->Draw();

   TGaxis *axis5 = new TGaxis(-4.5,-0.6,5.5,-0.6,1.2,1.32,80506,"-+");
   axis5->SetName("axis5");
   axis5->SetLabelSize(0.03);
   axis5->SetTextFont(72);
   axis5->SetLabelOffset(0.025);

   axis5->Draw();

   TGaxis *axis6 = new TGaxis(-4.5,0.6,5.5,0.6,100,900,50510,"-");
   axis6->SetName("axis6");
   axis6->Draw();

   TGaxis *axis7 = new TGaxis(8,-0.8,8,0.8,0,9000,50510,"+L");
   axis7->SetName("axis7");
   axis7->SetLabelOffset(0.01);
   axis7->Draw();

   //one can make axis going top->bottom. However because of a long standing
   //problem, the two x values should not be equal
   TGaxis *axis8 = new TGaxis(6.5,0.8,6.499,-0.8,0,90,50510,"-");
   axis8->SetName("axis8");
   axis8->Draw();
   return c1;
}
End_Macro
Begin_Html
<p>

<a name="GA01"></a><h3>Definition with a function</h3>

Instead of the wmin,wmax arguments of the normal definition, the
name of a <tt>TF1</tt> function can be specified. This function will be used to
map the user coordinates to the axis values and ticks.

A <tt>TGaxis</tt> is defined the following way:
<p>
<big><b>
<pre>
TGaxis::TGaxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax,
               const char *func, Int_t ndiv,   Option_t *chopt,
               Double_t gridlength)
</pre>
</b></big>
Where:
<ul>
<li> xmin : X origin coordinate in user's coordinates space.
<li> xmax : X end axis coordinate in user's coordinates space.
<li> ymin : Y origin coordinate in user's coordinates space.
<li> ymax : Y end axis coordinate in user's coordinates space.
<li> func : function defining axis labels and tick marks.
<li> ndiv : Number of divisions.
<ul>
<li> ndiv=N1 + 100*N2 + 10000*N3
<li> N1=number of 1st divisions.
<li> N2=number of 2nd divisions.
<li> N3=number of 3rd divisions. e.g.:
<ul>
<li> ndiv=0 --> no tick marks.
<li> ndiv=2 --> 2 divisions, one tick mark in the middle of the axis.
</ul></ul>
<li>chopt : Drawing options (see below).
<li>gridlength: grid length on main tick marks.
</ul>
<p>
Examples:
End_Html
Begin_Macro(source)
{
   TCanvas *c2 = new TCanvas("c2","c2",10,10,700,500);

   gStyle->SetOptStat(0);

   TH2F *h2 = new TH2F("h","Axes",100,0,10,100,-2,2);
   h2->Draw();

   TF1 *f1=new TF1("f1","-x",-10,10);
   TGaxis *A1 = new TGaxis(0,2,10,2,"f1",510,"-");
   A1->SetTitle("axis with decreasing values");
   A1->Draw();

   TF1 *f2=new TF1("f2","exp(x)",0,2);
   TGaxis *A2 = new TGaxis(1,1,9,1,"f2");
   A2->SetTitle("exponential axis");
   A2->SetLabelSize(0.03);
   A2->SetTitleSize(0.03);
   A2->SetTitleOffset(1.2);
   A2->Draw();

   TF1 *f3=new TF1("f3","log10(x)",1,1000);
   TGaxis *A3 = new TGaxis(2,-2,2,0,"f3",505,"G");
   A3->SetTitle("logarithmic axis");
   A3->SetLabelSize(0.03);
   A3->SetTitleSize(0.03);
   A3->SetTitleOffset(1.2);
   A3->Draw();
   return c2;
}
End_Macro
Begin_Html

<a name="GA02"></a><h3>Logarithmic axis</h3>
By default axis are linear. To define a <tt>TGaxis</tt> as logarithmic, it is
enough to create it with the option <tt>"G"</tt>.
<p>
When plotting an histogram or a graph the logarithmic scale can be set using:
<ul>
<li><tt>gPad->SetLogx(1);</tt> set the logarithmic scale on the X axis
<li><tt>gPad->SetLogy(1);</tt> set the logarithmic scale on the Y axis
</ul>

When the <tt>SetMoreLogLabels()</tt> method is called more labels are drawn
when in logarithmic scale and there is a small number of decades  (less than 3).

<a name="GA03"></a><h3>Blank axis</h3>
To draw only the axis tick marks without the axis body, it is enough to specify
the option <tt>"B"</tt>. It useful to superpose axis.

<a name="GA04"></a><h3>Tick marks' orientation</h3>

By default tick marks are drawn on the positive side of the axis, except for
vertical axis for which the default is negative. The <tt>chop</tt> parameter
allows to control the tick marks orientation:
<ul>
<li> <tt>chopt = "+"</tt>:  tick marks are drawn on Positive side. (default)
<li> <tt>chopt ="-"</tt>:   tick mark are drawn on the negative side.
<li> <tt>chopt = "+-"</tt>: tick marks are drawn on both sides of the axis.
<li> <tt>chopt = "U"</tt>:  Unlabelled axis, default is labeled.
</ul>

<a name="GA05"></a><h3>Tick marks' size</h3>

By default, tick marks have a length equal to 3 per cent of the axis length.
When the option "S" is specified, the length of the tick marks is equal to
<tt>fTickSize*axis_length</tt>, where <tt>fTickSize</tt> may be set via
<tt>TGaxis::SetTickSize</tt>.
<p>
When plotting an histogram <tt>h</tt> the tick marks size can be changed using:
<ul>
<li><tt>h->GetXaxis()->SetTickLength(0.02);</tt> set the tick length for the X axis
<li><tt>gStyle->SetTickLength(0.02,"x");</tt> set the tick length for the X axis
of all histograms drawn after this instruction.
</ul>
<p>
A good way to remove tick marks on an axis is to set the tick length to 0:
<tt>h->GetXaxis()->SetTickLength(0.);</tt>

<a name="GA06"></a><h3>Labels' positionning</h3>

Labels are normally drawn on side opposite to tick marks. However the option
<tt>"="</tt> allows to draw them on the same side.

<a name="GA07"></a><h3>Labels' orientation</h3>

By default axis labels are drawn parallel to the axis. However if the axis is vertical
then are drawn perpendicular to the axis.

<a name="GA08"></a><h3>Labels' position on tick marks</h3>

By default axis labels are centered on tick marks. However, for vertical axis,
they are right adjusted. The <tt>chop</tt> parameter allows to control the labels'
position on tick marks:
<ul>
<li><tt>chopt = "R"</tt>: labels are Right adjusted on tick mark.(default is centered)
<li><tt>chopt = "L"</tt>: labels are Left adjusted on tick mark.
<li><tt>chopt = "C"</tt>: labels are Centered on tick mark.
<li><tt>chopt = "M"</tt>: In the Middle of the divisions.
</ul>

<a name="GA09"></a><h3>Labels' format</h3>

Blank characters are stripped, and then the label is correctly aligned. the dot,
if last character of the string, is also stripped, unless the option <tt>"."</tt>
(a dot, or period) is specified. if <tt>SetDecimals(kTRUE)</tt> has been called
all labels have the same number of decimals after the <tt>"."</tt>
The same is true if <tt>gStyle->SetStripDecimals(kFALSE)</tt> has been called.
<p>
In the following, we have some parameters, like tick marks length and characters
height (in percentage of the length of the axis (user's coordinates))
The default values are as follows:
<ul>
<li> Primary tick marks: 3.0 %
<li> Secondary tick marks: 1.5 %
<li> Third order tick marks: .75 %
<li> Characters height for labels: 4%
<li> Labels offset: 1.0 %
</ul>
<p>
By default, an exponent of the form 10^N is used when the label values are either
all very small or very large. One can disable the exponent by calling
<tt>axis.SetNoExponent(kTRUE)</tt>.
<p>
<tt>TGaxis::SetExponentOffset(Float_t xoff, Float_t yoff, Option_t *axis)</tt> is
static function to set X and Y offset of the axis 10^n notation. It is in % of
the pad size. It can be negative. <tt>axis</tt> specifies which axis
(<tt>"x"</tt> or/and <tt>"y"</tt>), default is <tt>"x"</tt> if <tt>axis = "xz"</tt>
set the two axes

<a name="GA10"></a><h3>Alphanumeric labels</h3>

Axis labels can be any alphanumeric character strings. Such axis can be produced
only with histograms because the labels'definition is stored in <tt>TAxis</tt>.
The following example demonstrates how to create such labels.
End_Html
Begin_Macro(source)
../../../tutorials/hist/hlabels2.C
End_Macro
Begin_Html
<p>
Because the alphanumeric labels are usually longer that the numeric labels, their
size is by default equal to <tt>0.66666 * the_numeric_labels_size</tt>.

<a name="GA11"></a><h3>Number of divisions optimisation</h3>

By default the number of divisions on axis is optimised to show a coherent
labelling of the main tick marks. The number of division (<tt>ndiv</tt>) is a
composite integer given by:
<p>
<tt> ndiv = N1 + 100*N2 + 10000*N3</tt>
<uL>
<li> <tt>N1</tt> = number of 1st divisions.
<li> <tt>N2</tt> = number of 2nd divisions.
<li> <tt>N3</tt> = number of 3rd divisions.
</ul>
by default the value of <tt>N1</tt>, <tt>N2</tt> and <tt>N3</tt> are maximum
values. After optimisation the real number of divisions will be smaller or
equal to these value. If one wants to bypass the optimisation, the option <tt>"N"</tt>
should be given when the <tt>TGaxis</tt> is created. The option  <tt>"I"</tt>
also act on the number of division as it will force an integer labelling of
the axis.
<p>
On an histogram pointer <tt>h</tt> the number of divisions can be set in different
ways:.
<ul>
<li> Directly on the histogram. The following will set the number of division
to 510 on the X axis of <hh>h</tt>. To avoid optimization the number of divisions
should be negative (ie: -510);
<pre>
h->SetNdivisions(510, "X");
</pre>
<li> On the axis itself:
<pre>
h->GetXaxis()->SetNdivisions(510, kTRUE);
</pre>
The first parameter is the number of division. If it is negative of if the
second parameter is kFALSE then the number of divisions is not optimised.
And other signature is also allowed:
<pre>
h->GetXaxis()->SetNdivisions(10, 5, 0, kTRUE);
</pre>
</ul>

<a name="GA12"></a><h3>Maximum Number of Digits for the axis labels</h3>

The static function <tt>TGaxis::SetMaxDigits</tt> sets the maximum number of
digits permitted for the axis labels above which the notation with 10^N is used.
For example, to accept 6 digits number like 900000 on an axis call
<tt>TGaxis::SetMaxDigits(6)</tt>. The default value is 5.
<tt>fgMaxDigits</tt> must be greater than 0.
<a name="GA13"></a><h3> Optional grid</h3>

The option <tt>"W"</tt> allows to draw a grid on the primary tick marks. In case
of a log axis, the grid is only drawn for the primary tick marks if the number
of secondary and tertiary divisions is 0. <tt>SetGridLength()</tt> allows to define
the length of the grid.
<p>
When plotting an histogram or a graph the grid can be set ON or OFF using:
<ul>
<li><tt>gPad->SetGridy(1);</tt> set the grid on the X axis
<li><tt>gPad->SetGridx(1);</tt> set the grid on the Y axis
<li><tt>gPad->SetGrid(1,1);</tt> set the grid on both axis.
</ul>

<a name="GA14"></a><h3>Time axis</h3>

Axis labels may be considered as times, plotted in a defined time format.
The format is set with <tt>SetTimeFormat()</tt>.
The <tt>TGaxis</tt> minimum (<tt>wmin</tt>) and maximum (<tt>wmax</tt>) values
are considered as two time values in seconds.
The time axis will be spread around the time offset value (set with
<tt>SetTimeOffset()</tt>). Actually it will go from <tt>TimeOffset+wmin</tt>to
<tt>TimeOffset+wmax</tt>
<p>
Usually time axis are created automatically via histograms, but one may also
want to draw a time axis outside an "histogram context". This can be done
thanks to the option <tt>"T"</tt> of <tt>TGaxis</tt>.
End_Html
Begin_Macro(source)
{
   c1 = new TCanvas("c1","Examples of TGaxis",10,10,700,100);
   c1->Range(-10,-1,10,1);

   TGaxis *axis = new TGaxis(-8,0.,8,0.,-100000,150000,2405,"tS");
   axis->SetLabelSize(0.3);
   axis->SetTickSize(0.2);

   TDatime da(2003,02,28,12,00,00);
   axis->SetTimeOffset(da.Convert());
   axis->SetTimeFormat("%d-%m-%Y");
   axis->Draw();
   return c1;
}
End_Macro
Begin_Html
<p>
The following example compares what the system time function <tt>gmtime</tt>
and <tt>localtime</tt> give with what gives <tt>TGaxis</tt>. It can be used
as referenced test to check if the time option of <tt>TGaxis</tt> is working properly.
End_Html
Begin_Macro(source)
../../../tutorials/graphs/timeonaxis3.C
End_Macro
Begin_Html
<p>
The following macro illustrates the use, with histograms axis, of the time mode on the axis
with different time intervals and time formats.
End_Html
Begin_Macro(source)
../../../tutorials/graphs/timeonaxis.C
End_Macro
Begin_Html
An other example showing how to define the time offset as 2003, January 1st
using histograms axis.
End_Html
Begin_Macro(source)
../../../tutorials/graphs/timeonaxis2.C
End_Macro
Begin_Html
<p>
End_Html */


//______________________________________________________________________________
TGaxis::TGaxis(): TLine(), TAttText(11,0,1,62,0.040)
{
   /* Begin_html
   TGaxis default constructor.
   End_html */

   fGridLength  = 0.;
   fLabelOffset = 0.005;
   fLabelSize   = 0.040;
   fLabelFont   = 62;
   fLabelColor  = 1;
   fTickSize    = 0.030;
   fTitleOffset = 1;
   fTitleSize   = fLabelSize;
   fChopt       = "";
   fName        = "";
   fTitle       = "";
   fTimeFormat  = "";
   fFunctionName= "";
   fFunction    = 0;
   fAxis        = 0;
   fNdiv        = 0;
   fWmin        = 0.;
   fWmax        = 0.;
}


//______________________________________________________________________________
TGaxis::TGaxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax,
               Double_t wmin, Double_t wmax, Int_t ndiv,   Option_t *chopt,
               Double_t gridlength)
       : TLine(xmin,ymin,xmax,ymax), TAttText(11,0,1,62,0.040)
{
   /* Begin_html
   TGaxis normal constructor.
   End_html */


   fWmin        = wmin;
   fWmax        = wmax;
   fNdiv        = ndiv;
   fGridLength  = gridlength;
   fLabelOffset = 0.005;
   fLabelSize   = 0.040;
   fLabelFont   = 62;
   fLabelColor  = 1;
   fTickSize    = 0.030;
   fTitleOffset = 1;
   fTitleSize   = fLabelSize;
   fChopt       = chopt;
   fName        = "";
   fTitle       = "";
   fTimeFormat  = "";
   fFunctionName= "";
   fFunction    = 0;
   fAxis        = 0;
}


//______________________________________________________________________________
TGaxis::TGaxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax,
               const char *funcname, Int_t ndiv,   Option_t *chopt,
               Double_t gridlength)
       : TLine(xmin,ymin,xmax,ymax), TAttText(11,0,1,62,0.040)
{
   /* Begin_html
   Constructor with a <tt>TF1</tt> to map axis values.
   End_Html */

   fFunction = (TF1*)gROOT->GetFunction(funcname);
   if (!fFunction) {
      Error("TGaxis", "calling constructor with an unknown function: %s", funcname);
      fWmin = 0;
      fWmax = 1;
   } else {
      fWmin = fFunction->GetXmin();
      fWmax = fFunction->GetXmax();
   }
   fFunctionName= funcname;
   fNdiv        = ndiv;
   fGridLength  = gridlength;
   fLabelOffset = 0.005;
   fLabelSize   = 0.040;
   fLabelFont   = 62;
   fLabelColor  = 1;
   fTickSize    = 0.030;
   fTitleOffset = 1;
   fTitleSize   = fLabelSize;
   fChopt       = chopt;
   fName        = "";
   fTitle       = "";
   fTimeFormat  = "";
   fAxis        = 0;
}


//______________________________________________________________________________
TGaxis::TGaxis(const TGaxis& ax) :
  TLine(ax),
  TAttText(ax),
  fWmin(ax.fWmin),
  fWmax(ax.fWmax),
  fGridLength(ax.fGridLength),
  fTickSize(ax.fTickSize),
  fLabelOffset(ax.fLabelOffset),
  fLabelSize(ax.fLabelSize),
  fTitleOffset(ax.fTitleOffset),
  fTitleSize(ax.fTitleSize),
  fNdiv(ax.fNdiv),
  fLabelColor(ax.fLabelColor),
  fLabelFont(ax.fLabelFont),
  fChopt(ax.fChopt),
  fName(ax.fName),
  fTitle(ax.fTitle),
  fTimeFormat(ax.fTimeFormat),
  fFunctionName(ax.fFunctionName),
  fFunction(ax.fFunction),
  fAxis(ax.fAxis)
{
   /* Begin_html
   Copy constructor.
   End_Html */
}


//______________________________________________________________________________
TGaxis& TGaxis::operator=(const TGaxis& ax)
{
   /* Begin_html
   Assignement operator.
   End_Html */

   if(this!=&ax) {
      TLine::operator=(ax);
      TAttText::operator=(ax);
      fWmin=ax.fWmin;
      fWmax=ax.fWmax;
      fGridLength=ax.fGridLength;
      fTickSize=ax.fTickSize;
      fLabelOffset=ax.fLabelOffset;
      fLabelSize=ax.fLabelSize;
      fTitleOffset=ax.fTitleOffset;
      fTitleSize=ax.fTitleSize;
      fNdiv=ax.fNdiv;
      fLabelColor=ax.fLabelColor;
      fLabelFont=ax.fLabelFont;
      fChopt=ax.fChopt;
      fName=ax.fName;
      fTitle=ax.fTitle;
      fTimeFormat=ax.fTimeFormat;
      fFunctionName=ax.fFunctionName;
      fFunction=ax.fFunction;
      fAxis=ax.fAxis;
   }
   return *this;
}


//______________________________________________________________________________
TGaxis::~TGaxis()
{
   /* Begin_html
   TGaxis default destructor.
   End_Html */
}


//______________________________________________________________________________
void TGaxis::CenterLabels(Bool_t center)
{
   /* Begin_html
   If center = kTRUE axis labels are centered in the center of the bin.
   The default is to center on the primary tick marks.
   This option does not make sense if there are more bins than tick marks.
   End_Html */

   if (center) SetBit(TAxis::kCenterLabels);
   else        ResetBit(TAxis::kCenterLabels);
}


//______________________________________________________________________________
void TGaxis::CenterTitle(Bool_t center)
{
   /* Begin_html
   If center = kTRUE axis title will be centered.
   The default is right adjusted.
   End_Html */

   if (center) SetBit(TAxis::kCenterTitle);
   else        ResetBit(TAxis::kCenterTitle);
}


//______________________________________________________________________________
void TGaxis::DrawAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax,
                      Double_t wmin, Double_t wmax, Int_t ndiv,   Option_t *chopt,
                      Double_t gridlength)
{
   /* Begin_html
   Draw this axis with new attributes.
   End_Html */

   TGaxis *newaxis = new TGaxis(xmin,ymin,xmax,ymax,wmin,wmax,ndiv,chopt,gridlength);
   newaxis->SetLineColor(fLineColor);
   newaxis->SetLineWidth(fLineWidth);
   newaxis->SetLineStyle(fLineStyle);
   newaxis->SetTextAlign(fTextAlign);
   newaxis->SetTextAngle(fTextAngle);
   newaxis->SetTextColor(fTextColor);
   newaxis->SetTextFont(fTextFont);
   newaxis->SetTextSize(fTextSize);
   newaxis->SetTitleSize(fTitleSize);
   newaxis->SetTitleOffset(fTitleOffset);
   newaxis->SetLabelFont(fLabelFont);
   newaxis->SetLabelColor(fLabelColor);
   newaxis->SetLabelSize(fLabelSize);
   newaxis->SetLabelOffset(fLabelOffset);
   newaxis->SetTickSize(fTickSize);
   newaxis->SetBit(kCanDelete);
   newaxis->SetTitle(GetTitle());
   newaxis->SetBit(TAxis::kCenterTitle,TestBit(TAxis::kCenterTitle));
   newaxis->AppendPad();
}


//______________________________________________________________________________
Int_t TGaxis::GetMaxDigits()
{
   /* Begin_html
   Static function returning fgMaxDigits (See SetMaxDigits).
   End_Html */

   return fgMaxDigits;
}


//______________________________________________________________________________
void TGaxis::ImportAxisAttributes(TAxis *axis)
{
   /* Begin_html
   Internal method to import TAxis attributes to this TGaxis.
   End_Html */

   fAxis = axis;
   SetLineColor(axis->GetAxisColor());
   SetTextColor(axis->GetTitleColor());
   SetTextFont(axis->GetTitleFont());
   SetLabelColor(axis->GetLabelColor());
   SetLabelFont(axis->GetLabelFont());
   SetLabelSize(axis->GetLabelSize());
   SetLabelOffset(axis->GetLabelOffset());
   SetTickSize(axis->GetTickLength());
   SetTitle(axis->GetTitle());
   SetTitleOffset(axis->GetTitleOffset());
   SetTitleSize(axis->GetTitleSize());
   SetBit(TAxis::kCenterTitle,   axis->TestBit(TAxis::kCenterTitle));
   SetBit(TAxis::kCenterLabels,  axis->TestBit(TAxis::kCenterLabels));
   SetBit(TAxis::kRotateTitle,   axis->TestBit(TAxis::kRotateTitle));
   SetBit(TAxis::kNoExponent,    axis->TestBit(TAxis::kNoExponent));
   SetBit(TAxis::kTickPlus,      axis->TestBit(TAxis::kTickPlus));
   SetBit(TAxis::kTickMinus,     axis->TestBit(TAxis::kTickMinus));
   SetBit(TAxis::kMoreLogLabels, axis->TestBit(TAxis::kMoreLogLabels));
   if (axis->GetDecimals())      SetBit(TAxis::kDecimals); //the bit is in TAxis::fAxis2
   SetTimeFormat(axis->GetTimeFormat());
}


//______________________________________________________________________________
void TGaxis::Paint(Option_t *)
{
   /* Begin_html
   Draw this axis with its current attributes.
   End_Html */

   Double_t wmin = fWmin;
   Double_t wmax = fWmax;
   Int_t    ndiv = fNdiv;

   // following code required to support toggle of lin/log scales
   Double_t x1 = gPad->XtoPad(fX1);
   Double_t y1 = gPad->YtoPad(fY1);
   Double_t x2 = gPad->XtoPad(fX2);
   Double_t y2 = gPad->YtoPad(fY2);

   PaintAxis(x1,y1,x2,y2,wmin,wmax,ndiv,fChopt.Data(),fGridLength);
}


//______________________________________________________________________________
void TGaxis::PaintAxis(Double_t xmin, Double_t ymin, Double_t xmax, Double_t ymax,
                       Double_t &wmin, Double_t &wmax, Int_t &ndiv,   Option_t *chopt,
                       Double_t gridlength, Bool_t drawGridOnly)
{
   /* Begin_html
   Control function to draw an axis.
   <p>
   Original authors: O.Couet C.E.Vandoni N.Cremel-Somon.
   Modified and converted to C++ class by Rene Brun.
   End_Html */

   const char *where = "PaintAxis";

   Double_t alfa, beta, ratio1, ratio2, grid_side;
   Double_t axis_lengthN = 0;
   Double_t axis_length0 = 0;
   Double_t axis_length1 = 0;
   Double_t axis_length;
   Double_t atick[3];
   Double_t tick_side;
   Double_t charheight;
   Double_t phil, phi, sinphi, cosphi, asinphi, acosphi;
   Double_t binLow = 0.,  binLow2 = 0.,  binLow3 = 0.;
   Double_t binHigh = 0., binHigh2 = 0., binHigh3 = 0.;
   Double_t binWidth = 0., binWidth2 = 0., binWidth3 = 0.;
   Double_t xpl1, xpl2, ypl1, ypl2;
   Double_t xtick = 0;
   Double_t xtick0, xtick1, dxtick=0;
   Double_t ytick, ytick0, ytick1;
   Double_t wlabel, dwlabel;
   Double_t xfactor, yfactor;
   Double_t xlabel, ylabel, dxlabel;
   Double_t xone, xtwo;
   Double_t rlab;
   Double_t x0, x1, y0, y1, xx0, xx1, yy0, yy1;
   xx0 = xx1 = yy0 = yy1 = 0;
   Double_t xxmin, xxmax, yymin, yymax;
   xxmin = xxmax = yymin = yymax = 0;
   Double_t xlside, xmside;
   Double_t ww, af, rne;
   Double_t xx, yy;
   Double_t xmnlog, x00, x11, h2, h2sav, axmul, y;
   Float_t chupxvsav, chupyvsav;
   Double_t rtxw, rtyw;
   Int_t nlabels, nticks, nticks0, nticks1;
   Int_t i, j, k, l, decade, ltick;
   Int_t mside, lside;
   Int_t nexe  = 0;
   Int_t lnlen = 0;
   Int_t iexe, if1, if2, na, nf, ih1, ih2, nbinin, nch, kmod;
   Int_t optionLog,optionBlank,optionVert,optionPlus,optionMinus,optionUnlab,optionPara;
   Int_t optionDown,optionRight,optionLeft,optionCent,optionEqual,optionDecimals=0,optionDot;
   Int_t optionY,optionText,optionGrid,optionSize,optionNoopt,optionInt,optionM,optionUp,optionX;
   Int_t optionTime;
   Int_t first=0,last=0,labelnumber;
   Int_t xalign, yalign;
   Int_t nn1, nn2, nn3, n1a, n2a, n3a, nb2, nb3;
   Int_t nbins=10, n1aold, nn1old;
   n1aold = nn1old = 0;
   Int_t ndyn;
   Int_t nhilab = 0;
   Int_t idn;
   Bool_t flexe = 0;
   Bool_t flexpo,flexne;
   char *label;
   char *chtemp;
   char *coded;
   char chlabel[256];
   char kchtemp[256];
   char chcoded[8];
   TLine *linegrid;
   TString timeformat;
   TString typolabel;
   time_t timelabel;
   Double_t timed, wTimeIni;
   struct tm* utctis;
   Double_t rangeOffset = 0;

   Double_t epsilon   = 1e-5;
   const Double_t kPI = TMath::Pi();
//*-*-______________________________________

   Double_t rwmi = wmin;
   Double_t rwma = wmax;
   chtemp = &kchtemp[0];
   label  = &chlabel[0];
   linegrid  = 0;

   fFunction = (TF1*)gROOT->GetFunction(fFunctionName.Data());

   Bool_t noExponent = TestBit(TAxis::kNoExponent);

//*-*- If moreLogLabels = kTRUE more Log Intermediate Labels are drawn.
   Bool_t moreLogLabels = TestBit(TAxis::kMoreLogLabels);

//*-*- the following parameters correspond to the pad range in NDC
//*-*- and the user's coordinates in the pad

   Double_t padh   = gPad->GetWh()*gPad->GetAbsHNDC();
   Double_t rwxmin = gPad->GetX1();
   Double_t rwxmax = gPad->GetX2();
   Double_t rwymin = gPad->GetY1();
   Double_t rwymax = gPad->GetY2();

   if(strchr(chopt,'G')) optionLog  = 1;  else optionLog  = 0;
   if(strchr(chopt,'B')) optionBlank= 1;  else optionBlank= 0;
   if(strchr(chopt,'V')) optionVert = 1;  else optionVert = 0;
   if(strchr(chopt,'+')) optionPlus = 1;  else optionPlus = 0;
   if(strchr(chopt,'-')) optionMinus= 1;  else optionMinus= 0;
   if(strchr(chopt,'U')) optionUnlab= 1;  else optionUnlab= 0;
   if(strchr(chopt,'P')) optionPara = 1;  else optionPara = 0;
   if(strchr(chopt,'O')) optionDown = 1;  else optionDown = 0;
   if(strchr(chopt,'R')) optionRight= 1;  else optionRight= 0;
   if(strchr(chopt,'L')) optionLeft = 1;  else optionLeft = 0;
   if(strchr(chopt,'C')) optionCent = 1;  else optionCent = 0;
   if(strchr(chopt,'=')) optionEqual= 1;  else optionEqual= 0;
   if(strchr(chopt,'Y')) optionY    = 1;  else optionY    = 0;
   if(strchr(chopt,'T')) optionText = 1;  else optionText = 0;
   if(strchr(chopt,'W')) optionGrid = 1;  else optionGrid = 0;
   if(strchr(chopt,'S')) optionSize = 1;  else optionSize = 0;
   if(strchr(chopt,'N')) optionNoopt= 1;  else optionNoopt= 0;
   if(strchr(chopt,'I')) optionInt  = 1;  else optionInt  = 0;
   if(strchr(chopt,'M')) optionM    = 1;  else optionM    = 0;
   if(strchr(chopt,'0')) optionUp   = 1;  else optionUp   = 0;
   if(strchr(chopt,'X')) optionX    = 1;  else optionX    = 0;
   if(strchr(chopt,'t')) optionTime = 1;  else optionTime = 0;
   if(strchr(chopt,'.')) optionDot  = 1;  else optionDot  = 0;
   if (TestBit(TAxis::kTickPlus))     optionPlus  = 2;
   if (TestBit(TAxis::kTickMinus))    optionMinus = 2;
   if (TestBit(TAxis::kCenterLabels)) optionM     = 1;
   if (TestBit(TAxis::kDecimals))     optionDecimals = 1;
   if (!gStyle->GetStripDecimals())   optionDecimals = 1;
   if (fAxis) {
      if (fAxis->GetLabels()) {
         optionM    = 1;
         optionText = 1;
         ndiv = fAxis->GetLast()-fAxis->GetFirst()+1;
      }
   }
   if (ndiv < 0) {
      Error(where, "Invalid number of divisions: %d",ndiv);
      return;
   }

//*-*-              Set the grid length

   if (optionGrid) {
      if (gridlength == 0) gridlength = 0.8;
      linegrid = new TLine();
      linegrid->SetLineColor(gStyle->GetGridColor());
      if (linegrid->GetLineColor() == 0) linegrid->SetLineColor(GetLineColor());
      linegrid->SetLineStyle(gStyle->GetGridStyle());
      linegrid->SetLineWidth(gStyle->GetGridWidth());
   }

//*-*-              No labels if the axis label offset is big.
//*-*-              In that case the labels are not visible anyway.

   if (GetLabelOffset() > 1.1 ) optionUnlab = 1;

//*-*-              Determine time format

   Int_t idF = fTimeFormat.Index("%F");
   if (idF>=0) {
      timeformat = fTimeFormat(0,idF);
   } else {
      timeformat = fTimeFormat;
   }

   //GMT option
   if (fTimeFormat.Index("GMT")>=0) optionTime =2;

   // Determine the time offset and correct for time offset not being integer.
   Double_t timeoffset =0;
   if (optionTime) {
      if (idF>=0) {
         Int_t lnF = fTimeFormat.Length();
         TString stringtimeoffset = fTimeFormat(idF+2,lnF);
         Int_t year, mm, dd, hh, mi, ss;
         if (sscanf(stringtimeoffset.Data(), "%d-%d-%d %d:%d:%d", &year, &mm, &dd, &hh, &mi, &ss) == 6) {
           struct tm tp;
            tp.tm_year   = year-1900;
            tp.tm_mon    = mm-1;
            tp.tm_mday   = dd;
            tp.tm_hour   = hh;
            tp.tm_min    = mi;
            tp.tm_sec    = ss;
            tp.tm_isdst  = -1; //automatic determination of daylight saving time
            TString tz   = (TString)gSystem->Getenv("TZ"); //save timezone
            Bool_t isUTC = kFALSE;
            if (gSystem->Getenv("TZ") && tz.Length()==0) isUTC=kTRUE;
            gSystem->Setenv("TZ", "UTC"); //sets timezone to UTC
            tzset();
            timeoffset  = mktime(&tp);
            //restore TZ
            if (tz.Length()) {
               gSystem->Setenv("TZ", tz.Data());
            } else {
               if (isUTC) gSystem->Setenv("TZ", "");
               else       gSystem->Unsetenv("TZ");
            }
            tzset();
            // Add the time offset's decimal part if it is there
            Int_t ids   = stringtimeoffset.Index("s");
            if (ids >= 0) {
               Float_t dp;
               Int_t lns   = stringtimeoffset.Length();
               TString sdp = stringtimeoffset(ids+1,lns);
               sscanf(sdp.Data(),"%g",&dp);
               timeoffset += dp;
            }
         } else {
            Error(where, "Time offset has not the right format");
         }
      } else {
         timeoffset = gStyle->GetTimeOffset();
      }
      wmin += timeoffset - (int)(timeoffset);
      wmax += timeoffset - (int)(timeoffset);

      // correct for time offset at a good limit (min, hour, day, month, year)
      struct tm* tp0;
      time_t timetp = (time_t)((Long_t)(timeoffset));
      Double_t range = wmax - wmin;
      Long_t rangeBase = 60;
      if (range>60)       rangeBase = 60*20;       // minutes
      if (range>3600)     rangeBase = 3600*20;     // hours
      if (range>86400)    rangeBase = 86400*20;    // days
      if (range>2419200)  rangeBase = 31556736;    // months (average # days)
      rangeOffset = (Double_t) ((Long_t)(timeoffset)%rangeBase);
      if (range>31536000) {
         tp0 = gmtime(&timetp);
         tp0->tm_mon   = 0;
         tp0->tm_mday  = 1;
         tp0->tm_hour  = 0;
         tp0->tm_min   = 0;
         tp0->tm_sec   = 0;
         tp0->tm_isdst = 1; // daylight saving time is on.
         rangeBase = (timetp-mktime(tp0)); // years
         rangeOffset = (Double_t) (rangeBase);
      }
      wmax += rangeOffset;
      wmin += rangeOffset;
   }

//*-*-              Determine number of divisions 1, 2 and 3
   n1a   = ndiv%100;
   n2a   = (ndiv%10000 - n1a)/100;
   n3a   = ndiv/10000;
   nn3   = TMath::Max(n3a,1);
   nn2   = TMath::Max(n2a,1)*nn3;
   nn1   = TMath::Max(n1a,1)*nn2+1;
   nticks= nn1;

//*-*-              Axis bining optimisation is ignored if:
//*-*-                - the first and the last label are equal
//*-*-                - the number of divisions is 0
//*-*-                - less than 1 primary division is requested
//*-*-                - logarithmic scale is requested

   if (wmin == wmax || ndiv == 0 || n1a <= 1 || optionLog) {
      optionNoopt = 1;
      optionInt   = 0;
   }

//*-*-              Axis bining optimisation
   if ( (wmax-wmin) < 1 && optionInt) {
      Error(where, "option I not available");
      optionInt = 0;
   }
   if (!optionNoopt || optionInt ) {

//*-*- Primary divisions optimisation
//*-*- When integer labelling is required, Optimize is invoked first
//*-*- and only if the result is not an integer labelling, AdjustBinSize is invoked.

      THLimitsFinder::Optimize(wmin,wmax,n1a,binLow,binHigh,nbins,binWidth,fChopt.Data());
      if (optionInt) {
         if (binLow != Double_t(int(binLow)) || binWidth != Double_t(int(binWidth))) {
            AdjustBinSize(wmin,wmax,n1a,binLow,binHigh,nbins,binWidth);
         }
      }
      if ((wmin-binLow)  > epsilon) { binLow  += binWidth; nbins--; }
      if ((binHigh-wmax) > epsilon) { binHigh -= binWidth; nbins--; }
      if (xmax == xmin) {
         rtyw  = (ymax-ymin)/(wmax-wmin);
         xxmin = xmin;
         xxmax = xmax;
         yymin = rtyw*(binLow-wmin)  + ymin;
         yymax = rtyw*(binHigh-wmin) + ymin;
      }
      else {
         rtxw  = (xmax-xmin)/(wmax-wmin);
         xxmin = rtxw*(binLow-wmin)  + xmin;
         xxmax = rtxw*(binHigh-wmin) + xmin;
         if (ymax == ymin) {
            yymin = ymin;
            yymax = ymax;
         }
         else {
            alfa  = (ymax-ymin)/(xmax-xmin);
            beta  = (ymin*xmax-ymax*xmin)/(xmax-xmin);
            yymin = alfa*xxmin + beta;
            yymax = alfa*xxmax + beta;
         }
      }
      if (fFunction) {
         yymin = ymin;
         yymax = ymax;
         xxmin = xmin;
         xxmax = xmax;
      } else {
         wmin = binLow;
         wmax = binHigh;
      }

//*-*- Secondary divisions optimisation
      nb2 = n2a;
      if (!optionNoopt && n2a > 1 && binWidth > 0) {
         THLimitsFinder::Optimize(wmin,wmin+binWidth,n2a,binLow2,binHigh2,nb2,binWidth2,fChopt.Data());
      }

//*-*- Tertiary divisions optimisation
      nb3 = n3a;
      if (!optionNoopt && n3a > 1 && binWidth2 > 0) {
         THLimitsFinder::Optimize(binLow2,binLow2+binWidth2,n3a,binLow3,binHigh3,nb3,binWidth3,fChopt.Data());
      }
      n1aold = n1a;
      nn1old = nn1;
      n1a    = nbins;
      nn3    = TMath::Max(nb3,1);
      nn2    = TMath::Max(nb2,1)*nn3;
      nn1    = TMath::Max(n1a,1)*nn2+1;
      nticks = nn1;
   }

//*-*-              Coordinates are normalized

   ratio1 = 1/(rwxmax-rwxmin);
   ratio2 = 1/(rwymax-rwymin);
   x0     = ratio1*(xmin-rwxmin);
   x1     = ratio1*(xmax-rwxmin);
   y0     = ratio2*(ymin-rwymin);
   y1     = ratio2*(ymax-rwymin);
   if (!optionNoopt || optionInt ) {
      xx0 = ratio1*(xxmin-rwxmin);
      xx1 = ratio1*(xxmax-rwxmin);
      yy0 = ratio2*(yymin-rwymin);
      yy1 = ratio2*(yymax-rwymin);
   }

   if ((x0 == x1) && (y0 == y1)) {
      Error(where, "length of axis is 0");
      return;
   }

//*-*-              Return wmin, wmax and the number of primary divisions
   if (optionX) {
      ndiv = n1a;
      return;
   }

   Int_t maxDigits = fgMaxDigits;

   TLatex *textaxis = new TLatex();
   SetLineStyle(1); // axis line style
   textaxis->SetTextColor(GetTextColor());
   textaxis->SetTextFont(GetTextFont());

   if (!gPad->IsBatch()) {
      gVirtualX->GetCharacterUp(chupxvsav, chupyvsav);
      gVirtualX->SetClipOFF(gPad->GetCanvasID());
   }

//*-*-              Compute length of axis
   axis_length = TMath::Sqrt((x1-x0)*(x1-x0)+(y1-y0)*(y1-y0));
   if (axis_length == 0) {
      Error(where, "length of axis is 0");
      goto L210;
   }
   if (!optionNoopt || optionInt) {
      axis_lengthN = TMath::Sqrt((xx1-xx0)*(xx1-xx0)+(yy1-yy0)*(yy1-yy0));
      axis_length0 = TMath::Sqrt((xx0-x0)*(xx0-x0)+(yy0-y0)*(yy0-y0));
      axis_length1 = TMath::Sqrt((x1-xx1)*(x1-xx1)+(y1-yy1)*(y1-yy1));
      if (axis_lengthN < epsilon) {
         optionNoopt = 1;
         optionInt   = 0;
         wmin        = rwmi;
         wmax        = rwma;
         n1a         = n1aold;
         nn1         = nn1old;
         nticks      = nn1;
         if (optionTime) {
            wmin        += timeoffset - (int)(timeoffset) + rangeOffset;
            wmax        += timeoffset - (int)(timeoffset) + rangeOffset;
         }
      }
   }

   if (x0 == x1) {
      phi  = 0.5*kPI;
      phil = phi;
   } else {
            phi = TMath::ATan2((y1-y0),(x1-x0));
      Int_t px0 = gPad->UtoPixel(x0);
      Int_t py0 = gPad->VtoPixel(y0);
      Int_t px1 = gPad->UtoPixel(x1);
      Int_t py1 = gPad->VtoPixel(y1);
      if (x0 < x1) phil = TMath::ATan2(Double_t(py0-py1), Double_t(px1-px0));
      else         phil = TMath::ATan2(Double_t(py1-py0), Double_t(px0-px1));
   }
   cosphi  = TMath::Cos(phi);
   sinphi  = TMath::Sin(phi);
   acosphi = TMath::Abs(cosphi);
   asinphi = TMath::Abs(sinphi);
   if (acosphi <= epsilon) { acosphi = 0;  cosphi  = 0; }
   if (asinphi <= epsilon) { asinphi = 0;  sinphi  = 0; }

//*-*-              mside positive, tick marks on positive side
//*-*-              mside negative, tick marks on negative side
//*-*-              mside zero, tick marks on both sides
//*-*-              Default is positive except for vertical axis

   mside=1;
   if (x0 == x1 && y1 > y0)       mside = -1;
   if (optionPlus)                mside = 1;
   if (optionMinus)               mside = -1;
   if (optionPlus && optionMinus) mside = 0;
   xmside = mside;
   lside = -mside;
   if (optionEqual) lside = mside;
   if (optionPlus && optionMinus) {
      lside = -1;
      if (optionEqual) lside=1;
   }
   xlside = lside;

//*-*-              Tick marks size
   if(xmside >= 0) tick_side = 1;
   else            tick_side = -1;
   if (optionSize) atick[0] = tick_side*axis_length*fTickSize;
   else            atick[0] = tick_side*axis_length*0.03;

   atick[1] = 0.5*atick[0];
   atick[2] = 0.5*atick[1];

//*-*-             Set the side of the grid
   if ((x0 == x1) && (y1 > y0))  grid_side =-1;
   else                          grid_side = 1;

//*-*-             Compute Values if Function is given
   if(fFunction) {
      rwmi = fFunction->Eval(wmin);
      rwma = fFunction->Eval(wmax);
      if(rwmi > rwma) {
         Double_t t = rwma;
         rwma = rwmi;
         rwmi = t;
      }
   }

//*-*-              Draw the axis if needed...
   if (!optionBlank) {
      xpl1 = x0;
      xpl2 = x1;
      ypl1 = y0;
      ypl2 = y1;
      PaintLineNDC(xpl1, ypl1, xpl2, ypl2);
   }

//*-*-              Draw axis title if it exists
   if (!drawGridOnly && strlen(GetTitle())) {
      textaxis->SetTextSize (GetTitleSize());
      charheight = GetTitleSize();
      if ((GetTextFont() % 10) > 2) {
         charheight = charheight/gPad->GetWh();
      }
      Double_t toffset = GetTitleOffset();
//////if (toffset < 0.1) toffset = 1; // Negative offset should be allowed
      if (x1 == x0) ylabel = xlside*1.6*charheight*toffset;
      else          ylabel = xlside*1.3*charheight*toffset;
      if (y1 == y0) ylabel = xlside*1.6*charheight*toffset;
      Double_t axispos;
      if (TestBit(TAxis::kCenterTitle)) axispos = 0.5*axis_length;
      else                       axispos = axis_length;
      if (TestBit(TAxis::kRotateTitle)) {
         if (x1 >= x0) {
            if (TestBit(TAxis::kCenterTitle)) textaxis->SetTextAlign(22);
            else                              textaxis->SetTextAlign(12);
            Rotate(axispos,ylabel,cosphi,sinphi,x0,y0,xpl1,ypl1);
         } else {
            if (TestBit(TAxis::kCenterTitle)) textaxis->SetTextAlign(22);
         else                                 textaxis->SetTextAlign(32);
            Rotate(axispos,ylabel,cosphi,sinphi,x0,y0,xpl1,ypl1);
         }
         textaxis->PaintLatex(gPad->GetX1() + xpl1*(gPad->GetX2() - gPad->GetX1()),
                              gPad->GetY1() + ypl1*(gPad->GetY2() - gPad->GetY1()),
                              phil=(kPI+phil)*180/kPI,
                              GetTitleSize(),
                              GetTitle());
      } else {
         if (x1 >= x0) {
            if (TestBit(TAxis::kCenterTitle)) textaxis->SetTextAlign(22);
            else                              textaxis->SetTextAlign(32);
            Rotate(axispos,ylabel,cosphi,sinphi,x0,y0,xpl1,ypl1);
         } else {
            if (TestBit(TAxis::kCenterTitle)) textaxis->SetTextAlign(22);
         else                                 textaxis->SetTextAlign(12);
            Rotate(axispos,ylabel,cosphi,sinphi,x0,y0,xpl1,ypl1);
         }
         textaxis->PaintLatex(gPad->GetX1() + xpl1*(gPad->GetX2() - gPad->GetX1()),
                              gPad->GetY1() + ypl1*(gPad->GetY2() - gPad->GetY1()),
                              phil*180/kPI,
                              GetTitleSize(),
                              GetTitle());
      }
   }

//*-*-              No bining

   if (ndiv == 0)goto L210;
   if (wmin == wmax) {
      Error(where, "wmin (%f) == wmax (%f)", wmin, wmax);
      goto L210;
   }

//*-*-              Labels preparation:
//*-*-              Get character height
//*-*-              Compute the labels orientation in case of overlaps
//*-*-              (with alphanumeric labels for horizontal axis).

   charheight = GetLabelSize();
   if (optionText && GetLabelFont()%10 != 3) charheight *= 0.66666;
   textaxis->SetTextFont(GetLabelFont());
   if ((GetLabelFont()%10 < 2) && optionLog) // force TLatex mode in PaintLatex
      textaxis->SetTextFont((Int_t)(GetLabelFont()/10)*10+2);
   textaxis->SetTextColor(GetLabelColor());
   textaxis->SetTextSize (charheight);
   textaxis->SetTextAngle(GetTextAngle());
   if (GetLabelFont()%10 > 2) {
      charheight /= padh;
   }
   if (!optionUp && !optionDown && !optionY && !optionUnlab) {
      if (!drawGridOnly && optionText && ((ymin == ymax) || (xmin == xmax))) {
         textaxis->SetTextAlign(32);
         optionText = 2;
         Int_t nl = fAxis->GetLast()-fAxis->GetFirst()+1;
         Double_t angle     = 0;
         for (i=fAxis->GetFirst(); i<=fAxis->GetLast(); i++) {
            textaxis->SetText(0,0,fAxis->GetBinLabel(i));
            if (textaxis->GetXsize() < (xmax-xmin)/nl) continue;
            angle = -20;
            break;
         }
         for (i=fAxis->GetFirst(); i<=fAxis->GetLast(); i++) {
            if ((!strcmp(fAxis->GetName(),"xaxis") && !gPad->TestBit(kHori))
              ||(!strcmp(fAxis->GetName(),"yaxis") &&  gPad->TestBit(kHori))) {
               if (nl > 50) angle = 90;
               if (fAxis->TestBit(TAxis::kLabelsHori)) angle = 0;
               if (fAxis->TestBit(TAxis::kLabelsVert)) angle = 90;
               if (fAxis->TestBit(TAxis::kLabelsUp))   angle = 20;
               if (fAxis->TestBit(TAxis::kLabelsDown)) angle =-20;
               if (angle ==   0) textaxis->SetTextAlign(23);
               if (angle == -20) textaxis->SetTextAlign(12);
               Double_t s = -3;
               if (ymin == gPad->GetUymax()) {
                  if (angle == 0) textaxis->SetTextAlign(21);
                  s = 3;
               }
               textaxis->PaintLatex(fAxis->GetBinCenter(i),
                                    ymin + s*fAxis->GetLabelOffset()*(gPad->GetUymax()-gPad->GetUymin()),
                                    angle,
                                    textaxis->GetTextSize(),
                                    fAxis->GetBinLabel(i));
            } else if ((!strcmp(fAxis->GetName(),"yaxis") && !gPad->TestBit(kHori))
                    || (!strcmp(fAxis->GetName(),"xaxis") &&  gPad->TestBit(kHori))) {
               Double_t s = -3;
               if (xmin == gPad->GetUxmax()) {
                  textaxis->SetTextAlign(12);
                  s = 3;
               }
               textaxis->PaintLatex(xmin + s*fAxis->GetLabelOffset()*(gPad->GetUxmax()-gPad->GetUxmin()),
                                    fAxis->GetBinCenter(i),
                                    0,
                                    textaxis->GetTextSize(),
                                    fAxis->GetBinLabel(i));
            } else {
               textaxis->PaintLatex(xmin - 3*fAxis->GetLabelOffset()*(gPad->GetUxmax()-gPad->GetUxmin()),
                                    ymin +(i-0.5)*(ymax-ymin)/nl,
                                    0,
                                    textaxis->GetTextSize(),
                                    fAxis->GetBinLabel(i));
            }
         }
      }
   }

//*-*-              Now determine orientation of labels on axis
   if (!gPad->IsBatch()) {
      if (cosphi > 0) gVirtualX->SetCharacterUp(-sinphi,cosphi);
      else            gVirtualX->SetCharacterUp(sinphi,-cosphi);
      if (x0 == x1)   gVirtualX->SetCharacterUp(0,1);
      if (optionVert) gVirtualX->SetCharacterUp(0,1);
      if (optionPara) gVirtualX->SetCharacterUp(-sinphi,cosphi);
      if (optionDown) gVirtualX->SetCharacterUp(cosphi,sinphi);
   }

//*-*-              Now determine text alignment
   xalign = 2;
   yalign = 1;
   if (x0 == x1)    xalign = 3;
   if (y0 != y1)    yalign = 2;
   if (optionCent)  xalign = 2;
   if (optionRight) xalign = 3;
   if (optionLeft)  xalign = 1;
   if (TMath::Abs(cosphi) > 0.9) {
      xalign = 2;
   } else {
      if (cosphi*sinphi > 0)  xalign = 1;
      if (cosphi*sinphi < 0)  xalign = 3;
   }
   textaxis->SetTextAlign(10*xalign+yalign);

//*-*-              Position of labels in Y
   if (x0 == x1) {
      if (optionPlus && !optionMinus) {
         if (optionEqual) ylabel =  fLabelOffset/2 + atick[0];
         else             ylabel = -fLabelOffset;
      } else {
         ylabel = fLabelOffset;
         if (lside < 0)  ylabel += atick[0];
      }
   } else if (y0 == y1) {
      if (optionMinus && !optionPlus) {
         if ((GetLabelFont() % 10) == 3 ) {
            ylabel = fLabelOffset+0.5*
            ((gPad->AbsPixeltoY(0)-gPad->AbsPixeltoY((Int_t)fLabelSize))/
            (gPad->GetY2() - gPad->GetY1()));
         } else {
            ylabel = fLabelOffset+0.5*fLabelSize;
         }
         ylabel += TMath::Abs(atick[0]);
      } else {
         ylabel = -fLabelOffset;
         if (mside <= 0) ylabel -= TMath::Abs(atick[0]);
      }
      if (optionLog)  ylabel -= 0.5*charheight;
   } else {
      if (mside+lside >= 0) ylabel =  fLabelOffset;
      else                  ylabel = -fLabelOffset;
   }
   if (optionText) ylabel /= 2;

//*-*-              Draw the linear tick marks if needed...
   if (!optionLog) {
      if (ndiv) {
         if (fFunction) {
            dxtick=(binHigh-binLow)/Double_t(nticks-1);
         } else {
            if (optionNoopt && !optionInt) dxtick=axis_length/Double_t(nticks-1);
            else                           dxtick=axis_lengthN/Double_t(nticks-1);
         }
         for (k=0;k<nticks; k++) {
            ltick = 2;
            if (k%nn3 == 0) ltick = 1;
            if (k%nn2 == 0) ltick = 0;
            if (fFunction) {
               Double_t xf = binLow+Double_t(k)*dxtick;
               Double_t zz = fFunction->Eval(xf)-rwmi;
               xtick = zz* axis_length / TMath::Abs(rwma-rwmi);
            } else {
               xtick = Double_t(k)*dxtick;
            }
            ytick = 0;
            if (!mside) ytick -= atick[ltick];
            if ( optionNoopt && !optionInt) {
               Rotate(xtick,ytick,cosphi,sinphi,x0,y0,xpl2,ypl2);
               Rotate(xtick,atick[ltick],cosphi,sinphi,x0,y0,xpl1,ypl1);
            }
            else {
               Rotate(xtick,ytick,cosphi,sinphi,xx0,yy0,xpl2,ypl2);
               Rotate(xtick,atick[ltick],cosphi,sinphi,xx0,yy0,xpl1,ypl1);
            }
            if (optionVert) {
               if ((x0 != x1) && (y0 != y1)) {
                  if (mside) {
                     xpl1 = xpl2;
                     if (cosphi > 0) ypl1 = ypl2 + atick[ltick];
                     else            ypl1 = ypl2 - atick[ltick];
                  }
                  else {
                     xpl1 = 0.5*(xpl1 + xpl2);
                     xpl2 = xpl1;
                     ypl1 = 0.5*(ypl1 + ypl2) + atick[ltick];
                     ypl2 = 0.5*(ypl1 + ypl2) - atick[ltick];
                  }
               }
            }
            if (!drawGridOnly) PaintLineNDC(xpl1, ypl1, xpl2, ypl2);

            if (optionGrid) {
               if (ltick == 0) {
                  if (optionNoopt && !optionInt) {
                     Rotate(xtick,0,cosphi,sinphi,x0,y0 ,xpl2,ypl2);
                     Rotate(xtick,grid_side*gridlength ,cosphi,sinphi,x0,y0 ,xpl1,ypl1);
                  }
                  else {
                     Rotate(xtick,0,cosphi ,sinphi,xx0,yy0 ,xpl2,ypl2);
                     Rotate(xtick,grid_side*gridlength ,cosphi,sinphi,xx0,yy0 ,xpl1,ypl1);
                  }
                  linegrid->PaintLineNDC(xpl1, ypl1, xpl2, ypl2);
               }
            }
         }
         xtick0 = 0;
         xtick1 = xtick;

         if (fFunction) axis_length0 = binLow-wmin;
         if ((!optionNoopt || optionInt) && axis_length0) {
            nticks0 = Int_t(axis_length0/dxtick);
            if (nticks0 > 1000) nticks0 = 1000;
            for (k=0; k<=nticks0; k++) {
               ltick = 2;
               if (k%nn3 == 0) ltick = 1;
               if (k%nn2 == 0) ltick = 0;
               ytick0 = 0;
               if (!mside) ytick0 -= atick[ltick];
               if (fFunction) {
                  xtick0 = (fFunction->Eval(binLow - Double_t(k)*dxtick)-rwmi)
                           * axis_length / TMath::Abs(rwma-rwmi);
               }
               Rotate(xtick0,ytick0,cosphi,sinphi,xx0,yy0 ,xpl2,ypl2);
               Rotate(xtick0,atick[ltick],cosphi,sinphi,xx0,yy0 ,xpl1,ypl1);
               if (optionVert) {
                  if ((x0 != x1) && (y0 != y1)) {
                     if (mside) {
                        xpl1 = xpl2;
                        if (cosphi > 0) ypl1 = ypl2 + atick[ltick];
                        else            ypl1 = ypl2 - atick[ltick];
                     }
                     else {
                        xpl1 = 0.5*(xpl1 + xpl2);
                        xpl2 = xpl1;
                        ypl1 = 0.5*(ypl1 + ypl2) + atick[ltick];
                        ypl2 = 0.5*(ypl1 + ypl2) - atick[ltick];
                     }
                  }
               }
               if (!drawGridOnly) PaintLineNDC(xpl1, ypl1, xpl2, ypl2);

               if (optionGrid) {
                  if (ltick == 0) {
                     Rotate(xtick0,0,cosphi,sinphi,xx0,yy0,xpl2,ypl2);
                     Rotate(xtick0,grid_side*gridlength ,cosphi,sinphi,xx0,yy0 ,xpl1,ypl1);
                     linegrid->PaintLineNDC(xpl1, ypl1, xpl2, ypl2);
                  }
               }
               xtick0 -= dxtick;
            }
         }

         if (fFunction) axis_length1 = wmax-binHigh;
         if ((!optionNoopt || optionInt) && axis_length1) {
            nticks1 = int(axis_length1/dxtick);
            if (nticks1 > 1000) nticks1 = 1000;
            for (k=0; k<=nticks1; k++) {
               ltick = 2;
               if (k%nn3 == 0) ltick = 1;
               if (k%nn2 == 0) ltick = 0;
               ytick1 = 0;
               if (!mside) ytick1 -= atick[ltick];
               if (fFunction) {
                  xtick1 = (fFunction->Eval(binHigh + Double_t(k)*dxtick)-rwmi)
                           * axis_length / TMath::Abs(rwma-rwmi);
               }
               Rotate(xtick1,ytick1,cosphi,sinphi,xx0,yy0 ,xpl2,ypl2);
               Rotate(xtick1,atick[ltick],cosphi,sinphi,xx0,yy0 ,xpl1,ypl1);
               if (optionVert) {
                  if ((x0 != x1) && (y0 != y1)) {
                     if (mside) {
                        xpl1 = xpl2;
                        if (cosphi > 0) ypl1 = ypl2 + atick[ltick];
                        else            ypl1 = ypl2 - atick[ltick];
                     }
                     else {
                        xpl1 = 0.5*(xpl1 + xpl2);
                        xpl2 = xpl1;
                        ypl1 = 0.5*(ypl1 + ypl2) + atick[ltick];
                        ypl2 = 0.5*(ypl1 + ypl2) - atick[ltick];
                     }
                  }
               }
               if (!drawGridOnly) PaintLineNDC(xpl1, ypl1, xpl2, ypl2);
               if (optionGrid) {
                  if (ltick == 0) {
                     Rotate(xtick1,0,cosphi,sinphi,xx0,yy0 ,xpl2,ypl2);
                     Rotate(xtick1,grid_side*gridlength,cosphi,sinphi,xx0,yy0,xpl1,ypl1);
                     linegrid->PaintLineNDC(xpl1, ypl1, xpl2, ypl2);
                  }
               }
               xtick1 += dxtick;
            }
         }
      }
   }

//*-*-              Draw the numeric labels if needed...
   if (!drawGridOnly && !optionUnlab) {
      if (!optionLog) {
         if (n1a) {
//*-*-              Spacing of labels
            if ((wmin == wmax) || (ndiv == 0)) {
               Error(where, "wmin (%f) == wmax (%f), or ndiv == 0", wmin, wmax);
               goto L210;
            }
            wlabel  = wmin;
            dwlabel = (wmax-wmin)/Double_t(n1a);
            if (optionNoopt && !optionInt) dxlabel = axis_length/Double_t(n1a);
            else                           dxlabel = axis_lengthN/Double_t(n1a);

            if (!optionText && !optionTime) {

//*-*-              We have to decide what format to generate
//*-*-              (for numeric labels only)
//*-*-              Test the magnitude, decide format
               flexe  = kFALSE;
               nexe   = 0;
               flexpo = kFALSE;
               flexne = kFALSE;
               ww     = TMath::Max(TMath::Abs(wmin),TMath::Abs(wmax));

//*-*-              First case : (wmax-wmin)/n1a less than 0.001
//*-*-              (0.001 fgMaxDigits of 5 (fgMaxDigits) characters). Then we use x 10 n
//*-*-              format. If af >=0 x10 n cannot be used
               Double_t xmicros = 0.00099;
               if (maxDigits) xmicros = TMath::Power(10,-maxDigits);
               if (!noExponent && (TMath::Abs(wmax-wmin)/Double_t(n1a)) < xmicros) {
                  af    = TMath::Log10(ww) + epsilon;
                  if (af < 0) {
                     flexe   = kTRUE;
                     nexe    = int(af);
                     iexe    = TMath::Abs(nexe);
                     if (iexe%3 == 1)     iexe += 2;
                     else if(iexe%3 == 2) iexe += 1;
                     if (nexe < 0) nexe = -iexe;
                     else          nexe =  iexe;
                     wlabel  = wlabel*TMath::Power(10,iexe);
                     dwlabel = dwlabel*TMath::Power(10,iexe);
                     if1     = maxDigits;
                     if2     = maxDigits-2;
                     goto L110;
                  }
               }
               if (ww >= 1) af = TMath::Log10(ww);
               else         af = TMath::Log10(ww*0.0001);
               af += epsilon;
               nf  = Int_t(af)+1;
               if (!noExponent && nf > maxDigits)  flexpo = kTRUE;
               if (!noExponent && nf < -maxDigits) flexne = kTRUE;

//*-*-              Use x 10 n format. (only powers of 3 allowed)

               if (flexpo) {
                  flexe = kTRUE;
                  while (1) {
                     nexe++;
                     ww      /= 10;
                     wlabel  /= 10;
                     dwlabel /= 10;
                     if (nexe%3 == 0 && ww <= TMath::Power(10,maxDigits-1)) break;
                  }
               }

               if (flexne) {
                  flexe = kTRUE;
                  rne   = 1/TMath::Power(10,maxDigits-2);
                  while (1) {
                     nexe--;
                     ww      *= 10;
                     wlabel  *= 10;
                     dwlabel *= 10;
                     if (nexe%3 == 0 && ww >= rne) break;
                  }
               }

               na = 0;
               for (i=maxDigits-1; i>0; i--) {
                  if (TMath::Abs(ww) < TMath::Power(10,i)) na = maxDigits-i;
               }
               ndyn = n1a;
               while (ndyn) {
                  Double_t wdyn = TMath::Abs((wmax-wmin)/ndyn);
                  if (wdyn <= 0.999 && na < maxDigits-2) {
                     na++;
                     ndyn /= 10;
                  }
                  else break;
               }

               if2 = na;
               if1 = TMath::Max(nf+na,maxDigits)+1;
L110:
               if (TMath::Min(wmin,wmax) < 0)if1 = if1+1;
               if1 = TMath::Min(if1,32);

//*-*- In some cases, if1 and if2 are too small....
               while (dwlabel < TMath::Power(10,-if2)) {
                  if1++;
                  if2++;
               }
               coded = &chcoded[0];
               if (if1 > 14) if1=14;
               if (if2 > 14) if2=14;
               if (if2>0) snprintf(coded,8,"%%%d.%df",if1,if2);
               else       snprintf(coded,8,"%%%d.%df",if1+1,1);
            }

//*-*-              We draw labels

            snprintf(chtemp,256,"%g",dwlabel);
            Int_t ndecimals = 0;
            if (optionDecimals) {
               char *dot = strchr(chtemp,'.');
               if (dot) {
                  ndecimals = chtemp + strlen(chtemp) -dot;
               } else {
                  char *exp;
                  exp = strstr(chtemp,"e-");
                  if (exp) {
                     sscanf(&exp[2],"%d",&ndecimals);
                     ndecimals++;
                  }
               }
            }
            if (optionM) nlabels = n1a-1;
            else         nlabels = n1a;
            wTimeIni = wlabel;
            for ( k=0; k<=nlabels; k++) {
               if (fFunction) {
                  Double_t xf = binLow+Double_t(k*nn2)*dxtick;
                  Double_t zz = fFunction->Eval(xf)-rwmi;
                  wlabel = xf;
                  xlabel = zz* axis_length / TMath::Abs(rwma-rwmi);
               } else {
                  xlabel = dxlabel*k;
               }
               if (optionM)    xlabel += 0.5*dxlabel;

               if (!optionText && !optionTime) {
                  snprintf(label,256,&chcoded[0],wlabel);
                  label[28] = 0;
                  wlabel += dwlabel;

                  LabelsLimits(label,first,last);  //Eliminate blanks

                  if (label[first] == '.') { //check if '.' is preceded by a digit
                     strncpy(chtemp, "0",256);
                     strlcat(chtemp, &label[first],256);
                     strncpy(label, chtemp,256);
                     first = 1; last = strlen(label);
                  }
                  if (label[first] == '-' && label[first+1] == '.') {
                     strncpy(chtemp, "-0",256);
                     strlcat(chtemp, &label[first+1],256);
                     strncpy(label, chtemp, 256);
                     first = 1; last = strlen(label);
                  }

//*-*-              We eliminate the non significant 0 after '.'
                  if (ndecimals) {
                     char *adot = strchr(label,'.');
                     if (adot) adot[ndecimals] = 0;
                  } else {
                     while (label[last] == '0') { label[last] = 0; last--;}
                  }

//*-*-              We eliminate the dot, unless dot is forced.
                  if (label[last] == '.') {
                     if (!optionDot) { label[last] = 0; last--;}
                  }

//*-*-            Make sure the label is not "-0"
                  if (last-first == 1 && label[first] == '-'
                                      && label[last]  == '0') {
                     strncpy(label, "0", 256);
                     label[last] = 0;
                  }
               }

//*-*-              Generate the time labels

               if (optionTime) {
                  timed = wlabel + (int)(timeoffset) - rangeOffset;
                  timelabel = (time_t)((Long_t)(timed));
                  if (optionTime == 1) {
                     utctis = localtime(&timelabel);
                  } else {
                     utctis = gmtime(&timelabel);
                  }
                  TString timeformattmp;
                  if (timeformat.Length() < 220) timeformattmp = timeformat;
                  else timeformattmp = "#splitline{Format}{too long}";

//*-*-              Appends fractionnal part if seconds displayed
                  if (dwlabel<0.9) {
                     double tmpdb;
                     int tmplast;
                     snprintf(label, 256, "%%S%7.5f", modf(timed,&tmpdb));
                     tmplast = strlen(label)-1;

//*-*-              We eliminate the non significiant 0 after '.'
                     while (label[tmplast] == '0') {
                        label[tmplast] = 0; tmplast--;
                     }

                     timeformattmp.ReplaceAll("%S",label);
//*-*-              replace the "0." at the begining by "s"
                     timeformattmp.ReplaceAll("%S0.","%Ss");

                  }

                  strftime(label, 256, timeformattmp.Data(), utctis);
                  strncpy(chtemp, &label[0], 256);
                  first = 0; last=strlen(label)-1;
                  wlabel = wTimeIni + (k+1)*dwlabel;
               }

//*-*-              We generate labels (numeric or alphanumeric).

               if (optionNoopt && !optionInt)
                        Rotate (xlabel,ylabel,cosphi,sinphi,x0,y0,xx,yy);
               else     Rotate (xlabel,ylabel,cosphi,sinphi,xx0,yy0,xx,yy);
               if (y0 == y1 && !optionDown && !optionUp) {
                  yy -= 0.80*charheight;
               }
               if (optionVert) {
                  if (x0 != x1 && y0 != y1) {
                     if (optionNoopt && !optionInt)
                           Rotate (xlabel,0,cosphi,sinphi,x0,y0,xx,yy);
                     else  Rotate (xlabel,0,cosphi,sinphi,xx0,yy0,xx,yy);
                     if (cosphi > 0 ) yy += ylabel;
                     if (cosphi < 0 ) yy -= ylabel;
                  }
               }
               if (!optionY || (x0 == x1)) {
                  if (!optionText) {
                     if (first > last)  strncpy(chtemp, " ", 256);
                     else               strncpy(chtemp, &label[first], 256);
                     typolabel = chtemp;
                     if (!optionTime) typolabel.ReplaceAll("-", "#minus");
                     textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                           gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                           0,
                           textaxis->GetTextSize(),
                           typolabel.Data());
                  }
                  else  {
                     if (optionText == 1) textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                                                   gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                                                   0,
                                                   textaxis->GetTextSize(),
                                                   fAxis->GetBinLabel(k+fAxis->GetFirst()));
                  }
               }
               else {

//*-*-       Text alignment is down
                  if (!optionText)     lnlen = last-first+1;
                  else {
                     if (k+1 > nhilab) lnlen = 0;
                  }
                  for ( l=1; l<=lnlen; l++) {
                     if (!optionText) *chtemp = label[first+l-2];
                     else {
                        if (lnlen == 0) strncpy(chtemp, " ", 256);
                        else            strncpy(chtemp, "1", 256);
                     }
                     typolabel = chtemp;
                     typolabel.ReplaceAll("-", "#minus");
                     textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                           gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                           0,
                           textaxis->GetTextSize(),
                           typolabel.Data());
                     yy -= charheight*1.3;
                  }
               }
            }

//*-*-                We use the format x 10 ** n

            if (flexe && !optionText && nexe)  {
               snprintf(label,256,"#times10^{%d}", nexe);
               if (x0 != x1) { xfactor = x1-x0+0.1*charheight; yfactor = 0; }
               else          { xfactor = y1-y0+0.1*charheight; yfactor = 0; }
               Rotate (xfactor,yfactor,cosphi,sinphi,x0,y0,xx,yy);
               textaxis->SetTextAlign(11);
               if (GetLabelFont()%10 < 2) // force TLatex mode in PaintLatex
                  textaxis->SetTextFont((Int_t)(GetLabelFont()/10)*10+2);
               if (fAxis && !strcmp(fAxis->GetName(),"xaxis")) {
                  xx = xx + fXAxisExpXOffset;
                  yy = yy + fXAxisExpYOffset;
               }
               if (fAxis && !strcmp(fAxis->GetName(),"yaxis")) {
                  xx = xx + fYAxisExpXOffset;
                  yy = yy + fYAxisExpYOffset;
               }
               typolabel = label;
               typolabel.ReplaceAll("-", "#minus");
               textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                           gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                           0,
                           textaxis->GetTextSize(),
                           typolabel.Data());
            }
         }
      }
   }

//*-*-              Log axis

   if (optionLog && ndiv) {
      UInt_t xi1=0,xi2=0,wi=0,yi1=0,yi2=0,hi=0,xl=0,xh=0;
      Bool_t firstintlab = kTRUE, overlap = kFALSE;
      if ((wmin == wmax) || (ndiv == 0))  {
         Error(where, "wmin (%f) == wmax (%f), or ndiv == 0", wmin, wmax);
         goto L210;
      }
      if (wmin <= 0)   {
         Error(where, "negative logarithmic axis");
         goto L210;
      }
      if (wmax <= 0)     {
         Error(where, "negative logarithmic axis");
         goto L210;
      }
      xmnlog = TMath::Log10(wmin);
      if (xmnlog > 0) xmnlog += 1.E-6;
      else            xmnlog -= 1.E-6;
      x00    = 0;
      x11    = axis_length;
      h2     = TMath::Log10(wmax);
      h2sav  = h2;
      if (h2 > 0) h2 += 1.E-6;
      else        h2 -= 1.E-6;
      ih1    = int(xmnlog);
      ih2    = 1+int(h2);
      nbinin = ih2-ih1+1;
      axmul  = (x11-x00)/(h2sav-xmnlog);

//*-*-              Plot decade and intermediate tick marks
      decade      = ih1-2;
      labelnumber = ih1;
      if ( xmnlog > 0 && (xmnlog-Double_t(ih1) > 0) ) labelnumber++;
      for (j=1; j<=nbinin; j++) {

//*-*-              Plot decade
         firstintlab = kTRUE, overlap = kFALSE;
         decade++;
         if (x0 == x1 && j == 1) ylabel += charheight*0.33;
         if (y0 == y1 && j == 1) ylabel -= charheight*0.65;
         xone = x00+axmul*(Double_t(decade)-xmnlog);
         //the following statement is a trick to circumvent a gcc bug
         if (j < 0) printf("j=%d\n",j);
         if (x00 > xone) goto L160;
         if ((xone-x11)>epsilon) break;
         xtwo = xone;
         y    = 0;
         if (!mside) y -= atick[0];
         Rotate(xone,y,cosphi,sinphi,x0,y0,xpl2,ypl2);
         Rotate(xtwo,atick[0],cosphi,sinphi,x0,y0,xpl1,ypl1);
         if (optionVert) {
            if ((x0 != x1) && (y0 != y1)) {
               if (mside) {
                  xpl1=xpl2;
                  if (cosphi > 0) ypl1 = ypl2 + atick[0];
                  else            ypl1 = ypl2 - atick[0];
               }
               else {
                  xpl1 = 0.5*(xpl1 + xpl2);
                  xpl2 = xpl1;
                  ypl1 = 0.5*(ypl1 + ypl2) + atick[0];
                  ypl2 = 0.5*(ypl1 + ypl2) - atick[0];
               }
            }
         }
         if (!drawGridOnly) PaintLineNDC(xpl1, ypl1, xpl2, ypl2);

         if (optionGrid) {
            Rotate(xone,0,cosphi,sinphi,x0,y0,xpl2,ypl2);
            Rotate(xone,grid_side*gridlength,cosphi,sinphi,x0,y0,xpl1,ypl1);
            linegrid->PaintLineNDC(xpl1, ypl1, xpl2, ypl2);
         }

         if (!drawGridOnly && !optionUnlab)  {

//*-*-              We generate labels (numeric only).
            if (noExponent) {
               rlab = TMath::Power(10,labelnumber);
               snprintf(label,256, "%f", rlab);
               LabelsLimits(label,first,last);
               while (last > first) {
                  if (label[last] != '0') break;
                  label[last] = 0;
                  last--;
               }
               if (label[last] == '.') {label[last] = 0; last--;}
            } else {
               snprintf(label,256, "%d", labelnumber);
               LabelsLimits(label,first,last);
            }
            Rotate (xone,ylabel,cosphi,sinphi,x0,y0,xx,yy);
            if ((x0 == x1) && !optionPara) {
               if (lside < 0) {
                  if (mside < 0) {
                     if (labelnumber == 0) nch=1;
                     else                  nch=2;
                     xx    += nch*charheight;
                  } else {
                     xx += 0.25*charheight;
                  }
               }
               xx += 0.25*charheight;
            }
            if ((y0 == y1) && !optionDown && !optionUp) {
               if (noExponent) yy += 0.33*charheight;
            }
            if (n1a == 0)goto L210;
            kmod = nbinin/n1a;
            if (kmod == 0) kmod=1000000;
            if ((nbinin <= n1a) || (j == 1) || (j == nbinin) || ((nbinin > n1a)
            && (j%kmod == 0))) {
               if (labelnumber == 0) {
                  textaxis->PaintTextNDC(xx,yy,"1");
               } else if (labelnumber == 1) {
                  textaxis->PaintTextNDC(xx,yy,"10");
               } else {
                  if (noExponent) {
                     textaxis->PaintTextNDC(xx,yy,&label[first]);
                  } else {
                        snprintf(chtemp,256, "10^{%d}", labelnumber);
                        typolabel = chtemp;
                        typolabel.ReplaceAll("-", "#minus");
                        textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                                             gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                                             0, textaxis->GetTextSize(), typolabel.Data());

                  }
               }
            }
            labelnumber++;
         }
L160:
         for (k=2;k<10;k++) {

//*-*-              Plot intermediate tick marks
            xone = x00+axmul*(TMath::Log10(Double_t(k))+Double_t(decade)-xmnlog);
            if (x00 > xone) continue;
            if (xone > x11) goto L200;
            y = 0;
            if (!mside)  y -= atick[1];
            xtwo = xone;
            Rotate(xone,y,cosphi,sinphi,x0,y0,xpl2,ypl2);
            Rotate(xtwo,atick[1],cosphi,sinphi,x0,y0,xpl1,ypl1);
            if (optionVert) {
               if ((x0 != x1) && (y0 != y1)) {
                  if (mside) {
                     xpl1 = xpl2;
                     if (cosphi > 0) ypl1 = ypl2 + atick[1];
                     else            ypl1 = ypl2 - atick[1];
                  }
                  else {
                     xpl1 = 0.5*(xpl1+xpl2);
                     xpl2 = xpl1;
                     ypl1 = 0.5*(ypl1+ypl2) + atick[1];
                     ypl2 = 0.5*(ypl1+ypl2) - atick[1];
                  }
               }
            }
            idn = n1a*2;
            if ((nbinin <= idn) || ((nbinin > idn) && (k == 5))) {
               if (!drawGridOnly) PaintLineNDC(xpl1, ypl1, xpl2, ypl2);

//*-*- Draw the intermediate LOG labels if requested

               if (moreLogLabels && !optionUnlab && !drawGridOnly && !overlap) {
                  if (noExponent) {
                     rlab = Double_t(k)*TMath::Power(10,labelnumber-1);
                     snprintf(chtemp,256, "%g", rlab);
                  } else {
                     if (labelnumber-1 == 0) {
                        snprintf(chtemp,256, "%d", k);
                     } else if (labelnumber-1 == 1) {
                        snprintf(chtemp,256, "%d", 10*k);
                     } else {
                        snprintf(chtemp,256, "%d#times10^{%d}", k, labelnumber-1);
                     }
                  }
                  Rotate (xone,ylabel,cosphi,sinphi,x0,y0,xx,yy);
                  if ((x0 == x1) && !optionPara) {
                     if (lside < 0) {
                        if (mside < 0) {
                           if (labelnumber == 0) nch=1;
                           else                  nch=2;
                           xx    += nch*charheight;
                        } else {
                           if (labelnumber >= 0) xx    += 0.25*charheight;
                           else                  xx    += 0.50*charheight;
                        }
                     }
                     xx += 0.25*charheight;
                  }
                  if ((y0 == y1) && !optionDown && !optionUp) {
                     if (noExponent) yy += 0.33*charheight;
                  }
                  if (optionVert) {
                     if ((x0 != x1) && (y0 != y1)) {
                        Rotate(xone,ylabel,cosphi,sinphi,x0,y0,xx,yy);
                        if (cosphi > 0) yy += ylabel;
                        else            yy -= ylabel;
                     }
                  }
                  textaxis->SetTitle(chtemp);
                  Double_t u = gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1());
                  Double_t v = gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1());
                  if (firstintlab) {
                     textaxis->GetBoundingBox(wi, hi); wi=(UInt_t)(wi*1.3); hi=(UInt_t)(hi*1.3);
                     xi1 = gPad->XtoAbsPixel(u);
                     yi1 = gPad->YtoAbsPixel(v);
                     firstintlab = kFALSE;
                     typolabel = chtemp;
                     typolabel.ReplaceAll("-", "#minus");
                     textaxis->PaintLatex(u,v,0,textaxis->GetTextSize(),typolabel.Data());
                  } else {
                     xi2 = gPad->XtoAbsPixel(u);
                     yi2 = gPad->YtoAbsPixel(v);
                     xl = TMath::Min(xi1,xi2);
                     xh = TMath::Max(xi1,xi2);
                     if ((x0 == x1 && yi1-hi <= yi2) || (y0 == y1 && xl+wi >= xh)){
                        overlap = kTRUE;
                     } else {
                        xi1 = xi2;
                        yi1 = yi2;
                        textaxis->GetBoundingBox(wi, hi); wi=(UInt_t)(wi*1.3); hi=(UInt_t)(hi*1.3);
                        typolabel = chtemp;
                        typolabel.ReplaceAll("-", "#minus");
                        textaxis->PaintLatex(u,v,0,textaxis->GetTextSize(),typolabel.Data());
                     }
                  }
               }

//*-*- Draw the intermediate LOG grid if only three decades are requested
               if (optionGrid && nbinin <= 5 && ndiv > 100) {
                  Rotate(xone,0,cosphi,sinphi,x0,y0,xpl2, ypl2);
                  Rotate(xone,grid_side*gridlength,cosphi,sinphi,x0,y0, xpl1,ypl1);
                  linegrid->PaintLineNDC(xpl1, ypl1, xpl2, ypl2);
               }
            }  //endif ((nbinin <= idn) ||
         }  //endfor (k=2;k<10;k++)
      } //endfor (j=1; j<=nbinin; j++)
L200:
      Int_t dummy = 0; if (dummy) { }
   }  //endif (optionLog && ndiv)


L210:
   if (optionGrid) delete linegrid;
   delete textaxis;
}


//______________________________________________________________________________
void TGaxis::AdjustBinSize(Double_t A1,  Double_t A2,  Int_t nold
                          ,Double_t &binLow, Double_t &binHigh, Int_t &nbins, Double_t &binWidth)
{
   /* Begin_html
   Internal method for axis labels optimisation. This method adjusts the bining
   of the axis in order to have integer values for the labels.
   <p>
   Input parameters:
   <ul>
   <li> A1,A2    : Old WMIN,WMAX
   <li> binLow,binHigh : New WMIN,WMAX
   <li> nold     : Old NDIV (primary divisions)
   <li> nbins    : New NDIV
   </ul>
   End_Html */

   binWidth = TMath::Abs(A2-A1)/Double_t(nold);
   if (binWidth <= 1) { binWidth = 1; binLow = int(A1); }
   else {
      Int_t width = int(binWidth/5) + 1;
      binWidth = 5*width;
      binLow   = int(A1/binWidth)*binWidth;

//*-*-     We determine binLow to have one tick mark at 0
//*-*-     if there are negative labels.

      if (A1 < 0) {
         for (Int_t ic=0; ic<1000; ic++) {
            Double_t rbl = binLow/binWidth;
            Int_t   ibl = int(binLow/binWidth);
            if ( (rbl-ibl) == 0 || ic > width) { binLow -= 5; break;}
         }
      }
   }
   binHigh     = int(A2);
   nbins       = 0;
   Double_t xb  = binLow;
   while (xb <= binHigh) {
      xb += binWidth;
      nbins++;
   }
   binHigh = xb - binWidth;
}


//______________________________________________________________________________
void TGaxis::LabelsLimits(const char *label, Int_t &first, Int_t &last)
{
   /* Begin_html
   Internal method to find first and last character of a label.
   End_Html */

   last = strlen(label)-1;
   for (Int_t i=0; i<=last; i++) {
      if (strchr("1234567890-+.", label[i]) ) { first = i; return; }
   }
   Error("LabelsLimits", "attempt to draw a blank label");
}


//______________________________________________________________________________
void TGaxis::Rotate(Double_t X,  Double_t Y,  Double_t CFI, Double_t SFI
                   ,Double_t XT, Double_t YT, Double_t &U,   Double_t &V)
{
   /* Begin_html
   Internal method to rotate axis coordinates.
   End_Html */

   U = CFI*X-SFI*Y+XT;
   V = SFI*X+CFI*Y+YT;
}


//______________________________________________________________________________
void TGaxis::SavePrimitive(std::ostream &out, Option_t * /*= ""*/)
{
   /* Begin_html
   Save primitive as a C++ statement(s) on output stream out
   End_Html */

   char quote = '"';
   if (gROOT->ClassSaved(TGaxis::Class())) {
      out<<"   ";
   } else {
      out<<"   TGaxis *";
   }
   out<<"gaxis = new TGaxis("<<fX1<<","<<fY1<<","<<fX2<<","<<fY2
      <<","<<fWmin<<","<<fWmax<<","<<fNdiv<<","<<quote<<fChopt.Data()<<quote<<");"<<std::endl;
   out<<"   gaxis->SetLabelOffset("<<GetLabelOffset()<<");"<<std::endl;
   out<<"   gaxis->SetLabelSize("<<GetLabelSize()<<");"<<std::endl;
   out<<"   gaxis->SetTickSize("<<GetTickSize()<<");"<<std::endl;
   out<<"   gaxis->SetGridLength("<<GetGridLength()<<");"<<std::endl;
   out<<"   gaxis->SetTitleOffset("<<GetTitleOffset()<<");"<<std::endl;
   out<<"   gaxis->SetTitleSize("<<GetTitleSize()<<");"<<std::endl;
   out<<"   gaxis->SetTitleColor("<<GetTextColor()<<");"<<std::endl;
   out<<"   gaxis->SetTitleFont("<<GetTextFont()<<");"<<std::endl;

   if (strlen(GetName())) {
      out<<"   gaxis->SetName("<<quote<<GetName()<<quote<<");"<<std::endl;
   }
   if (strlen(GetTitle())) {
      out<<"   gaxis->SetTitle("<<quote<<GetTitle()<<quote<<");"<<std::endl;
   }

   if (fLabelColor != 1) {
      if (fLabelColor > 228) {
         TColor::SaveColor(out, fLabelColor);
         out<<"   gaxis->SetLabelColor(ci);" << std::endl;
      } else
         out<<"   gaxis->SetLabelColor("<<GetLabelColor()<<");"<<std::endl;
   }
   if (fLineColor != 1) {
      if (fLineColor > 228) {
         TColor::SaveColor(out, fLineColor);
         out<<"   gaxis->SetLineColor(ci);" << std::endl;
      } else
         out<<"   gaxis->SetLineColor("<<GetLineColor()<<");"<<std::endl;
   }
   if (fLineStyle != 1) {
      out<<"   gaxis->SetLineStyle("<<GetLineStyle()<<");"<<std::endl;
   }
   if (fLineWidth != 1) {
      out<<"   gaxis->SetLineWidth("<<GetLineWidth()<<");"<<std::endl;
   }
   if (fLabelFont != 62) {
      out<<"   gaxis->SetLabelFont("<<GetLabelFont()<<");"<<std::endl;
   }
   if (TestBit(TAxis::kMoreLogLabels)) {
      out<<"   gaxis->SetMoreLogLabels();"<<std::endl;
   }
   if (TestBit(TAxis::kNoExponent)) {
      out<<"   gaxis->SetNoExponent();"<<std::endl;
   }

   out<<"   gaxis->Draw();"<<std::endl;
}


//______________________________________________________________________________
void TGaxis::SetDecimals(Bool_t dot)
{
   /* Begin_html
   Set the decimals flag. By default, blank characters are stripped, and then the
   label is correctly aligned. The dot, if last character of the string, is also
   stripped, unless this option is specified. One can disable the option by
   calling <tt>axis.SetDecimals(kTRUE)</tt>.
   Note the bit is set in fBits (as opposed to fBits2 in TAxis!)
   End_Html */

   if (dot) SetBit(TAxis::kDecimals);
   else     ResetBit(TAxis::kDecimals);
}


//______________________________________________________________________________
void TGaxis::SetFunction(const char *funcname)
{
   /* Begin_html
   Specify a function to map the axis values.
   End_Html */

   fFunctionName = funcname;
   if (!funcname[0]) {
      fFunction = 0;
      return;
   }
   fFunction = (TF1*)gROOT->GetFunction(funcname);
   if (!fFunction) {
      Error("SetFunction", "unknown function: %s", funcname);
   } else {
      fWmin = fFunction->GetXmin();
      fWmax = fFunction->GetXmax();
   }
}


//______________________________________________________________________________
void TGaxis::SetMaxDigits(Int_t maxd)
{
   /* Begin_html
   Static function to set <tt>fgMaxDigits</tt> for axis.<tt>fgMaxDigits</tt> is
   the maximum number of digits permitted for the axis labels above which the
   notation with 10^N is used.For example, to accept 6 digits number like 900000
   on an axis call <tt>TGaxis::SetMaxDigits(6)</tt>. The default value is 5.
   <tt>fgMaxDigits</tt> must be greater than 0.
   End_Html */

   fgMaxDigits = maxd;
   if (maxd < 1) fgMaxDigits = 1;
}


//______________________________________________________________________________
void TGaxis::SetName(const char *name)
{
   /* Begin_html
   Change the name of the axis.
   End_Html */

   fName = name;
}


//______________________________________________________________________________
void TGaxis::SetMoreLogLabels(Bool_t more)
{
   /* Begin_html
   Set the kMoreLogLabels bit flag. When this option is selected more labels are
   drawn when in logarithmic scale and there is a small number of decades (less than 3).
   Note that this option is automatically inherited from TAxis
   End_Html */

   if (more) SetBit(TAxis::kMoreLogLabels);
   else      ResetBit(TAxis::kMoreLogLabels);
}


//______________________________________________________________________________
void TGaxis::SetNoExponent(Bool_t noExponent)
{
   /* Begin_html
   Set the NoExponent flag. By default, an exponent of the form 10^N is used
   when the label values are either all very small or very large. One can disable
   the exponent by calling axis.SetNoExponent(kTRUE).
   End_Html */

   if (noExponent) SetBit(TAxis::kNoExponent);
   else            ResetBit(TAxis::kNoExponent);
}


//______________________________________________________________________________
void TGaxis::SetOption(Option_t *option)
{
   /* Begin_html
   To set axis options.
   End_Html */

   fChopt = option;
}


//______________________________________________________________________________
void TGaxis::SetTitle(const char *title)
{
   /* Begin_html
   Change the title of the axis.
   End_Html */

   fTitle = title;
}


//______________________________________________________________________________
void TGaxis::SetTimeFormat(const char *tformat)
{
   /* Begin_html
   Change the format used for time plotting.
   The format string for date and time use the same options as the one used
   in the standard strftime C function, i.e. :
   <p>
   for date :
   <ul>
   <li><tt>%a</tt> abbreviated weekday name
   <li><tt>%b</tt> abbreviated month name
   <li><tt>%d</tt> day of the month (01-31)
   <li><tt>%m</tt> month (01-12)
   <li><tt>%y</tt> year without century
   </ul>
   for time :
   <ul>
   <li><tt>%H</tt> hour (24-hour clock)
   <li><tt>%I</tt> hour (12-hour clock)
   <li><tt>%p</tt> local equivalent of AM or PM
   <li><tt>%M</tt> minute (00-59)
   <li><tt>%S</tt> seconds (00-61)
   <li><tt>%%</tt> %
   </ul>
   End_Html */

   TString timeformat = tformat;

   if (timeformat.Index("%F")>=0 || timeformat.IsNull()) {
      fTimeFormat = timeformat;
      return;
   }

   Int_t idF = fTimeFormat.Index("%F");
   if (idF>=0) {
      Int_t lnF = fTimeFormat.Length();
      TString stringtimeoffset = fTimeFormat(idF,lnF);
      fTimeFormat = tformat;
      fTimeFormat.Append(stringtimeoffset);
   } else {
      fTimeFormat = tformat;
      SetTimeOffset(gStyle->GetTimeOffset());
   }
}


//______________________________________________________________________________
void TGaxis::SetTimeOffset(Double_t toffset, Option_t *option)
{
   /* Begin_html
   Change the time offset. If option = "gmt", set display mode to GMT.
   End_Html */

   TString opt = option;
   opt.ToLower();

   char tmp[20];
   time_t timeoff;
   struct tm* utctis;
   Int_t idF = fTimeFormat.Index("%F");
   if (idF>=0) fTimeFormat.Remove(idF);
   fTimeFormat.Append("%F");

   timeoff = (time_t)((Long_t)(toffset));

   // offset is always saved in GMT to allow file transport
   // to different time zones
   utctis = gmtime(&timeoff);

   strftime(tmp, 20,"%Y-%m-%d %H:%M:%S",utctis);
   fTimeFormat.Append(tmp);

   // append the decimal part of the time offset
   Double_t ds = toffset-(Int_t)toffset;
   snprintf(tmp,20,"s%g",ds);
   fTimeFormat.Append(tmp);

   // add GMT/local option
   if (opt.Contains("gmt")) fTimeFormat.Append(" GMT");
}


//______________________________________________________________________________
void TGaxis::SetExponentOffset(Float_t xoff, Float_t yoff, Option_t *axis)
{
   /* Begin_html
   Static function to set X and Y offset of the axis 10^n notation.
   It is in % of the pad size. It can be negative.
   axis specifies which axis ("x","y"), default = "x"
   if axis="xz" set the two axes
   End_Html */

   TString opt = axis;
   opt.ToLower();

   if (opt.Contains("x")) {
      fXAxisExpXOffset = xoff;
      fXAxisExpYOffset = yoff;
   }
   if (opt.Contains("y")) {
      fYAxisExpXOffset = xoff;
      fYAxisExpYOffset = yoff;
   }
}


//______________________________________________________________________________
void TGaxis::Streamer(TBuffer &R__b)
{
   /* Begin_html
   Stream an object of class TGaxis.
   End_Html */

   if (R__b.IsReading()) {
      UInt_t R__s, R__c;
      Version_t R__v = R__b.ReadVersion(&R__s, &R__c);
      if (R__v > 3) {
         R__b.ReadClassBuffer(TGaxis::Class(), this, R__v, R__s, R__c);
         return;
      }
      //====process old versions before automatic schema evolution
      TLine::Streamer(R__b);
      TAttText::Streamer(R__b);
      R__b >> fNdiv;
      R__b >> fWmin;
      R__b >> fWmax;
      R__b >> fGridLength;
      R__b >> fTickSize;
      R__b >> fLabelOffset;
      R__b >> fLabelSize;
      R__b >> fTitleOffset;
      R__b >> fTitleSize;
      R__b >> fLabelFont;
      if (R__v > 2) {
         R__b >> fLabelColor;
      }
      fChopt.Streamer(R__b);
      fName.Streamer(R__b);
      fTitle.Streamer(R__b);
      fTimeFormat.Streamer(R__b);
      if (R__v > 1) {
         fFunctionName.Streamer(R__b);
         fFunction = (TF1*)gROOT->GetFunction(fFunctionName.Data());
      }
      R__b.CheckByteCount(R__s, R__c, TGaxis::IsA());
      //====end of old versions

   } else {
      R__b.WriteClassBuffer(TGaxis::Class(),this);
   }
}
 TGaxis.cxx:1
 TGaxis.cxx:2
 TGaxis.cxx:3
 TGaxis.cxx:4
 TGaxis.cxx:5
 TGaxis.cxx:6
 TGaxis.cxx:7
 TGaxis.cxx:8
 TGaxis.cxx:9
 TGaxis.cxx:10
 TGaxis.cxx:11
 TGaxis.cxx:12
 TGaxis.cxx:13
 TGaxis.cxx:14
 TGaxis.cxx:15
 TGaxis.cxx:16
 TGaxis.cxx:17
 TGaxis.cxx:18
 TGaxis.cxx:19
 TGaxis.cxx:20
 TGaxis.cxx:21
 TGaxis.cxx:22
 TGaxis.cxx:23
 TGaxis.cxx:24
 TGaxis.cxx:25
 TGaxis.cxx:26
 TGaxis.cxx:27
 TGaxis.cxx:28
 TGaxis.cxx:29
 TGaxis.cxx:30
 TGaxis.cxx:31
 TGaxis.cxx:32
 TGaxis.cxx:33
 TGaxis.cxx:34
 TGaxis.cxx:35
 TGaxis.cxx:36
 TGaxis.cxx:37
 TGaxis.cxx:38
 TGaxis.cxx:39
 TGaxis.cxx:40
 TGaxis.cxx:41
 TGaxis.cxx:42
 TGaxis.cxx:43
 TGaxis.cxx:44
 TGaxis.cxx:45
 TGaxis.cxx:46
 TGaxis.cxx:47
 TGaxis.cxx:48
 TGaxis.cxx:49
 TGaxis.cxx:50
 TGaxis.cxx:51
 TGaxis.cxx:52
 TGaxis.cxx:53
 TGaxis.cxx:54
 TGaxis.cxx:55
 TGaxis.cxx:56
 TGaxis.cxx:57
 TGaxis.cxx:58
 TGaxis.cxx:59
 TGaxis.cxx:60
 TGaxis.cxx:61
 TGaxis.cxx:62
 TGaxis.cxx:63
 TGaxis.cxx:64
 TGaxis.cxx:65
 TGaxis.cxx:66
 TGaxis.cxx:67
 TGaxis.cxx:68
 TGaxis.cxx:69
 TGaxis.cxx:70
 TGaxis.cxx:71
 TGaxis.cxx:72
 TGaxis.cxx:73
 TGaxis.cxx:74
 TGaxis.cxx:75
 TGaxis.cxx:76
 TGaxis.cxx:77
 TGaxis.cxx:78
 TGaxis.cxx:79
 TGaxis.cxx:80
 TGaxis.cxx:81
 TGaxis.cxx:82
 TGaxis.cxx:83
 TGaxis.cxx:84
 TGaxis.cxx:85
 TGaxis.cxx:86
 TGaxis.cxx:87
 TGaxis.cxx:88
 TGaxis.cxx:89
 TGaxis.cxx:90
 TGaxis.cxx:91
 TGaxis.cxx:92
 TGaxis.cxx:93
 TGaxis.cxx:94
 TGaxis.cxx:95
 TGaxis.cxx:96
 TGaxis.cxx:97
 TGaxis.cxx:98
 TGaxis.cxx:99
 TGaxis.cxx:100
 TGaxis.cxx:101
 TGaxis.cxx:102
 TGaxis.cxx:103
 TGaxis.cxx:104
 TGaxis.cxx:105
 TGaxis.cxx:106
 TGaxis.cxx:107
 TGaxis.cxx:108
 TGaxis.cxx:109
 TGaxis.cxx:110
 TGaxis.cxx:111
 TGaxis.cxx:112
 TGaxis.cxx:113
 TGaxis.cxx:114
 TGaxis.cxx:115
 TGaxis.cxx:116
 TGaxis.cxx:117
 TGaxis.cxx:118
 TGaxis.cxx:119
 TGaxis.cxx:120
 TGaxis.cxx:121
 TGaxis.cxx:122
 TGaxis.cxx:123
 TGaxis.cxx:124
 TGaxis.cxx:125
 TGaxis.cxx:126
 TGaxis.cxx:127
 TGaxis.cxx:128
 TGaxis.cxx:129
 TGaxis.cxx:130
 TGaxis.cxx:131
 TGaxis.cxx:132
 TGaxis.cxx:133
 TGaxis.cxx:134
 TGaxis.cxx:135
 TGaxis.cxx:136
 TGaxis.cxx:137
 TGaxis.cxx:138
 TGaxis.cxx:139
 TGaxis.cxx:140
 TGaxis.cxx:141
 TGaxis.cxx:142
 TGaxis.cxx:143
 TGaxis.cxx:144
 TGaxis.cxx:145
 TGaxis.cxx:146
 TGaxis.cxx:147
 TGaxis.cxx:148
 TGaxis.cxx:149
 TGaxis.cxx:150
 TGaxis.cxx:151
 TGaxis.cxx:152
 TGaxis.cxx:153
 TGaxis.cxx:154
 TGaxis.cxx:155
 TGaxis.cxx:156
 TGaxis.cxx:157
 TGaxis.cxx:158
 TGaxis.cxx:159
 TGaxis.cxx:160
 TGaxis.cxx:161
 TGaxis.cxx:162
 TGaxis.cxx:163
 TGaxis.cxx:164
 TGaxis.cxx:165
 TGaxis.cxx:166
 TGaxis.cxx:167
 TGaxis.cxx:168
 TGaxis.cxx:169
 TGaxis.cxx:170
 TGaxis.cxx:171
 TGaxis.cxx:172
 TGaxis.cxx:173
 TGaxis.cxx:174
 TGaxis.cxx:175
 TGaxis.cxx:176
 TGaxis.cxx:177
 TGaxis.cxx:178
 TGaxis.cxx:179
 TGaxis.cxx:180
 TGaxis.cxx:181
 TGaxis.cxx:182
 TGaxis.cxx:183
 TGaxis.cxx:184
 TGaxis.cxx:185
 TGaxis.cxx:186
 TGaxis.cxx:187
 TGaxis.cxx:188
 TGaxis.cxx:189
 TGaxis.cxx:190
 TGaxis.cxx:191
 TGaxis.cxx:192
 TGaxis.cxx:193
 TGaxis.cxx:194
 TGaxis.cxx:195
 TGaxis.cxx:196
 TGaxis.cxx:197
 TGaxis.cxx:198
 TGaxis.cxx:199
 TGaxis.cxx:200
 TGaxis.cxx:201
 TGaxis.cxx:202
 TGaxis.cxx:203
 TGaxis.cxx:204
 TGaxis.cxx:205
 TGaxis.cxx:206
 TGaxis.cxx:207
 TGaxis.cxx:208
 TGaxis.cxx:209
 TGaxis.cxx:210
 TGaxis.cxx:211
 TGaxis.cxx:212
 TGaxis.cxx:213
 TGaxis.cxx:214
 TGaxis.cxx:215
 TGaxis.cxx:216
 TGaxis.cxx:217
 TGaxis.cxx:218
 TGaxis.cxx:219
 TGaxis.cxx:220
 TGaxis.cxx:221
 TGaxis.cxx:222
 TGaxis.cxx:223
 TGaxis.cxx:224
 TGaxis.cxx:225
 TGaxis.cxx:226
 TGaxis.cxx:227
 TGaxis.cxx:228
 TGaxis.cxx:229
 TGaxis.cxx:230
 TGaxis.cxx:231
 TGaxis.cxx:232
 TGaxis.cxx:233
 TGaxis.cxx:234
 TGaxis.cxx:235
 TGaxis.cxx:236
 TGaxis.cxx:237
 TGaxis.cxx:238
 TGaxis.cxx:239
 TGaxis.cxx:240
 TGaxis.cxx:241
 TGaxis.cxx:242
 TGaxis.cxx:243
 TGaxis.cxx:244
 TGaxis.cxx:245
 TGaxis.cxx:246
 TGaxis.cxx:247
 TGaxis.cxx:248
 TGaxis.cxx:249
 TGaxis.cxx:250
 TGaxis.cxx:251
 TGaxis.cxx:252
 TGaxis.cxx:253
 TGaxis.cxx:254
 TGaxis.cxx:255
 TGaxis.cxx:256
 TGaxis.cxx:257
 TGaxis.cxx:258
 TGaxis.cxx:259
 TGaxis.cxx:260
 TGaxis.cxx:261
 TGaxis.cxx:262
 TGaxis.cxx:263
 TGaxis.cxx:264
 TGaxis.cxx:265
 TGaxis.cxx:266
 TGaxis.cxx:267
 TGaxis.cxx:268
 TGaxis.cxx:269
 TGaxis.cxx:270
 TGaxis.cxx:271
 TGaxis.cxx:272
 TGaxis.cxx:273
 TGaxis.cxx:274
 TGaxis.cxx:275
 TGaxis.cxx:276
 TGaxis.cxx:277
 TGaxis.cxx:278
 TGaxis.cxx:279
 TGaxis.cxx:280
 TGaxis.cxx:281
 TGaxis.cxx:282
 TGaxis.cxx:283
 TGaxis.cxx:284
 TGaxis.cxx:285
 TGaxis.cxx:286
 TGaxis.cxx:287
 TGaxis.cxx:288
 TGaxis.cxx:289
 TGaxis.cxx:290
 TGaxis.cxx:291
 TGaxis.cxx:292
 TGaxis.cxx:293
 TGaxis.cxx:294
 TGaxis.cxx:295
 TGaxis.cxx:296
 TGaxis.cxx:297
 TGaxis.cxx:298
 TGaxis.cxx:299
 TGaxis.cxx:300
 TGaxis.cxx:301
 TGaxis.cxx:302
 TGaxis.cxx:303
 TGaxis.cxx:304
 TGaxis.cxx:305
 TGaxis.cxx:306
 TGaxis.cxx:307
 TGaxis.cxx:308
 TGaxis.cxx:309
 TGaxis.cxx:310
 TGaxis.cxx:311
 TGaxis.cxx:312
 TGaxis.cxx:313
 TGaxis.cxx:314
 TGaxis.cxx:315
 TGaxis.cxx:316
 TGaxis.cxx:317
 TGaxis.cxx:318
 TGaxis.cxx:319
 TGaxis.cxx:320
 TGaxis.cxx:321
 TGaxis.cxx:322
 TGaxis.cxx:323
 TGaxis.cxx:324
 TGaxis.cxx:325
 TGaxis.cxx:326
 TGaxis.cxx:327
 TGaxis.cxx:328
 TGaxis.cxx:329
 TGaxis.cxx:330
 TGaxis.cxx:331
 TGaxis.cxx:332
 TGaxis.cxx:333
 TGaxis.cxx:334
 TGaxis.cxx:335
 TGaxis.cxx:336
 TGaxis.cxx:337
 TGaxis.cxx:338
 TGaxis.cxx:339
 TGaxis.cxx:340
 TGaxis.cxx:341
 TGaxis.cxx:342
 TGaxis.cxx:343
 TGaxis.cxx:344
 TGaxis.cxx:345
 TGaxis.cxx:346
 TGaxis.cxx:347
 TGaxis.cxx:348
 TGaxis.cxx:349
 TGaxis.cxx:350
 TGaxis.cxx:351
 TGaxis.cxx:352
 TGaxis.cxx:353
 TGaxis.cxx:354
 TGaxis.cxx:355
 TGaxis.cxx:356
 TGaxis.cxx:357
 TGaxis.cxx:358
 TGaxis.cxx:359
 TGaxis.cxx:360
 TGaxis.cxx:361
 TGaxis.cxx:362
 TGaxis.cxx:363
 TGaxis.cxx:364
 TGaxis.cxx:365
 TGaxis.cxx:366
 TGaxis.cxx:367
 TGaxis.cxx:368
 TGaxis.cxx:369
 TGaxis.cxx:370
 TGaxis.cxx:371
 TGaxis.cxx:372
 TGaxis.cxx:373
 TGaxis.cxx:374
 TGaxis.cxx:375
 TGaxis.cxx:376
 TGaxis.cxx:377
 TGaxis.cxx:378
 TGaxis.cxx:379
 TGaxis.cxx:380
 TGaxis.cxx:381
 TGaxis.cxx:382
 TGaxis.cxx:383
 TGaxis.cxx:384
 TGaxis.cxx:385
 TGaxis.cxx:386
 TGaxis.cxx:387
 TGaxis.cxx:388
 TGaxis.cxx:389
 TGaxis.cxx:390
 TGaxis.cxx:391
 TGaxis.cxx:392
 TGaxis.cxx:393
 TGaxis.cxx:394
 TGaxis.cxx:395
 TGaxis.cxx:396
 TGaxis.cxx:397
 TGaxis.cxx:398
 TGaxis.cxx:399
 TGaxis.cxx:400
 TGaxis.cxx:401
 TGaxis.cxx:402
 TGaxis.cxx:403
 TGaxis.cxx:404
 TGaxis.cxx:405
 TGaxis.cxx:406
 TGaxis.cxx:407
 TGaxis.cxx:408
 TGaxis.cxx:409
 TGaxis.cxx:410
 TGaxis.cxx:411
 TGaxis.cxx:412
 TGaxis.cxx:413
 TGaxis.cxx:414
 TGaxis.cxx:415
 TGaxis.cxx:416
 TGaxis.cxx:417
 TGaxis.cxx:418
 TGaxis.cxx:419
 TGaxis.cxx:420
 TGaxis.cxx:421
 TGaxis.cxx:422
 TGaxis.cxx:423
 TGaxis.cxx:424
 TGaxis.cxx:425
 TGaxis.cxx:426
 TGaxis.cxx:427
 TGaxis.cxx:428
 TGaxis.cxx:429
 TGaxis.cxx:430
 TGaxis.cxx:431
 TGaxis.cxx:432
 TGaxis.cxx:433
 TGaxis.cxx:434
 TGaxis.cxx:435
 TGaxis.cxx:436
 TGaxis.cxx:437
 TGaxis.cxx:438
 TGaxis.cxx:439
 TGaxis.cxx:440
 TGaxis.cxx:441
 TGaxis.cxx:442
 TGaxis.cxx:443
 TGaxis.cxx:444
 TGaxis.cxx:445
 TGaxis.cxx:446
 TGaxis.cxx:447
 TGaxis.cxx:448
 TGaxis.cxx:449
 TGaxis.cxx:450
 TGaxis.cxx:451
 TGaxis.cxx:452
 TGaxis.cxx:453
 TGaxis.cxx:454
 TGaxis.cxx:455
 TGaxis.cxx:456
 TGaxis.cxx:457
 TGaxis.cxx:458
 TGaxis.cxx:459
 TGaxis.cxx:460
 TGaxis.cxx:461
 TGaxis.cxx:462
 TGaxis.cxx:463
 TGaxis.cxx:464
 TGaxis.cxx:465
 TGaxis.cxx:466
 TGaxis.cxx:467
 TGaxis.cxx:468
 TGaxis.cxx:469
 TGaxis.cxx:470
 TGaxis.cxx:471
 TGaxis.cxx:472
 TGaxis.cxx:473
 TGaxis.cxx:474
 TGaxis.cxx:475
 TGaxis.cxx:476
 TGaxis.cxx:477
 TGaxis.cxx:478
 TGaxis.cxx:479
 TGaxis.cxx:480
 TGaxis.cxx:481
 TGaxis.cxx:482
 TGaxis.cxx:483
 TGaxis.cxx:484
 TGaxis.cxx:485
 TGaxis.cxx:486
 TGaxis.cxx:487
 TGaxis.cxx:488
 TGaxis.cxx:489
 TGaxis.cxx:490
 TGaxis.cxx:491
 TGaxis.cxx:492
 TGaxis.cxx:493
 TGaxis.cxx:494
 TGaxis.cxx:495
 TGaxis.cxx:496
 TGaxis.cxx:497
 TGaxis.cxx:498
 TGaxis.cxx:499
 TGaxis.cxx:500
 TGaxis.cxx:501
 TGaxis.cxx:502
 TGaxis.cxx:503
 TGaxis.cxx:504
 TGaxis.cxx:505
 TGaxis.cxx:506
 TGaxis.cxx:507
 TGaxis.cxx:508
 TGaxis.cxx:509
 TGaxis.cxx:510
 TGaxis.cxx:511
 TGaxis.cxx:512
 TGaxis.cxx:513
 TGaxis.cxx:514
 TGaxis.cxx:515
 TGaxis.cxx:516
 TGaxis.cxx:517
 TGaxis.cxx:518
 TGaxis.cxx:519
 TGaxis.cxx:520
 TGaxis.cxx:521
 TGaxis.cxx:522
 TGaxis.cxx:523
 TGaxis.cxx:524
 TGaxis.cxx:525
 TGaxis.cxx:526
 TGaxis.cxx:527
 TGaxis.cxx:528
 TGaxis.cxx:529
 TGaxis.cxx:530
 TGaxis.cxx:531
 TGaxis.cxx:532
 TGaxis.cxx:533
 TGaxis.cxx:534
 TGaxis.cxx:535
 TGaxis.cxx:536
 TGaxis.cxx:537
 TGaxis.cxx:538
 TGaxis.cxx:539
 TGaxis.cxx:540
 TGaxis.cxx:541
 TGaxis.cxx:542
 TGaxis.cxx:543
 TGaxis.cxx:544
 TGaxis.cxx:545
 TGaxis.cxx:546
 TGaxis.cxx:547
 TGaxis.cxx:548
 TGaxis.cxx:549
 TGaxis.cxx:550
 TGaxis.cxx:551
 TGaxis.cxx:552
 TGaxis.cxx:553
 TGaxis.cxx:554
 TGaxis.cxx:555
 TGaxis.cxx:556
 TGaxis.cxx:557
 TGaxis.cxx:558
 TGaxis.cxx:559
 TGaxis.cxx:560
 TGaxis.cxx:561
 TGaxis.cxx:562
 TGaxis.cxx:563
 TGaxis.cxx:564
 TGaxis.cxx:565
 TGaxis.cxx:566
 TGaxis.cxx:567
 TGaxis.cxx:568
 TGaxis.cxx:569
 TGaxis.cxx:570
 TGaxis.cxx:571
 TGaxis.cxx:572
 TGaxis.cxx:573
 TGaxis.cxx:574
 TGaxis.cxx:575
 TGaxis.cxx:576
 TGaxis.cxx:577
 TGaxis.cxx:578
 TGaxis.cxx:579
 TGaxis.cxx:580
 TGaxis.cxx:581
 TGaxis.cxx:582
 TGaxis.cxx:583
 TGaxis.cxx:584
 TGaxis.cxx:585
 TGaxis.cxx:586
 TGaxis.cxx:587
 TGaxis.cxx:588
 TGaxis.cxx:589
 TGaxis.cxx:590
 TGaxis.cxx:591
 TGaxis.cxx:592
 TGaxis.cxx:593
 TGaxis.cxx:594
 TGaxis.cxx:595
 TGaxis.cxx:596
 TGaxis.cxx:597
 TGaxis.cxx:598
 TGaxis.cxx:599
 TGaxis.cxx:600
 TGaxis.cxx:601
 TGaxis.cxx:602
 TGaxis.cxx:603
 TGaxis.cxx:604
 TGaxis.cxx:605
 TGaxis.cxx:606
 TGaxis.cxx:607
 TGaxis.cxx:608
 TGaxis.cxx:609
 TGaxis.cxx:610
 TGaxis.cxx:611
 TGaxis.cxx:612
 TGaxis.cxx:613
 TGaxis.cxx:614
 TGaxis.cxx:615
 TGaxis.cxx:616
 TGaxis.cxx:617
 TGaxis.cxx:618
 TGaxis.cxx:619
 TGaxis.cxx:620
 TGaxis.cxx:621
 TGaxis.cxx:622
 TGaxis.cxx:623
 TGaxis.cxx:624
 TGaxis.cxx:625
 TGaxis.cxx:626
 TGaxis.cxx:627
 TGaxis.cxx:628
 TGaxis.cxx:629
 TGaxis.cxx:630
 TGaxis.cxx:631
 TGaxis.cxx:632
 TGaxis.cxx:633
 TGaxis.cxx:634
 TGaxis.cxx:635
 TGaxis.cxx:636
 TGaxis.cxx:637
 TGaxis.cxx:638
 TGaxis.cxx:639
 TGaxis.cxx:640
 TGaxis.cxx:641
 TGaxis.cxx:642
 TGaxis.cxx:643
 TGaxis.cxx:644
 TGaxis.cxx:645
 TGaxis.cxx:646
 TGaxis.cxx:647
 TGaxis.cxx:648
 TGaxis.cxx:649
 TGaxis.cxx:650
 TGaxis.cxx:651
 TGaxis.cxx:652
 TGaxis.cxx:653
 TGaxis.cxx:654
 TGaxis.cxx:655
 TGaxis.cxx:656
 TGaxis.cxx:657
 TGaxis.cxx:658
 TGaxis.cxx:659
 TGaxis.cxx:660
 TGaxis.cxx:661
 TGaxis.cxx:662
 TGaxis.cxx:663
 TGaxis.cxx:664
 TGaxis.cxx:665
 TGaxis.cxx:666
 TGaxis.cxx:667
 TGaxis.cxx:668
 TGaxis.cxx:669
 TGaxis.cxx:670
 TGaxis.cxx:671
 TGaxis.cxx:672
 TGaxis.cxx:673
 TGaxis.cxx:674
 TGaxis.cxx:675
 TGaxis.cxx:676
 TGaxis.cxx:677
 TGaxis.cxx:678
 TGaxis.cxx:679
 TGaxis.cxx:680
 TGaxis.cxx:681
 TGaxis.cxx:682
 TGaxis.cxx:683
 TGaxis.cxx:684
 TGaxis.cxx:685
 TGaxis.cxx:686
 TGaxis.cxx:687
 TGaxis.cxx:688
 TGaxis.cxx:689
 TGaxis.cxx:690
 TGaxis.cxx:691
 TGaxis.cxx:692
 TGaxis.cxx:693
 TGaxis.cxx:694
 TGaxis.cxx:695
 TGaxis.cxx:696
 TGaxis.cxx:697
 TGaxis.cxx:698
 TGaxis.cxx:699
 TGaxis.cxx:700
 TGaxis.cxx:701
 TGaxis.cxx:702
 TGaxis.cxx:703
 TGaxis.cxx:704
 TGaxis.cxx:705
 TGaxis.cxx:706
 TGaxis.cxx:707
 TGaxis.cxx:708
 TGaxis.cxx:709
 TGaxis.cxx:710
 TGaxis.cxx:711
 TGaxis.cxx:712
 TGaxis.cxx:713
 TGaxis.cxx:714
 TGaxis.cxx:715
 TGaxis.cxx:716
 TGaxis.cxx:717
 TGaxis.cxx:718
 TGaxis.cxx:719
 TGaxis.cxx:720
 TGaxis.cxx:721
 TGaxis.cxx:722
 TGaxis.cxx:723
 TGaxis.cxx:724
 TGaxis.cxx:725
 TGaxis.cxx:726
 TGaxis.cxx:727
 TGaxis.cxx:728
 TGaxis.cxx:729
 TGaxis.cxx:730
 TGaxis.cxx:731
 TGaxis.cxx:732
 TGaxis.cxx:733
 TGaxis.cxx:734
 TGaxis.cxx:735
 TGaxis.cxx:736
 TGaxis.cxx:737
 TGaxis.cxx:738
 TGaxis.cxx:739
 TGaxis.cxx:740
 TGaxis.cxx:741
 TGaxis.cxx:742
 TGaxis.cxx:743
 TGaxis.cxx:744
 TGaxis.cxx:745
 TGaxis.cxx:746
 TGaxis.cxx:747
 TGaxis.cxx:748
 TGaxis.cxx:749
 TGaxis.cxx:750
 TGaxis.cxx:751
 TGaxis.cxx:752
 TGaxis.cxx:753
 TGaxis.cxx:754
 TGaxis.cxx:755
 TGaxis.cxx:756
 TGaxis.cxx:757
 TGaxis.cxx:758
 TGaxis.cxx:759
 TGaxis.cxx:760
 TGaxis.cxx:761
 TGaxis.cxx:762
 TGaxis.cxx:763
 TGaxis.cxx:764
 TGaxis.cxx:765
 TGaxis.cxx:766
 TGaxis.cxx:767
 TGaxis.cxx:768
 TGaxis.cxx:769
 TGaxis.cxx:770
 TGaxis.cxx:771
 TGaxis.cxx:772
 TGaxis.cxx:773
 TGaxis.cxx:774
 TGaxis.cxx:775
 TGaxis.cxx:776
 TGaxis.cxx:777
 TGaxis.cxx:778
 TGaxis.cxx:779
 TGaxis.cxx:780
 TGaxis.cxx:781
 TGaxis.cxx:782
 TGaxis.cxx:783
 TGaxis.cxx:784
 TGaxis.cxx:785
 TGaxis.cxx:786
 TGaxis.cxx:787
 TGaxis.cxx:788
 TGaxis.cxx:789
 TGaxis.cxx:790
 TGaxis.cxx:791
 TGaxis.cxx:792
 TGaxis.cxx:793
 TGaxis.cxx:794
 TGaxis.cxx:795
 TGaxis.cxx:796
 TGaxis.cxx:797
 TGaxis.cxx:798
 TGaxis.cxx:799
 TGaxis.cxx:800
 TGaxis.cxx:801
 TGaxis.cxx:802
 TGaxis.cxx:803
 TGaxis.cxx:804
 TGaxis.cxx:805
 TGaxis.cxx:806
 TGaxis.cxx:807
 TGaxis.cxx:808
 TGaxis.cxx:809
 TGaxis.cxx:810
 TGaxis.cxx:811
 TGaxis.cxx:812
 TGaxis.cxx:813
 TGaxis.cxx:814
 TGaxis.cxx:815
 TGaxis.cxx:816
 TGaxis.cxx:817
 TGaxis.cxx:818
 TGaxis.cxx:819
 TGaxis.cxx:820
 TGaxis.cxx:821
 TGaxis.cxx:822
 TGaxis.cxx:823
 TGaxis.cxx:824
 TGaxis.cxx:825
 TGaxis.cxx:826
 TGaxis.cxx:827
 TGaxis.cxx:828
 TGaxis.cxx:829
 TGaxis.cxx:830
 TGaxis.cxx:831
 TGaxis.cxx:832
 TGaxis.cxx:833
 TGaxis.cxx:834
 TGaxis.cxx:835
 TGaxis.cxx:836
 TGaxis.cxx:837
 TGaxis.cxx:838
 TGaxis.cxx:839
 TGaxis.cxx:840
 TGaxis.cxx:841
 TGaxis.cxx:842
 TGaxis.cxx:843
 TGaxis.cxx:844
 TGaxis.cxx:845
 TGaxis.cxx:846
 TGaxis.cxx:847
 TGaxis.cxx:848
 TGaxis.cxx:849
 TGaxis.cxx:850
 TGaxis.cxx:851
 TGaxis.cxx:852
 TGaxis.cxx:853
 TGaxis.cxx:854
 TGaxis.cxx:855
 TGaxis.cxx:856
 TGaxis.cxx:857
 TGaxis.cxx:858
 TGaxis.cxx:859
 TGaxis.cxx:860
 TGaxis.cxx:861
 TGaxis.cxx:862
 TGaxis.cxx:863
 TGaxis.cxx:864
 TGaxis.cxx:865
 TGaxis.cxx:866
 TGaxis.cxx:867
 TGaxis.cxx:868
 TGaxis.cxx:869
 TGaxis.cxx:870
 TGaxis.cxx:871
 TGaxis.cxx:872
 TGaxis.cxx:873
 TGaxis.cxx:874
 TGaxis.cxx:875
 TGaxis.cxx:876
 TGaxis.cxx:877
 TGaxis.cxx:878
 TGaxis.cxx:879
 TGaxis.cxx:880
 TGaxis.cxx:881
 TGaxis.cxx:882
 TGaxis.cxx:883
 TGaxis.cxx:884
 TGaxis.cxx:885
 TGaxis.cxx:886
 TGaxis.cxx:887
 TGaxis.cxx:888
 TGaxis.cxx:889
 TGaxis.cxx:890
 TGaxis.cxx:891
 TGaxis.cxx:892
 TGaxis.cxx:893
 TGaxis.cxx:894
 TGaxis.cxx:895
 TGaxis.cxx:896
 TGaxis.cxx:897
 TGaxis.cxx:898
 TGaxis.cxx:899
 TGaxis.cxx:900
 TGaxis.cxx:901
 TGaxis.cxx:902
 TGaxis.cxx:903
 TGaxis.cxx:904
 TGaxis.cxx:905
 TGaxis.cxx:906
 TGaxis.cxx:907
 TGaxis.cxx:908
 TGaxis.cxx:909
 TGaxis.cxx:910
 TGaxis.cxx:911
 TGaxis.cxx:912
 TGaxis.cxx:913
 TGaxis.cxx:914
 TGaxis.cxx:915
 TGaxis.cxx:916
 TGaxis.cxx:917
 TGaxis.cxx:918
 TGaxis.cxx:919
 TGaxis.cxx:920
 TGaxis.cxx:921
 TGaxis.cxx:922
 TGaxis.cxx:923
 TGaxis.cxx:924
 TGaxis.cxx:925
 TGaxis.cxx:926
 TGaxis.cxx:927
 TGaxis.cxx:928
 TGaxis.cxx:929
 TGaxis.cxx:930
 TGaxis.cxx:931
 TGaxis.cxx:932
 TGaxis.cxx:933
 TGaxis.cxx:934
 TGaxis.cxx:935
 TGaxis.cxx:936
 TGaxis.cxx:937
 TGaxis.cxx:938
 TGaxis.cxx:939
 TGaxis.cxx:940
 TGaxis.cxx:941
 TGaxis.cxx:942
 TGaxis.cxx:943
 TGaxis.cxx:944
 TGaxis.cxx:945
 TGaxis.cxx:946
 TGaxis.cxx:947
 TGaxis.cxx:948
 TGaxis.cxx:949
 TGaxis.cxx:950
 TGaxis.cxx:951
 TGaxis.cxx:952
 TGaxis.cxx:953
 TGaxis.cxx:954
 TGaxis.cxx:955
 TGaxis.cxx:956
 TGaxis.cxx:957
 TGaxis.cxx:958
 TGaxis.cxx:959
 TGaxis.cxx:960
 TGaxis.cxx:961
 TGaxis.cxx:962
 TGaxis.cxx:963
 TGaxis.cxx:964
 TGaxis.cxx:965
 TGaxis.cxx:966
 TGaxis.cxx:967
 TGaxis.cxx:968
 TGaxis.cxx:969
 TGaxis.cxx:970
 TGaxis.cxx:971
 TGaxis.cxx:972
 TGaxis.cxx:973
 TGaxis.cxx:974
 TGaxis.cxx:975
 TGaxis.cxx:976
 TGaxis.cxx:977
 TGaxis.cxx:978
 TGaxis.cxx:979
 TGaxis.cxx:980
 TGaxis.cxx:981
 TGaxis.cxx:982
 TGaxis.cxx:983
 TGaxis.cxx:984
 TGaxis.cxx:985
 TGaxis.cxx:986
 TGaxis.cxx:987
 TGaxis.cxx:988
 TGaxis.cxx:989
 TGaxis.cxx:990
 TGaxis.cxx:991
 TGaxis.cxx:992
 TGaxis.cxx:993
 TGaxis.cxx:994
 TGaxis.cxx:995
 TGaxis.cxx:996
 TGaxis.cxx:997
 TGaxis.cxx:998
 TGaxis.cxx:999
 TGaxis.cxx:1000
 TGaxis.cxx:1001
 TGaxis.cxx:1002
 TGaxis.cxx:1003
 TGaxis.cxx:1004
 TGaxis.cxx:1005
 TGaxis.cxx:1006
 TGaxis.cxx:1007
 TGaxis.cxx:1008
 TGaxis.cxx:1009
 TGaxis.cxx:1010
 TGaxis.cxx:1011
 TGaxis.cxx:1012
 TGaxis.cxx:1013
 TGaxis.cxx:1014
 TGaxis.cxx:1015
 TGaxis.cxx:1016
 TGaxis.cxx:1017
 TGaxis.cxx:1018
 TGaxis.cxx:1019
 TGaxis.cxx:1020
 TGaxis.cxx:1021
 TGaxis.cxx:1022
 TGaxis.cxx:1023
 TGaxis.cxx:1024
 TGaxis.cxx:1025
 TGaxis.cxx:1026
 TGaxis.cxx:1027
 TGaxis.cxx:1028
 TGaxis.cxx:1029
 TGaxis.cxx:1030
 TGaxis.cxx:1031
 TGaxis.cxx:1032
 TGaxis.cxx:1033
 TGaxis.cxx:1034
 TGaxis.cxx:1035
 TGaxis.cxx:1036
 TGaxis.cxx:1037
 TGaxis.cxx:1038
 TGaxis.cxx:1039
 TGaxis.cxx:1040
 TGaxis.cxx:1041
 TGaxis.cxx:1042
 TGaxis.cxx:1043
 TGaxis.cxx:1044
 TGaxis.cxx:1045
 TGaxis.cxx:1046
 TGaxis.cxx:1047
 TGaxis.cxx:1048
 TGaxis.cxx:1049
 TGaxis.cxx:1050
 TGaxis.cxx:1051
 TGaxis.cxx:1052
 TGaxis.cxx:1053
 TGaxis.cxx:1054
 TGaxis.cxx:1055
 TGaxis.cxx:1056
 TGaxis.cxx:1057
 TGaxis.cxx:1058
 TGaxis.cxx:1059
 TGaxis.cxx:1060
 TGaxis.cxx:1061
 TGaxis.cxx:1062
 TGaxis.cxx:1063
 TGaxis.cxx:1064
 TGaxis.cxx:1065
 TGaxis.cxx:1066
 TGaxis.cxx:1067
 TGaxis.cxx:1068
 TGaxis.cxx:1069
 TGaxis.cxx:1070
 TGaxis.cxx:1071
 TGaxis.cxx:1072
 TGaxis.cxx:1073
 TGaxis.cxx:1074
 TGaxis.cxx:1075
 TGaxis.cxx:1076
 TGaxis.cxx:1077
 TGaxis.cxx:1078
 TGaxis.cxx:1079
 TGaxis.cxx:1080
 TGaxis.cxx:1081
 TGaxis.cxx:1082
 TGaxis.cxx:1083
 TGaxis.cxx:1084
 TGaxis.cxx:1085
 TGaxis.cxx:1086
 TGaxis.cxx:1087
 TGaxis.cxx:1088
 TGaxis.cxx:1089
 TGaxis.cxx:1090
 TGaxis.cxx:1091
 TGaxis.cxx:1092
 TGaxis.cxx:1093
 TGaxis.cxx:1094
 TGaxis.cxx:1095
 TGaxis.cxx:1096
 TGaxis.cxx:1097
 TGaxis.cxx:1098
 TGaxis.cxx:1099
 TGaxis.cxx:1100
 TGaxis.cxx:1101
 TGaxis.cxx:1102
 TGaxis.cxx:1103
 TGaxis.cxx:1104
 TGaxis.cxx:1105
 TGaxis.cxx:1106
 TGaxis.cxx:1107
 TGaxis.cxx:1108
 TGaxis.cxx:1109
 TGaxis.cxx:1110
 TGaxis.cxx:1111
 TGaxis.cxx:1112
 TGaxis.cxx:1113
 TGaxis.cxx:1114
 TGaxis.cxx:1115
 TGaxis.cxx:1116
 TGaxis.cxx:1117
 TGaxis.cxx:1118
 TGaxis.cxx:1119
 TGaxis.cxx:1120
 TGaxis.cxx:1121
 TGaxis.cxx:1122
 TGaxis.cxx:1123
 TGaxis.cxx:1124
 TGaxis.cxx:1125
 TGaxis.cxx:1126
 TGaxis.cxx:1127
 TGaxis.cxx:1128
 TGaxis.cxx:1129
 TGaxis.cxx:1130
 TGaxis.cxx:1131
 TGaxis.cxx:1132
 TGaxis.cxx:1133
 TGaxis.cxx:1134
 TGaxis.cxx:1135
 TGaxis.cxx:1136
 TGaxis.cxx:1137
 TGaxis.cxx:1138
 TGaxis.cxx:1139
 TGaxis.cxx:1140
 TGaxis.cxx:1141
 TGaxis.cxx:1142
 TGaxis.cxx:1143
 TGaxis.cxx:1144
 TGaxis.cxx:1145
 TGaxis.cxx:1146
 TGaxis.cxx:1147
 TGaxis.cxx:1148
 TGaxis.cxx:1149
 TGaxis.cxx:1150
 TGaxis.cxx:1151
 TGaxis.cxx:1152
 TGaxis.cxx:1153
 TGaxis.cxx:1154
 TGaxis.cxx:1155
 TGaxis.cxx:1156
 TGaxis.cxx:1157
 TGaxis.cxx:1158
 TGaxis.cxx:1159
 TGaxis.cxx:1160
 TGaxis.cxx:1161
 TGaxis.cxx:1162
 TGaxis.cxx:1163
 TGaxis.cxx:1164
 TGaxis.cxx:1165
 TGaxis.cxx:1166
 TGaxis.cxx:1167
 TGaxis.cxx:1168
 TGaxis.cxx:1169
 TGaxis.cxx:1170
 TGaxis.cxx:1171
 TGaxis.cxx:1172
 TGaxis.cxx:1173
 TGaxis.cxx:1174
 TGaxis.cxx:1175
 TGaxis.cxx:1176
 TGaxis.cxx:1177
 TGaxis.cxx:1178
 TGaxis.cxx:1179
 TGaxis.cxx:1180
 TGaxis.cxx:1181
 TGaxis.cxx:1182
 TGaxis.cxx:1183
 TGaxis.cxx:1184
 TGaxis.cxx:1185
 TGaxis.cxx:1186
 TGaxis.cxx:1187
 TGaxis.cxx:1188
 TGaxis.cxx:1189
 TGaxis.cxx:1190
 TGaxis.cxx:1191
 TGaxis.cxx:1192
 TGaxis.cxx:1193
 TGaxis.cxx:1194
 TGaxis.cxx:1195
 TGaxis.cxx:1196
 TGaxis.cxx:1197
 TGaxis.cxx:1198
 TGaxis.cxx:1199
 TGaxis.cxx:1200
 TGaxis.cxx:1201
 TGaxis.cxx:1202
 TGaxis.cxx:1203
 TGaxis.cxx:1204
 TGaxis.cxx:1205
 TGaxis.cxx:1206
 TGaxis.cxx:1207
 TGaxis.cxx:1208
 TGaxis.cxx:1209
 TGaxis.cxx:1210
 TGaxis.cxx:1211
 TGaxis.cxx:1212
 TGaxis.cxx:1213
 TGaxis.cxx:1214
 TGaxis.cxx:1215
 TGaxis.cxx:1216
 TGaxis.cxx:1217
 TGaxis.cxx:1218
 TGaxis.cxx:1219
 TGaxis.cxx:1220
 TGaxis.cxx:1221
 TGaxis.cxx:1222
 TGaxis.cxx:1223
 TGaxis.cxx:1224
 TGaxis.cxx:1225
 TGaxis.cxx:1226
 TGaxis.cxx:1227
 TGaxis.cxx:1228
 TGaxis.cxx:1229
 TGaxis.cxx:1230
 TGaxis.cxx:1231
 TGaxis.cxx:1232
 TGaxis.cxx:1233
 TGaxis.cxx:1234
 TGaxis.cxx:1235
 TGaxis.cxx:1236
 TGaxis.cxx:1237
 TGaxis.cxx:1238
 TGaxis.cxx:1239
 TGaxis.cxx:1240
 TGaxis.cxx:1241
 TGaxis.cxx:1242
 TGaxis.cxx:1243
 TGaxis.cxx:1244
 TGaxis.cxx:1245
 TGaxis.cxx:1246
 TGaxis.cxx:1247
 TGaxis.cxx:1248
 TGaxis.cxx:1249
 TGaxis.cxx:1250
 TGaxis.cxx:1251
 TGaxis.cxx:1252
 TGaxis.cxx:1253
 TGaxis.cxx:1254
 TGaxis.cxx:1255
 TGaxis.cxx:1256
 TGaxis.cxx:1257
 TGaxis.cxx:1258
 TGaxis.cxx:1259
 TGaxis.cxx:1260
 TGaxis.cxx:1261
 TGaxis.cxx:1262
 TGaxis.cxx:1263
 TGaxis.cxx:1264
 TGaxis.cxx:1265
 TGaxis.cxx:1266
 TGaxis.cxx:1267
 TGaxis.cxx:1268
 TGaxis.cxx:1269
 TGaxis.cxx:1270
 TGaxis.cxx:1271
 TGaxis.cxx:1272
 TGaxis.cxx:1273
 TGaxis.cxx:1274
 TGaxis.cxx:1275
 TGaxis.cxx:1276
 TGaxis.cxx:1277
 TGaxis.cxx:1278
 TGaxis.cxx:1279
 TGaxis.cxx:1280
 TGaxis.cxx:1281
 TGaxis.cxx:1282
 TGaxis.cxx:1283
 TGaxis.cxx:1284
 TGaxis.cxx:1285
 TGaxis.cxx:1286
 TGaxis.cxx:1287
 TGaxis.cxx:1288
 TGaxis.cxx:1289
 TGaxis.cxx:1290
 TGaxis.cxx:1291
 TGaxis.cxx:1292
 TGaxis.cxx:1293
 TGaxis.cxx:1294
 TGaxis.cxx:1295
 TGaxis.cxx:1296
 TGaxis.cxx:1297
 TGaxis.cxx:1298
 TGaxis.cxx:1299
 TGaxis.cxx:1300
 TGaxis.cxx:1301
 TGaxis.cxx:1302
 TGaxis.cxx:1303
 TGaxis.cxx:1304
 TGaxis.cxx:1305
 TGaxis.cxx:1306
 TGaxis.cxx:1307
 TGaxis.cxx:1308
 TGaxis.cxx:1309
 TGaxis.cxx:1310
 TGaxis.cxx:1311
 TGaxis.cxx:1312
 TGaxis.cxx:1313
 TGaxis.cxx:1314
 TGaxis.cxx:1315
 TGaxis.cxx:1316
 TGaxis.cxx:1317
 TGaxis.cxx:1318
 TGaxis.cxx:1319
 TGaxis.cxx:1320
 TGaxis.cxx:1321
 TGaxis.cxx:1322
 TGaxis.cxx:1323
 TGaxis.cxx:1324
 TGaxis.cxx:1325
 TGaxis.cxx:1326
 TGaxis.cxx:1327
 TGaxis.cxx:1328
 TGaxis.cxx:1329
 TGaxis.cxx:1330
 TGaxis.cxx:1331
 TGaxis.cxx:1332
 TGaxis.cxx:1333
 TGaxis.cxx:1334
 TGaxis.cxx:1335
 TGaxis.cxx:1336
 TGaxis.cxx:1337
 TGaxis.cxx:1338
 TGaxis.cxx:1339
 TGaxis.cxx:1340
 TGaxis.cxx:1341
 TGaxis.cxx:1342
 TGaxis.cxx:1343
 TGaxis.cxx:1344
 TGaxis.cxx:1345
 TGaxis.cxx:1346
 TGaxis.cxx:1347
 TGaxis.cxx:1348
 TGaxis.cxx:1349
 TGaxis.cxx:1350
 TGaxis.cxx:1351
 TGaxis.cxx:1352
 TGaxis.cxx:1353
 TGaxis.cxx:1354
 TGaxis.cxx:1355
 TGaxis.cxx:1356
 TGaxis.cxx:1357
 TGaxis.cxx:1358
 TGaxis.cxx:1359
 TGaxis.cxx:1360
 TGaxis.cxx:1361
 TGaxis.cxx:1362
 TGaxis.cxx:1363
 TGaxis.cxx:1364
 TGaxis.cxx:1365
 TGaxis.cxx:1366
 TGaxis.cxx:1367
 TGaxis.cxx:1368
 TGaxis.cxx:1369
 TGaxis.cxx:1370
 TGaxis.cxx:1371
 TGaxis.cxx:1372
 TGaxis.cxx:1373
 TGaxis.cxx:1374
 TGaxis.cxx:1375
 TGaxis.cxx:1376
 TGaxis.cxx:1377
 TGaxis.cxx:1378
 TGaxis.cxx:1379
 TGaxis.cxx:1380
 TGaxis.cxx:1381
 TGaxis.cxx:1382
 TGaxis.cxx:1383
 TGaxis.cxx:1384
 TGaxis.cxx:1385
 TGaxis.cxx:1386
 TGaxis.cxx:1387
 TGaxis.cxx:1388
 TGaxis.cxx:1389
 TGaxis.cxx:1390
 TGaxis.cxx:1391
 TGaxis.cxx:1392
 TGaxis.cxx:1393
 TGaxis.cxx:1394
 TGaxis.cxx:1395
 TGaxis.cxx:1396
 TGaxis.cxx:1397
 TGaxis.cxx:1398
 TGaxis.cxx:1399
 TGaxis.cxx:1400
 TGaxis.cxx:1401
 TGaxis.cxx:1402
 TGaxis.cxx:1403
 TGaxis.cxx:1404
 TGaxis.cxx:1405
 TGaxis.cxx:1406
 TGaxis.cxx:1407
 TGaxis.cxx:1408
 TGaxis.cxx:1409
 TGaxis.cxx:1410
 TGaxis.cxx:1411
 TGaxis.cxx:1412
 TGaxis.cxx:1413
 TGaxis.cxx:1414
 TGaxis.cxx:1415
 TGaxis.cxx:1416
 TGaxis.cxx:1417
 TGaxis.cxx:1418
 TGaxis.cxx:1419
 TGaxis.cxx:1420
 TGaxis.cxx:1421
 TGaxis.cxx:1422
 TGaxis.cxx:1423
 TGaxis.cxx:1424
 TGaxis.cxx:1425
 TGaxis.cxx:1426
 TGaxis.cxx:1427
 TGaxis.cxx:1428
 TGaxis.cxx:1429
 TGaxis.cxx:1430
 TGaxis.cxx:1431
 TGaxis.cxx:1432
 TGaxis.cxx:1433
 TGaxis.cxx:1434
 TGaxis.cxx:1435
 TGaxis.cxx:1436
 TGaxis.cxx:1437
 TGaxis.cxx:1438
 TGaxis.cxx:1439
 TGaxis.cxx:1440
 TGaxis.cxx:1441
 TGaxis.cxx:1442
 TGaxis.cxx:1443
 TGaxis.cxx:1444
 TGaxis.cxx:1445
 TGaxis.cxx:1446
 TGaxis.cxx:1447
 TGaxis.cxx:1448
 TGaxis.cxx:1449
 TGaxis.cxx:1450
 TGaxis.cxx:1451
 TGaxis.cxx:1452
 TGaxis.cxx:1453
 TGaxis.cxx:1454
 TGaxis.cxx:1455
 TGaxis.cxx:1456
 TGaxis.cxx:1457
 TGaxis.cxx:1458
 TGaxis.cxx:1459
 TGaxis.cxx:1460
 TGaxis.cxx:1461
 TGaxis.cxx:1462
 TGaxis.cxx:1463
 TGaxis.cxx:1464
 TGaxis.cxx:1465
 TGaxis.cxx:1466
 TGaxis.cxx:1467
 TGaxis.cxx:1468
 TGaxis.cxx:1469
 TGaxis.cxx:1470
 TGaxis.cxx:1471
 TGaxis.cxx:1472
 TGaxis.cxx:1473
 TGaxis.cxx:1474
 TGaxis.cxx:1475
 TGaxis.cxx:1476
 TGaxis.cxx:1477
 TGaxis.cxx:1478
 TGaxis.cxx:1479
 TGaxis.cxx:1480
 TGaxis.cxx:1481
 TGaxis.cxx:1482
 TGaxis.cxx:1483
 TGaxis.cxx:1484
 TGaxis.cxx:1485
 TGaxis.cxx:1486
 TGaxis.cxx:1487
 TGaxis.cxx:1488
 TGaxis.cxx:1489
 TGaxis.cxx:1490
 TGaxis.cxx:1491
 TGaxis.cxx:1492
 TGaxis.cxx:1493
 TGaxis.cxx:1494
 TGaxis.cxx:1495
 TGaxis.cxx:1496
 TGaxis.cxx:1497
 TGaxis.cxx:1498
 TGaxis.cxx:1499
 TGaxis.cxx:1500
 TGaxis.cxx:1501
 TGaxis.cxx:1502
 TGaxis.cxx:1503
 TGaxis.cxx:1504
 TGaxis.cxx:1505
 TGaxis.cxx:1506
 TGaxis.cxx:1507
 TGaxis.cxx:1508
 TGaxis.cxx:1509
 TGaxis.cxx:1510
 TGaxis.cxx:1511
 TGaxis.cxx:1512
 TGaxis.cxx:1513
 TGaxis.cxx:1514
 TGaxis.cxx:1515
 TGaxis.cxx:1516
 TGaxis.cxx:1517
 TGaxis.cxx:1518
 TGaxis.cxx:1519
 TGaxis.cxx:1520
 TGaxis.cxx:1521
 TGaxis.cxx:1522
 TGaxis.cxx:1523
 TGaxis.cxx:1524
 TGaxis.cxx:1525
 TGaxis.cxx:1526
 TGaxis.cxx:1527
 TGaxis.cxx:1528
 TGaxis.cxx:1529
 TGaxis.cxx:1530
 TGaxis.cxx:1531
 TGaxis.cxx:1532
 TGaxis.cxx:1533
 TGaxis.cxx:1534
 TGaxis.cxx:1535
 TGaxis.cxx:1536
 TGaxis.cxx:1537
 TGaxis.cxx:1538
 TGaxis.cxx:1539
 TGaxis.cxx:1540
 TGaxis.cxx:1541
 TGaxis.cxx:1542
 TGaxis.cxx:1543
 TGaxis.cxx:1544
 TGaxis.cxx:1545
 TGaxis.cxx:1546
 TGaxis.cxx:1547
 TGaxis.cxx:1548
 TGaxis.cxx:1549
 TGaxis.cxx:1550
 TGaxis.cxx:1551
 TGaxis.cxx:1552
 TGaxis.cxx:1553
 TGaxis.cxx:1554
 TGaxis.cxx:1555
 TGaxis.cxx:1556
 TGaxis.cxx:1557
 TGaxis.cxx:1558
 TGaxis.cxx:1559
 TGaxis.cxx:1560
 TGaxis.cxx:1561
 TGaxis.cxx:1562
 TGaxis.cxx:1563
 TGaxis.cxx:1564
 TGaxis.cxx:1565
 TGaxis.cxx:1566
 TGaxis.cxx:1567
 TGaxis.cxx:1568
 TGaxis.cxx:1569
 TGaxis.cxx:1570
 TGaxis.cxx:1571
 TGaxis.cxx:1572
 TGaxis.cxx:1573
 TGaxis.cxx:1574
 TGaxis.cxx:1575
 TGaxis.cxx:1576
 TGaxis.cxx:1577
 TGaxis.cxx:1578
 TGaxis.cxx:1579
 TGaxis.cxx:1580
 TGaxis.cxx:1581
 TGaxis.cxx:1582
 TGaxis.cxx:1583
 TGaxis.cxx:1584
 TGaxis.cxx:1585
 TGaxis.cxx:1586
 TGaxis.cxx:1587
 TGaxis.cxx:1588
 TGaxis.cxx:1589
 TGaxis.cxx:1590
 TGaxis.cxx:1591
 TGaxis.cxx:1592
 TGaxis.cxx:1593
 TGaxis.cxx:1594
 TGaxis.cxx:1595
 TGaxis.cxx:1596
 TGaxis.cxx:1597
 TGaxis.cxx:1598
 TGaxis.cxx:1599
 TGaxis.cxx:1600
 TGaxis.cxx:1601
 TGaxis.cxx:1602
 TGaxis.cxx:1603
 TGaxis.cxx:1604
 TGaxis.cxx:1605
 TGaxis.cxx:1606
 TGaxis.cxx:1607
 TGaxis.cxx:1608
 TGaxis.cxx:1609
 TGaxis.cxx:1610
 TGaxis.cxx:1611
 TGaxis.cxx:1612
 TGaxis.cxx:1613
 TGaxis.cxx:1614
 TGaxis.cxx:1615
 TGaxis.cxx:1616
 TGaxis.cxx:1617
 TGaxis.cxx:1618
 TGaxis.cxx:1619
 TGaxis.cxx:1620
 TGaxis.cxx:1621
 TGaxis.cxx:1622
 TGaxis.cxx:1623
 TGaxis.cxx:1624
 TGaxis.cxx:1625
 TGaxis.cxx:1626
 TGaxis.cxx:1627
 TGaxis.cxx:1628
 TGaxis.cxx:1629
 TGaxis.cxx:1630
 TGaxis.cxx:1631
 TGaxis.cxx:1632
 TGaxis.cxx:1633
 TGaxis.cxx:1634
 TGaxis.cxx:1635
 TGaxis.cxx:1636
 TGaxis.cxx:1637
 TGaxis.cxx:1638
 TGaxis.cxx:1639
 TGaxis.cxx:1640
 TGaxis.cxx:1641
 TGaxis.cxx:1642
 TGaxis.cxx:1643
 TGaxis.cxx:1644
 TGaxis.cxx:1645
 TGaxis.cxx:1646
 TGaxis.cxx:1647
 TGaxis.cxx:1648
 TGaxis.cxx:1649
 TGaxis.cxx:1650
 TGaxis.cxx:1651
 TGaxis.cxx:1652
 TGaxis.cxx:1653
 TGaxis.cxx:1654
 TGaxis.cxx:1655
 TGaxis.cxx:1656
 TGaxis.cxx:1657
 TGaxis.cxx:1658
 TGaxis.cxx:1659
 TGaxis.cxx:1660
 TGaxis.cxx:1661
 TGaxis.cxx:1662
 TGaxis.cxx:1663
 TGaxis.cxx:1664
 TGaxis.cxx:1665
 TGaxis.cxx:1666
 TGaxis.cxx:1667
 TGaxis.cxx:1668
 TGaxis.cxx:1669
 TGaxis.cxx:1670
 TGaxis.cxx:1671
 TGaxis.cxx:1672
 TGaxis.cxx:1673
 TGaxis.cxx:1674
 TGaxis.cxx:1675
 TGaxis.cxx:1676
 TGaxis.cxx:1677
 TGaxis.cxx:1678
 TGaxis.cxx:1679
 TGaxis.cxx:1680
 TGaxis.cxx:1681
 TGaxis.cxx:1682
 TGaxis.cxx:1683
 TGaxis.cxx:1684
 TGaxis.cxx:1685
 TGaxis.cxx:1686
 TGaxis.cxx:1687
 TGaxis.cxx:1688
 TGaxis.cxx:1689
 TGaxis.cxx:1690
 TGaxis.cxx:1691
 TGaxis.cxx:1692
 TGaxis.cxx:1693
 TGaxis.cxx:1694
 TGaxis.cxx:1695
 TGaxis.cxx:1696
 TGaxis.cxx:1697
 TGaxis.cxx:1698
 TGaxis.cxx:1699
 TGaxis.cxx:1700
 TGaxis.cxx:1701
 TGaxis.cxx:1702
 TGaxis.cxx:1703
 TGaxis.cxx:1704
 TGaxis.cxx:1705
 TGaxis.cxx:1706
 TGaxis.cxx:1707
 TGaxis.cxx:1708
 TGaxis.cxx:1709
 TGaxis.cxx:1710
 TGaxis.cxx:1711
 TGaxis.cxx:1712
 TGaxis.cxx:1713
 TGaxis.cxx:1714
 TGaxis.cxx:1715
 TGaxis.cxx:1716
 TGaxis.cxx:1717
 TGaxis.cxx:1718
 TGaxis.cxx:1719
 TGaxis.cxx:1720
 TGaxis.cxx:1721
 TGaxis.cxx:1722
 TGaxis.cxx:1723
 TGaxis.cxx:1724
 TGaxis.cxx:1725
 TGaxis.cxx:1726
 TGaxis.cxx:1727
 TGaxis.cxx:1728
 TGaxis.cxx:1729
 TGaxis.cxx:1730
 TGaxis.cxx:1731
 TGaxis.cxx:1732
 TGaxis.cxx:1733
 TGaxis.cxx:1734
 TGaxis.cxx:1735
 TGaxis.cxx:1736
 TGaxis.cxx:1737
 TGaxis.cxx:1738
 TGaxis.cxx:1739
 TGaxis.cxx:1740
 TGaxis.cxx:1741
 TGaxis.cxx:1742
 TGaxis.cxx:1743
 TGaxis.cxx:1744
 TGaxis.cxx:1745
 TGaxis.cxx:1746
 TGaxis.cxx:1747
 TGaxis.cxx:1748
 TGaxis.cxx:1749
 TGaxis.cxx:1750
 TGaxis.cxx:1751
 TGaxis.cxx:1752
 TGaxis.cxx:1753
 TGaxis.cxx:1754
 TGaxis.cxx:1755
 TGaxis.cxx:1756
 TGaxis.cxx:1757
 TGaxis.cxx:1758
 TGaxis.cxx:1759
 TGaxis.cxx:1760
 TGaxis.cxx:1761
 TGaxis.cxx:1762
 TGaxis.cxx:1763
 TGaxis.cxx:1764
 TGaxis.cxx:1765
 TGaxis.cxx:1766
 TGaxis.cxx:1767
 TGaxis.cxx:1768
 TGaxis.cxx:1769
 TGaxis.cxx:1770
 TGaxis.cxx:1771
 TGaxis.cxx:1772
 TGaxis.cxx:1773
 TGaxis.cxx:1774
 TGaxis.cxx:1775
 TGaxis.cxx:1776
 TGaxis.cxx:1777
 TGaxis.cxx:1778
 TGaxis.cxx:1779
 TGaxis.cxx:1780
 TGaxis.cxx:1781
 TGaxis.cxx:1782
 TGaxis.cxx:1783
 TGaxis.cxx:1784
 TGaxis.cxx:1785
 TGaxis.cxx:1786
 TGaxis.cxx:1787
 TGaxis.cxx:1788
 TGaxis.cxx:1789
 TGaxis.cxx:1790
 TGaxis.cxx:1791
 TGaxis.cxx:1792
 TGaxis.cxx:1793
 TGaxis.cxx:1794
 TGaxis.cxx:1795
 TGaxis.cxx:1796
 TGaxis.cxx:1797
 TGaxis.cxx:1798
 TGaxis.cxx:1799
 TGaxis.cxx:1800
 TGaxis.cxx:1801
 TGaxis.cxx:1802
 TGaxis.cxx:1803
 TGaxis.cxx:1804
 TGaxis.cxx:1805
 TGaxis.cxx:1806
 TGaxis.cxx:1807
 TGaxis.cxx:1808
 TGaxis.cxx:1809
 TGaxis.cxx:1810
 TGaxis.cxx:1811
 TGaxis.cxx:1812
 TGaxis.cxx:1813
 TGaxis.cxx:1814
 TGaxis.cxx:1815
 TGaxis.cxx:1816
 TGaxis.cxx:1817
 TGaxis.cxx:1818
 TGaxis.cxx:1819
 TGaxis.cxx:1820
 TGaxis.cxx:1821
 TGaxis.cxx:1822
 TGaxis.cxx:1823
 TGaxis.cxx:1824
 TGaxis.cxx:1825
 TGaxis.cxx:1826
 TGaxis.cxx:1827
 TGaxis.cxx:1828
 TGaxis.cxx:1829
 TGaxis.cxx:1830
 TGaxis.cxx:1831
 TGaxis.cxx:1832
 TGaxis.cxx:1833
 TGaxis.cxx:1834
 TGaxis.cxx:1835
 TGaxis.cxx:1836
 TGaxis.cxx:1837
 TGaxis.cxx:1838
 TGaxis.cxx:1839
 TGaxis.cxx:1840
 TGaxis.cxx:1841
 TGaxis.cxx:1842
 TGaxis.cxx:1843
 TGaxis.cxx:1844
 TGaxis.cxx:1845
 TGaxis.cxx:1846
 TGaxis.cxx:1847
 TGaxis.cxx:1848
 TGaxis.cxx:1849
 TGaxis.cxx:1850
 TGaxis.cxx:1851
 TGaxis.cxx:1852
 TGaxis.cxx:1853
 TGaxis.cxx:1854
 TGaxis.cxx:1855
 TGaxis.cxx:1856
 TGaxis.cxx:1857
 TGaxis.cxx:1858
 TGaxis.cxx:1859
 TGaxis.cxx:1860
 TGaxis.cxx:1861
 TGaxis.cxx:1862
 TGaxis.cxx:1863
 TGaxis.cxx:1864
 TGaxis.cxx:1865
 TGaxis.cxx:1866
 TGaxis.cxx:1867
 TGaxis.cxx:1868
 TGaxis.cxx:1869
 TGaxis.cxx:1870
 TGaxis.cxx:1871
 TGaxis.cxx:1872
 TGaxis.cxx:1873
 TGaxis.cxx:1874
 TGaxis.cxx:1875
 TGaxis.cxx:1876
 TGaxis.cxx:1877
 TGaxis.cxx:1878
 TGaxis.cxx:1879
 TGaxis.cxx:1880
 TGaxis.cxx:1881
 TGaxis.cxx:1882
 TGaxis.cxx:1883
 TGaxis.cxx:1884
 TGaxis.cxx:1885
 TGaxis.cxx:1886
 TGaxis.cxx:1887
 TGaxis.cxx:1888
 TGaxis.cxx:1889
 TGaxis.cxx:1890
 TGaxis.cxx:1891
 TGaxis.cxx:1892
 TGaxis.cxx:1893
 TGaxis.cxx:1894
 TGaxis.cxx:1895
 TGaxis.cxx:1896
 TGaxis.cxx:1897
 TGaxis.cxx:1898
 TGaxis.cxx:1899
 TGaxis.cxx:1900
 TGaxis.cxx:1901
 TGaxis.cxx:1902
 TGaxis.cxx:1903
 TGaxis.cxx:1904
 TGaxis.cxx:1905
 TGaxis.cxx:1906
 TGaxis.cxx:1907
 TGaxis.cxx:1908
 TGaxis.cxx:1909
 TGaxis.cxx:1910
 TGaxis.cxx:1911
 TGaxis.cxx:1912
 TGaxis.cxx:1913
 TGaxis.cxx:1914
 TGaxis.cxx:1915
 TGaxis.cxx:1916
 TGaxis.cxx:1917
 TGaxis.cxx:1918
 TGaxis.cxx:1919
 TGaxis.cxx:1920
 TGaxis.cxx:1921
 TGaxis.cxx:1922
 TGaxis.cxx:1923
 TGaxis.cxx:1924
 TGaxis.cxx:1925
 TGaxis.cxx:1926
 TGaxis.cxx:1927
 TGaxis.cxx:1928
 TGaxis.cxx:1929
 TGaxis.cxx:1930
 TGaxis.cxx:1931
 TGaxis.cxx:1932
 TGaxis.cxx:1933
 TGaxis.cxx:1934
 TGaxis.cxx:1935
 TGaxis.cxx:1936
 TGaxis.cxx:1937
 TGaxis.cxx:1938
 TGaxis.cxx:1939
 TGaxis.cxx:1940
 TGaxis.cxx:1941
 TGaxis.cxx:1942
 TGaxis.cxx:1943
 TGaxis.cxx:1944
 TGaxis.cxx:1945
 TGaxis.cxx:1946
 TGaxis.cxx:1947
 TGaxis.cxx:1948
 TGaxis.cxx:1949
 TGaxis.cxx:1950
 TGaxis.cxx:1951
 TGaxis.cxx:1952
 TGaxis.cxx:1953
 TGaxis.cxx:1954
 TGaxis.cxx:1955
 TGaxis.cxx:1956
 TGaxis.cxx:1957
 TGaxis.cxx:1958
 TGaxis.cxx:1959
 TGaxis.cxx:1960
 TGaxis.cxx:1961
 TGaxis.cxx:1962
 TGaxis.cxx:1963
 TGaxis.cxx:1964
 TGaxis.cxx:1965
 TGaxis.cxx:1966
 TGaxis.cxx:1967
 TGaxis.cxx:1968
 TGaxis.cxx:1969
 TGaxis.cxx:1970
 TGaxis.cxx:1971
 TGaxis.cxx:1972
 TGaxis.cxx:1973
 TGaxis.cxx:1974
 TGaxis.cxx:1975
 TGaxis.cxx:1976
 TGaxis.cxx:1977
 TGaxis.cxx:1978
 TGaxis.cxx:1979
 TGaxis.cxx:1980
 TGaxis.cxx:1981
 TGaxis.cxx:1982
 TGaxis.cxx:1983
 TGaxis.cxx:1984
 TGaxis.cxx:1985
 TGaxis.cxx:1986
 TGaxis.cxx:1987
 TGaxis.cxx:1988
 TGaxis.cxx:1989
 TGaxis.cxx:1990
 TGaxis.cxx:1991
 TGaxis.cxx:1992
 TGaxis.cxx:1993
 TGaxis.cxx:1994
 TGaxis.cxx:1995
 TGaxis.cxx:1996
 TGaxis.cxx:1997
 TGaxis.cxx:1998
 TGaxis.cxx:1999
 TGaxis.cxx:2000
 TGaxis.cxx:2001
 TGaxis.cxx:2002
 TGaxis.cxx:2003
 TGaxis.cxx:2004
 TGaxis.cxx:2005
 TGaxis.cxx:2006
 TGaxis.cxx:2007
 TGaxis.cxx:2008
 TGaxis.cxx:2009
 TGaxis.cxx:2010
 TGaxis.cxx:2011
 TGaxis.cxx:2012
 TGaxis.cxx:2013
 TGaxis.cxx:2014
 TGaxis.cxx:2015
 TGaxis.cxx:2016
 TGaxis.cxx:2017
 TGaxis.cxx:2018
 TGaxis.cxx:2019
 TGaxis.cxx:2020
 TGaxis.cxx:2021
 TGaxis.cxx:2022
 TGaxis.cxx:2023
 TGaxis.cxx:2024
 TGaxis.cxx:2025
 TGaxis.cxx:2026
 TGaxis.cxx:2027
 TGaxis.cxx:2028
 TGaxis.cxx:2029
 TGaxis.cxx:2030
 TGaxis.cxx:2031
 TGaxis.cxx:2032
 TGaxis.cxx:2033
 TGaxis.cxx:2034
 TGaxis.cxx:2035
 TGaxis.cxx:2036
 TGaxis.cxx:2037
 TGaxis.cxx:2038
 TGaxis.cxx:2039
 TGaxis.cxx:2040
 TGaxis.cxx:2041
 TGaxis.cxx:2042
 TGaxis.cxx:2043
 TGaxis.cxx:2044
 TGaxis.cxx:2045
 TGaxis.cxx:2046
 TGaxis.cxx:2047
 TGaxis.cxx:2048
 TGaxis.cxx:2049
 TGaxis.cxx:2050
 TGaxis.cxx:2051
 TGaxis.cxx:2052
 TGaxis.cxx:2053
 TGaxis.cxx:2054
 TGaxis.cxx:2055
 TGaxis.cxx:2056
 TGaxis.cxx:2057
 TGaxis.cxx:2058
 TGaxis.cxx:2059
 TGaxis.cxx:2060
 TGaxis.cxx:2061
 TGaxis.cxx:2062
 TGaxis.cxx:2063
 TGaxis.cxx:2064
 TGaxis.cxx:2065
 TGaxis.cxx:2066
 TGaxis.cxx:2067
 TGaxis.cxx:2068
 TGaxis.cxx:2069
 TGaxis.cxx:2070
 TGaxis.cxx:2071
 TGaxis.cxx:2072
 TGaxis.cxx:2073
 TGaxis.cxx:2074
 TGaxis.cxx:2075
 TGaxis.cxx:2076
 TGaxis.cxx:2077
 TGaxis.cxx:2078
 TGaxis.cxx:2079
 TGaxis.cxx:2080
 TGaxis.cxx:2081
 TGaxis.cxx:2082
 TGaxis.cxx:2083
 TGaxis.cxx:2084
 TGaxis.cxx:2085
 TGaxis.cxx:2086
 TGaxis.cxx:2087
 TGaxis.cxx:2088
 TGaxis.cxx:2089
 TGaxis.cxx:2090
 TGaxis.cxx:2091
 TGaxis.cxx:2092
 TGaxis.cxx:2093
 TGaxis.cxx:2094
 TGaxis.cxx:2095
 TGaxis.cxx:2096
 TGaxis.cxx:2097
 TGaxis.cxx:2098
 TGaxis.cxx:2099
 TGaxis.cxx:2100
 TGaxis.cxx:2101
 TGaxis.cxx:2102
 TGaxis.cxx:2103
 TGaxis.cxx:2104
 TGaxis.cxx:2105
 TGaxis.cxx:2106
 TGaxis.cxx:2107
 TGaxis.cxx:2108
 TGaxis.cxx:2109
 TGaxis.cxx:2110
 TGaxis.cxx:2111
 TGaxis.cxx:2112
 TGaxis.cxx:2113
 TGaxis.cxx:2114
 TGaxis.cxx:2115
 TGaxis.cxx:2116
 TGaxis.cxx:2117
 TGaxis.cxx:2118
 TGaxis.cxx:2119
 TGaxis.cxx:2120
 TGaxis.cxx:2121
 TGaxis.cxx:2122
 TGaxis.cxx:2123
 TGaxis.cxx:2124
 TGaxis.cxx:2125
 TGaxis.cxx:2126
 TGaxis.cxx:2127
 TGaxis.cxx:2128
 TGaxis.cxx:2129
 TGaxis.cxx:2130
 TGaxis.cxx:2131
 TGaxis.cxx:2132
 TGaxis.cxx:2133
 TGaxis.cxx:2134
 TGaxis.cxx:2135
 TGaxis.cxx:2136
 TGaxis.cxx:2137
 TGaxis.cxx:2138
 TGaxis.cxx:2139
 TGaxis.cxx:2140
 TGaxis.cxx:2141
 TGaxis.cxx:2142
 TGaxis.cxx:2143
 TGaxis.cxx:2144
 TGaxis.cxx:2145
 TGaxis.cxx:2146
 TGaxis.cxx:2147
 TGaxis.cxx:2148
 TGaxis.cxx:2149
 TGaxis.cxx:2150
 TGaxis.cxx:2151
 TGaxis.cxx:2152
 TGaxis.cxx:2153
 TGaxis.cxx:2154
 TGaxis.cxx:2155
 TGaxis.cxx:2156
 TGaxis.cxx:2157
 TGaxis.cxx:2158
 TGaxis.cxx:2159
 TGaxis.cxx:2160
 TGaxis.cxx:2161
 TGaxis.cxx:2162
 TGaxis.cxx:2163
 TGaxis.cxx:2164
 TGaxis.cxx:2165
 TGaxis.cxx:2166
 TGaxis.cxx:2167
 TGaxis.cxx:2168
 TGaxis.cxx:2169
 TGaxis.cxx:2170
 TGaxis.cxx:2171
 TGaxis.cxx:2172
 TGaxis.cxx:2173
 TGaxis.cxx:2174
 TGaxis.cxx:2175
 TGaxis.cxx:2176
 TGaxis.cxx:2177
 TGaxis.cxx:2178
 TGaxis.cxx:2179
 TGaxis.cxx:2180
 TGaxis.cxx:2181
 TGaxis.cxx:2182
 TGaxis.cxx:2183
 TGaxis.cxx:2184
 TGaxis.cxx:2185
 TGaxis.cxx:2186
 TGaxis.cxx:2187
 TGaxis.cxx:2188
 TGaxis.cxx:2189
 TGaxis.cxx:2190
 TGaxis.cxx:2191
 TGaxis.cxx:2192
 TGaxis.cxx:2193
 TGaxis.cxx:2194
 TGaxis.cxx:2195
 TGaxis.cxx:2196
 TGaxis.cxx:2197
 TGaxis.cxx:2198
 TGaxis.cxx:2199
 TGaxis.cxx:2200
 TGaxis.cxx:2201
 TGaxis.cxx:2202
 TGaxis.cxx:2203
 TGaxis.cxx:2204
 TGaxis.cxx:2205
 TGaxis.cxx:2206
 TGaxis.cxx:2207
 TGaxis.cxx:2208
 TGaxis.cxx:2209
 TGaxis.cxx:2210
 TGaxis.cxx:2211
 TGaxis.cxx:2212
 TGaxis.cxx:2213
 TGaxis.cxx:2214
 TGaxis.cxx:2215
 TGaxis.cxx:2216
 TGaxis.cxx:2217
 TGaxis.cxx:2218
 TGaxis.cxx:2219
 TGaxis.cxx:2220
 TGaxis.cxx:2221
 TGaxis.cxx:2222
 TGaxis.cxx:2223
 TGaxis.cxx:2224
 TGaxis.cxx:2225
 TGaxis.cxx:2226
 TGaxis.cxx:2227
 TGaxis.cxx:2228
 TGaxis.cxx:2229
 TGaxis.cxx:2230
 TGaxis.cxx:2231
 TGaxis.cxx:2232
 TGaxis.cxx:2233
 TGaxis.cxx:2234
 TGaxis.cxx:2235
 TGaxis.cxx:2236
 TGaxis.cxx:2237
 TGaxis.cxx:2238
 TGaxis.cxx:2239
 TGaxis.cxx:2240
 TGaxis.cxx:2241
 TGaxis.cxx:2242
 TGaxis.cxx:2243
 TGaxis.cxx:2244
 TGaxis.cxx:2245
 TGaxis.cxx:2246
 TGaxis.cxx:2247
 TGaxis.cxx:2248
 TGaxis.cxx:2249
 TGaxis.cxx:2250
 TGaxis.cxx:2251
 TGaxis.cxx:2252
 TGaxis.cxx:2253
 TGaxis.cxx:2254
 TGaxis.cxx:2255
 TGaxis.cxx:2256
 TGaxis.cxx:2257
 TGaxis.cxx:2258
 TGaxis.cxx:2259
 TGaxis.cxx:2260
 TGaxis.cxx:2261
 TGaxis.cxx:2262
 TGaxis.cxx:2263
 TGaxis.cxx:2264
 TGaxis.cxx:2265
 TGaxis.cxx:2266
 TGaxis.cxx:2267
 TGaxis.cxx:2268
 TGaxis.cxx:2269
 TGaxis.cxx:2270
 TGaxis.cxx:2271
 TGaxis.cxx:2272
 TGaxis.cxx:2273
 TGaxis.cxx:2274
 TGaxis.cxx:2275
 TGaxis.cxx:2276
 TGaxis.cxx:2277
 TGaxis.cxx:2278
 TGaxis.cxx:2279
 TGaxis.cxx:2280
 TGaxis.cxx:2281
 TGaxis.cxx:2282
 TGaxis.cxx:2283
 TGaxis.cxx:2284
 TGaxis.cxx:2285
 TGaxis.cxx:2286
 TGaxis.cxx:2287
 TGaxis.cxx:2288
 TGaxis.cxx:2289
 TGaxis.cxx:2290
 TGaxis.cxx:2291
 TGaxis.cxx:2292
 TGaxis.cxx:2293
 TGaxis.cxx:2294
 TGaxis.cxx:2295
 TGaxis.cxx:2296
 TGaxis.cxx:2297
 TGaxis.cxx:2298
 TGaxis.cxx:2299
 TGaxis.cxx:2300
 TGaxis.cxx:2301
 TGaxis.cxx:2302
 TGaxis.cxx:2303
 TGaxis.cxx:2304
 TGaxis.cxx:2305
 TGaxis.cxx:2306
 TGaxis.cxx:2307
 TGaxis.cxx:2308
 TGaxis.cxx:2309
 TGaxis.cxx:2310
 TGaxis.cxx:2311
 TGaxis.cxx:2312
 TGaxis.cxx:2313
 TGaxis.cxx:2314
 TGaxis.cxx:2315
 TGaxis.cxx:2316
 TGaxis.cxx:2317
 TGaxis.cxx:2318
 TGaxis.cxx:2319
 TGaxis.cxx:2320
 TGaxis.cxx:2321
 TGaxis.cxx:2322
 TGaxis.cxx:2323
 TGaxis.cxx:2324
 TGaxis.cxx:2325
 TGaxis.cxx:2326
 TGaxis.cxx:2327
 TGaxis.cxx:2328
 TGaxis.cxx:2329
 TGaxis.cxx:2330
 TGaxis.cxx:2331
 TGaxis.cxx:2332
 TGaxis.cxx:2333
 TGaxis.cxx:2334
 TGaxis.cxx:2335
 TGaxis.cxx:2336
 TGaxis.cxx:2337
 TGaxis.cxx:2338
 TGaxis.cxx:2339
 TGaxis.cxx:2340
 TGaxis.cxx:2341
 TGaxis.cxx:2342
 TGaxis.cxx:2343
 TGaxis.cxx:2344
 TGaxis.cxx:2345
 TGaxis.cxx:2346
 TGaxis.cxx:2347
 TGaxis.cxx:2348
 TGaxis.cxx:2349
 TGaxis.cxx:2350
 TGaxis.cxx:2351
 TGaxis.cxx:2352
 TGaxis.cxx:2353
 TGaxis.cxx:2354
 TGaxis.cxx:2355
 TGaxis.cxx:2356
 TGaxis.cxx:2357
 TGaxis.cxx:2358
 TGaxis.cxx:2359
 TGaxis.cxx:2360
 TGaxis.cxx:2361
 TGaxis.cxx:2362
 TGaxis.cxx:2363
 TGaxis.cxx:2364
 TGaxis.cxx:2365
 TGaxis.cxx:2366
 TGaxis.cxx:2367
 TGaxis.cxx:2368
 TGaxis.cxx:2369
 TGaxis.cxx:2370
 TGaxis.cxx:2371
 TGaxis.cxx:2372
 TGaxis.cxx:2373
 TGaxis.cxx:2374
 TGaxis.cxx:2375
 TGaxis.cxx:2376
 TGaxis.cxx:2377
 TGaxis.cxx:2378
 TGaxis.cxx:2379
 TGaxis.cxx:2380
 TGaxis.cxx:2381
 TGaxis.cxx:2382
 TGaxis.cxx:2383
 TGaxis.cxx:2384
 TGaxis.cxx:2385
 TGaxis.cxx:2386
 TGaxis.cxx:2387
 TGaxis.cxx:2388
 TGaxis.cxx:2389
 TGaxis.cxx:2390
 TGaxis.cxx:2391
 TGaxis.cxx:2392
 TGaxis.cxx:2393
 TGaxis.cxx:2394
 TGaxis.cxx:2395
 TGaxis.cxx:2396
 TGaxis.cxx:2397
 TGaxis.cxx:2398
 TGaxis.cxx:2399
 TGaxis.cxx:2400
 TGaxis.cxx:2401
 TGaxis.cxx:2402
 TGaxis.cxx:2403
 TGaxis.cxx:2404
 TGaxis.cxx:2405
 TGaxis.cxx:2406
 TGaxis.cxx:2407
 TGaxis.cxx:2408
 TGaxis.cxx:2409
 TGaxis.cxx:2410
 TGaxis.cxx:2411
 TGaxis.cxx:2412
 TGaxis.cxx:2413
 TGaxis.cxx:2414
 TGaxis.cxx:2415
 TGaxis.cxx:2416
 TGaxis.cxx:2417
 TGaxis.cxx:2418
 TGaxis.cxx:2419
 TGaxis.cxx:2420
 TGaxis.cxx:2421
 TGaxis.cxx:2422
 TGaxis.cxx:2423
 TGaxis.cxx:2424
 TGaxis.cxx:2425
 TGaxis.cxx:2426
 TGaxis.cxx:2427
 TGaxis.cxx:2428
 TGaxis.cxx:2429
 TGaxis.cxx:2430
 TGaxis.cxx:2431
 TGaxis.cxx:2432
 TGaxis.cxx:2433
 TGaxis.cxx:2434
 TGaxis.cxx:2435
 TGaxis.cxx:2436
 TGaxis.cxx:2437
 TGaxis.cxx:2438
 TGaxis.cxx:2439
 TGaxis.cxx:2440
 TGaxis.cxx:2441
 TGaxis.cxx:2442
 TGaxis.cxx:2443
 TGaxis.cxx:2444
 TGaxis.cxx:2445
 TGaxis.cxx:2446
 TGaxis.cxx:2447
 TGaxis.cxx:2448
 TGaxis.cxx:2449
 TGaxis.cxx:2450
 TGaxis.cxx:2451
 TGaxis.cxx:2452
 TGaxis.cxx:2453
 TGaxis.cxx:2454
 TGaxis.cxx:2455
 TGaxis.cxx:2456
 TGaxis.cxx:2457
 TGaxis.cxx:2458
 TGaxis.cxx:2459
 TGaxis.cxx:2460
 TGaxis.cxx:2461
 TGaxis.cxx:2462
 TGaxis.cxx:2463
 TGaxis.cxx:2464
 TGaxis.cxx:2465
 TGaxis.cxx:2466
 TGaxis.cxx:2467
 TGaxis.cxx:2468
 TGaxis.cxx:2469
 TGaxis.cxx:2470
 TGaxis.cxx:2471
 TGaxis.cxx:2472
 TGaxis.cxx:2473
 TGaxis.cxx:2474
 TGaxis.cxx:2475
 TGaxis.cxx:2476
 TGaxis.cxx:2477
 TGaxis.cxx:2478
 TGaxis.cxx:2479
 TGaxis.cxx:2480
 TGaxis.cxx:2481
 TGaxis.cxx:2482
 TGaxis.cxx:2483
 TGaxis.cxx:2484
 TGaxis.cxx:2485
 TGaxis.cxx:2486
 TGaxis.cxx:2487
 TGaxis.cxx:2488
 TGaxis.cxx:2489
 TGaxis.cxx:2490
 TGaxis.cxx:2491
 TGaxis.cxx:2492
 TGaxis.cxx:2493
 TGaxis.cxx:2494
 TGaxis.cxx:2495
 TGaxis.cxx:2496
 TGaxis.cxx:2497
 TGaxis.cxx:2498
 TGaxis.cxx:2499
 TGaxis.cxx:2500
 TGaxis.cxx:2501
 TGaxis.cxx:2502
 TGaxis.cxx:2503
 TGaxis.cxx:2504
 TGaxis.cxx:2505
 TGaxis.cxx:2506
 TGaxis.cxx:2507
 TGaxis.cxx:2508
 TGaxis.cxx:2509
 TGaxis.cxx:2510
 TGaxis.cxx:2511
 TGaxis.cxx:2512
 TGaxis.cxx:2513
 TGaxis.cxx:2514
 TGaxis.cxx:2515
 TGaxis.cxx:2516
 TGaxis.cxx:2517
 TGaxis.cxx:2518
 TGaxis.cxx:2519
 TGaxis.cxx:2520
 TGaxis.cxx:2521
 TGaxis.cxx:2522
 TGaxis.cxx:2523
 TGaxis.cxx:2524
 TGaxis.cxx:2525
 TGaxis.cxx:2526
 TGaxis.cxx:2527
 TGaxis.cxx:2528
 TGaxis.cxx:2529