16 template <
class PBASE>
18 const unsigned long binsX,
const double lowY,
const double highY,
19 const unsigned long binsY )
const {
21 if ( !produceHistos() ) {
return nullptr; }
24 auto hist = histo2D( title );
26 if ( hist ) {
return hist; }
30 newHistoID( title, ID );
33 return this->book2D( ID, title, lowX, highX, binsX, lowY, highY, binsY );
38 template <
class PBASE>
40 const double highX,
const unsigned long binsX,
const double lowY,
41 const double highY,
const unsigned long binsY )
const {
43 if ( !produceHistos() ) {
return nullptr; }
47 this->Error(
"Undefined Histogram ID : Title='" + title +
"'" ).ignore();
52 auto hist = histo2D( ID );
54 if ( hist ) {
return hist; }
61 hist = this->histoSvc()->book( histoPath(), ID.
numericID(),
htitle, binsX, lowX, highX, binsY, lowY, highY );
63 hist = this->histoSvc()->book( histoPath() +
"/" + ID.
literalID(),
htitle, binsX, lowX, highX, binsY, lowY, highY );
68 this->Error(
"IHistogram2D* points to NULL! ID='" + ID.
idAsString() +
"' title='" +
htitle +
"'" ).ignore();
73 m_histo2DMapID[ID] = hist;
74 m_histo2DMapTitle[title] = hist;
81 this->debug() <<
"Booked 2D Histogram : ID='" << ID <<
"' Path=" << histoPath() <<
" Title='"
90 template <
class PBASE>
92 const double weight,
const std::string& title )
const {
94 if ( !
histo ) {
return nullptr; }
96 if ( !checkForNaN() ) {
101 this->Warning(
"fill():: 'NaN' value is skipped from the histogram '" +
105 this->Warning(
"fill():: 'Infinite' value is skipped from the histogram '" +
115 template <
class PBASE>
117 const double lowX,
const double highX,
const double lowY,
118 const double highY,
const unsigned long binsX,
119 const unsigned long binsY,
const double weight )
const {
120 AIDA::IHistogram2D*
h(
nullptr );
121 if ( produceHistos() ) {
123 h = histo2D( title );
124 if ( !
h ) {
h = book2D( title, lowX, highX, binsX, lowY, highY, binsY ); }
126 h =
fill(
h, valueX, valueY, weight, title );
133 template <
class PBASE>
135 const std::string& title,
const double lowX,
const double highX,
136 const double lowY,
const double highY,
const unsigned long binsX,
137 const unsigned long binsY,
const double weight )
const {
138 AIDA::IHistogram2D*
h(
nullptr );
140 if ( produceHistos() ) {
143 if ( !
h ) {
h = book2D( ID, title, lowX, highX, binsX, lowY, highY, binsY ); }
145 h =
fill(
h, valueX, valueY, weight, title );