File indexing completed on 2025-04-19 09:09:42
0001 #ifndef Analysis_Observables_Sphericity_Observables_H
0002 #define Analysis_Observables_Sphericity_Observables_H
0003
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005 #include "AddOns/Analysis/Observables/Momentum_Tensor.H"
0006
0007 namespace ANALYSIS {
0008
0009 struct Sphericity_Data {
0010 friend std::ostream& operator<<( std::ostream&, const Sphericity_Data &);
0011 double sphericity, aplanarity, planarity;
0012 Sphericity_Data(double spher,double aplan,double plan);
0013 };
0014
0015
0016 class Sphericity_Calculator : public Analysis_Object {
0017 Momentum_Tensor m_tensor;
0018 std::string m_key, m_listname;
0019 public:
0020 Sphericity_Calculator(const std::string & listname);
0021 void Evaluate(const ATOOLS::Blob_List & ,double weight, double ncount);
0022 void EvaluateNLOcontrib(double weight, double ncount);
0023 void EvaluateNLOevt();
0024 Analysis_Object * GetCopy() const;
0025 };
0026
0027 class Sphericity : public Primitive_Observable_Base {
0028 std::string m_key;
0029 public:
0030 Sphericity(int type, double xmin, double xmax, int nbin, std::string listname);
0031 void Evaluate(const ATOOLS::Blob_List & ,double weight, double ncount);
0032 void EvaluateNLOcontrib(double weight, double ncount);
0033 void EvaluateNLOevt();
0034 Primitive_Observable_Base * Copy() const;
0035 };
0036
0037 class Aplanarity : public Primitive_Observable_Base {
0038 std::string m_key;
0039 public:
0040 Aplanarity(int type, double xmin, double xmax, int nbin, std::string listname);
0041 void Evaluate(const ATOOLS::Blob_List & ,double weight, double ncount);
0042 void EvaluateNLOcontrib(double weight, double ncount);
0043 void EvaluateNLOevt();
0044 Primitive_Observable_Base * Copy() const;
0045 };
0046
0047 class Planarity : public Primitive_Observable_Base {
0048 std::string m_key;
0049 public:
0050 Planarity(int type, double xmin, double xmax, int nbin, std::string listname);
0051 void Evaluate(const ATOOLS::Blob_List & ,double weight, double ncount);
0052 void EvaluateNLOcontrib(double weight, double ncount);
0053 void EvaluateNLOevt();
0054 Primitive_Observable_Base * Copy() const;
0055 };
0056
0057 inline Sphericity_Data::Sphericity_Data(double spher,double aplan,double plan)
0058 : sphericity(spher), aplanarity(aplan), planarity(plan)
0059 {
0060 }
0061
0062 }
0063 #endif