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 ©);
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
0029 Photon_Remnant(PDF::PDF_Base *pdf, const size_t & beam, const size_t & tag=0);
0030
0031
0032 bool TestExtract(const ATOOLS::Flavour &flav, const ATOOLS::Vec4D &mom) override;
0033 bool FillBlob(ATOOLS::ParticleMomMap *ktmap, const bool ©) 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 };
0041
0042 }
0043
0044 #endif