File indexing completed on 2025-04-19 09:09:42
0001 #ifndef Analysis_Observables_Scaled_Observables_H
0002 #define Analysis_Observables_Scaled_Observables_H
0003
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005
0006 namespace ANALYSIS {
0007 class Scaled_Observable_Base : public Primitive_Observable_Base {
0008 protected:
0009 double m_ecms;
0010 void virtual Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount) = 0;
0011 void virtual Evaluate(double value, double weight, double ncount);
0012 public:
0013 Scaled_Observable_Base(int type, double xmin, double xmax, int nbins,
0014 const std::string & listname,
0015 const std::string & name, double ecms);
0016 void virtual Evaluate(int nout, const ATOOLS::Vec4D * moms,
0017 double weight, double ncount);
0018 void virtual Evaluate(const ATOOLS::Particle_List & plist,
0019 double weight, double ncount);
0020 };
0021
0022 class Scaled_Momentum : public Scaled_Observable_Base {
0023 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0024 public:
0025 Scaled_Momentum(int type,double xmin,double xmax,int nbins,
0026 const std::string & listname, double ecms);
0027 Primitive_Observable_Base * Copy() const;
0028 };
0029
0030 class Log_Scaled_Momentum : public Scaled_Observable_Base {
0031 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0032 public:
0033 Log_Scaled_Momentum(int type,double xmin,double xmax,int nbins,
0034 const std::string & listname, double ecms);
0035 Primitive_Observable_Base * Copy() const;
0036 };
0037
0038 class Scaled_Energy : public Scaled_Observable_Base {
0039 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0040 public:
0041 Scaled_Energy(int type,double xmin,double xmax,int nbins,
0042 const std::string & listname, double ecms);
0043 Primitive_Observable_Base * Copy() const;
0044 };
0045
0046 class EtaTracks : public Scaled_Observable_Base {
0047 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0048 public:
0049 EtaTracks(int type,double xmin,double xmax,int nbins,
0050 const std::string & listname, double ecms);
0051 Primitive_Observable_Base * Copy() const;
0052 };
0053
0054 class EtaTracksAsym : public Scaled_Observable_Base {
0055 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0056 public:
0057 EtaTracksAsym(int type,double xmin,double xmax,int nbins,
0058 const std::string & listname, double ecms);
0059 Primitive_Observable_Base * Copy() const;
0060 };
0061
0062 }
0063
0064 #endif