File indexing completed on 2025-04-19 09:10:14
0001 #ifndef SHERPA_SoftPhysics_Hadron_Decay_Handler_H
0002 #define SHERPA_SoftPhysics_Hadron_Decay_Handler_H
0003
0004 #include <set>
0005 #include <iterator>
0006
0007 #include "ATOOLS/Org/Return_Value.H"
0008 #include "ATOOLS/Phys/Flavour.H"
0009 #include "ATOOLS/Math/Vector.H"
0010 #include "ATOOLS/Org/CXXFLAGS.H"
0011 #include "SHERPA/Single_Events/Decay_Handler_Base.H"
0012
0013
0014 namespace ATOOLS {
0015 class Blob;
0016 class Blob_List;
0017 }
0018
0019 namespace HADRONS {
0020 class Mixing_Handler;
0021 }
0022
0023 namespace SHERPA {
0024
0025 class Hadron_Decay_Handler : public Decay_Handler_Base {
0026 HADRONS::Mixing_Handler* p_mixinghandler;
0027
0028 long int bs, bs_cs_semilep, bs_ccss, bs_ccds, bs_cuds;
0029 long int bs_cs_semilep_rej, bs_ccss_rej, bs_ccds_rej, bs_cuds_rej;
0030
0031 public :
0032 Hadron_Decay_Handler();
0033 ~Hadron_Decay_Handler();
0034
0035
0036
0037
0038
0039
0040 void CreateDecayBlob(ATOOLS::Particle* part);
0041
0042 void TreatInitialBlob(ATOOLS::Blob* blob,
0043 METOOLS::Amplitude2_Tensor* amps,
0044 const ATOOLS::Particle_Vector& origparts);
0045 METOOLS::Amplitude2_Tensor*
0046 FillOnshellDecay(ATOOLS::Blob* blob, METOOLS::Spin_Density* sigma);
0047 METOOLS::Decay_Matrix*
0048 FillDecayTree(ATOOLS::Blob * blob, METOOLS::Spin_Density* s0);
0049
0050
0051
0052
0053
0054
0055
0056 bool RejectExclusiveChannelsFromFragmentation(ATOOLS::Blob*);
0057
0058
0059
0060
0061 void SetPosition(ATOOLS::Blob* blob);
0062
0063 inline double Mass(const ATOOLS::Flavour &fl) const { return fl.HadMass(); }
0064 };
0065
0066 }
0067
0068 #endif