Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:09:42

0001 #ifndef Analysis_Observables_Two_Particle_Observables_H
0002 #define Analysis_Observables_Two_Particle_Observables_H
0003 
0004 #include "ATOOLS/Org/CXXFLAGS_PACKAGES.H"
0005 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0006 
0007 namespace ANALYSIS {
0008   class Two_Particle_Observable_Base : public Primitive_Observable_Base {  
0009   protected:
0010     ATOOLS::Flavour      m_flav1,m_flav2;
0011     void virtual Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0012               double weight, double ncount) = 0; 
0013     //    void virtual Evaluate(double value, double weight, double ncount); 
0014   public:
0015     Two_Particle_Observable_Base(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0016                  int type, double xmin, double xmax, int nbins, 
0017                  const std::string & listname,
0018                  const std::string & name);
0019 //     void virtual Evaluate(int nout, const ATOOLS::Vec4D * moms,
0020 //            const ATOOLS::Flavour * flavs,
0021 //            double weight, double ncount);
0022     void virtual Evaluate(const ATOOLS::Particle_List & plist, 
0023               double weight, double ncount);
0024     void virtual EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0025                 double weight, double ncount); 
0026     void EvaluateNLOcontrib(double weight, double ncount);
0027     void EvaluateNLOevt();
0028   };
0029 
0030   class Two_Particle_Mass : public Two_Particle_Observable_Base {  
0031     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0032           double weight, double ncount); 
0033     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0034           double weight, double ncount); 
0035   public:
0036     Two_Particle_Mass(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0037               int type, double xmin, double xmax, int nbins, 
0038               const std::string & listname);
0039     Primitive_Observable_Base * Copy() const;
0040   };
0041 
0042   class Two_Particle_PT : public Two_Particle_Observable_Base {  
0043     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0044           double weight, double ncount); 
0045     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0046           double weight, double ncount); 
0047   public:
0048     Two_Particle_PT(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0049             int type, double xmin, double xmax, int nbins, 
0050             const std::string & listname);
0051     Primitive_Observable_Base * Copy() const;
0052   };
0053 
0054   class Two_Particle_ETW : public Two_Particle_Observable_Base {  
0055     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0056           double weight, double ncount); 
0057     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0058                 double weight, double ncount); 
0059   public:
0060     Two_Particle_ETW(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0061              int type, double xmin, double xmax, int nbins, 
0062              const std::string & listname);
0063     Primitive_Observable_Base * Copy() const;
0064   };
0065 
0066   class Two_Particle_Scalar_PT : public Two_Particle_Observable_Base {  
0067     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0068           double weight, double ncount); 
0069     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0070           double weight, double ncount); 
0071   public:
0072     Two_Particle_Scalar_PT(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0073                int type, double xmin, double xmax, int nbins, 
0074                const std::string & listname);
0075     Primitive_Observable_Base * Copy() const;
0076   };
0077 
0078   class Two_Particle_Eta : public Two_Particle_Observable_Base {  
0079     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0080           double weight, double ncount); 
0081     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0082           double weight, double ncount); 
0083   public:
0084     Two_Particle_Eta(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0085              int type, double xmin, double xmax, int nbins, 
0086              const std::string & listname);
0087     Primitive_Observable_Base * Copy() const;
0088   };
0089 
0090   class Two_Particle_DEta : public Two_Particle_Observable_Base {  
0091     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0092           double weight, double ncount); 
0093     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0094           double weight, double ncount); 
0095   public:
0096     Two_Particle_DEta(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0097               int type, double xmin, double xmax, int nbins, 
0098               const std::string & listname);
0099     Primitive_Observable_Base * Copy() const;
0100   };
0101 
0102   class Two_Particle_Y : public Two_Particle_Observable_Base {
0103     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2,
0104                   double weight, double ncount);
0105     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0106           double weight, double ncount); 
0107   public:
0108     Two_Particle_Y(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0109            int type, double xmin, double xmax, int nbins,
0110            const std::string & listname);
0111     Primitive_Observable_Base * Copy() const;
0112   };
0113 
0114   class Two_Particle_DY : public Two_Particle_Observable_Base {  
0115     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0116           double weight, double ncount); 
0117     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0118           double weight, double ncount); 
0119   public:
0120     Two_Particle_DY(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0121               int type, double xmin, double xmax, int nbins, 
0122               const std::string & listname);
0123     Primitive_Observable_Base * Copy() const;
0124   };
0125 
0126   class Two_Particle_Phi : public Two_Particle_Observable_Base {
0127     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0128           double weight, double ncount); 
0129     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0130           double weight, double ncount); 
0131   public:
0132     Two_Particle_Phi(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0133              int type, double xmin, double xmax, int nbins, 
0134              const std::string & listname);
0135     Primitive_Observable_Base * Copy() const;
0136   };
0137 
0138   class Two_Particle_DPhi : public Two_Particle_Observable_Base {  
0139     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0140           double weight, double ncount); 
0141     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0142           double weight, double ncount); 
0143   public:
0144     Two_Particle_DPhi(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0145               int type, double xmin, double xmax, int nbins, 
0146               const std::string & listname);
0147     Primitive_Observable_Base * Copy() const;
0148   };
0149 
0150   class Two_Particle_Angle : public Two_Particle_Observable_Base {  
0151     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0152           double weight, double ncount); 
0153     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0154           double weight, double ncount); 
0155   public:
0156     Two_Particle_Angle(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0157               int type, double xmin, double xmax, int nbins, 
0158               const std::string & listname);
0159     Primitive_Observable_Base * Copy() const;
0160   };
0161 
0162   class Two_Particle_DR : public Two_Particle_Observable_Base {  
0163     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0164           double weight, double ncount); 
0165     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0166           double weight, double ncount); 
0167   public:
0168     Two_Particle_DR(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0169             int type, double xmin, double xmax, int nbins, 
0170             const std::string & listname);
0171     Primitive_Observable_Base * Copy() const;
0172   };
0173 
0174   class Two_Particle_CMS_Angle : public Two_Particle_Observable_Base {  
0175     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0176           double weight, double ncount); 
0177     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0178           double weight, double ncount); 
0179   public:
0180     Two_Particle_CMS_Angle(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0181                int type, double xmin, double xmax, int nbins, 
0182                const std::string & listname);
0183     Primitive_Observable_Base * Copy() const;
0184   };
0185    
0186   class Two_Particle_Mass2 : public Two_Particle_Observable_Base {  
0187     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0188           double weight, double ncount); 
0189     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0190           double weight, double ncount); 
0191   public:
0192     Two_Particle_Mass2(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0193               int type, double xmin, double xmax, int nbins, 
0194               const std::string & listname);
0195     Primitive_Observable_Base * Copy() const;
0196   };
0197 
0198   class Two_Particle_MT2 : public Two_Particle_Observable_Base {  
0199     void Evaluate(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0200           double weight, double ncount); 
0201     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom1, const ATOOLS::Vec4D & mom2, 
0202           double weight, double ncount); 
0203   public:
0204     Two_Particle_MT2(const ATOOLS::Flavour & flav1, const ATOOLS::Flavour & flav2,
0205              int type, double xmin, double xmax, int nbins, 
0206              const std::string & listname);
0207     Primitive_Observable_Base * Copy() const;
0208   };
0209 
0210 }
0211 
0212 #endif