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_ICLOUD3D_H
0008 #define AIDA_ICLOUD3D_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 IHistogram3D;
0022 
0023 /**
0024  * User level interface to a 3D Cloud.
0025  * 
0026  * @author The AIDA team (http://aida.freehep.org/)
0027  *
0028  */
0029 
0030 class ICloud3D : virtual public ICloud {
0031 
0032 public: 
0033     /// Destructor.
0034     virtual ~ICloud3D() { /* nop */; }
0035 
0036     /**
0037      * Fill the ICloud3D with a triplet of values and a corresponding weight.
0038      * @param x      The x value.
0039      * @param y      The y value.
0040      * @param z      The z value.
0041      * @param weight The corresponding weight. By default it is 1.
0042      * @return false If the ICloud3D is full, if the weight's value is
0043      *                                  is not between 0 and 1.
0044      *
0045      */
0046     virtual bool fill(double x, double y, double z, double weight = 1.) = 0;
0047 
0048     /**
0049      * Get the lower edge of the ICloud3D along the x axis.
0050      * @return The lower edge along the x axis.
0051      *
0052      */
0053     virtual double lowerEdgeX() const = 0;
0054 
0055     /**
0056      * Get the lower edge of the ICloud3D along the y axis.
0057      * @return The lower edge along the y axis.
0058      *
0059      */
0060     virtual double lowerEdgeY() const = 0;
0061 
0062     /**
0063      * Get the lower edge of the ICloud3D along the z axis.
0064      * @return The lower edge along the z axis.
0065      *
0066      */
0067     virtual double lowerEdgeZ() const = 0;
0068 
0069     /**
0070      * Get the upper edge of the ICloud3D along the x axis.
0071      * @return The upper edge along the x axis.
0072      *
0073      */
0074     virtual double upperEdgeX() const = 0;
0075 
0076     /**
0077      * Get the upper edge of the ICloud3D along the y axis.
0078      * @return The upper edge along the y axis.
0079      *
0080      */
0081     virtual double upperEdgeY() const = 0;
0082 
0083     /**
0084      * Get the upper edge of the ICloud3D along the z axis.
0085      * @return The upper edge along the z axis.
0086      *
0087      */
0088     virtual double upperEdgeZ() const = 0;
0089 
0090     /**
0091      * Get the x value corresponding to a given entry.
0092      * @param index The entry's index.
0093      * @return      The x value of the index-th entry.
0094      *              If the ICloud3D has already been converted, 0 is returned. 
0095      *
0096      */
0097       
0098            
0099        
0100                                                       
0101                                       
0102                                                       
0103                                                                                          
0104       
0105        
0106       
0107     virtual double valueX(int index) const = 0;
0108 
0109     /**
0110      * Get the y value corresponding to a given entry.
0111      * @param index The entry's index.
0112      * @return      The y value of the index-th entry.
0113      *              If the ICloud3D has already been converted, 0 is returned.
0114      *
0115      */
0116       
0117            
0118        
0119                                                       
0120                                       
0121                                                       
0122                                                                                          
0123       
0124        
0125       
0126     virtual double valueY(int index) const = 0;
0127 
0128     /**
0129      * Get the z value corresponding to a given entry.
0130      * @param index The entry's index.
0131      * @return      The z value of the index-th entry.
0132      *              If the ICloud3D has already been converted, 0 is returned.
0133      *
0134      */
0135       
0136            
0137        
0138                                                       
0139                                       
0140                                                       
0141                                                                                          
0142       
0143        
0144       
0145     virtual double valueZ(int index) const = 0;
0146 
0147     /**
0148      * Get the weight corresponding to a given entry.
0149      * @param index The entry's index.
0150      * @return      The weight of the index-th entry.
0151      *              If the ICloud3D has already been converted, 0 is returned.
0152      *
0153      */
0154       
0155            
0156        
0157                                                      
0158                                       
0159                                                      
0160                                                                                        
0161       
0162        
0163       
0164     virtual double weight(int index) const = 0;
0165 
0166     /**
0167      * Get the mean of the ICloud3D along the x axis.
0168      * @return The mean along the x axis.
0169      *
0170      */
0171     virtual double meanX() const = 0;
0172 
0173     /**
0174      * Get the mean of the ICloud3D along the y axis.
0175      * @return The mean along the y axis.
0176      *
0177      */
0178     virtual double meanY() const = 0;
0179 
0180     /**
0181      * Get the mean of the ICloud3D along the z axis.
0182      * @return The mean along the z axis.
0183      *
0184      */
0185     virtual double meanZ() const = 0;
0186 
0187     /**
0188      * Get the RMS of the ICloud3D along the x axis.
0189      * @return The RMS along the x axis.
0190      *
0191      */
0192     virtual double rmsX() const = 0;
0193 
0194     /**
0195      * Get the RMS of the ICloud3D along the y axis.
0196      * @return The RMS along the y axis.
0197      *
0198      */
0199     virtual double rmsY() const = 0;
0200 
0201     /**
0202      * Get the RMS of the ICloud3D along the z axis.
0203      * @return The RMS along the z axis.
0204      *
0205      */
0206     virtual double rmsZ() const = 0;
0207 
0208     /**
0209      * Convert internally the ICloud3D to an IHistogram3D 
0210      * with given number of bins, upper edge and lower edge.
0211      * @param nBinsX     The number of bins of the x axis.
0212      * @param lowerEdgeX The lower edge of bins of the x axis.
0213      * @param upperEdgeX The upper edge of bins of the x axis.
0214      * @param nBinsY     The number of bins of the y axis.
0215      * @param lowerEdgeY The lower edge of bins of the y axis.
0216      * @param upperEdgeY The upper edge of bins of the y axis.
0217      * @param nBinsZ     The number of bins of the z axis.
0218      * @param lowerEdgeZ The lower edge of bins of the z axis.
0219      * @param upperEdgeZ The upper edge of bins of the z axis.
0220      * @return false If the ICloud3D has already been converted.
0221      *
0222      */
0223     virtual bool convert(int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ) = 0;
0224 
0225     /**
0226      * Convert internally the ICloud3D to an IHistogram3D 
0227      * with given bin edges.
0228      * @param binEdgesX The bins edges of the x axis.
0229      * @param binEdgesY The bins edges of the y axis.
0230      * @param binEdgesZ The bins edges of the z axis.
0231      * @return false If the ICloud3D has already been converted.
0232      *
0233      */
0234     virtual bool convert(const std::vector<double>  & binEdgesX, const std::vector<double>  & binEdgesY, const std::vector<double>  & binEdgesZ) = 0;
0235 
0236     /**     
0237      * Get the internal IHistogram3D in which the ICloud3D converted to.
0238      * @return The histogram.
0239      *                          or because of a convert() method invocation.
0240      *
0241      */
0242     virtual const IHistogram3D & histogram() const = 0;
0243 
0244     /**
0245      * Project the ICloud3D on an IHistogram3D.
0246      * @param hist The IHistogram3D to be filled.
0247      * @return false If the ICloud3D is already converted.
0248      *
0249      */
0250     virtual bool fillHistogram(IHistogram3D & hist) const = 0;
0251 }; // class
0252 } // namespace AIDA
0253 #endif /* ifndef AIDA_ICLOUD3D_H */