3 #ifndef GAUDIALG_GAUDIHISTOS_H
4 #define GAUDIALG_GAUDIHISTOS_H 1
49 template <
class PBASE>
132 AIDA::IHistogram1D* plot1D
133 (
const double value ,
134 const std::string& title ,
137 const unsigned long bins = 100 ,
138 const double weight = 1.0 )
const ;
153 inline AIDA::IHistogram1D* plot
154 (
const double value ,
155 const std::string& title ,
158 const unsigned long bins = 100 ,
159 const double weight = 1.0 )
const
161 return plot1D ( value, title, low, high, bins, weight );
188 AIDA::IHistogram1D* plot1D
189 (
const double value ,
190 const Gaudi::Histo1DDef& hdef ,
191 const double weight = 1.0 )
const ;
203 inline AIDA::IHistogram1D* plot
204 (
const double value ,
205 const Gaudi::Histo1DDef& hdef ,
206 const double weight = 1.0 )
const
208 return plot1D ( value, hdef, weight );
276 AIDA::IHistogram1D* plot1D
277 (
const double value ,
279 const std::string& title ,
282 const unsigned long bins = 100 ,
283 const double weight = 1.0 )
const ;
299 inline AIDA::IHistogram1D* plot
300 (
const double value ,
302 const std::string& title ,
305 const unsigned long bins = 100 ,
306 const double weight = 1.0 )
const
308 return plot1D ( value, ID, title, low, high, bins, weight );
336 AIDA::IHistogram1D* plot1D
337 (
const double value ,
339 const Gaudi::Histo1DDef& hdef ,
340 const double weight = 1.0 )
const ;
353 inline AIDA::IHistogram1D* plot
354 (
const double value ,
356 const Gaudi::Histo1DDef& hdef ,
357 const double weight = 1.0 )
const
359 return plot1D ( value, ID, hdef, weight );
424 template <
class FUNCTION,
class OBJECT>
425 inline AIDA::IHistogram1D* plot
429 const std::string& title ,
432 const unsigned long bins = 100 )
const
434 AIDA::IHistogram1D* h(0);
435 if ( produceHistos() )
438 h = histo1D ( title ) ;
439 if ( 0 == h ) { h = book1D ( title , low , high , bins ); }
441 while( first != last && 0 != h )
442 { h =
fill ( h ,
func( *first ) , 1.0 , title ) ; ++first ; }
502 template <
class FUNCTION,
class OBJECT>
503 inline AIDA::IHistogram1D* plot
504 (
const FUNCTION& func ,
508 const std::string& title ,
511 const unsigned long bins = 100 )
const
513 AIDA::IHistogram1D* h(0);
514 if ( produceHistos() )
518 if ( 0 == h ) { h = book1D ( ID , title , low , high , bins ); }
520 while( first != last && 0 != h )
521 { h =
fill( h ,
func( *first ) , 1.0 , title ) ; ++first ; }
594 template <
class FUNCTION,
class OBJECT,
class WEIGHT>
595 inline AIDA::IHistogram1D* plot
596 (
const FUNCTION& func ,
599 const std::string& title ,
602 const unsigned long bins ,
603 const WEIGHT& weight )
const
605 AIDA::IHistogram1D* h(0);
606 if ( produceHistos() )
609 h = histo1D ( title ) ;
610 if ( 0 == h ) { h = book1D ( title , low , high , bins ); }
612 while ( first != last && 0 != h )
615 weight ( *first ) , title ) ; ++first ; }
686 template <
class FUNCTION,
class OBJECT,
class WEIGHT>
687 inline AIDA::IHistogram1D* plot
688 (
const FUNCTION& func ,
692 const std::string& title ,
695 const unsigned long bins ,
696 const WEIGHT& weight )
const
698 AIDA::IHistogram1D* h(0);
699 if ( produceHistos() )
703 if ( 0 == h ) { h = book1D ( ID , title , low , high , bins ); }
705 while( first != last && 0 != h )
708 weight ( *first ) , title ) ; ++first ; }
755 AIDA::IHistogram1D* plot1D
756 (
const double value ,
757 const std::string& title ,
759 const double weight = 1.0 )
const ;
825 AIDA::IHistogram1D* plot1D
826 (
const double value ,
828 const std::string& title ,
830 const double weight = 1.0 )
const ;
884 AIDA::IHistogram2D* plot2D
885 (
const double valueX ,
886 const double valueY ,
887 const std::string& title ,
892 const unsigned long binsX = 50 ,
893 const unsigned long binsY = 50 ,
894 const double weight = 1.0 )
const;
972 AIDA::IHistogram2D* plot2D
973 (
const double valueX ,
974 const double valueY ,
976 const std::string& title ,
981 const unsigned long binsX = 50 ,
982 const unsigned long binsY = 50 ,
983 const double weight = 1.0 )
const;
1033 AIDA::IHistogram2D* plot2D
1034 (
const double valueX ,
1035 const double valueY ,
1036 const std::string& title ,
1039 const double weight = 1.0 )
const ;
1116 AIDA::IHistogram2D* plot2D
1117 (
const double valueX ,
1118 const double valueY ,
1120 const std::string& title ,
1123 const double weight = 1.0 )
const ;
1185 AIDA::IHistogram3D* plot3D
1186 (
const double valueX ,
1187 const double valueY ,
1188 const double valueZ ,
1189 const std::string& title ,
1191 const double highX ,
1193 const double highY ,
1195 const double highZ ,
1196 const unsigned long binsX = 10 ,
1197 const unsigned long binsY = 10 ,
1198 const unsigned long binsZ = 10 ,
1199 const double weight = 1.0 )
const;
1287 AIDA::IHistogram3D* plot3D
1288 (
const double valueX ,
1289 const double valueY ,
1290 const double valueZ ,
1292 const std::string& title ,
1294 const double highX ,
1296 const double highY ,
1298 const double highZ ,
1299 const unsigned long binsX = 10 ,
1300 const unsigned long binsY = 10 ,
1301 const unsigned long binsZ = 10 ,
1302 const double weight = 1.0 )
const;
1354 AIDA::IHistogram3D* plot3D
1355 (
const double valueX ,
1356 const double valueY ,
1357 const double valueZ ,
1358 const std::string& title ,
1362 const double weight = 1.0 )
const ;
1449 AIDA::IHistogram3D* plot3D
1450 (
const double valueX ,
1451 const double valueY ,
1452 const double valueZ ,
1454 const std::string& title ,
1458 const double weight = 1.0 )
const ;
1511 AIDA::IProfile1D* profile1D
1512 (
const double valueX ,
1513 const double valueY ,
1514 const std::string& title ,
1516 const double highX ,
1517 const unsigned long binsX = 100 ,
1518 const std::string&
opt =
"" ,
1519 const double lowY = -std::numeric_limits<double>::max() ,
1520 const double highY = std::numeric_limits<double>::max() ,
1521 const double weight = 1.0 )
const ;
1588 AIDA::IProfile1D* profile1D
1589 (
const double valueX ,
1590 const double valueY ,
1592 const std::string& title ,
1594 const double highX ,
1595 const unsigned long binsX = 100 ,
1596 const std::string&
opt =
"" ,
1597 const double lowY = -std::numeric_limits<double>::max() ,
1598 const double highY = std::numeric_limits<double>::max() ,
1599 const double weight = 1.0 )
const;
1646 AIDA::IProfile1D* profile1D
1647 (
const double valueX ,
1648 const double valueY ,
1649 const std::string& title ,
1651 const double weight = 1.0 )
const ;
1714 AIDA::IProfile1D* profile1D
1715 (
const double valueX ,
1716 const double valueY ,
1718 const std::string& title ,
1720 const double weight = 1.0 )
const;
1774 AIDA::IProfile2D* profile2D
1775 (
const double valueX ,
1776 const double valueY ,
1777 const double valueZ ,
1778 const std::string& title ,
1780 const double highX ,
1782 const double highY ,
1783 const unsigned long binsX = 50 ,
1784 const unsigned long binsY = 50 ,
1785 const double weight = 1.0 )
const;
1854 AIDA::IProfile2D* profile2D
1855 (
const double valueX ,
1856 const double valueY ,
1857 const double valueZ ,
1859 const std::string& title ,
1861 const double highX ,
1863 const double highY ,
1864 const unsigned long binsX = 50 ,
1865 const unsigned long binsY = 50 ,
1866 const double weight = 1.0 )
const;
1916 AIDA::IProfile2D* profile2D
1917 (
const double valueX ,
1918 const double valueY ,
1919 const double valueZ ,
1920 const std::string& title ,
1923 const double weight = 1.0 )
const ;
1987 AIDA::IProfile2D* profile2D
1988 (
const double valueX ,
1989 const double valueY ,
1990 const double valueZ ,
1992 const std::string& title ,
1995 const double weight = 1.0 )
const;
2012 AIDA::IHistogram1D* book1D
2013 (
const std::string& title ,
2014 const double low = 0 ,
2015 const double high = 100 ,
2016 const unsigned long bins = 100 )
const ;
2030 inline AIDA::IHistogram1D*
book
2031 (
const std::string& title ,
2032 const double low = 0 ,
2033 const double high = 100 ,
2034 const unsigned long bins = 100 )
const
2036 return book1D( title, low, high, bins );
2047 AIDA::IHistogram1D*
book
2048 (
const Gaudi::Histo1DDef& hdef )
const ;
2060 AIDA::IHistogram1D* book1D
2062 const std::string& title ,
2063 const double low = 0 ,
2064 const double high = 100 ,
2065 const unsigned long bins = 100 )
const ;
2080 inline AIDA::IHistogram1D*
book
2082 const std::string& title ,
2083 const double low = 0 ,
2084 const double high = 100 ,
2085 const unsigned long bins = 100 )
const
2087 return book1D( ID, title, low, high, bins );
2097 inline AIDA::IHistogram1D*
book
2099 const Gaudi::Histo1DDef& hdef )
const ;
2115 AIDA::IHistogram1D* book1D
2116 (
const std::string& title ,
2128 AIDA::IHistogram1D* book1D
2130 const std::string& title ,
2151 AIDA::IHistogram2D* book2D
2152 (
const std::string& title ,
2153 const double lowX = 0 ,
2154 const double highX = 100 ,
2155 const unsigned long binsX = 50 ,
2156 const double lowY = 0 ,
2157 const double highY = 100 ,
2158 const unsigned long binsY = 50 )
const ;
2170 AIDA::IHistogram2D* book2D
2172 const std::string& title ,
2173 const double lowX = 0 ,
2174 const double highX = 100 ,
2175 const unsigned long binsX = 50 ,
2176 const double lowY = 0 ,
2177 const double highY = 100 ,
2178 const unsigned long binsY = 50 )
const ;
2195 AIDA::IHistogram2D * book2D
2196 (
const std::string& title ,
2210 AIDA::IHistogram2D * book2D
2212 const std::string& title ,
2237 AIDA::IHistogram3D* book3D
2238 (
const std::string& title ,
2239 const double lowX = 0 ,
2240 const double highX = 100 ,
2241 const unsigned long binsX = 10 ,
2242 const double lowY = 0 ,
2243 const double highY = 100 ,
2244 const unsigned long binsY = 10 ,
2245 const double lowZ = 0 ,
2246 const double highZ = 100 ,
2247 const unsigned long binsZ = 10 )
const ;
2265 AIDA::IHistogram3D* book3D
2267 const std::string& title ,
2268 const double lowX = 0 ,
2269 const double highX = 100 ,
2270 const unsigned long binsX = 10 ,
2271 const double lowY = 0 ,
2272 const double highY = 100 ,
2273 const unsigned long binsY = 10 ,
2274 const double lowZ = 0 ,
2275 const double highZ = 100 ,
2276 const unsigned long binsZ = 10 )
const ;
2294 AIDA::IHistogram3D * book3D
2295 (
const std::string& title ,
2311 AIDA::IHistogram3D * book3D
2313 const std::string& title ,
2336 AIDA::IProfile1D* bookProfile1D
2337 (
const std::string& title ,
2338 const double low = 0 ,
2339 const double high = 100 ,
2340 const unsigned long bins = 100 ,
2341 const std::string&
opt =
"" ,
2342 const double lowY = -std::numeric_limits<double>::max() ,
2343 const double highY = std::numeric_limits<double>::max() )
const;
2360 AIDA::IProfile1D* bookProfile1D
2362 const std::string& title ,
2363 const double low = 0 ,
2364 const double high = 100 ,
2365 const unsigned long bins = 100 ,
2366 const std::string&
opt =
"" ,
2367 const double lowY = -std::numeric_limits<double>::max() ,
2368 const double highY = std::numeric_limits<double>::max() )
const;
2383 AIDA::IProfile1D* bookProfile1D
2384 (
const std::string& title ,
2396 AIDA::IProfile1D* bookProfile1D
2398 const std::string& title ,
2419 AIDA::IProfile2D* bookProfile2D
2420 (
const std::string& title ,
2421 const double lowX = 0 ,
2422 const double highX = 100 ,
2423 const unsigned long binsX = 50 ,
2424 const double lowY = 0 ,
2425 const double highY = 100 ,
2426 const unsigned long binsY = 50 )
const ;
2441 AIDA::IProfile2D* bookProfile2D
2443 const std::string& title ,
2444 const double lowX = 0 ,
2445 const double highX = 100 ,
2446 const unsigned long binsX = 50 ,
2447 const double lowY = 0 ,
2448 const double highY = 100 ,
2449 const unsigned long binsY = 50 )
const ;
2465 AIDA::IProfile2D* bookProfile2D
2466 (
const std::string& title ,
2479 AIDA::IProfile2D* bookProfile2D
2481 const std::string& title ,
2496 AIDA::IHistogram1D*
fill
2497 ( AIDA::IHistogram1D* histo ,
2498 const double value ,
2499 const double weight ,
2500 const std::string& title =
"" )
const ;
2510 AIDA::IHistogram2D*
fill
2511 ( AIDA::IHistogram2D* histo ,
2512 const double valueX ,
2513 const double valueY ,
2514 const double weight ,
2515 const std::string& title =
"" )
const ;
2526 AIDA::IHistogram3D*
fill
2527 ( AIDA::IHistogram3D* histo ,
2528 const double valueX ,
2529 const double valueY ,
2530 const double valueZ ,
2531 const double weight ,
2532 const std::string& title =
"" )
const ;
2542 AIDA::IProfile1D*
fill
2543 ( AIDA::IProfile1D* histo ,
2544 const double valueX ,
2545 const double valueY ,
2546 const double weight ,
2547 const std::string& title =
"" )
const ;
2558 AIDA::IProfile2D*
fill
2559 ( AIDA::IProfile2D* histo ,
2560 const double valueX ,
2561 const double valueY ,
2562 const double valueZ ,
2563 const double weight ,
2564 const std::string& title =
"" )
const ;
2571 inline AIDA::IHistogram1D* histo1D (
const std::string& title )
const
2574 return ( histo1DMapTitle().
end() == found ? 0 : found->second );
2584 inline AIDA::IHistogram1D* histo (
const std::string& title )
const
2586 return histo1D( title );
2592 inline AIDA::IHistogram2D* histo2D (
const std::string& title )
const
2595 return ( histo2DMapTitle().
end() == found ? 0 : found->second );
2601 inline AIDA::IHistogram3D* histo3D (
const std::string& title )
const
2604 return ( histo3DMapTitle().
end() == found ? 0 : found->second );
2610 inline AIDA::IProfile1D* profile1D (
const std::string& title )
const
2613 return ( profile1DMapTitle().
end() == found ? 0 : found->second );
2619 inline AIDA::IProfile2D* profile2D (
const std::string& title )
const
2622 return ( profile2DMapTitle().
end() == found ? 0 : found->second );
2630 AIDA::IHistogram1D* histo1D (
const HistoID& ID )
const;
2639 inline AIDA::IHistogram1D* histo (
const HistoID& ID )
const
2641 return histo1D( ID );
2647 AIDA::IHistogram2D* histo2D (
const HistoID& ID )
const;
2652 AIDA::IHistogram3D* histo3D (
const HistoID& ID )
const;
2657 AIDA::IProfile1D* profile1D (
const HistoID& ID )
const;
2662 AIDA::IProfile2D* profile2D (
const HistoID& ID )
const;
2667 inline bool histoExists (
const std::string& title )
const
2670 ( 0 != histo ( title ) ||
2671 0 != histo2D ( title ) ||
2672 0 != histo3D ( title ) ||
2673 0 != profile1D ( title ) ||
2674 0 != profile2D ( title ) );
2678 inline bool histoExists (
const HistoID& ID )
const
2681 ( 0 != histo ( ID ) ||
2682 0 != histo2D ( ID ) ||
2683 0 != histo3D ( ID ) ||
2684 0 != profile1D ( ID ) ||
2685 0 != profile2D ( ID ) );
2688 unsigned int totalNumberOfHistos()
const;
2701 inline HistoID::NumericID
histoOffSet ()
const {
return m_histoOffSet ; }
2703 inline const std::string&
histoTopDir ()
const {
return m_histoTopDir ; }
2705 inline const std::string&
histoDir ()
const {
return m_histoDir ; }
2707 std::string histoPath ()
const;
3007 inline void setHistoOffSet (
const HistoID::NumericID val )
3008 { m_histoOffSet = val ; }
3014 inline void setHistoDir (
const std::string& val ) { m_histoDir = val ; }
3024 const std::string& name ,
3037 {
return i_ghInitialize(); }
3047 {
return i_ghFinalize(); }
3055 bool noHistos()
const;
3058 void initGaudiHistosConstructor();
3065 void monitorHisto(
const AIDA::IBaseHistogram* hist,
3072 void newHistoID(
const std::string & title,
3076 void stringSearchReplace( std::string & title,
3077 const std::string & A,
3078 const std::string & B )
const;
3083 std::string convertTitleToID(
const std::string & title )
const;
3088 void printHistoHandler (
Property& ) ;
3155 #endif // GAUDIALG_GAUDIHISTOS_H