#ifndef ERRORPROPTEST_H
#define ERRORPROPTEST_H
#include "ValueErr.h"
#include "TObject.h"
#include "TRandom.h"
#include <iostream>

void errproptest( void );

class ErrorData1 : public TObject
{
 public:
  Double_t a;
  Double_t b;
  Double_t c;
  Double_t d;
  ErrorData1() { 
    a = gRandom->Uniform(1,100);
    b = gRandom->Uniform(1,100);
    c = gRandom->Uniform(1,100);
    d = gRandom->Uniform(1,100);
  };

  ClassDef(ErrorData1,1);
};

class ErrorData2 : public TObject
{
 public:

  DoubleErr a;
  DoubleErr b;
  DoubleErr c;
  DoubleErr d;

  ErrorData2() {
    a.Set(gRandom->Uniform(1,100), gRandom->Uniform(0,10));
    b.Set(gRandom->Uniform(1,100), gRandom->Uniform(0,10));
    c.Set(gRandom->Uniform(1,100), gRandom->Uniform(0,10));
    d.Set(gRandom->Uniform(1,100), gRandom->Uniform(0,10));
  };

  void Print(Option_t*  = "") const {
    std::cout << "ErrorData2:" << std::endl;
    std::cout << " a: " << a << std::endl;
    std::cout << " b: " << b << std::endl;
    std::cout << " c: " << c << std::endl;
    std::cout << " d: " << d << std::endl;
  }
  ClassDef(ErrorData2,1);
};


#endif
