| library: libHist #include "THLimitsFinder.h"
 | 
THLimitsFinder
class description - source file - inheritance tree (.pdf)
    public:
                             THLimitsFinder()
                             THLimitsFinder(const THLimitsFinder&)
                     virtual ~THLimitsFinder()
              static TClass* Class()
               virtual Int_t FindGoodLimits(TH1* h, Axis_t xmin, Axis_t xmax)
               virtual Int_t FindGoodLimits(TH1* h, Axis_t xmin, Axis_t xmax, Axis_t ymin, Axis_t ymax)
               virtual Int_t FindGoodLimits(TH1* h, Axis_t xmin, Axis_t xmax, Axis_t ymin, Axis_t ymax, Axis_t zmin, Axis_t zmax)
      static THLimitsFinder* GetLimitsFinder()
             virtual TClass* IsA() const
             THLimitsFinder& operator=(const THLimitsFinder&)
                 static void Optimize(Double_t A1, Double_t A2, Int_t nold, Double_t& BinLow, Double_t& BinHigh, Int_t& nbins, Double_t& BWID, Option_t* option = "")
                 static void OptimizeLimits(Int_t nbins, Int_t& newbins, Axis_t& xmin, Axis_t& xmax, Bool_t isInteger)
                 static void SetLimitsFinder(THLimitsFinder* finder)
                virtual void ShowMembers(TMemberInspector& insp, char* parent)
                virtual void Streamer(TBuffer& b)
                        void StreamerNVirtual(TBuffer& b)
    protected:
      static THLimitsFinder* fgLimitsFinder  !Pointer to hist limits finder
                                                                      
 THLimitsFinder                                                       
                                                                      
 Class to compute nice axis limits.
 This class is called by default by the histograming system
 and also by TTree::Draw, TTreePlayer::DrawSelect.
 A different finder may be specified via THLimitsFinder::SetFinder.
 THLimitsFinder()
 ~THLimitsFinder()
Int_t FindGoodLimits(TH1 *h, Axis_t xmin, Axis_t xmax)
 compute the best axis limits for the X axis.
 If the bit kIsInteger is set, the number of channels is also recomputed.
 The axis parameters are replaced by the optimized parameters
 example:
  With the input parameters xmin=-1.467 and xmax=2.344, the function
  will compute better limits -1.8 and 2.7 and store them in the axis.
  OptimizeLimits(xaxis->GetNbins(),
                                  newbins,xmin,xmax,
                                  xaxis->TestBit(TAxis::kIsInteger));
   
   h->SetBins(newbins,xmin,xmax);
 
   return 0;
}
//______________________________________________________________________________
Int_t THLimitsFinder::FindGoodLimits(TH1 *h, Axis_t xmin, Axis_t xmax, Axis_t ymin, Axis_t ymax)
 compute the best axis limits for the X and Y axis.
 If the bit kIsInteger is set, the number of channels is also recomputed.
 The axis parameters are replaced by the optimized parameters
  OptimizeLimits(xaxis->GetNbins(),
                                  newbinsx,xmin,xmax,
                                  xaxis->TestBit(TAxis::kIsInteger));
   
   THLimitsFinder::OptimizeLimits(yaxis->GetNbins(),
                                  newbinsy,ymin,ymax,
                                  yaxis->TestBit(TAxis::kIsInteger));
  
   h->SetBins(newbinsx,xmin,xmax,newbinsy,ymin,ymax);
   return 0;
}
//______________________________________________________________________________
Int_t THLimitsFinder::FindGoodLimits(TH1 *h, Axis_t xmin, Axis_t xmax, Axis_t ymin, Axis_t ymax, Axis_t zmin, Axis_t zmax)
 compute the best axis limits for the X, Y and Z axis.
 If the bit kIsInteger is set, the number of channels is also recomputed.
 The axis parameters are replaced by the optimized parameters
  OptimizeLimits(xaxis->GetNbins(),
                                  newbinsx,xmin,xmax,
                                  xaxis->TestBit(TAxis::kIsInteger));
   
   THLimitsFinder::OptimizeLimits(yaxis->GetNbins(),
                                  newbinsy,ymin,ymax,
                                  yaxis->TestBit(TAxis::kIsInteger));
   
   THLimitsFinder::OptimizeLimits(zaxis->GetNbins(),
                                  newbinsz,zmin,zmax,
                                  zaxis->TestBit(TAxis::kIsInteger));
  
   h->SetBins(newbinsx,xmin,xmax,newbinsy,ymin,ymax,newbinsz,zmin,zmax);
   return 0;
}
//______________________________________________________________________________
THLimitsFinder *THLimitsFinder::GetLimitsFinder() 
 Return pointer to the current finder.
 Create one if none exists
 Use SetLimitsFinder to set a user defined finder.
void SetLimitsFinder(THLimitsFinder *finder) 
 This static function can be used to specify a finder derived from THLimitsFinder.
 The finder may redefine the functions FindGoodLimits.
 Note that the redefined functions may call THLimitsFinder::FindGoodLimits.
void Optimize(Double_t A1,  Double_t A2,  Int_t nold ,Double_t &BinLow, Double_t &BinHigh, 
                      Int_t &nbins, Double_t &BinWidth, Option_t *option)
 static function to compute reasonable axis limits
 Input parameters:
  A1,A2 : Old WMIN,WMAX .
  BinLow,BinHigh : New WMIN,WMAX .
  nold   : Old NDIV .
  nbins    : New NDIV .
void OptimizeLimits(Int_t nbins, Int_t &newbins, Axis_t &xmin, Axis_t &xmax, Bool_t isInteger)
 Optimize axis limits.
 When isInter=kTRUE, the function makes an integer binwidth
 and recompute the number of bins accordingly.
Inline Functions
                  Int_t FindGoodLimits(TH1* h, Axis_t xmin, Axis_t xmax, Axis_t ymin, Axis_t ymax)
                  Int_t FindGoodLimits(TH1* h, Axis_t xmin, Axis_t xmax, Axis_t ymin, Axis_t ymax, Axis_t zmin, Axis_t zmax)
        THLimitsFinder* GetLimitsFinder()
                TClass* Class()
                TClass* IsA() const
                   void ShowMembers(TMemberInspector& insp, char* parent)
                   void Streamer(TBuffer& b)
                   void StreamerNVirtual(TBuffer& b)
         THLimitsFinder THLimitsFinder(const THLimitsFinder&)
        THLimitsFinder& operator=(const THLimitsFinder&)
Author: Rene Brun 14/01/2002
Last update: root/hist:$Name:  $:$Id: THLimitsFinder.cxx,v 1.9 2005/08/29 10:45:07 brun Exp $
Copyright  (C) 1995-2000, Rene Brun and Fons Rademakers.               *
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.