Back to home page

EIC code displayed by LXR

 
 

    


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);//=std::string("NRAngle:"));
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);//=std::string("NRAngle:"));
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);//=std::string("NRAngle:"));
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