Jpp  15.0.4
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JTestIdentical_1D.hh
Go to the documentation of this file.
1 #ifndef __JCOMPAREHISTOGRAMS__JTESTIDENTICAL_1D__
2 #define __JCOMPAREHISTOGRAMS__JTESTIDENTICAL_1D__
3 
4 #include <istream>
5 #include <ostream>
8 
9 
10 /**
11  * \author rgruiz
12  */
13 namespace JCOMPAREHISTOGRAMS {
14  /**
15  * Implementation of the a test to check if two 1D histograms are the same.\n
16  * This class is derived from the abstract class JTest_t(). For a general description of the implementation of this and other tests derived from JTest_t(), see its documentation.\n
17  * The input parameter tolerance(), is used to evaluate whether the test is passed or failed.\n
18  * The test is run by the method JIdenticalTest().
19  */
21  public JTest_t ,
22  public JTestIdentical_t
23  {
24  public:
25 
26  /**
27  * Default constructor.
28  */
30  JTest_t("Identical_1D", "Difference"),
32  {}
33 
34  /**
35  * Read test parameters from input.
36  *
37  * \param in input stream
38  * \return input stream
39  */
40  std::istream& read(std::istream& in) override{
41  return in >> tolerance;
42  };
43 
44  /**
45  * Applies test for two ROOT TH1 histograms.
46  *
47  * \param o1 First histogram
48  * \param o2 Second histogram
49  */
50  void test(TObject* o1, TObject* o2) override{
51 
52  using namespace std;
53 
54  if (!(dynamic_cast<TH2*>(o1) == NULL) || !(dynamic_cast<TH2*>(o2) == NULL)) {
55  ERROR("For 2D histograms call JTestIdentical_2D: " << o1->GetName() << endl);
56 
57  } else if (!(dynamic_cast<TH1*>(o1) == NULL) && !(dynamic_cast<TH1*>(o2) == NULL)) {
58 
59  TH1D* h1 = dynamic_cast<TH1D*>(o1);
60  TH1D* h2 = dynamic_cast<TH1D*>(o2);
61 
62  if(h1 -> GetNbinsX() != h2 -> GetNbinsX())
63  ERROR("Histograms with different bining. The objects: " << h1 -> GetName() << " can not be compared." << endl);
64 
65  JTestResult r = JIdenticalTest<TH1D>(h1, h2, tolerance, testName, resultType);
66 
67  results.push_back(r);
68  }
69  };
70 
71  private:
72  double tolerance; //!< tolerance value to accept the difference as acceptable.
73  };
74 }
75 
76 #endif
Implementation test that verify if two histograms are the same.
Interface to read input and write output for TObject tests.
Definition: JTest_t.hh:46
Definition: JRoot.hh:19
then for HISTOGRAM in h0 h1
Definition: JMatrixNZ.sh:71
data_type r[M+1]
Definition: JPolint.hh:742
std::istream & read(std::istream &in) override
Read test parameters from input.
std::vector< JTestResult > results
Buffer to store results of multiple tests.*/.
Definition: JTest_t.hh:162
#define ERROR(A)
Definition: JMessage.hh:66
const std::string resultType
result type
Definition: JTest_t.hh:167
const std::string testName
test name
Definition: JTest_t.hh:166
double tolerance
tolerance value to accept the difference as acceptable.
Implementation of the a test to check if two 1D histograms are the same.
Structure containing the result of the test.
Definition: JTestResult.hh:27
void test(TObject *o1, TObject *o2) override
Applies test for two ROOT TH1 histograms.
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
Definition: JCanberra.sh:41