Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:28:09

0001 // -*- C++ -*-
0002 // AID-GENERATED
0003 // =========================================================================
0004 // This class was generated by AID - Abstract Interface Definition          
0005 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it. 
0006 // =========================================================================
0007 #ifndef AIDA_IPROFILE1D_H
0008 #define AIDA_IPROFILE1D_H 1
0009 
0010 //  This file is part of the AIDA library
0011 //  Copyright (C) 2002 by the AIDA team.  All rights reserved.
0012 //  This library is free software and under the terms of the
0013 //  GNU Library General Public License described in the LGPL.txt 
0014 
0015 #include "AIDA/IProfile.h"
0016 
0017 namespace AIDA {
0018 
0019 class IAxis;
0020 
0021 /**
0022  * User level interface to a 1-dimensional profile histogram
0023  *
0024  * @author The AIDA team (http://aida.freehep.org/)
0025  *
0026  */
0027  
0028 class IProfile1D : virtual public IProfile {
0029 
0030 public: 
0031     /// Destructor.
0032     virtual ~IProfile1D() { /* nop */; }
0033 
0034     /**
0035      * Fill the IProfile1D.
0036      *
0037      */
0038     virtual bool fill(double x, double y, double weight = 1) = 0;
0039 
0040     /**
0041      * The weighted mean of the corresponding bin.
0042      * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW.
0043      * @return      The mean of the corresponding bin along the x axis.
0044      *
0045      */
0046     virtual double binMean(int index) const = 0;
0047 
0048     /**
0049      * Number of entries in the corresponding bin (ie the number of times fill was called for this bin).
0050      * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW.
0051      */
0052     virtual int binEntries(int index) const = 0;
0053 
0054     /**
0055      * Total height of the corresponding bin (ie the sum of the weights in this bin).
0056      * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW.
0057      */
0058     virtual double binHeight(int index) const = 0;
0059 
0060     /**
0061      * The error on this bin.
0062      * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW.
0063      */
0064     virtual double binError(int index) const = 0;
0065 
0066     /**
0067      * The spread (RMS) of a bin.
0068      * @param index the bin number (0...N-1) or OVERFLOW or UNDERFLOW.
0069      *
0070      */
0071     virtual double binRms(int index) const = 0;
0072 
0073     /**
0074      * Returns the mean of the whole profile as calculated on filling-time.
0075      */
0076     virtual double mean() const = 0;
0077 
0078     /**
0079      * Returns the rms of the whole profile as calculated on filling-time.
0080      */
0081     virtual double rms() const = 0;
0082 
0083     /**
0084      * Returns the X axis.
0085      */
0086     virtual const IAxis & axis() const = 0;
0087 
0088     /**
0089      * Convenience method, equivalent to <tt>axis().coordToIndex(coord)</tt>.
0090      * @see IAxis#coordToIndex(double)
0091      */
0092     virtual int coordToIndex(double coord) const = 0;
0093 
0094     /**
0095      * Modifies this IProfile1D by adding the contents of profile to it.
0096      *
0097      * @param profile The IProfile1D to be added to this IProfile1D
0098      * @return false if profile binnings are incompatible
0099      */
0100     virtual bool add(const IProfile1D & profile) = 0;
0101 }; // class
0102 } // namespace AIDA
0103 #endif /* ifndef AIDA_IPROFILE1D_H */