11 #ifndef GAUDIALG_IHISTOTOOL_H 12 #define GAUDIALG_IHISTOTOOL_H 1 79 virtual AIDA::IHistogram1D* plot1D(
const double value,
const std::string& title,
const double low,
const double high,
80 const unsigned long bins = 100,
const double weight = 1.0 )
const = 0;
95 AIDA::IHistogram1D*
plot(
const double value,
const std::string& title,
const double low,
const double high,
96 const unsigned long bins = 100,
const double weight = 1.0 )
const {
97 return plot1D( value, title, low, high, bins, weight );
140 virtual AIDA::IHistogram1D* plot1D(
const double value,
const HistoID& ID,
const std::string& title,
const double low,
141 const double high,
const unsigned long bins = 100,
142 const double weight = 1.0 )
const = 0;
159 const double high,
const unsigned long bins = 100,
const double weight = 1.0 )
const {
160 return plot1D( value, ID, title, low, high, bins, weight );
199 virtual AIDA::IHistogram2D* plot2D(
const double valueX,
const double valueY,
const std::string& title,
200 const double lowX,
const double highX,
const double lowY,
const double highY,
201 const unsigned long binsX = 50,
const unsigned long binsY = 50,
202 const double weight = 1.0 )
const = 0;
250 virtual AIDA::IHistogram2D* plot2D(
const double valueX,
const double valueY,
const HistoID& ID,
251 const std::string& title,
const double lowX,
const double highX,
252 const double lowY,
const double highY,
const unsigned long binsX = 50,
253 const unsigned long binsY = 50,
const double weight = 1.0 )
const = 0;
297 virtual AIDA::IHistogram3D* plot3D(
const double valueX,
const double valueY,
const double valueZ,
298 const std::string& title,
const double lowX,
const double highX,
299 const double lowY,
const double highY,
const double lowZ,
const double highZ,
300 const unsigned long binsX = 10,
const unsigned long binsY = 10,
301 const unsigned long binsZ = 10,
const double weight = 1.0 )
const = 0;
355 virtual AIDA::IHistogram3D* plot3D(
const double valueX,
const double valueY,
const double valueZ,
const HistoID& ID,
356 const std::string& title,
const double lowX,
const double highX,
357 const double lowY,
const double highY,
const double lowZ,
const double highZ,
358 const unsigned long binsX = 10,
const unsigned long binsY = 10,
359 const unsigned long binsZ = 10,
const double weight = 1.0 )
const = 0;
373 virtual AIDA::IHistogram1D* book1D(
const std::string& title,
const double low = 0,
const double high = 100,
374 const unsigned long bins = 100 )
const = 0;
388 AIDA::IHistogram1D*
book(
const std::string& title,
const double low = 0,
const double high = 100,
389 const unsigned long bins = 100 )
const {
390 return book1D( title, low, high, bins );
407 virtual AIDA::IHistogram2D* book2D(
const std::string& title,
const double lowX = 0,
const double highX = 100,
408 const unsigned long binsX = 50,
const double lowY = 0,
const double highY = 100,
409 const unsigned long binsY = 50 )
const = 0;
428 virtual AIDA::IHistogram3D* book3D(
const std::string& title,
const double lowX = 0,
const double highX = 100,
429 const unsigned long binsX = 10,
const double lowY = 0,
const double highY = 100,
430 const unsigned long binsY = 10,
const double lowZ = 0,
const double highZ = 100,
431 const unsigned long binsZ = 10 )
const = 0;
443 virtual AIDA::IHistogram1D* book1D(
const HistoID& ID,
const std::string& title =
"",
const double low = 0,
444 const double high = 100,
const unsigned long bins = 100 )
const = 0;
460 const double high = 100,
const unsigned long bins = 100 )
const {
461 return book1D( ID, title, low, high, bins );
474 virtual AIDA::IHistogram2D* book2D(
const HistoID& ID,
const std::string& title,
const double lowX = 0,
475 const double highX = 100,
const unsigned long binsX = 100,
const double lowY = 0,
476 const double highY = 100,
const unsigned long binsY = 100 )
const = 0;
494 virtual AIDA::IHistogram3D* book3D(
const HistoID& ID,
const std::string& title,
const double lowX = 0,
495 const double highX = 100,
const unsigned long binsX = 10,
const double lowY = 0,
496 const double highY = 100,
const unsigned long binsY = 10,
const double lowZ = 0,
497 const double highZ = 100,
const unsigned long binsZ = 10 )
const = 0;
506 virtual AIDA::IHistogram1D*
fill( AIDA::IHistogram1D* histo,
const double value,
const double weight,
517 virtual AIDA::IHistogram2D*
fill( AIDA::IHistogram2D* histo,
const double valueX,
const double valueY,
518 const double weight,
const std::string& title =
"" )
const = 0;
529 virtual AIDA::IHistogram3D*
fill( AIDA::IHistogram3D* histo,
const double valueX,
const double valueY,
530 const double valueZ,
const double weight,
const std::string& title =
"" )
const = 0;
535 virtual AIDA::IHistogram1D* histo1D(
const std::string& title )
const = 0;
549 virtual AIDA::IHistogram2D* histo2D(
const std::string& title )
const = 0;
554 virtual AIDA::IHistogram3D* histo3D(
const std::string& title )
const = 0;
559 virtual AIDA::IHistogram1D* histo1D(
const HistoID& ID )
const = 0;
568 AIDA::IHistogram1D*
histo(
const HistoID& ID )
const {
return histo1D( ID ); };
573 virtual AIDA::IHistogram2D* histo2D(
const HistoID& ID )
const = 0;
578 virtual AIDA::IHistogram3D* histo3D(
const HistoID& ID )
const = 0;
581 virtual bool histoExists(
const std::string& title )
const = 0;
584 virtual bool histoExists(
const HistoID& ID )
const = 0;
636 template <
class FUNCTION,
class OBJECT>
638 const double high,
const unsigned long bins = 100 )
const {
640 AIDA::IHistogram1D* h = histo1D( title );
641 if ( !h ) { h = book1D( title, low, high, bins ); }
642 while ( first != last && h ) {
643 h =
fill( h,
func( *first ), 1.0, title );
698 template <
class FUNCTION,
class OBJECT>
700 const std::string& title,
const double low,
const double high,
701 const unsigned long bins = 100 )
const {
703 AIDA::IHistogram1D* h = histo1D( ID );
704 if ( !h ) { h = book1D( ID, title, low, high, bins ); }
705 while ( first != last && h ) {
706 h =
fill( h,
func( *first ), 1.0, title );
766 template <
class FUNCTION,
class OBJECT,
class WEIGHT>
768 const double high,
const unsigned long bins,
const WEIGHT& weight )
const {
770 AIDA::IHistogram1D* h = histo1D( title );
771 if ( !h ) { h = book1D( title, low, high, bins ); }
772 while ( first != last && h ) {
773 h =
fill( h,
func( *first ), weight( *first ), title );
838 template <
class FUNCTION,
class OBJECT,
class WEIGHT>
840 const std::string& title,
const double low,
const double high,
const unsigned long bins,
841 const WEIGHT& weight )
const {
843 AIDA::IHistogram1D* h = histo1D( ID );
844 if ( !h ) { h = book1D( ID, title, low, high, bins ); }
845 while ( first != last && h ) {
846 h =
fill( h,
func( *first ), weight( *first ), title );
853 #endif // GAUDIALG_IHISTOTOOL_H 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.