3 #ifndef GAUDIALG_IHISTOTOOL_H
4 #define GAUDIALG_IHISTOTOOL_H 1
74 virtual AIDA::IHistogram1D* plot1D
75 (
const double value ,
76 const std::string& title ,
79 const unsigned long bins = 100 ,
80 const double weight = 1.0 )
const = 0 ;
95 AIDA::IHistogram1D* plot
97 const std::string& title ,
100 const unsigned long bins = 100 ,
101 const double weight = 1.0 )
const
103 return plot1D ( value, title, low, high, bins, weight );
146 virtual AIDA::IHistogram1D* plot1D
147 (
const double value ,
149 const std::string& title ,
152 const unsigned long bins = 100 ,
153 const double weight = 1.0 )
const = 0 ;
169 AIDA::IHistogram1D* plot
170 (
const double value ,
172 const std::string& title ,
175 const unsigned long bins = 100 ,
176 const double weight = 1.0 )
const
178 return plot1D ( value, ID, title, low, high, bins, weight );
217 virtual AIDA::IHistogram2D* plot2D
218 (
const double valueX ,
219 const double valueY ,
220 const std::string& title ,
225 const unsigned long binsX = 50 ,
226 const unsigned long binsY = 50 ,
227 const double weight = 1.0 )
const = 0;
275 virtual AIDA::IHistogram2D* plot2D
276 (
const double valueX ,
277 const double valueY ,
279 const std::string& title ,
284 const unsigned long binsX = 50 ,
285 const unsigned long binsY = 50 ,
286 const double weight = 1.0 )
const = 0;
330 virtual AIDA::IHistogram3D* plot3D
331 (
const double valueX ,
332 const double valueY ,
333 const double valueZ ,
334 const std::string& title ,
341 const unsigned long binsX = 10 ,
342 const unsigned long binsY = 10 ,
343 const unsigned long binsZ = 10 ,
344 const double weight = 1.0 )
const = 0;
398 virtual AIDA::IHistogram3D* plot3D
399 (
const double valueX ,
400 const double valueY ,
401 const double valueZ ,
403 const std::string& title ,
410 const unsigned long binsX = 10 ,
411 const unsigned long binsY = 10 ,
412 const unsigned long binsZ = 10 ,
413 const double weight = 1.0 )
const = 0;
428 virtual AIDA::IHistogram1D* book1D
429 (
const std::string& title ,
430 const double low = 0 ,
431 const double high = 100 ,
432 const unsigned long bins = 100 )
const = 0 ;
446 AIDA::IHistogram1D*
book
447 (
const std::string& title ,
448 const double low = 0 ,
449 const double high = 100 ,
450 const unsigned long bins = 100 )
const
452 return book1D( title, low, high, bins );
469 virtual AIDA::IHistogram2D* book2D
470 (
const std::string& title ,
471 const double lowX = 0 ,
472 const double highX = 100 ,
473 const unsigned long binsX = 50 ,
474 const double lowY = 0 ,
475 const double highY = 100 ,
476 const unsigned long binsY = 50 )
const = 0;
495 virtual AIDA::IHistogram3D* book3D
496 (
const std::string& title ,
497 const double lowX = 0 ,
498 const double highX = 100 ,
499 const unsigned long binsX = 10 ,
500 const double lowY = 0 ,
501 const double highY = 100 ,
502 const unsigned long binsY = 10 ,
503 const double lowZ = 0 ,
504 const double highZ = 100 ,
505 const unsigned long binsZ = 10 )
const = 0;
517 virtual AIDA::IHistogram1D* book1D
519 const std::string& title =
"" ,
520 const double low = 0 ,
521 const double high = 100 ,
522 const unsigned long bins = 100 )
const = 0 ;
537 AIDA::IHistogram1D*
book
539 const std::string& title =
"" ,
540 const double low = 0 ,
541 const double high = 100 ,
542 const unsigned long bins = 100 )
const
544 return book1D( ID, title, low, high, bins );
557 virtual AIDA::IHistogram2D* book2D
559 const std::string& title ,
560 const double lowX = 0 ,
561 const double highX = 100 ,
562 const unsigned long binsX = 100 ,
563 const double lowY = 0 ,
564 const double highY = 100 ,
565 const unsigned long binsY = 100 )
const = 0;
583 virtual AIDA::IHistogram3D* book3D
585 const std::string& title ,
586 const double lowX = 0 ,
587 const double highX = 100 ,
588 const unsigned long binsX = 10 ,
589 const double lowY = 0 ,
590 const double highY = 100 ,
591 const unsigned long binsY = 10 ,
592 const double lowZ = 0 ,
593 const double highZ = 100 ,
594 const unsigned long binsZ = 10 )
const = 0;
603 virtual AIDA::IHistogram1D*
fill
604 ( AIDA::IHistogram1D* histo ,
606 const double weight ,
607 const std::string& title =
"")
const = 0 ;
617 virtual AIDA::IHistogram2D*
fill
618 ( AIDA::IHistogram2D* histo ,
619 const double valueX ,
620 const double valueY ,
621 const double weight ,
622 const std::string& title =
"" )
const = 0 ;
633 virtual AIDA::IHistogram3D*
fill
634 ( AIDA::IHistogram3D* histo ,
635 const double valueX ,
636 const double valueY ,
637 const double valueZ ,
638 const double weight ,
639 const std::string& title =
"" )
const = 0 ;
644 virtual AIDA::IHistogram1D* histo1D (
const std::string& title )
const = 0 ;
653 AIDA::IHistogram1D*
histo (
const std::string& title )
const
655 return histo1D( title );
661 virtual AIDA::IHistogram2D* histo2D (
const std::string& title )
const = 0;
667 virtual AIDA::IHistogram3D* histo3D (
const std::string& title )
const = 0;
672 virtual AIDA::IHistogram1D* histo1D (
const HistoID& ID )
const = 0 ;
683 return histo1D( ID );
689 virtual AIDA::IHistogram2D* histo2D (
const HistoID& ID )
const = 0;
694 virtual AIDA::IHistogram3D* histo3D (
const HistoID& ID )
const = 0;
697 virtual bool histoExists (
const std::string& title )
const = 0 ;
700 virtual bool histoExists (
const HistoID& ID )
const = 0 ;
753 template <
class FUNCTION,
class OBJECT>
754 AIDA::IHistogram1D* plot
758 const std::string& title ,
761 const unsigned long bins = 100 )
const
764 AIDA::IHistogram1D* h = histo1D ( title ) ;
765 if ( 0 == h ) { h = book1D ( title , low , high , bins ); }
766 while ( first != last && 0 != h )
767 { h =
fill ( h ,
func( *first ) , 1.0 , title ) ; ++first ; }
820 template <
class FUNCTION,
class OBJECT>
821 AIDA::IHistogram1D* plot
822 (
const FUNCTION& func ,
826 const std::string& title ,
829 const unsigned long bins = 100 )
const
832 AIDA::IHistogram1D* h = histo1D ( ID ) ;
833 if ( 0 == h ) { h = book1D ( ID , title , low , high , bins ); }
834 while ( first != last && 0 != h )
835 { h =
fill( h ,
func( *first ) , 1.0 , title ) ; ++first ; }
893 template <
class FUNCTION,
class OBJECT,
class WEIGHT>
894 AIDA::IHistogram1D* plot
895 (
const FUNCTION& func ,
898 const std::string& title ,
901 const unsigned long bins ,
902 const WEIGHT& weight )
const
905 AIDA::IHistogram1D* h = histo1D ( title ) ;
906 if ( 0 == h ) { h = book1D ( title , low , high , bins ); }
907 while( first != last && 0 != h )
910 weight ( *first ) , title ) ; ++first ; }
973 template <
class FUNCTION,
class OBJECT,
class WEIGHT>
974 AIDA::IHistogram1D* plot
975 (
const FUNCTION& func ,
979 const std::string& title ,
982 const unsigned long bins ,
983 const WEIGHT& weight )
const
986 AIDA::IHistogram1D* h = histo1D ( ID ) ;
987 if ( 0 == h ) { h = book1D ( ID , title , low , high , bins ); }
988 while( first != last && 0 != h )
991 weight ( *first ) , title ) ; ++first ; }
1001 #endif // GAUDIALG_IHISTOTOOL_H
GAUDI_API AIDA::IHistogram1D * book(IHistogramSvc *svc, const std::string &path, const Gaudi::Histo1DDef &hist)
helper function to book 1D-histogram
GaudiAlg::ID HistoID
The actual type for histogram identifier.
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.
ID class for Histogram and Ntuples.