9 #ifndef Pythia8_RHadrons_H 10 #define Pythia8_RHadrons_H 12 #include "Pythia8/FragmentationModel.h" 27 allowRGo(), allowSomeR(), setMassesRH(), idRSb(), idRSt(), idRGo(),
28 maxWidthRH(), probGluinoballRH(), mOffsetCloudRH(), mCollapseRH(),
29 diquarkSpin1RH(), m0Sb(), m0St(), m0Go(), nRHad(0), iRHad(), iBef(),
30 iSys(), systemPtr() {}
34 StringZ* zSelPtrIn =
nullptr, FragModPtr fragModPtrIn =
nullptr)
override;
38 bool isDiff =
false,
bool systemRecoil =
true)
override;
47 bool exist() {
return (nRHad > 0);}
51 for (
int iR = 0; iR < nRHad; ++iR)
52 if (iBefRHad[iR] == i || iCreRHad[iR] == i)
return iAftRHad[iR];
58 static const int IDRHADSB[14], IDRHADST[14], IDRHADGO[38], NTRYMAX;
59 static const double MSAFETY, EGBORROWMAX;
62 bool allowRH, allowRSb, allowRSt, allowRGo, allowSomeR, setMassesRH;
63 int idRSb, idRSt, idRGo;
64 double maxWidthRH, probGluinoballRH, mOffsetCloudRH, mCollapseRH,
65 diquarkSpin1RH, m0Sb, m0St, m0Go;
68 vector<int> iBefRHad, iCreRHad, iRHadron, iAftRHad;
69 vector<bool> isTriplet;
70 int nRHad, iRHad, iBef, iSys;
89 int toIdWithSquark(
int id1,
int id2);
92 pair<int,int> fromIdWithSquark(
int idRHad);
95 int toIdWithGluino(
int id1,
int id2);
98 pair<int,int> fromIdWithGluino(
int idRHad);
101 bool newKin(
Vec4 pOld1,
Vec4 pOld2,
double mNew1,
double mNew2,
102 Vec4& pNew1,
Vec4& pNew2,
bool checkMargin =
true);
bool init(StringFlav *flavSelPtrIn=nullptr, StringPT *pTSelPtrIn=nullptr, StringZ *zSelPtrIn=nullptr, FragModPtr fragModPtrIn=nullptr) override
Initialize and save pointers.
Definition: RHadrons.cc:50
The Event class holds all info on the generated event.
Definition: Event.h:408
The StringPT class is used to select select transverse momenta.
Definition: FragmentationFlavZpT.h:326
bool exist()
Tell whether any R-hadrons have been formed.
Definition: RHadrons.h:47
Definition: RHadrons.h:21
The StringZ class is used to sample the fragmentation function f(z).
Definition: FragmentationFlavZpT.h:265
bool decay(Event &event)
Decay R-hadrons.
Definition: RHadrons.cc:298
bool fragment(int iSub, ColConfig &colConfig, Event &event, bool isDiff=false, bool systemRecoil=true) override
Fragment the event.
Definition: RHadrons.cc:173
bool givesRHadron(int id)
Tell whether a given particle is supposed to form R-hadrons.
Definition: RHadrons.cc:161
The ColConfig class describes the colour configuration of the whole event.
Definition: FragmentationSystems.h:60
int trace(int i)
Tell whether a R-hadron production+decay happened, and trace down.
Definition: RHadrons.h:50
FragmentationModel is the base class for handling fragmentation algorithms.
Definition: FragmentationModel.h:28
RHadrons()
Constructor.
Definition: RHadrons.h:26
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
The StringFlav class is used to select quark and hadron flavours.
Definition: FragmentationFlavZpT.h:84
Definition: FragmentationSystems.h:31