// // // // Experiment.h // // #ifndef EXPERIMENT_H #define EXPERIMENT_H #include "TRandom3.h" #include #include class Experiment{ public: Experiment(std::vector< int > ipar); double expectation_value(double *t, double *par); virtual ~Experiment() { } protected: int par_n; double par_internal[10]; std::vector< int > ipar; private: virtual void parameters(double *par) = 0; }; class ModelA : public Experiment{ public: ModelA(std::vector< int > ipar) : Experiment(ipar) { } virtual ~ModelA() { } private: virtual void parameters(double *par); }; class ModelB : public Experiment{ public: ModelB(std::vector< int > ipar) : Experiment(ipar) { } virtual ~ModelB() { } private: virtual void parameters(double *par); }; #endif