RAIDA  1.9.0
IHistogramFactory.h
1 // -*- C++ -*-
2 // AID-GENERATED
3 // =========================================================================
4 // This class was generated by AID - Abstract Interface Definition
5 // DO NOT MODIFY, but use the org.freehep.aid.Aid utility to regenerate it.
6 // =========================================================================
7 #ifndef AIDA_IHISTOGRAMFACTORY_H
8 #define AIDA_IHISTOGRAMFACTORY_H 1
9 
10 // This file is part of the AIDA library
11 // Copyright (C) 2002 by the AIDA team. All rights reserved.
12 // This library is free software and under the terms of the
13 // GNU Library General Public License described in the LGPL.txt
14 
15 #include <string>
16 #include <vector>
17 
18 namespace AIDA {
19 
20 class IBaseHistogram;
21 class ICloud1D;
22 class ICloud2D;
23 class ICloud3D;
24 class IHistogram1D;
25 class IHistogram2D;
26 class IHistogram3D;
27 class IProfile1D;
28 class IProfile2D;
29 
39 
40 public:
42  virtual ~IHistogramFactory() { /* nop */; }
43 
50  virtual bool destroy(IBaseHistogram * hist) = 0;
51 
66  virtual ICloud1D * createCloud1D(const std::string & path,
67  const std::string & title,
68  int nMax = -1,
69  const std::string & options = "") = 0;
70 
81  virtual ICloud1D * createCloud1D(const std::string & pathAndTitle) = 0;
82 
93  virtual ICloud1D * createCopy(const std::string & path,
94  const ICloud1D & cloud) = 0;
95 
110  virtual ICloud2D * createCloud2D(const std::string & path,
111  const std::string & title,
112  int nMax = -1,
113  const std::string & options = "") = 0;
114 
125  virtual ICloud2D * createCloud2D(const std::string & pathAndTitle) = 0;
126 
137  virtual ICloud2D * createCopy(const std::string & path,
138  const ICloud2D & cloud) = 0;
139 
154  virtual ICloud3D * createCloud3D(const std::string & path,
155  const std::string & title,
156  int nMax = -1,
157  const std::string & options = "") = 0;
158 
169  virtual ICloud3D * createCloud3D(const std::string & pathAndTitle) = 0;
170 
181  virtual ICloud3D * createCopy(const std::string & path,
182  const ICloud3D & cloud) = 0;
183 
199  virtual IHistogram1D * createHistogram1D(const std::string & path,
200  const std::string & title,
201  int nBins,
202  double lowerEdge,
203  double upperEdge,
204  const std::string & options = "") = 0;
205 
219  virtual IHistogram1D * createHistogram1D(const std::string & pathAndTitle,
220  int nBins,
221  double lowerEdge,
222  double upperEdge) = 0;
223 
237  virtual IHistogram1D * createHistogram1D(const std::string & path,
238  const std::string & title,
239  const std::vector<double> & binEdges,
240  const std::string & options = "") = 0;
241 
252  virtual IHistogram1D * createCopy(const std::string & path,
253  const IHistogram1D & hist) = 0;
254 
273  virtual IHistogram2D * createHistogram2D(const std::string & path,
274  const std::string & title,
275  int nBinsX,
276  double lowerEdgeX,
277  double upperEdgeX,
278  int nBinsY,
279  double lowerEdgeY,
280  double upperEdgeY,
281  const std::string & options = "") = 0;
282 
299  virtual IHistogram2D * createHistogram2D(const std::string & pathAndTitle,
300  int nBinsX,
301  double lowerEdgeX,
302  double upperEdgeX,
303  int nBinsY,
304  double lowerEdgeY,
305  double upperEdgeY) = 0;
306 
321  virtual IHistogram2D * createHistogram2D(const std::string & path,
322  const std::string & title,
323  const std::vector<double> & binEdgesX,
324  const std::vector<double> & binEdgesY,
325  const std::string & options = "") = 0;
326 
337  virtual IHistogram2D * createCopy(const std::string & path,
338  const IHistogram2D & hist) = 0;
339 
361  virtual IHistogram3D * createHistogram3D(const std::string & path,
362  const std::string & title,
363  int nBinsX,
364  double lowerEdgeX,
365  double upperEdgeX,
366  int nBinsY,
367  double lowerEdgeY,
368  double upperEdgeY,
369  int nBinsZ,
370  double lowerEdgeZ,
371  double upperEdgeZ,
372  const std::string & options = "") = 0;
373 
393  virtual IHistogram3D * createHistogram3D(const std::string & pathAndTitle,
394  int nBinsX,
395  double lowerEdgeX,
396  double upperEdgeX,
397  int nBinsY,
398  double lowerEdgeY,
399  double upperEdgeY,
400  int nBinsZ,
401  double lowerEdgeZ,
402  double upperEdgeZ) = 0;
403 
419  virtual IHistogram3D * createHistogram3D(const std::string & path,
420  const std::string & title,
421  const std::vector<double> & binEdgesX,
422  const std::vector<double> & binEdgesY,
423  const std::vector<double> & binEdgesZ,
424  const std::string & options = "") = 0;
425 
436  virtual IHistogram3D * createCopy(const std::string & path,
437  const IHistogram3D & hist) = 0;
438 
453  virtual IProfile1D * createProfile1D(const std::string & path,
454  const std::string & title,
455  int nBins,
456  double lowerEdge,
457  double upperEdge,
458  const std::string & options = "") = 0;
459 
476  virtual IProfile1D * createProfile1D(const std::string & path,
477  const std::string & title,
478  int nBins,
479  double lowerEdge,
480  double upperEdge,
481  double lowerValue,
482  double upperValue,
483  const std::string & options = "") = 0;
484 
497  virtual IProfile1D * createProfile1D(const std::string & path,
498  const std::string & title,
499  const std::vector<double> & binEdges,
500  const std::string & options = "") = 0;
501 
516  virtual IProfile1D * createProfile1D(const std::string & path,
517  const std::string & title,
518  const std::vector<double> & binEdges,
519  double lowerValue,
520  double upperValue,
521  const std::string & options = "") = 0;
522 
536  virtual IProfile1D * createProfile1D(const std::string & pathAndTitle,
537  int nBins,
538  double lowerEdge,
539  double upperEdge) = 0;
540 
556  virtual IProfile1D * createProfile1D(const std::string & pathAndTitle,
557  int nBins,
558  double lowerEdge,
559  double upperEdge,
560  double lowerValue,
561  double upperValue) = 0;
562 
573  virtual IProfile1D * createCopy(const std::string & path,
574  const IProfile1D & profile) = 0;
575 
593  virtual IProfile2D * createProfile2D(const std::string & path,
594  const std::string & title,
595  int nBinsX,
596  double lowerEdgeX,
597  double upperEdgeX,
598  int nBinsY,
599  double lowerEdgeY,
600  double upperEdgeY,
601  const std::string & options = "") = 0;
602 
622  virtual IProfile2D * createProfile2D(const std::string & path,
623  const std::string & title,
624  int nBinsX,
625  double lowerEdgeX,
626  double upperEdgeX,
627  int nBinsY,
628  double lowerEdgeY,
629  double upperEdgeY,
630  double lowerValue,
631  double upperValue,
632  const std::string & options = "") = 0;
633 
647  virtual IProfile2D * createProfile2D(const std::string & path,
648  const std::string & title,
649  const std::vector<double> & binEdgesX,
650  const std::vector<double> & binEdgesY,
651  const std::string & options = "") = 0;
652 
668  virtual IProfile2D * createProfile2D(const std::string & path,
669  const std::string & title,
670  const std::vector<double> & binEdgesX,
671  const std::vector<double> & binEdgesY,
672  double lowerValue,
673  double upperValue,
674  const std::string & options = "") = 0;
675 
692  virtual IProfile2D * createProfile2D(const std::string & pathAndTitle,
693  int nBinsX,
694  double lowerEdgeX,
695  double upperEdgeX,
696  int nBinsY,
697  double lowerEdgeY,
698  double upperEdgeY) = 0;
699 
718  virtual IProfile2D * createProfile2D(const std::string & pathAndTitle,
719  int nBinsX,
720  double lowerEdgeX,
721  double upperEdgeX,
722  int nBinsY,
723  double lowerEdgeY,
724  double upperEdgeY,
725  double lowerValue,
726  double upperValue) = 0;
727 
738  virtual IProfile2D * createCopy(const std::string & path,
739  const IProfile2D & profile) = 0;
740 
753  virtual IHistogram1D * add(const std::string & path,
754  const IHistogram1D & hist1,
755  const IHistogram1D & hist2) = 0;
756 
769  virtual IHistogram1D * subtract(const std::string & path,
770  const IHistogram1D & hist1,
771  const IHistogram1D & hist2) = 0;
772 
785  virtual IHistogram1D * multiply(const std::string & path,
786  const IHistogram1D & hist1,
787  const IHistogram1D & hist2) = 0;
788 
801  virtual IHistogram1D * divide(const std::string & path,
802  const IHistogram1D & hist1,
803  const IHistogram1D & hist2) = 0;
804 
817  virtual IHistogram2D * add(const std::string & path,
818  const IHistogram2D & hist1,
819  const IHistogram2D & hist2) = 0;
820 
833  virtual IHistogram2D * subtract(const std::string & path,
834  const IHistogram2D & hist1,
835  const IHistogram2D & hist2) = 0;
836 
849  virtual IHistogram2D * multiply(const std::string & path,
850  const IHistogram2D & hist1,
851  const IHistogram2D & hist2) = 0;
852 
865  virtual IHistogram2D * divide(const std::string & path,
866  const IHistogram2D & hist1,
867  const IHistogram2D & hist2) = 0;
868 
881  virtual IHistogram3D * add(const std::string & path,
882  const IHistogram3D & hist1,
883  const IHistogram3D & hist2) = 0;
884 
897  virtual IHistogram3D * subtract(const std::string & path,
898  const IHistogram3D & hist1,
899  const IHistogram3D & hist2) = 0;
900 
913  virtual IHistogram3D * multiply(const std::string & path,
914  const IHistogram3D & hist1,
915  const IHistogram3D & hist2) = 0;
916 
929  virtual IHistogram3D * divide(const std::string & path,
930  const IHistogram3D & hist1,
931  const IHistogram3D & hist2) = 0;
932 
944  virtual IHistogram1D * projectionX(const std::string & path,
945  const IHistogram2D & hist) = 0;
946 
958  virtual IHistogram1D * projectionY(const std::string & path,
959  const IHistogram2D & hist) = 0;
960 
973  virtual IHistogram1D * sliceX(const std::string & path,
974  const IHistogram2D & hist,
975  int index) = 0;
976 
989  virtual IHistogram1D * sliceY(const std::string & path,
990  const IHistogram2D & hist,
991  int index) = 0;
992 
1005  virtual IHistogram1D * sliceX(const std::string & path,
1006  const IHistogram2D & hist,
1007  int index1,
1008  int index2) = 0;
1009 
1022  virtual IHistogram1D * sliceY(const std::string & path,
1023  const IHistogram2D & hist,
1024  int index1,
1025  int index2) = 0;
1026 
1038  virtual IHistogram2D * projectionXY(const std::string & path,
1039  const IHistogram3D & hist) = 0;
1040 
1052  virtual IHistogram2D * projectionXZ(const std::string & path,
1053  const IHistogram3D & hist) = 0;
1054 
1066  virtual IHistogram2D * projectionYZ(const std::string & path,
1067  const IHistogram3D & hist) = 0;
1068 
1084  virtual IHistogram2D * sliceXY(const std::string & path,
1085  const IHistogram3D & hist,
1086  int index1,
1087  int index2) = 0;
1088 
1104  virtual IHistogram2D * sliceXZ(const std::string & path,
1105  const IHistogram3D & hist,
1106  int index1,
1107  int index2) = 0;
1108 
1124  virtual IHistogram2D * sliceYZ(const std::string & path,
1125  const IHistogram3D & hist,
1126  int index1,
1127  int index2) = 0;
1128 }; // class
1129 } // namespace AIDA
1130 #endif /* ifndef AIDA_IHISTOGRAMFACTORY_H */
virtual IHistogram2D * sliceXZ(const std::string &path, const IHistogram3D &hist, int index1, int index2)=0
Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Y axis, between &quot;index1&quot; and &quot;...
virtual IHistogram1D * projectionY(const std::string &path, const IHistogram2D &hist)=0
Create an IHistogram1D by projecting an IHistogram2D along its y axis.
virtual IHistogram2D * sliceYZ(const std::string &path, const IHistogram3D &hist, int index1, int index2)=0
Create an IHistogram2D by slicing an IHistogram3D perpendicular to the X axis, between &quot;index1&quot; and &quot;...
User level interface to a 1D Cloud.
Definition: ICloud1D.h:30
virtual ICloud1D * createCloud1D(const std::string &path, const std::string &title, int nMax=-1, const std::string &options="")=0
Create a ICloud1D, an unbinned 1-dimensional histogram.
User level interface to a 1-dimensional profile histogram.
Definition: IProfile1D.h:28
virtual ICloud1D * createCopy(const std::string &path, const ICloud1D &cloud)=0
Create a copy of an ICloud1D.
virtual IHistogram1D * divide(const std::string &path, const IHistogram1D &hist1, const IHistogram1D &hist2)=0
Create an IHistogram1D by dividing two IHistogram1D.
virtual IHistogram3D * createHistogram3D(const std::string &path, const std::string &title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, int nBinsZ, double lowerEdgeZ, double upperEdgeZ, const std::string &options="")=0
Create a IHistogram3D.
virtual IHistogram2D * sliceXY(const std::string &path, const IHistogram3D &hist, int index1, int index2)=0
Create an IHistogram2D by slicing an IHistogram3D perpendicular to the Z axis, between &quot;index1&quot; and &quot;...
User level interface to 1D Histogram.
Definition: IHistogram1D.h:28
virtual ICloud3D * createCloud3D(const std::string &path, const std::string &title, int nMax=-1, const std::string &options="")=0
Create a ICloud3D, an unbinned 3-dimensional histogram.
User level interface to 3D Histogram.
Definition: IHistogram3D.h:28
virtual IHistogram1D * createHistogram1D(const std::string &path, const std::string &title, int nBins, double lowerEdge, double upperEdge, const std::string &options="")=0
Create a IHistogram1D.
virtual IHistogram2D * projectionXY(const std::string &path, const IHistogram3D &hist)=0
Create an IHistogram2D by projecting an IHistogram3D on the x-y plane.
virtual IHistogram1D * add(const std::string &path, const IHistogram1D &hist1, const IHistogram1D &hist2)=0
Create an IHistogram1D by adding two IHistogram1D.
virtual ICloud2D * createCloud2D(const std::string &path, const std::string &title, int nMax=-1, const std::string &options="")=0
Create a ICloud2D, an unbinned 2-dimensional histogram.
virtual IProfile2D * createProfile2D(const std::string &path, const std::string &title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string &options="")=0
Create a IProfile2D.
class IAnnotation;
Definition: IBaseHistogram.h:29
User level interface to a 2D Cloud.
Definition: ICloud2D.h:30
virtual IHistogram1D * multiply(const std::string &path, const IHistogram1D &hist1, const IHistogram1D &hist2)=0
Create an IHistogram1D by multiplying two IHistogram1D.
virtual IHistogram2D * projectionXZ(const std::string &path, const IHistogram3D &hist)=0
Create an IHistogram2D by projecting an IHistogram3D on the x-z plane.
virtual IHistogram1D * projectionX(const std::string &path, const IHistogram2D &hist)=0
Create an IHistogram1D by projecting an IHistogram2D along its x axis.
User level interface for factory classes of Histograms (binned, unbinned, and profile) The created ob...
Definition: IHistogramFactory.h:38
virtual IProfile1D * createProfile1D(const std::string &path, const std::string &title, int nBins, double lowerEdge, double upperEdge, const std::string &options="")=0
Create a IProfile1D.
User level interface to a 2-dimensional profile histogram.
Definition: IProfile2D.h:28
User level interface to 2D Histogram.
Definition: IHistogram2D.h:28
virtual IHistogram1D * sliceY(const std::string &path, const IHistogram2D &hist, int index)=0
Create an IHistogram1D by slicing an IHistogram2D parallel to the x axis at a given bin...
virtual IHistogram1D * sliceX(const std::string &path, const IHistogram2D &hist, int index)=0
Create an IHistogram1D by slicing an IHistogram2D parallel to the y axis at a given bin...
virtual ~IHistogramFactory()
Destructor.
Definition: IHistogramFactory.h:42
virtual IHistogram1D * subtract(const std::string &path, const IHistogram1D &hist1, const IHistogram1D &hist2)=0
Create an IHistogram1D by subtracting two IHistogram1D.
virtual IHistogram2D * projectionYZ(const std::string &path, const IHistogram3D &hist)=0
Create an IHistogram2D by projecting an IHistogram3D on the y-z plane.
virtual bool destroy(IBaseHistogram *hist)=0
Destroy an IBaseHistogram ogject.
User level interface to a 3D Cloud.
Definition: ICloud3D.h:30
virtual IHistogram2D * createHistogram2D(const std::string &path, const std::string &title, int nBinsX, double lowerEdgeX, double upperEdgeX, int nBinsY, double lowerEdgeY, double upperEdgeY, const std::string &options="")=0
Create a IHistogram2D.