![]() |
|
|||
File indexing completed on 2025-04-19 09:10:09
0001 #ifndef PHASIC_Channels_Rambo_H 0002 #define PHASIC_Channels_Rambo_H 0003 0004 #include "PHASIC++/Channels/Single_Channel.H" 0005 0006 namespace PHASIC { 0007 class Rambo : public Single_Channel { 0008 bool massflag; 0009 double Z_N, * xm2, * p2, * E; 0010 short int itmax; 0011 double accu; 0012 const ATOOLS::Mass_Selector* p_masssel; 0013 public: 0014 Rambo(size_t,size_t,const ATOOLS::Flavour *,const ATOOLS::Mass_Selector* ms=NULL); 0015 Rambo(size_t nin, std::vector<double> masses); 0016 ~Rambo(); 0017 void Init(const size_t& nin, const size_t& nout, const std::vector<double>& masses); 0018 ATOOLS::Vec4D_Vector GeneratePoint(const double& E); 0019 void GenerateWeight(ATOOLS::Vec4D *,Cut_Data *); 0020 void GeneratePoint(ATOOLS::Vec4D *,Cut_Data *); 0021 void GenerateWeight(ATOOLS::Vec4D * p) { GenerateWeight(p,NULL); } 0022 void GeneratePoint(ATOOLS::Vec4D * p) { GeneratePoint(p,NULL); } 0023 void GeneratePoint(ATOOLS::Vec4D *,Cut_Data *,double *); 0024 void MassiveWeight(ATOOLS::Vec4D *,double); 0025 void MassivePoint(ATOOLS::Vec4D *,double); 0026 std::string Name() { return std::string("Rambo"); } 0027 int CountResonances(ATOOLS::Flavour *&) { return 0; } 0028 void MPISync() {} 0029 }; 0030 //! Flag to see wether massive or massless points are to be generated. 0031 //! Constants needed for the weight and the phase space distribution. 0032 //! Maximal number of iterations to generate the massive weight 0033 //! Accuracy when generating the massive weight. 0034 /*! 0035 Generates the weight. In case of massless Rambo this is given by 0036 a constant, since Rambo uses uniform distribution. For massive 0037 points, this constant is corrected via MassiveWeight. 0038 /sa MassiveWeight 0039 */ 0040 /*! 0041 To generate a phase space point according to a uniform distribution. 0042 In case massive vectors are needed this point gets modified by 0043 MassivePoint. 0044 /sa MassivePoint 0045 */ 0046 /*! 0047 This method is only a dummy method meant to comply with the multi-channel. 0048 In fact it calls the GeneratePoint method without random numbers. 0049 */ 0050 /*! 0051 To generate a massive weight. The idea is to invert the generation of 0052 massive vectors, i.e. we start with massive vectors and force them 0053 on a zero-mass shell by rescaling and boosting all momenta by common 0054 factors, such that both four momentum conservation and mass shell 0055 conditions are fulfilled. 0056 */ 0057 /*! 0058 To generate a massive point. The idea is to start from a massless point 0059 given by ordinary RAMBO::GeneratePoint and then to force them 0060 on their mass shell by rescaling and boosting all momenta by common 0061 factors, such that both four momentum conservation and mass shell 0062 conditions are fulfilled. 0063 */ 0064 } 0065 0066 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |