Gaudi Framework, version v23r2

Home   Generated: Thu Jun 28 2012

Axis.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 // AID-GENERATED
00003 // =========================================================================
00004 // This class was generated by AID - Abstract Interface Definition
00005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it.
00006 // =========================================================================
00007 #ifndef GAUDISVC__IAXIS_H
00008 #define GAUDISVC__IAXIS_H 1
00009 
00010 #include "AIDA_visibility_hack.h"
00011 
00012 //  This file is part of the AIDA library
00013 //  Copyright (C) 2002 by the AIDA team.  All rights reserved.
00014 //  This library is free software and under the terms of the
00015 //  GNU Library General Public License described in the LGPL.txt
00016 
00017 #include "AIDA/IAxis.h"
00018 
00019 #include "TAxis.h"
00020 
00021 namespace Gaudi {
00022 
00031   class Axis  : public AIDA::IAxis
00032   {
00033   public:
00034 
00035     typedef Axis self;
00036 
00037     static int toRootIndex(int index, int nbins) {
00038       if (index==AIDA::IAxis::OVERFLOW_BIN) return nbins+1;
00039       if (index==AIDA::IAxis::UNDERFLOW_BIN) return 0;
00040       return index+1;
00041     }
00042 
00043     static int toAidaIndex(int index, int bins) {
00044       if ( index == bins + 1 ) return AIDA::IAxis::OVERFLOW_BIN ;
00045       if ( index == 0 ) return AIDA::IAxis::UNDERFLOW_BIN ;
00046       return index - 1 ;
00047     }
00048 
00055     int rIndex(int index) const { return toRootIndex(index, bins());}
00056 
00063     int aIndex( int index ) const { return toAidaIndex(index, bins()); }
00064 
00065   public:
00066 
00067     Axis() : taxis_(0) {}
00068 
00069     explicit Axis ( TAxis * itaxi ) : taxis_(itaxi) {}
00070 
00071     void initialize (TAxis * itaxi , bool ) { taxis_ = itaxi; }
00072 
00074     virtual ~Axis()    {}
00075 
00081     virtual bool isFixedBinning() const
00082     {
00083       return 0 == taxis_ ? true : !taxis_->IsVariableBinSize() ;
00084     }
00085 
00091     virtual double lowerEdge() const { return taxis().GetXmin();}
00092 
00098     virtual double upperEdge() const { return taxis().GetXmax();}
00099 
00105     virtual int bins() const { return taxis().GetNbins();}
00106 
00113     virtual double binLowerEdge(int index) const { return taxis().GetBinLowEdge(rIndex(index));}
00120     virtual double binUpperEdge(int index) const { return taxis().GetBinUpEdge(rIndex(index));}
00121 
00128     virtual double binWidth(int index) const { return taxis().GetBinWidth(rIndex(index));}
00129 
00139     virtual int coordToIndex(double coord) const
00140     {
00141       return aIndex( taxis().FindBin(coord) );
00142     }
00143 
00147     TAxis & taxis() const { return *me().taxis_;}
00148 
00149   private:
00150 
00151   private:
00152 
00153     self & me() const { return const_cast<self&>(*this);}
00154 
00155 
00156     TAxis * taxis_;
00157 
00158   }; // class
00159 
00160 } // namespace Gaudi
00161 
00162 #endif /* ifndef AIDA_IAXIS_H */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines

Generated at Thu Jun 28 2012 23:27:16 for Gaudi Framework, version v23r2 by Doxygen version 1.7.2 written by Dimitri van Heesch, © 1997-2004