Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-13 10:29:19

0001 #ifndef REMNANTS_Tools_Primordial_KPerp_H
0002 #define REMNANTS_Tools_Primordial_KPerp_H
0003 
0004 #include "ATOOLS/Math/Histogram.H"
0005 #include "ATOOLS/Phys/Particle.H"
0006 #include "REMNANTS/Tools/Remnants_Parameters.H"
0007 #include <array>
0008 #include <map>
0009 #include <string>
0010 
0011 namespace REMNANTS {
0012   class Remnant_Handler;
0013 
0014   class Primordial_KPerp {
0015   private:
0016     ATOOLS::Flavour m_beamflav;
0017     bool m_on;
0018     std::array<primkT_form, 2>   m_form;
0019     std::array<primkT_recoil, 2> m_recoil;
0020     std::array<double, 2> m_SIMean, m_SISigma, m_SIQ2, m_SpecMean, m_SpecSigma,
0021             m_SpecQ2;
0022     std::array<double, 2>   m_SIKtmax, m_SIEta, m_SpecKtmax, m_SpecEta;
0023     double                  m_mean, m_sigma, m_Q2, m_ktmax, m_eta;
0024     size_t                  m_beam;
0025     ATOOLS::ParticleMomMap* p_ktmap;
0026 
0027     double KT_Gauss(const double & ktmax) const;
0028     double KT_Gauss_Limited(const double & ktmax) const;
0029     double KT_Dipole(const double & ktmax) const;
0030     double KT_Dipole_Limited(const double & ktmax) const;
0031     void   BalanceKT(const ATOOLS::Vec4D & kt_Show,const double & E_Show,
0032              const ATOOLS::Vec4D & kt_Spec,const double & E_Spec);
0033     double DipoleWeight(const double & kt) const;
0034     double LimitedWeight(const double & kt) const;
0035 
0036     bool                                      m_analysis;
0037     std::map<std::string, ATOOLS::Histogram * >m_histos;
0038     void InitAnalysis();
0039     void FinishAnalysis();
0040   public:
0041     Primordial_KPerp();
0042     ~Primordial_KPerp();
0043 
0044     void Initialize(Remnant_Handler * rhandler);
0045     bool CreateBreakupKinematics(const size_t & beam,ATOOLS::ParticleMomMap * ktmap,
0046                  const double & scale);
0047     ATOOLS::Vec4D KT(const ATOOLS::Particle * part,const double & ktext=-1.);
0048   };
0049 }
0050 
0051 #endif