File indexing completed on 2025-04-19 09:09:43
0001 #ifndef AHADIC_Formations_Beam_Particles_Shifter_H
0002 #define AHADIC_Formations_Beam_Particles_Shifter_H
0003
0004 #include "AHADIC++/Tools/Soft_Cluster_Handler.H"
0005 #include "AHADIC++/Tools/Singlet_Tools.H"
0006 #include "AHADIC++/Tools/Constituents.H"
0007 #include <list>
0008
0009 namespace AHADIC {
0010 class Beam_Particles_Shifter {
0011 private:
0012 std::list<Singlet *> * p_singlets;
0013 Soft_Cluster_Handler * p_softclusters;
0014 std::list<Proto_Particle *> m_beamparts;
0015 Constituents * p_constituents;
0016
0017 void ExtractBeamParticles();
0018 bool ShiftBeamParticles();
0019 void RescueLightClusters();
0020 Proto_Particle * GetRecoilPartner(const double & targetmass,
0021 const ATOOLS::Vec4D & mom,
0022 const Singlet * veto);
0023 bool ShuffleMomenta(Proto_Particle * recoiler,Cluster * cluster,
0024 const ATOOLS::Flavour & target,const double & tagetmass);
0025 public:
0026 Beam_Particles_Shifter(std::list<Singlet *> * singlets,
0027 Soft_Cluster_Handler * softclusters);
0028 ~Beam_Particles_Shifter();
0029 void Init();
0030 void Reset();
0031
0032 bool operator()();
0033 };
0034 }
0035
0036 #endif