1 #ifndef GAUDIALG_IHISTOTOOL_H
2 #define GAUDIALG_IHISTOTOOL_H 1
12 #include "GaudiKernel/IAlgTool.h"
13 #include "GaudiAlg/HistoID.h"
72 virtual AIDA::IHistogram1D* plot1D
73 (
const double value ,
74 const std::string& title ,
77 const unsigned long bins = 100 ,
78 const double weight = 1.0 )
const = 0 ;
93 AIDA::IHistogram1D* plot
95 const std::string& title ,
98 const unsigned long bins = 100 ,
99 const double weight = 1.0 )
const
101 return plot1D ( value, title, low, high, bins, weight );
144 virtual AIDA::IHistogram1D* plot1D
145 (
const double value ,
147 const std::string& title ,
150 const unsigned long bins = 100 ,
151 const double weight = 1.0 )
const = 0 ;
167 AIDA::IHistogram1D* plot
168 (
const double value ,
170 const std::string& title ,
173 const unsigned long bins = 100 ,
174 const double weight = 1.0 )
const
176 return plot1D ( value, ID, title, low, high, bins, weight );
215 virtual AIDA::IHistogram2D* plot2D
216 (
const double valueX ,
217 const double valueY ,
218 const std::string& title ,
223 const unsigned long binsX = 50 ,
224 const unsigned long binsY = 50 ,
225 const double weight = 1.0 )
const = 0;
273 virtual AIDA::IHistogram2D* plot2D
274 (
const double valueX ,
275 const double valueY ,
277 const std::string& title ,
282 const unsigned long binsX = 50 ,
283 const unsigned long binsY = 50 ,
284 const double weight = 1.0 )
const = 0;
328 virtual AIDA::IHistogram3D* plot3D
329 (
const double valueX ,
330 const double valueY ,
331 const double valueZ ,
332 const std::string& title ,
339 const unsigned long binsX = 10 ,
340 const unsigned long binsY = 10 ,
341 const unsigned long binsZ = 10 ,
342 const double weight = 1.0 )
const = 0;
396 virtual AIDA::IHistogram3D* plot3D
397 (
const double valueX ,
398 const double valueY ,
399 const double valueZ ,
401 const std::string& title ,
408 const unsigned long binsX = 10 ,
409 const unsigned long binsY = 10 ,
410 const unsigned long binsZ = 10 ,
411 const double weight = 1.0 )
const = 0;
426 virtual AIDA::IHistogram1D* book1D
427 (
const std::string& title ,
428 const double low = 0 ,
429 const double high = 100 ,
430 const unsigned long bins = 100 )
const = 0 ;
444 AIDA::IHistogram1D*
book
445 (
const std::string& title ,
446 const double low = 0 ,
447 const double high = 100 ,
448 const unsigned long bins = 100 )
const
450 return book1D( title, low, high, bins );
467 virtual AIDA::IHistogram2D* book2D
468 (
const std::string& title ,
469 const double lowX = 0 ,
470 const double highX = 100 ,
471 const unsigned long binsX = 50 ,
472 const double lowY = 0 ,
473 const double highY = 100 ,
474 const unsigned long binsY = 50 )
const = 0;
493 virtual AIDA::IHistogram3D* book3D
494 (
const std::string& title ,
495 const double lowX = 0 ,
496 const double highX = 100 ,
497 const unsigned long binsX = 10 ,
498 const double lowY = 0 ,
499 const double highY = 100 ,
500 const unsigned long binsY = 10 ,
501 const double lowZ = 0 ,
502 const double highZ = 100 ,
503 const unsigned long binsZ = 10 )
const = 0;
515 virtual AIDA::IHistogram1D* book1D
516 (
const HistoID& ID ,
517 const std::string& title =
"" ,
518 const double low = 0 ,
519 const double high = 100 ,
520 const unsigned long bins = 100 )
const = 0 ;
535 AIDA::IHistogram1D*
book
536 (
const HistoID& ID ,
537 const std::string& title =
"" ,
538 const double low = 0 ,
539 const double high = 100 ,
540 const unsigned long bins = 100 )
const
542 return book1D( ID, title, low, high, bins );
555 virtual AIDA::IHistogram2D* book2D
556 (
const HistoID& ID ,
557 const std::string& title ,
558 const double lowX = 0 ,
559 const double highX = 100 ,
560 const unsigned long binsX = 100 ,
561 const double lowY = 0 ,
562 const double highY = 100 ,
563 const unsigned long binsY = 100 )
const = 0;
581 virtual AIDA::IHistogram3D* book3D
582 (
const HistoID& ID ,
583 const std::string& title ,
584 const double lowX = 0 ,
585 const double highX = 100 ,
586 const unsigned long binsX = 10 ,
587 const double lowY = 0 ,
588 const double highY = 100 ,
589 const unsigned long binsY = 10 ,
590 const double lowZ = 0 ,
591 const double highZ = 100 ,
592 const unsigned long binsZ = 10 )
const = 0;
601 virtual AIDA::IHistogram1D*
fill
602 ( AIDA::IHistogram1D* histo ,
604 const double weight ,
605 const std::string& title =
"")
const = 0 ;
615 virtual AIDA::IHistogram2D*
fill
616 ( AIDA::IHistogram2D* histo ,
617 const double valueX ,
618 const double valueY ,
619 const double weight ,
620 const std::string& title =
"" )
const = 0 ;
631 virtual AIDA::IHistogram3D*
fill
632 ( AIDA::IHistogram3D* histo ,
633 const double valueX ,
634 const double valueY ,
635 const double valueZ ,
636 const double weight ,
637 const std::string& title =
"" )
const = 0 ;
642 virtual AIDA::IHistogram1D* histo1D (
const std::string& title )
const = 0 ;
651 AIDA::IHistogram1D*
histo (
const std::string& title )
const
653 return histo1D( title );
659 virtual AIDA::IHistogram2D* histo2D (
const std::string& title )
const = 0;
665 virtual AIDA::IHistogram3D* histo3D (
const std::string& title )
const = 0;
670 virtual AIDA::IHistogram1D* histo1D (
const HistoID& ID )
const = 0 ;
679 AIDA::IHistogram1D*
histo (
const HistoID& ID )
const
681 return histo1D( ID );
687 virtual AIDA::IHistogram2D* histo2D (
const HistoID& ID )
const = 0;
692 virtual AIDA::IHistogram3D* histo3D (
const HistoID& ID )
const = 0;
695 virtual bool histoExists (
const std::string& title )
const = 0 ;
698 virtual bool histoExists (
const HistoID& ID )
const = 0 ;
751 template <
class FUNCTION,
class OBJECT>
752 AIDA::IHistogram1D* plot
756 const std::string& title ,
759 const unsigned long bins = 100 )
const
762 AIDA::IHistogram1D* h = histo1D ( title ) ;
763 if ( !h ) { h = book1D ( title , low , high , bins ); }
764 while ( first != last && h )
765 { h =
fill ( h ,
func( *first ) , 1.0 , title ) ; ++first ; }
818 template <
class FUNCTION,
class OBJECT>
819 AIDA::IHistogram1D* plot
820 (
const FUNCTION& func ,
824 const std::string& title ,
827 const unsigned long bins = 100 )
const
830 AIDA::IHistogram1D* h = histo1D ( ID ) ;
831 if ( !h ) { h = book1D ( ID , title , low , high , bins ); }
832 while ( first != last && h )
833 { h =
fill( h ,
func( *first ) , 1.0 , title ) ; ++first ; }
891 template <
class FUNCTION,
class OBJECT,
class WEIGHT>
892 AIDA::IHistogram1D* plot
893 (
const FUNCTION& func ,
896 const std::string& title ,
899 const unsigned long bins ,
900 const WEIGHT& weight )
const
903 AIDA::IHistogram1D* h = histo1D ( title ) ;
904 if ( !h ) { h = book1D ( title , low , high , bins ); }
905 while( first != last && h )
908 weight ( *first ) , title ) ; ++first ; }
971 template <
class FUNCTION,
class OBJECT,
class WEIGHT>
972 AIDA::IHistogram1D* plot
973 (
const FUNCTION& func ,
977 const std::string& title ,
980 const unsigned long bins ,
981 const WEIGHT& weight )
const
984 AIDA::IHistogram1D* h = histo1D ( ID ) ;
985 if ( !h ) { h = book1D ( ID , title , low , high , bins ); }
986 while( first != last && h )
989 weight ( *first ) , title ) ; ++first ; }
999 #endif // GAUDIALG_IHISTOTOOL_H
GAUDI_API void fill(AIDA::IHistogram1D *histo, const double value, const double weight=1.0)
simple function to fill AIDA::IHistogram1D objects
A DataObject is the base class of any identifiable object on any data store.
GAUDI_API AIDA::IHistogram1D * book(IHistogramSvc *svc, const std::string &path, const Gaudi::Histo1DDef &hist)
helper function to book 1D-histogram
ID class for Histogram and Ntuples.