Back to home page

EIC code displayed by LXR

 
 

    


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

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_ICLOUD1D_H
0008 #define AIDA_ICLOUD1D_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 <vector>
0016 
0017 #include "AIDA/ICloud.h"
0018 
0019 namespace AIDA {
0020 
0021 class IHistogram1D;
0022 
0023 /**
0024  * User level interface to a 1D Cloud.
0025  *
0026  * @author The AIDA team (http://aida.freehep.org/)
0027  *
0028  */
0029  
0030 class ICloud1D : virtual public ICloud {
0031 
0032 public: 
0033     /// Destructor.
0034     virtual ~ICloud1D() { /* nop */; }
0035 
0036     /**
0037      * Fill the ICloud1D with a value and a corresponding weight.
0038      * @param x      The value.
0039      * @param weight The corresponding weight. By default it is 1.
0040      * @return false If the ICloud1D is full, if the weight's value is
0041      *                                  is not between 0 and 1.
0042      *
0043      */
0044     virtual bool fill(double x, double weight = 1.) = 0;
0045 
0046     /**
0047      * Get the lower edge of the ICloud1D.
0048      * @return The lower edge.
0049      *
0050      */
0051     virtual double lowerEdge() const = 0;
0052 
0053     /**
0054      * Get the upper edge of the ICloud1D.
0055      * @return The upper edge.
0056      *
0057      */
0058     virtual double upperEdge() const = 0;
0059 
0060     /**
0061      * Get the value corresponding to a given entry.
0062      * @param index The entry's index.
0063      * @return      The value of the index-th entry.
0064      *              If the ICloud1D has already been converted, 0 is returned.
0065      *
0066      */
0067       
0068            
0069        
0070                                                     
0071                                       
0072                                                     
0073                                                                                          
0074       
0075        
0076       
0077     virtual double value(int index) const = 0;
0078 
0079     /**
0080      * Get the weight corresponding to a given entry.
0081      * @param index The entry's index.
0082      * @return      The weight of the index-th entry.
0083      *              If the ICloud1D has already been converted, 0 is returned.
0084      *
0085      */
0086       
0087            
0088        
0089                                                      
0090                                       
0091                                                      
0092                                                                                        
0093       
0094        
0095       
0096     virtual double weight(int index) const = 0;
0097 
0098     /**
0099      * Get the mean of the ICloud1D.
0100      * @return The mean.
0101      *
0102      */
0103     virtual double mean() const = 0;
0104 
0105     /**
0106      * Get the RMS of the ICloud1D.
0107      * @return The RMS.
0108      *
0109      */
0110     virtual double rms() const = 0;
0111 
0112     /**
0113      * Convert internally the ICloud1D to an IHistogram1D
0114      * with given number of bins, upper edge and lower edge.
0115      * @param nBins     The number of bins.
0116      * @param lowerEdge The lower edge.
0117      * @param upperEdge The upper edge.
0118      * @return false If the ICloud1D has already been converted.
0119      *
0120      */
0121     virtual bool convert(int nBins, double lowerEdge, double upperEdge) = 0;
0122 
0123     /**
0124      * Convert internally the ICloud1D to an IHistogram1D
0125      * with given bin edges.
0126      * @param binEdges The bins edges.
0127      * @return false If the ICloud1D has already been converted.
0128      *
0129      */
0130     virtual bool convert(const std::vector<double>  & binEdges) = 0;
0131 
0132     /**
0133      * Get the internal IHistogram1D in which the ICloud1D converted to.
0134      * @return The histogram.
0135      *                          or because of a convert() method invocation.
0136      *
0137      */
0138     virtual const IHistogram1D & histogram() const = 0;
0139 
0140     /**
0141      * Project the ICloud1D on an IHistogram1D.
0142      * @param hist The IHistogram1D to be filled.
0143      * @return false If the ICloud1D is already converted.
0144      *
0145      */
0146     virtual bool fillHistogram(IHistogram1D & hist) const = 0;
0147 }; // class
0148 } // namespace AIDA
0149 #endif /* ifndef AIDA_ICLOUD1D_H */