File indexing completed on 2025-04-19 09:09:41
0001 #ifndef Analysis_Observables_Four_Particle_Observables_H
0002 #define Analysis_Observables_Four_Particle_Observables_H
0003
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005
0006 namespace ANALYSIS {
0007
0008 class Four_Particle_Observable_Base : public Primitive_Observable_Base {
0009 protected:
0010 bool f_special;
0011 std::vector<ATOOLS::Flavour> m_flavs;
0012 void virtual Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0013 const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0014 double=1.,double=1.0) =0;
0015 void virtual Evaluate(double,double=1.,double=1.0);
0016 public:
0017 Four_Particle_Observable_Base(const std::vector<ATOOLS::Flavour> &,
0018 int,double,double,int,
0019 const std::string& listname,
0020 const std::string& name);
0021 void virtual Evaluate(int,const ATOOLS::Vec4D *,
0022 const ATOOLS::Flavour *,double=1.,double=1.0);
0023 void virtual Evaluate(const ATOOLS::Particle_List &,
0024 double=1.,double=1.0);
0025 };
0026
0027
0028
0029 class Four_Particle_PlaneAngle : public Four_Particle_Observable_Base {
0030 void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0031 const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0032 double=1.,double=1.0);
0033 public:
0034 Four_Particle_PlaneAngle(const std::vector<ATOOLS::Flavour>&,
0035 int,double,double,int,
0036 const std::string& listname);
0037 Primitive_Observable_Base* Copy() const;
0038 };
0039
0040 class Four_Particle_PT : public Four_Particle_Observable_Base {
0041 void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0042 const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0043 double=1.,double=1.0);
0044 public:
0045 Four_Particle_PT(const std::vector<ATOOLS::Flavour>&,
0046 int,double,double,int,
0047 const std::string& listname);
0048 Primitive_Observable_Base* Copy() const;
0049 };
0050
0051 class Two_Partonpair_PTdiff : public Four_Particle_Observable_Base {
0052 void Evaluate(const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0053 const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0054 double=1.,double=1.0);
0055 public:
0056 Two_Partonpair_PTdiff(const std::vector<ATOOLS::Flavour>&,
0057 int, double, double, int,
0058 const std::string& listname);
0059 Primitive_Observable_Base* Copy() const;
0060 };
0061
0062 class Two_Partonpair_Theta : public Four_Particle_Observable_Base {
0063 void Evaluate(const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0064 const ATOOLS::Vec4D&, const ATOOLS::Vec4D&,
0065 double=1.,double=1.0);
0066 public:
0067 Two_Partonpair_Theta(const std::vector<ATOOLS::Flavour>&,
0068 int, double, double, int,
0069 const std::string& listname);
0070 Primitive_Observable_Base* Copy() const;
0071 };
0072
0073
0074
0075 class Di_Mass : public Primitive_Observable_Base {
0076 public:
0077 Di_Mass(unsigned int type,double xmin,double xmax,int nbins,
0078 const std::string & =std::string("Jets"));
0079 void Evaluate(const ATOOLS::Blob_List & blobs,double value, double);
0080 Primitive_Observable_Base * Copy() const ;
0081 };
0082
0083
0084
0085 class Four_Particle_PlaneAngleCMS : public Four_Particle_Observable_Base {
0086 void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0087 const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0088 double=1.,double=1.0);
0089 public:
0090 Four_Particle_PlaneAngleCMS(const std::vector<ATOOLS::Flavour>&,
0091 int,double,double,int,
0092 const std::string& listname);
0093 Primitive_Observable_Base* Copy() const;
0094 };
0095
0096
0097
0098 class Four_Particle_EnergyCMS : public Four_Particle_Observable_Base {
0099 void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0100 const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0101 double=1.,double=1.0);
0102 public:
0103 Four_Particle_EnergyCMS(const std::vector<ATOOLS::Flavour>&,
0104 int,double,double,int,
0105 const std::string& listname);
0106 Primitive_Observable_Base* Copy() const;
0107 };
0108
0109
0110
0111 class Four_Particle_Mass : public Four_Particle_Observable_Base {
0112 void Evaluate(const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0113 const ATOOLS::Vec4D &, const ATOOLS::Vec4D &,
0114 double=1.,double=1.);
0115 public:
0116 Four_Particle_Mass(const std::vector<ATOOLS::Flavour>&,
0117 int,double,double,int,
0118 const std::string& listname);
0119 Primitive_Observable_Base* Copy() const;
0120 };
0121
0122 }
0123 #endif