Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef Analysis_Observables_One_Particle_Observables_H
0002 #define Analysis_Observables_One_Particle_Observables_H
0003 
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005 
0006 namespace ANALYSIS {
0007   class One_Particle_Observable_Base : public Primitive_Observable_Base {  
0008   protected:
0009     ATOOLS::Flavour m_flav;
0010     void virtual Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount) = 0; 
0011     void virtual Evaluate(double value, double weight, double ncount); 
0012   public:
0013     One_Particle_Observable_Base(const ATOOLS::Flavour & flav,
0014                  int type, double xmin, double xmax, int nbins, 
0015                  const std::string & listname,
0016                  const std::string & name);
0017     void virtual Evaluate(int nout, const ATOOLS::Vec4D * moms,
0018               const ATOOLS::Flavour * flavs,
0019               double weight, double ncount);
0020     void virtual Evaluate(const ATOOLS::Particle_List & plist, 
0021               double weight, double ncount);
0022     void virtual EvaluateNLOcontrib(const ATOOLS::Vec4D & mom,
0023                     double weight, double ncount);
0024     void EvaluateNLOcontrib(double weight, double ncount);
0025     void EvaluateNLOevt();
0026   };
0027 
0028   class One_Particle_ET : public One_Particle_Observable_Base {  
0029     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0030     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0031   public:
0032     One_Particle_ET(const ATOOLS::Flavour & flav,
0033             int type,double xmin,double xmax,int nbins,
0034             const std::string & listname=std::string(""));
0035     Primitive_Observable_Base * Copy() const;
0036   };
0037 
0038   class One_Particle_PT : public One_Particle_Observable_Base {  
0039     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0040     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0041   public:
0042     One_Particle_PT(const ATOOLS::Flavour & flav,
0043             int type,double xmin,double xmax,int nbins,
0044             const std::string & listname=std::string(""));
0045     Primitive_Observable_Base * Copy() const;
0046   };
0047 
0048   class One_Particle_Eta : public One_Particle_Observable_Base {  
0049     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0050     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0051   public:
0052     One_Particle_Eta(const ATOOLS::Flavour & flav,
0053              int type,double xmin,double xmax,int nbins,
0054              const std::string & listname=std::string(""));
0055     Primitive_Observable_Base * Copy() const;
0056   };
0057 
0058   class One_Particle_Y : public One_Particle_Observable_Base {  
0059     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0060     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0061   public:
0062     One_Particle_Y(const ATOOLS::Flavour & flav,
0063            int type,double xmin,double xmax,int nbins,
0064            const std::string & listname=std::string(""));
0065     Primitive_Observable_Base * Copy() const;
0066   };
0067 
0068   class One_Particle_Phi : public One_Particle_Observable_Base {
0069     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0070     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0071   public:
0072     One_Particle_Phi(const ATOOLS::Flavour & flav,
0073              int type,double xmin,double xmax,int nbins,
0074              const std::string & listname=std::string(""));
0075     Primitive_Observable_Base * Copy() const;
0076   };
0077 
0078   class One_Particle_E : public One_Particle_Observable_Base {  
0079     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0080     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0081   public:
0082     One_Particle_E(const ATOOLS::Flavour & flav,
0083            int type,double xmin,double xmax,int nbins,
0084            const std::string & listname=std::string(""));
0085     Primitive_Observable_Base * Copy() const;
0086   };
0087 
0088   class One_Particle_M : public One_Particle_Observable_Base {  
0089     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0090   public:
0091     One_Particle_M(const ATOOLS::Flavour & flav,
0092            int type,double xmin,double xmax,int nbins,
0093            const std::string & listname=std::string(""));
0094     Primitive_Observable_Base * Copy() const;
0095   };
0096 
0097   class One_Particle_BeamAngle : public One_Particle_Observable_Base {  
0098     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0099     void EvaluateNLOcontrib(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0100   public:
0101     One_Particle_BeamAngle(const ATOOLS::Flavour & flav,
0102            int type,double xmin,double xmax,int nbins,
0103            const std::string & listname=std::string(""));
0104     Primitive_Observable_Base * Copy() const;
0105   };
0106 
0107 // ---------------------------------------------------------------------------
0108 
0109   class One_Particle_EVis : public One_Particle_Observable_Base {  
0110     void Evaluate(const ATOOLS::Vec4D & mom, double weight, double ncount); 
0111   public:
0112     One_Particle_EVis(const ATOOLS::Flavour & flav,
0113               int type,double xmin,double xmax,int nbins,
0114               const std::string & listname=std::string(""));
0115     Primitive_Observable_Base * Copy() const;
0116     void Evaluate(int nout, const ATOOLS::Vec4D * moms,
0117           const ATOOLS::Flavour * flavs,
0118           double weight, double ncount);
0119     void Evaluate(const ATOOLS::Particle_List & plist, 
0120           double weight, double ncount);
0121   };
0122 }
0123 
0124 #endif