File indexing completed on 2025-04-19 09:09:42
0001 #ifndef Analysis_Observables_One_Particle_Observables_H
0002 #define Analysis_Observables_One_Particle_Observables_H
0003
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005
0006 namespace ANALYSIS {
0007 class One_Particle_Observable_Base : public Primitive_Observable_Base {
0008 protected:
0009 ATOOLS::Flavour m_flav;
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 One_Particle_Observable_Base(const ATOOLS::Flavour & flav,
0014 int type, double xmin, double xmax, int nbins,
0015 const std::string & listname,
0016 const std::string & name);
0017 void virtual Evaluate(int nout, const ATOOLS::Vec4D * moms,
0018 const ATOOLS::Flavour * flavs,
0019 double weight, double ncount);
0020 void virtual Evaluate(const ATOOLS::Particle_List & plist,
0021 double weight, double ncount);
0022 void virtual EvaluateNLOcontrib(const ATOOLS::Vec4D & mom,
0023 double weight, double ncount);
0024 void EvaluateNLOcontrib(double weight, double ncount);
0025 void EvaluateNLOevt();
0026 };
0027
0028 class One_Particle_ET : public One_Particle_Observable_Base {
0029 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0030 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount);
0031 public:
0032 One_Particle_ET(const ATOOLS::Flavour & flav,
0033 int type,double xmin,double xmax,int nbins,
0034 const std::string & listname=std::string(""));
0035 Primitive_Observable_Base * Copy() const;
0036 };
0037
0038 class One_Particle_PT : public One_Particle_Observable_Base {
0039 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0040 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount);
0041 public:
0042 One_Particle_PT(const ATOOLS::Flavour & flav,
0043 int type,double xmin,double xmax,int nbins,
0044 const std::string & listname=std::string(""));
0045 Primitive_Observable_Base * Copy() const;
0046 };
0047
0048 class One_Particle_Eta : public One_Particle_Observable_Base {
0049 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0050 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount);
0051 public:
0052 One_Particle_Eta(const ATOOLS::Flavour & flav,
0053 int type,double xmin,double xmax,int nbins,
0054 const std::string & listname=std::string(""));
0055 Primitive_Observable_Base * Copy() const;
0056 };
0057
0058 class One_Particle_Y : public One_Particle_Observable_Base {
0059 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0060 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount);
0061 public:
0062 One_Particle_Y(const ATOOLS::Flavour & flav,
0063 int type,double xmin,double xmax,int nbins,
0064 const std::string & listname=std::string(""));
0065 Primitive_Observable_Base * Copy() const;
0066 };
0067
0068 class One_Particle_Phi : public One_Particle_Observable_Base {
0069 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0070 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount);
0071 public:
0072 One_Particle_Phi(const ATOOLS::Flavour & flav,
0073 int type,double xmin,double xmax,int nbins,
0074 const std::string & listname=std::string(""));
0075 Primitive_Observable_Base * Copy() const;
0076 };
0077
0078 class One_Particle_E : public One_Particle_Observable_Base {
0079 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0080 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount);
0081 public:
0082 One_Particle_E(const ATOOLS::Flavour & flav,
0083 int type,double xmin,double xmax,int nbins,
0084 const std::string & listname=std::string(""));
0085 Primitive_Observable_Base * Copy() const;
0086 };
0087
0088 class One_Particle_M : public One_Particle_Observable_Base {
0089 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0090 public:
0091 One_Particle_M(const ATOOLS::Flavour & flav,
0092 int type,double xmin,double xmax,int nbins,
0093 const std::string & listname=std::string(""));
0094 Primitive_Observable_Base * Copy() const;
0095 };
0096
0097 class One_Particle_BeamAngle : public One_Particle_Observable_Base {
0098 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0099 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount);
0100 public:
0101 One_Particle_BeamAngle(const ATOOLS::Flavour & flav,
0102 int type,double xmin,double xmax,int nbins,
0103 const std::string & listname=std::string(""));
0104 Primitive_Observable_Base * Copy() const;
0105 };
0106
0107
0108
0109 class One_Particle_EVis : public One_Particle_Observable_Base {
0110 void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount);
0111 public:
0112 One_Particle_EVis(const ATOOLS::Flavour & flav,
0113 int type,double xmin,double xmax,int nbins,
0114 const std::string & listname=std::string(""));
0115 Primitive_Observable_Base * Copy() const;
0116 void Evaluate(int nout, const ATOOLS::Vec4D * moms,
0117 const ATOOLS::Flavour * flavs,
0118 double weight, double ncount);
0119 void Evaluate(const ATOOLS::Particle_List & plist,
0120 double weight, double ncount);
0121 };
0122 }
0123
0124 #endif