Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:09:48

0001 #ifndef ATOOLS_Phys_BreitBoost_H
0002 #define ATOOLS_Phys_BreitBoost_H
0003 #include "ATOOLS/Math/Poincare.H"
0004 
0005 namespace ATOOLS {
0006 
0007   class Cluster_Amplitude;
0008 
0009   class BreitBoost : public Poincare_Sequence {
0010   private:
0011     /// helper doing the actual work in the constructors
0012     void _init(const Vec4D& Q, const Vec4D& hadin);
0013 
0014     /// save dis variables
0015     double m_Q2, m_x;
0016 
0017   public:
0018     /*
0019       Construct a boost into the Breit frame.
0020 
0021       The breit frame is defined by the virtual photon momentum \p Q, and the
0022       incoming hadron momentum \p hadin.
0023 
0024       Incoming momenta are assumed incoming, i.e. with positive energies. The
0025       hadron momentum should be projected to zero mass if necessary beforehand.
0026     */
0027     BreitBoost(const Vec4D& Q, const Vec4D& hadin);
0028 
0029 
0030     /*
0031       Constructor using incoming and outgoing lepton momenta to obtain Q.
0032 
0033       Incoming momenta are assumed incoming, i.e. with positive energies. The
0034       hadron momentum should be projected to zero mass if necessary beforehand.
0035     */
0036     BreitBoost(const Vec4D& lepin, const Vec4D& lepout, const Vec4D& hadin);
0037 
0038     /*
0039       Constructor using information from the amplitude.
0040 
0041       Convenience funtion, takes lepin and lepout from \p ampl, and
0042       hadin from the global beam information, projected to zero mass.
0043     */
0044     BreitBoost(Cluster_Amplitude *const ampl);
0045 
0046     /// Convenience function to apply boost to Cluster_Amplitude
0047     void Apply(Cluster_Amplitude *const ampl) const;
0048 
0049     /// access dis variables
0050     inline double Q2() const { return m_Q2; }
0051     inline double x()  const { return m_x; }
0052   };
0053 
0054 }
0055 #endif