Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef AHADIC_Tools_Constituents_H
0002 #define AHADIC_Tools_Constituents_H
0003 
0004 #include "ATOOLS/Phys/Flavour.H"
0005 #include <map>
0006 #include <string>
0007 
0008 
0009 namespace AHADIC {
0010 
0011 
0012   class ConstituentCharacteristic {
0013   public:
0014     double m_mass;
0015     int    m_ispin;
0016     double m_weight, m_smearing;
0017     ConstituentCharacteristic(double _m=0., int _is=-1, double _wt=0.) : 
0018       m_mass(_m), m_ispin(_is), m_weight(_wt) {}
0019 
0020     double Mass()      { return m_mass;     }
0021     double TotWeight() { return m_weight;   }
0022     int    ISpin()     { return m_ispin;    }
0023   };
0024 
0025 
0026 
0027 
0028   typedef std::map<ATOOLS::Flavour,ConstituentCharacteristic *> FlavCCMap;
0029   typedef FlavCCMap::iterator FlavCCMap_Iterator;
0030 
0031   class Constituents {
0032     double m_minmass, m_maxmass;
0033     ATOOLS::Flavour m_lightest;
0034   public:
0035     FlavCCMap CCMap;
0036     Constituents(bool=true);
0037     ~Constituents();
0038 
0039     double Mass(const ATOOLS::Flavour & flav);
0040     double MinMass();
0041     double MaxMass();
0042     double TotWeight(const ATOOLS::Flavour & flav);
0043     int    ISpin(ATOOLS::Flavour & flav);
0044 
0045     const ATOOLS::Flavour & LightestConstituent() const { return m_lightest; }
0046     void   PrintConstituents();
0047   };
0048 
0049 
0050   /*!
0051     \file 
0052     \brief Contains the classes AHADIC::ConstituentCharacteristic and AHADIC::Constituents.
0053   */
0054 
0055   /*!
0056     \class ConstituentCharacteristic
0057     \brief Includes all information (constituent mass, spin d.o.f., flavour weight, 
0058     spin weight and angular smearing parameter) for a flavour that is needed in the cluster 
0059     hadronisation model. It is accessible through the class Constituents. 
0060 
0061     This class is initialised by the AHADIC::Hadronisation_Parameters and made available to 
0062     the rest of the code through a corresponding Get-method, 
0063     AHADIC::Hadronisation_Parameters::GetConstituents().
0064 
0065     The total weights are given in the following way:
0066     -  u, d quarks:   \f$wt = 1\f$ 
0067     -  s quarks: \f$wt = \chi_S\f$ 
0068     -  \f$ud_0\f$ diquarks: \f$wt = \chi_B\f$ 
0069     -  \f$sd_0\f$, \f$su_0\f$ diquarks: \f$wt = \chi_{SQ}\chi_B\f$ 
0070     -  \f$dd_1\f$, \f$uu_1\f$ diquarks: \f$wt = 3\chi_1\chi_B\f$ 
0071     -  \f$sd_1\f$, \f$su_1\f$ diquarks: \f$wt = 3\chi_1\chi_{SQ}\chi_B\f$ 
0072     -  \f$ss_1\f$ diquarks: \f$wt = 3\chi_1\chi_{SS}\chi_B\f$ 
0073 
0074     Here \f$\chi_{B, S}\f$ are the baryon and strangeness suppression parameters, respectively.
0075     With the suppression factors \f$\chi_{SQ}\f$ and \f$\chi_{SS}\f$ for dingle and double
0076     strange diquarks and \f$chi_1\f$ for spin-1 diquarks, the sum of weights for the different
0077     diquarks species \f$\Sigma\f$ is given by
0078 
0079     \f$\Sigma = 2+\chi_S+\chi_B\cdot[1+2\chi_{SQ}+3\chi_1(2+2\chi_{SQ}+\chi_{SS})]\f$.
0080 
0081     Since the methods are just simple access methods, no further documentation seems to be 
0082     neccessary.
0083   */
0084   /*!
0085     \class Constituents
0086     \brief A wrapper around a searchable map, where flavours are connected with their respective 
0087     ConstituentCharacteristic.
0088   */
0089   ////////////////////////////////////////////////////////////////////////////////////////////////////
0090   // Description of member variables for Constituents
0091   ////////////////////////////////////////////////////////////////////////////////////////////////////
0092   /*!
0093     \var FlavCCMap Constituents::CCMap
0094     \brief The map of flavours and ConstituentCharacteristic's, on which this class operates and
0095     which is its actual core.
0096   */
0097   /*!
0098     \var double Constituents::m_minmass
0099     \brief The mass of the lightest constituent (no gluon), usually a d or u quark.
0100   */
0101   ////////////////////////////////////////////////////////////////////////////////////////////////////
0102   // Description of member methods for Constituents
0103   ////////////////////////////////////////////////////////////////////////////////////////////////////
0104   /*!
0105     \fn Constituents::Constituents(bool=false)
0106     \brief Constructor, the flag indicates whether diquarks are included. 
0107 
0108     The Constituents are constructed by the Hadronisation_Parameters, and actually use them in 
0109     order to fill the Constituents::CCMap. To this end, an explicit iteration is made over all 
0110     (light) flavours where masses and parts of the flavour weights are taken from the 
0111     Hadronisation_Parameters and the spin weights are fixed in the code (2 for quarks, 1 or 3 
0112     for scalar or vector diquarks, respectively).
0113   */
0114   /*!
0115     \fn Constituents::~Constituents()
0116     \brief Deletes the CCMap.
0117   */
0118   /*!
0119     \fn double Constituents::MinMass()
0120     \brief The constituent mass of the lightest constituent.
0121   */
0122   /*!
0123     \fn double Constituents::Mass(ATOOLS::Flavour & flav)
0124     \brief The constituent mass of a flavour.
0125 
0126     If the flavour is found in the CCMap, its constituent mass is returned; 
0127     if not, its original mass from the class ATOOLS::Flavour is returned.
0128   */
0129   /*!
0130     \fn double Constituents::TotWeight(ATOOLS::Flavour & flav)
0131     \brief The total weight for a given flavour.
0132 
0133     If the flavour is found in the CCMap, its total weight (namely the total weight, given in
0134     AHADIC::ConstituentCharacteristic = flavour weight times spin weight) is returned; if not 
0135     the method yields 0.
0136   */
0137   /*!
0138     \fn double Constituents::ISpin(ATOOLS::Flavour & flav)
0139     \brief The integer spin (twice the physical spin) for a given flavour.
0140 
0141     If the flavour is found in the CCMap, its integer spin is returned; if not the method 
0142     yields 0.
0143   */
0144   /*!
0145     \fn double Constituents::PrintConstituents()
0146     \brief Prints the ingedients of the CCMap.
0147   */
0148 }
0149 
0150 #endif