ROOT logo
// @(#)root/graf:$Id: TGaxis.cxx 40352 2011-07-25 14:19:40Z couet $
// 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"

Int_t TGaxis::fgMaxDigits = 5;
const Int_t kHori = BIT(9); //defined in TPad

ClassImp(TGaxis)


//______________________________________________________________________________
/* Begin_Html
<center><h2>TGaxis : to draw axis</h2></center>

Instances of this class are generated by the histograms and graphs painting
classes.
<p>
The example below generates various kind of axis.

End_Html
Begin_Macro(source)
{
   TCanvas *c1 = new TCanvas("c1","Examples of Gaxis",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

See the second TGaxis constructor for examples of TGaxis with a mapping function.

End_Html */



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

   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)
{
   // TGaxis normal constructor.
   // See explanation of parameters in PaintAxis.

   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)
{
   // TGaxis constructor with a TF1 to map axis values.
   //
   //  See explanation of parameters in PaintAxis
   //  Instead of the wmin,wmax arguments of the normal constructor, the
   //  name of a TF1 function can be specified. This function will be used
   //  by TGaxis::PaintAxis to map the user coordinates to the axis values
   //  and ticks.
   //  Examples:
   //void gaxis3a()
   //{
   //   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();
   //}
   //Begin_Html
   /*
   <img src="gif/gaxisf1.gif">
   */
   //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)
{
   // Copy constructor.
}


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

   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()
{
   // TGaxis default destructor.
}


//______________________________________________________________________________
void TGaxis::CenterLabels(Bool_t center)
{
   // 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.

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


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

   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)
{
   // Draw this axis with new attributes.

   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()
{
   // Static function returning fgMaxDigits (See SetMaxDigits).

   return fgMaxDigits;
}


//______________________________________________________________________________
void TGaxis::ImportAxisAttributes(TAxis *axis)
{
   // Copy TAxis attributes to this TGaxis.

   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 *)
{
   // Draw this axis with its current attributes.

   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)
{
   // Control function to draw an axis.
   //
   // Original authors: O.Couet C.E.Vandoni N.Cremel-Somon.
   // Modified and converted to C++ class by Rene Brun.
   //
   // _Input parameters:
   //
   //  xmin      : X origin coordinate in WC space.
   //  xmax      : X end axis coordinate in WC space.
   //  ymin      : Y origin coordinate in WC space.
   //  ymax      : Y end axis coordinate in WC space.
   //  wmin      : Lowest value for the tick mark
   //              labels written on the axis.
   //  wmax      : Highest value for the tick mark labels
   //              written on the axis.
   //  ndiv      : Number of divisions.
   //
   //       ndiv=N1 + 100*N2 + 10000*N3
   //       N1=number of 1st divisions.
   //       N2=number of 2nd divisions.
   //       N3=number of 3rd divisions.
   //           e.g.:
   //           nndi=0 --> no tick marks.
   //           nndi=2 --> 2 divisions, one tick mark in the middle
   //                      of the axis.
   //
   //  chopt :  options (see below).
   //
   //       chopt='G': loGarithmic scale, default is linear.
   //       chopt='B': Blank axis. Useful to superpose axis.
   //
   // Orientation of tick marks on axis.
   // ----------------------------------
   //
   //   Tick marks are normally drawn on the positive side of the axis,
   //   however, if x0=x1, then negative.
   //
   //       chopt='+': tick marks are drawn on Positive side. (default)
   //       chopt='-': tick mark are drawn on the negative side.
   //       i.e: '+-' --> tick marks are drawn on both sides of the axis.
   //       chopt='U': Unlabeled axis, default is labeled.
   //
   // Size of tick marks
   // ------------------
   // 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 fTickSize*axis_length, where fTickSize may be set
   // via TGaxis::SetTickSize.
   //
   // Position of labels on axis.
   // ---------------------------
   //
   //   Labels are normally drawn on side opposite to tick marks.
   //   However:
   //
   //       chopt='=': on Equal side
   //
   // Orientation of labels on axis.
   // ------------------------------
   //
   //   Labels are normally drawn parallel to the axis.
   //   However if x0=x1, then Orthogonal
   //           if y0=Y1, then Parallel
   //
   // Position of labels on tick marks.
   // ---------------------------------
   //
   //   Labels are centered on tick marks.
   //   However , if x0=x1, then they are right adjusted.
   //
   //       chopt='R': labels are Right adjusted on tick mark.
   //                    (default is centered)
   //       chopt='L': labels are Left adjusted on tick mark.
   //       chopt='C': labels are Centered on tick mark.
   //       chopt='M': In the Middle of the divisions.
   //
   // Format of labels.
   // -----------------
   //
   //   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 "." (a dot, or period) is specified.
   //   if SetDecimals(kTRUE) has been called (bit TAxis::kDecimals set).
   //   all labels have the same number of decimals after the "."
   //   The same is true if gStyle->SetStripDecimals(kFALSE) has been called.
   //
   //   In the following, we have some parameters, like
   //   tick marks length and characters height (in percentage
   //   of the length of the axis (WC))
   //   The default values are as follows:
   //
   //   Primary tick marks: 3.0 %
   //   Secondary tick marks: 1.5 %
   //   Third order tick marks: .75 %
   //   Characters height for labels: 4%
   //
   //   Labels offset: 1.0 %
   //
   // optional grid.
   // --------------
   //
   //       chopt='W': cross-Wire
   //   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.
   //
   // Axis bining optimization.
   // -------------------------
   //
   //   By default the axis bining is optimized .
   //
   //       chopt='N': No bining optimization
   //       chopt='I': Integer labelling
   //
   // Maximum Number of Digits for the axis labels
   // --------------------------------------------
   // See the static function TGaxis::SetMaxDigits
   //
   // Time representation.
   // --------------------
   //
   //   Axis labels may be considered as times, plotted in a defined time format.
   //   The format is set with SetTimeFormat().
   //   wmin and wmax are considered as two time values in seconds.
   //   The time axis will be spread around the time offset value (set with
   //   SetTimeOffset() ). Actually it will go from TimeOffset+wmin to
   //   TimeOffset+wmax.
   //   see examples in tutorials timeonaxis.C and timeonaxis2.C
   //
   //       chopt='t': Plot times with a defined format instead of values

   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,last,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;
   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 WC 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;
   }

// 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;
            struct tm* tptest;
            time_t timeoffsettest;
            // get timezone offset for the current location
            Int_t zoneoffset = TTimeStamp::GetZoneOffset();
            // convert offset in hours
            zoneoffset /= 3600;
            tp.tm_year  = year-1900;
            tp.tm_mon   = mm-1;
            tp.tm_mday  = dd;
            tp.tm_hour  = hh - zoneoffset;
            tp.tm_min   = mi;
            tp.tm_sec   = ss;
            tp.tm_isdst =  1; //daylight saving time is on.
            timeoffset  = mktime(&tp);
            if (timeoffset<0.) timeoffset=0.;
            // have to correct this time to go back to UTC
            timeoffsettest = (time_t)((Long_t)timeoffset);
            tptest = gmtime(&timeoffsettest);
            timeoffset += timeoffsettest - mktime(tptest);
            // 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;
            }
            // if optionTime = 2 gmtime will be used instead of localtime
            if (stringtimeoffset.Index("GMT")>=0) optionTime =2;
         } 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 optimization 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 optimization
   if ( (wmax-wmin) < 1 && optionInt) {
      Error(where, "option I not available");
      optionInt = 0;
   }
   if (!optionNoopt || optionInt ) {

//*-*- Primary divisions optimization
//*-*- 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 optimization
      nb2 = n2a;
      if (!optionNoopt && n2a > 1 && binWidth > 0) {
         THLimitsFinder::Optimize(wmin,wmin+binWidth,n2a,binLow2,binHigh2,nb2,binWidth2,fChopt.Data());
      }

//*-*- Tertiary divisions optimization
      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 = 5;
   if (fAxis) 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) 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 preceeded 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);
                     textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                           gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                           0,
                           textaxis->GetTextSize(),
                           chtemp);
                  }
                  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);
                     }
                     textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                           gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                           0,
                           textaxis->GetTextSize(),
                           chtemp);
                     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);
               textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                           gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                           0,
                           textaxis->GetTextSize(),
                           label);
            }
         }
      }
   }

//*-*-              Log axis

   if (optionLog && ndiv) {
      UInt_t xi1=0,xi2,wi,yi1=0,yi2,hi,xl,xh;
      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);
                        textaxis->PaintLatex(gPad->GetX1() + xx*(gPad->GetX2() - gPad->GetX1()),
                                             gPad->GetY1() + yy*(gPad->GetY2() - gPad->GetY1()),
                                             0, textaxis->GetTextSize(), chtemp);

                  }
               }
            }
            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;
                     textaxis->PaintLatex(u,v,0,textaxis->GetTextSize(),chtemp);
                  } 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);
                        textaxis->PaintLatex(u,v,0,textaxis->GetTextSize(),chtemp);
                     }
                  }
               }

//*-*- 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 kuku=0; if (kuku) { }
   }  //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)
{
   // Axis labels optimisation.
   //
   //   This method adjusts the bining of the axis
   //   in order to have integer values for the labels.
   //
   // Input parameters:
   //
   //  A1,A2    : Old WMIN,WMAX .
   //  binLow,binHigh : New WMIN,WMAX .
   //  nold     : Old NDIV (primary divisions)
   //  nbins    : New NDIV .

   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)
{
   // Find first and last character of a label.

   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)
{
   // Rotate axis coordinates.

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


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

   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<<");"<<endl;
   out<<"   gaxis->SetLabelOffset("<<GetLabelOffset()<<");"<<endl;
   out<<"   gaxis->SetLabelSize("<<GetLabelSize()<<");"<<endl;
   out<<"   gaxis->SetTickSize("<<GetTickSize()<<");"<<endl;
   out<<"   gaxis->SetGridLength("<<GetGridLength()<<");"<<endl;
   out<<"   gaxis->SetTitleOffset("<<GetTitleOffset()<<");"<<endl;
   out<<"   gaxis->SetTitleSize("<<GetTitleSize()<<");"<<endl;
   out<<"   gaxis->SetTitleColor("<<GetTextColor()<<");"<<endl;
   out<<"   gaxis->SetTitleFont("<<GetTextFont()<<");"<<endl;

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

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

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


//______________________________________________________________________________
void TGaxis::SetDecimals(Bool_t dot)
{
   // 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 axis.SetDecimals(kTRUE).
   // Note the bit is set in fBits (as opposed to fBits2 in TAxis!)

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


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

   fFunctionName = funcname;
   if (strlen(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)
{
   // Static function to set fgMaxDigits for axis.
   // fgMaxDigits 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 TGaxis::SetMaxDigits(6). The default value is 5.
   // fgMaxDigits must be greater than 0.

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


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

   fName = name;
}


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

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


//______________________________________________________________________________
void TGaxis::SetNoExponent(Bool_t noExponent)
{
   // 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).

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


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

   fChopt = option;
}


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

   fTitle = title;
}


//______________________________________________________________________________
void TGaxis::SetTimeFormat(const char *tformat)
{
   // 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. :
   //   for date :
   //     %a abbreviated weekday name
   //     %b abbreviated month name
   //     %d day of the month (01-31)
   //     %m month (01-12)
   //     %y year without century
   //
   //   for time :
   //     %H hour (24-hour clock)
   //     %I hour (12-hour clock)
   //     %p local equivalent of AM or PM
   //     %M minute (00-59)
   //     %S seconds (00-61)
   //     %% %

   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)
{
   // Change the time offset.
   // If option = "gmt" the time offset is treated as a GMT time.

   TString opt = option;
   opt.ToLower();

   Bool_t gmt = kFALSE;
   if (opt.Contains("gmt")) gmt = kTRUE;

   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));
   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;
   if(ds!= 0) {
      snprintf(tmp,20,"s%g",ds);
      fTimeFormat.Append(tmp);
   }

   // If the time is GMT, stamp fTimeFormat
   if (gmt) fTimeFormat.Append(" GMT");
}


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

   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