Gaudi Framework, version v20r3

Generated: 24 Nov 2008

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 //  This file is part of the AIDA library
00011 //  Copyright (C) 2002 by the AIDA team.  All rights reserved.
00012 //  This library is free software and under the terms of the
00013 //  GNU Library General Public License described in the LGPL.txt 
00014 
00015 #include "AIDA/IAxis.h"
00016 
00017 #include "TAxis.h" 
00018 
00019 namespace Gaudi {
00020 
00029   class Axis  : public AIDA::IAxis {
00030   public:
00031 
00032     typedef Axis self;
00033 
00034     static int toRootIndex(int index, int nbins) {
00035       if (index==AIDA::IAxis::OVERFLOW_BIN) return nbins+1;
00036       if (index==AIDA::IAxis::UNDERFLOW_BIN) return 0;
00037       return index+1;
00038     }
00039 
00040     static int toAidaIndex(int index, int bins) { 
00041       if ( index == bins + 1 ) return AIDA::IAxis::OVERFLOW_BIN ;
00042       if ( index == 0 ) return AIDA::IAxis::UNDERFLOW_BIN ;
00043       return index - 1 ;
00044     }
00045 
00052     int rIndex(int index) const { return toRootIndex(index, bins());}
00053 
00060     int aIndex( int index ) const { return toAidaIndex(index, bins()); }
00061 
00062   public: 
00063 
00064     Axis() : taxis_(0), fixed_(true)  {}
00065 
00066     explicit Axis(TAxis * itaxi, bool isfixed=true) : taxis_(itaxi), fixed_(isfixed){}
00067 
00068     void initialize(TAxis * itaxi, bool isfixed=true) {
00069       taxis_ = itaxi;
00070       fixed_ = isfixed;
00071     }
00072 
00074     virtual ~Axis()    {}
00075 
00081     virtual bool isFixedBinning() const { return fixed_;}
00082 
00088     virtual double lowerEdge() const { return taxis().GetXmin();}
00089 
00095     virtual double upperEdge() const { return taxis().GetXmax();}
00096 
00102     virtual int bins() const { return taxis().GetNbins();}
00103 
00110     virtual double binLowerEdge(int index) const { return taxis().GetBinLowEdge(rIndex(index));}
00117     virtual double binUpperEdge(int index) const { return taxis().GetBinUpEdge(rIndex(index));}
00118 
00125     virtual double binWidth(int index) const { return taxis().GetBinWidth(rIndex(index));}
00126 
00136     virtual int coordToIndex(double coord) const
00137     {
00138       return aIndex( taxis().FindBin(coord) );
00139     }
00140 
00144     TAxis & taxis() const { return *me().taxis_;}
00145 
00146   private:
00147 
00148   private:
00149 
00150     self & me() const { return const_cast<self&>(*this);}
00151 
00152 
00153     TAxis * taxis_; 
00154     bool fixed_;
00155 
00156 
00157   }; // class
00158 
00159 } // namespace Gaudi
00160 
00161 #endif /* ifndef AIDA_IAXIS_H */

Generated at Mon Nov 24 14:38:48 2008 for Gaudi Framework, version v20r3 by Doxygen version 1.5.6 written by Dimitri van Heesch, © 1997-2004