![]() |
|
|||
File indexing completed on 2025-04-19 09:10:09
0001 #ifndef PHASIC_Channels_RamboKK_H 0002 #define PHASIC_Channels_RamboKK_H 0003 0004 #include "PHASIC++/Channels/Single_Channel.H" 0005 0006 namespace PHASIC { 0007 class RamboKK : public Single_Channel { 0008 //! Flag to see wether massive or massless points are to be generated. 0009 bool m_massflag; 0010 //! Constants needed for the weight and the phase space distribution. 0011 double Z_N, * xm2, * p2, * E; 0012 //! Maximal number of iterations to generate the massive weight 0013 short int itmax; 0014 //! Accuracy when generating the massive weight. 0015 double accu; 0016 //! Constants needed to generate the mass of the KK particle 0017 int kkp,ed; 0018 double r2,maxm2,maxn,mpss,gn,prevET,gam; 0019 /*! 0020 Determines the mass for the KK particle. This has to be done every time 0021 before a phase space point is generated. 0022 0023 The distribution of the mass states is 0024 \f[ 0025 m^{2}_{\vec{n}}=\frac{4\pi^{2}\vec{n}^{2}}{R^{2}}, 0026 \f] 0027 where \f$\vec{n}\f$ is a $n$-dimensional vector of integers and with $R$ 0028 contributes to the size of the extra dimensions, is given by 0029 \f[ 0030 R^{n}=\frac{(4\pi)^{n/2}\Gamma(n/2)}{2M_s^{n+2}}. 0031 \f] 0032 */ 0033 void Set_KKmass(); 0034 public: 0035 RamboKK(int,int,const ATOOLS::Flavour *); 0036 ~RamboKK(); 0037 /*! 0038 Generates the weight. In case of massless Rambo this is given by 0039 a constant, since Rambo uses uniform distribution. For massive 0040 points, this constant is corrected via MassiveWeight. 0041 /sa MassiveWeight 0042 0043 In attendance of a KK particle the weight has to be multiplied by an 0044 extra volume factor of 0045 \f[ 0046 \frac{1}{n}\frac{\hat{m}^{n}}{M_s^{n+2}G_N}, 0047 \f] 0048 due to the multiplicity of the mass states 0049 */ 0050 void GenerateWeight(ATOOLS::Vec4D *,Cut_Data *); 0051 /*! 0052 To generate a phase space point according to a uniform distribution. 0053 In case massive vectors are needed this point gets modified by 0054 MassivePoint. 0055 /sa MassivePoint 0056 */ 0057 void GeneratePoint(ATOOLS::Vec4D *,Cut_Data *); 0058 /*! 0059 This method is only a dummy method meant to comply with the multi-channel. 0060 In fact it calls the GeneratePoint method without random numbers. 0061 */ 0062 void GeneratePoint(ATOOLS::Vec4D *,Cut_Data *,double *); 0063 /*! 0064 To generate a massive weight. The idea is to invert the generation of 0065 massive vectors, i.e. we start with massive vectors and force them 0066 on a zero-mass shell by rescaling and boosting all momenta by common 0067 factors, such that both four momentum conservation and mass shell 0068 conditions are fulfilled. 0069 */ 0070 void MassiveWeight(ATOOLS::Vec4D *,double); 0071 /*! 0072 To generate a massive point. The idea is to start from a massless point 0073 given by ordinary RAMBO::GeneratePoint and then to force them 0074 on their mass shell by rescaling and boosting all momenta by common 0075 factors, such that both four momentum conservation and mass shell 0076 conditions are fulfilled. 0077 */ 0078 void MassivePoint(ATOOLS::Vec4D *,double); 0079 std::string Name() { return std::string("RamboKK"); } 0080 int CountResonances(ATOOLS::Flavour *&) { return 0; } 0081 }; 0082 } 0083 0084 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |