Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:14

0001 #ifndef SHERPA_Single_Events_Hadron_Decays_H
0002 #define SHERPA_Single_Events_Hadron_Decays_H
0003 
0004 #include "SHERPA/Single_Events/Event_Phase_Handler.H"
0005 #include "ATOOLS/Org/Return_Value.H"
0006 
0007 namespace ATOOLS {
0008   class Blob;
0009   class Particle;
0010   class Blob_List;
0011 }
0012 
0013 namespace SHERPA {
0014   class Decay_Handler_Base;
0015 
0016   class Hadron_Decays : public Event_Phase_Handler {
0017   private :
0018     Decay_Handler_Base * p_dechandler;
0019     
0020   public :
0021     Hadron_Decays(Decay_Handler_Base *);
0022     ~Hadron_Decays();
0023     
0024     ATOOLS::Return_Value::code Treat(ATOOLS::Blob_List*);
0025     void                       CleanUp(const size_t & mode=0);
0026     void                       Finish(const std::string &);
0027   };
0028 
0029   /*!
0030     \file Hadron_Decays.H
0031     \brief Declares the class SHERPA::Hadron_Decays
0032     */
0033   /*!
0034     \class Hadron_Decays
0035     \brief Treats blobs containing hadrons to be decayed (which contain status
0036     needs_hadrondecays)
0037 
0038     The basic idea is a separation between the creation of the decay blob of
0039     each daughter particle (CreateDecayBlob), and filling the mother blob with
0040     kinematics (Treat).
0041     While the creation step has to make sure
0042     that everything is known for subsequently dicing the mass of the decaying
0043     hadron, the filling step does the kinematics in the CMS and then boosts and
0044     stretches the momenta to the lab CMS and their final masses.
0045     */
0046   /*!
0047     \fn Hadron_Decays::Treat(ATOOLS::Blob_List*)
0048     \brief Treats all blobs in a blob list which need hadron decays.
0049 
0050     This method recurses through the bloblist and when it finds a blob which needs
0051     hadron decays, it decays all its daughters. Care is taken for the following
0052     special features:
0053     - The daughters are treated in random order to avoid biases in spin correlations
0054     - If a fragmentation blob is encountered, it is checked whether it stems from a
0055       partonic hadron decay. If it does, and it produced an exclusive decay channel
0056       of that decaying hadron, it is rejected and redone, as to not spoil that
0057       hadrons branching ratio.
0058     - all outparticles of the incoming blob are set off-shell according to their
0059       decay channels.
0060     */
0061   /*!
0062     \fn Hadron_Decays::Treat(ATOOLS::Blob*)
0063     \brief Treats the given blob by adding decay products kinematics, and
0064     boosting and stretching the blob such that it finally is back in the lab
0065     frame and the daughter particles have off-shell masses.
0066     For that it first has to do the on-shell kinematics, then create the
0067     daughter decay blobs to know how to smear the daughter masses, and finally
0068     boost and stretch everything back.
0069     */
0070 
0071 }
0072 #endif
0073