9 #ifndef Pythia8_RHadrons_H
10 #define Pythia8_RHadrons_H
12 #include "Pythia8/Basics.h"
13 #include "Pythia8/Event.h"
14 #include "Pythia8/FragmentationFlavZpT.h"
15 #include "Pythia8/FragmentationSystems.h"
16 #include "Pythia8/Info.h"
17 #include "Pythia8/ParticleData.h"
18 #include "Pythia8/PythiaStdlib.h"
19 #include "Pythia8/Settings.h"
33 RHadrons() : nRHad(0) {}
36 bool init( Info* infoPtrIn, Settings& settings,
37 ParticleData* particleDataPtrIn, Rndm* rndmPtrIn);
40 void fragPtrs( StringFlav* flavSelPtrIn, StringZ* zSelPtrIn)
41 { flavSelPtr = flavSelPtrIn; zSelPtr = zSelPtrIn;}
44 bool produce( ColConfig& colConfig,
Event& event);
47 bool decay(
Event& event);
50 bool givesRHadron(
int id);
53 bool exist() {
return (nRHad > 0);}
57 for (
int iR = 0; iR < nRHad; ++iR)
58 if (iBefRHad[iR] == i || iCreRHad[iR] == i)
return iAftRHad[iR];
64 static const int IDRHADSB[14], IDRHADST[14], IDRHADGO[38], NTRYMAX;
65 static const double MSAFETY, EGBORROWMAX;
68 bool allowRH, allowRSb, allowRSt, allowRGo, allowSomeR, setMassesRH;
69 int idRSb, idRSt, idRGo;
70 double maxWidthRH, probGluinoballRH, mOffsetCloudRH, mCollapseRH,
71 diquarkSpin1RH, m0Sb, m0St, m0Go;
74 vector<int> iBefRHad, iCreRHad, iRHadron, iAftRHad;
75 vector<bool> isTriplet;
76 int nRHad, iRHad, iBef, iSys;
77 ColSinglet* systemPtr;
83 ParticleData* particleDataPtr;
89 StringFlav* flavSelPtr;
93 bool splitOffJunction( ColConfig& colConfig,
Event& event);
96 bool openClosedLoop( ColConfig& colConfig,
Event& event);
99 bool splitSystem( ColConfig& colConfig,
Event& event);
102 bool produceSquark( ColConfig& colConfig,
Event& event);
105 bool produceGluino( ColConfig& colConfig,
Event& event);
108 int toIdWithSquark(
int id1,
int id2);
111 pair<int,int> fromIdWithSquark(
int idRHad);
114 int toIdWithGluino(
int id1,
int id2);
117 pair<int,int> fromIdWithGluino(
int idRHad);
120 bool newKin( Vec4 pOld1, Vec4 pOld2,
double mNew1,
double mNew2,
121 Vec4& pNew1, Vec4& pNew2,
bool checkMargin =
true);
129 #endif // Pythia8_RHadrons_H