File indexing completed on 2025-04-19 09:09:41
0001 #ifndef AddOns_Analysis_Analyses_Analysis_Base_H
0002 #define AddOns_Analysis_Analyses_Analysis_Base_H
0003
0004 #include "AddOns/Analysis/Observables/Normalized_Observable.H"
0005
0006 namespace ANALYSIS {
0007
0008 class Analysis_Base: public Primitive_Observable_Base {
0009 protected:
0010
0011 std::vector<Normalized_Observable*> m_dists;
0012 std::vector<ATOOLS::Histogram*> m_histos;
0013
0014 void AddZeroPoint(const double &ntrial,const int &mode);
0015
0016 public:
0017
0018 Analysis_Base(const std::string &listname);
0019
0020 ~Analysis_Base();
0021
0022 virtual void Evaluate(double weight,double ncount,int mode) = 0;
0023
0024 void FillHisto(const size_t &i,const double &x,const double &weight,
0025 const double &ntrial,const int &mode);
0026 void FillDist(const size_t &i,const double &x,const double &y,
0027 const double &weight,const double &ntrial,const int &mode);
0028
0029 void Evaluate(const ATOOLS::Particle_List &pl,
0030 double weight, double ncount);
0031 void EvaluateNLOcontrib(double weight,double ncount);
0032 void EvaluateNLOevt();
0033
0034 Analysis_Object &operator+=(const Analysis_Object &obj);
0035
0036 virtual void EndEvaluation(double scale=1.0);
0037 void Restore(double scale=1.0);
0038 virtual void Output(const std::string & pname);
0039
0040 };
0041
0042 }
0043
0044 #define AddZero(ntrial,mode) { AddZeroPoint(ntrial,mode); return; }
0045
0046 #endif