Back to home page

EIC code displayed by LXR

 
 

    


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   };// end of class Analysis_Base
0041 
0042 }// end of namespace ANALYSIS
0043 
0044 #define AddZero(ntrial,mode) { AddZeroPoint(ntrial,mode); return; }
0045 
0046 #endif