Back to home page

EIC code displayed by LXR

 
 

    


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