Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-13 10:28:51

0001 #ifndef Analysis_Observables_Soft_Photon_Observables_H
0002 #define Analysis_Observables_Soft_Photon_Observables_H
0003 
0004 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0005 
0006 namespace ANALYSIS {
0007 
0008   class Soft_Photon_Observable_Base : public Primitive_Observable_Base {
0009   protected:
0010     bool f_special;
0011     std::vector<ATOOLS::Flavour> m_flavs;
0012     virtual void Evaluate(const ATOOLS::Particle_Vector&,
0013                           const ATOOLS::Particle_Vector&,
0014                           double=1.,double=1.) = 0;
0015     virtual void Evaluate(double,double=1.,double=1.);
0016   public:
0017     Soft_Photon_Observable_Base(const std::vector<ATOOLS::Flavour> &,
0018                                 int type, double xmin, double xmax, int nbins,
0019                                 const std::string& listname,
0020                                 const std::string& name);
0021     virtual void Evaluate(int nout, const ATOOLS::Vec4D *,
0022                           const ATOOLS::Flavour *, double=1., double=1.);
0023     virtual void Evaluate(const ATOOLS::Particle_List & plist,
0024                           double weight, double ncount);
0025     virtual void Evaluate(const ATOOLS::Blob_List & blobs, double weight,
0026                           double ncount);
0027   };
0028 
0029   //==========================================================================
0030 
0031   class Soft_Photon_Energy : public Soft_Photon_Observable_Base {
0032     void Evaluate(const ATOOLS::Particle_Vector&,
0033                   const ATOOLS::Particle_Vector&, double=1., double=1.);
0034   public:
0035     Soft_Photon_Energy(const std::vector<ATOOLS::Flavour>&,
0036                        int type, double xmin, double xmax, int nbins,
0037                        const std::string& listname);
0038     Primitive_Observable_Base* Copy() const;
0039   };
0040 
0041   class Soft_Photon_Angle : public Soft_Photon_Observable_Base {
0042     void Evaluate(const ATOOLS::Particle_Vector&,
0043                   const ATOOLS::Particle_Vector&, double=1., double=1.);
0044   public:
0045     Soft_Photon_Angle(const std::vector<ATOOLS::Flavour>&,
0046                       int type, double xmin, double xmax, int nbins,
0047                       const std::string& listname);
0048     Primitive_Observable_Base* Copy() const;
0049   };
0050 
0051 }
0052 #endif