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/PhysicsBase.h"
20 #include "Pythia8/Settings.h"
29 class RHadrons :
public PhysicsBase {
34 RHadrons() : allowRH(), allowRSb(), allowRSt(), allowRGo(), allowSomeR(),
35 setMassesRH(), idRSb(), idRSt(), idRGo(), maxWidthRH(), probGluinoballRH(),
36 mOffsetCloudRH(), mCollapseRH(), diquarkSpin1RH(), m0Sb(), m0St(), m0Go(),
37 nRHad(0), iRHad(), iBef(), iSys(), systemPtr(), flavSelPtr(), zSelPtr() {}
43 void fragPtrs( StringFlav* flavSelPtrIn, StringZ* zSelPtrIn)
44 { flavSelPtr = flavSelPtrIn; zSelPtr = zSelPtrIn;}
47 bool produce( ColConfig& colConfig,
Event& event);
50 bool decay(
Event& event);
53 bool givesRHadron(
int id);
56 bool exist() {
return (nRHad > 0);}
60 for (
int iR = 0; iR < nRHad; ++iR)
61 if (iBefRHad[iR] == i || iCreRHad[iR] == i)
return iAftRHad[iR];
67 static const int IDRHADSB[14], IDRHADST[14], IDRHADGO[38], NTRYMAX;
68 static const double MSAFETY, EGBORROWMAX;
71 bool allowRH, allowRSb, allowRSt, allowRGo, allowSomeR, setMassesRH;
72 int idRSb, idRSt, idRGo;
73 double maxWidthRH, probGluinoballRH, mOffsetCloudRH, mCollapseRH,
74 diquarkSpin1RH, m0Sb, m0St, m0Go;
77 vector<int> iBefRHad, iCreRHad, iRHadron, iAftRHad;
78 vector<bool> isTriplet;
79 int nRHad, iRHad, iBef, iSys;
80 ColSinglet* systemPtr;
83 StringFlav* flavSelPtr;
87 bool splitOffJunction( ColConfig& colConfig,
Event& event);
90 bool openClosedLoop( ColConfig& colConfig,
Event& event);
93 bool splitSystem( ColConfig& colConfig,
Event& event);
96 bool produceSquark( ColConfig& colConfig,
Event& event);
99 bool produceGluino( ColConfig& colConfig,
Event& event);
102 int toIdWithSquark(
int id1,
int id2);
105 pair<int,int> fromIdWithSquark(
int idRHad);
108 int toIdWithGluino(
int id1,
int id2);
111 pair<int,int> fromIdWithGluino(
int idRHad);
114 bool newKin( Vec4 pOld1, Vec4 pOld2,
double mNew1,
double mNew2,
115 Vec4& pNew1, Vec4& pNew2,
bool checkMargin =
true);
123 #endif // Pythia8_RHadrons_H