Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:13

0001 #ifndef REMNANTS_Main_Photon_Remnant_H
0002 #define REMNANTS_Main_Photon_Remnant_H
0003 
0004 #include "PDF/Main/PDF_Base.H"
0005 #include "REMNANTS/Main/Remnant_Base.H"
0006 #include <map>
0007 
0008 namespace REMNANTS {
0009 class Photon_Remnant : public Remnant_Base {
0010 private:
0011   PDF::PDF_Base *p_pdf;
0012   const ATOOLS::Flavour_Set *p_partons;
0013   ATOOLS::Flavour m_beamflav;
0014 
0015   double m_LambdaQCD, m_beta_quark, m_beta_gluon;
0016   bool m_valence;
0017 
0018   ATOOLS::Particle * p_spectator, * p_recoiler;
0019 
0020   void MakeSpectator(ATOOLS::Particle *parton) override;
0021   void MakeRemnants();
0022   bool MakeLongitudinalMomenta(ATOOLS::ParticleMomMap *ktmap, const bool &copy);
0023   double SelectZ(const ATOOLS::Flavour &flav, double restmom, double remnant_masses) const;
0024   ATOOLS::Particle *MakeParticle(const ATOOLS::Flavour &flav);
0025   void FindRecoiler();
0026   void Output() const;
0027 public:
0028   // constructor
0029   Photon_Remnant(PDF::PDF_Base *pdf, const size_t & beam, const size_t & tag=0);
0030 
0031   // member functions
0032   bool TestExtract(const ATOOLS::Flavour &flav, const ATOOLS::Vec4D &mom) override;
0033   bool FillBlob(ATOOLS::ParticleMomMap *ktmap, const bool &copy) override;
0034   void CompensateColours();
0035 
0036   void Reset(const bool & resc=false, const bool &DIS=false) override;
0037   
0038   inline ATOOLS::Particle *GetRecoiler() override { return p_recoiler; }
0039   inline ATOOLS::Particle *GetSpectator() override { return p_spectator; }
0040 }; // end of class Remnant_Base
0041 
0042 } // end of namespace REMNANTS
0043 
0044 #endif