File indexing completed on 2025-04-19 09:09:42
0001 #ifndef Analysis_Observables_Three_Particle_Observables_H
0002 #define Analysis_Observables_Three_Particle_Observables_H
0003
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005
0006 namespace ANALYSIS {
0007 class Three_Particle_Observable_Base : public Primitive_Observable_Base {
0008 protected:
0009 ATOOLS::Flavour m_flav1,m_flav2,m_flav3;
0010 void virtual Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0011 const ATOOLS::Vec4D & mom3, double weight, double ncount) = 0;
0012 public:
0013 Three_Particle_Observable_Base(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0014 const ATOOLS::Flavour & flav3,
0015 int type, double xmin, double xmax, int nbins,
0016 const std::string & listname,
0017 const std::string & name);
0018 void virtual Evaluate(const ATOOLS::Particle_List & plist,
0019 double weight, double ncount);
0020 void virtual EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0021 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0022 void EvaluateNLOcontrib(double weight, double ncount);
0023 void EvaluateNLOevt();
0024 };
0025
0026 class Three_Particle_PT : public Three_Particle_Observable_Base {
0027 void Evaluate(const ATOOLS::Vec4D& mom1, const ATOOLS::Vec4D& mom2,
0028 const ATOOLS::Vec4D& mom3, double weight, double ncount);
0029 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0030 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0031 public:
0032 Three_Particle_PT(const ATOOLS::Flavour& flav1,
0033 const ATOOLS::Flavour& flav2,
0034 const ATOOLS::Flavour& flav3, int type, double xmin,
0035 double xmax, int nbins, const std::string & listname);
0036 Primitive_Observable_Base* Copy() const;
0037 };
0038
0039 class Three_Particle_Y : public Three_Particle_Observable_Base {
0040 void Evaluate(const ATOOLS::Vec4D& mom1, const ATOOLS::Vec4D& mom2,
0041 const ATOOLS::Vec4D& mom3, double weight, double ncount);
0042 public:
0043 Three_Particle_Y(const ATOOLS::Flavour& flav1, const ATOOLS::Flavour& flav2,
0044 const ATOOLS::Flavour & flav3,
0045 int type, double xmin, double xmax, int nbins,
0046 const std::string & listname);
0047 Primitive_Observable_Base * Copy() const;
0048 };
0049
0050 class Three_Particle_DEta : public Three_Particle_Observable_Base {
0051 void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0052 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0053 public:
0054 Three_Particle_DEta(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0055 const ATOOLS::Flavour & flav3,
0056 int type, double xmin, double xmax, int nbins,
0057 const std::string & listname);
0058 Primitive_Observable_Base * Copy() const;
0059 };
0060
0061 class Three_Particle_DPhi : public Three_Particle_Observable_Base {
0062 void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0063 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0064 public:
0065 Three_Particle_DPhi(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0066 const ATOOLS::Flavour & flav3, int type, double xmin,
0067 double xmax, int nbins, const std::string & listname);
0068 Primitive_Observable_Base * Copy() const;
0069 };
0070
0071 class Three_Particle_DR : public Three_Particle_Observable_Base {
0072 void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0073 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0074 public:
0075 Three_Particle_DR(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0076 const ATOOLS::Flavour & flav3, int type, double xmin,
0077 double xmax, int nbins, const std::string & listname);
0078 Primitive_Observable_Base * Copy() const;
0079 };
0080
0081 class Three_Particle_3Mass2 : public Three_Particle_Observable_Base {
0082 void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0083 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0084 public:
0085 Three_Particle_3Mass2(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0086 const ATOOLS::Flavour & flav3, int type, double xmin,
0087 double xmax, int nbins, const std::string & listname);
0088 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0089 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0090 Primitive_Observable_Base * Copy() const;
0091 };
0092
0093 class Three_Particle_3Mass : public Three_Particle_Observable_Base {
0094 void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0095 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0096 public:
0097 Three_Particle_3Mass(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0098 const ATOOLS::Flavour & flav3, int type, double xmin,
0099 double xmax, int nbins, const std::string & listname);
0100 void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0101 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0102 Primitive_Observable_Base * Copy() const;
0103 };
0104
0105 class Three_Particle_3EnergyCMS : public Three_Particle_Observable_Base {
0106 void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0107 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0108 public:
0109 Three_Particle_3EnergyCMS(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0110 const ATOOLS::Flavour & flav3, int type, double xmin,
0111 double xmax, int nbins, const std::string & listname);
0112 Primitive_Observable_Base * Copy() const;
0113 };
0114
0115 class Three_Particle_Correlation : public Three_Particle_Observable_Base {
0116 ATOOLS::Histogram * p_histo10, * p_histo20, * p_histo50, * p_histo100;
0117 void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0118 const ATOOLS::Vec4D & mom3, double weight, double ncount);
0119 public:
0120 Three_Particle_Correlation(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0121 const ATOOLS::Flavour & flav3, int type,
0122 double xmin, double xmax, int nbins,
0123 const std::string & listname);
0124 ~Three_Particle_Correlation();
0125 Primitive_Observable_Base * Copy() const;
0126 };
0127
0128 }
0129 #endif