Back to home page

EIC code displayed by LXR

 
 

    


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 } // namespace ANALYSIS
0063 #endif