8 #ifndef Pythia8_HiddenValleyFragmentation_H
9 #define Pythia8_HiddenValleyFragmentation_H
11 #include "Pythia8/Basics.h"
12 #include "Pythia8/Event.h"
13 #include "Pythia8/FragmentationFlavZpT.h"
14 #include "Pythia8/FragmentationSystems.h"
15 #include "Pythia8/Info.h"
16 #include "Pythia8/MiniStringFragmentation.h"
17 #include "Pythia8/ParticleData.h"
18 #include "Pythia8/PythiaStdlib.h"
19 #include "Pythia8/Settings.h"
20 #include "Pythia8/StringFragmentation.h"
28 class HVStringFlav :
public StringFlav {
39 void init(Settings& settings, Rndm* rndmPtrIn);
42 FlavContainer pick(FlavContainer& flavOld);
45 int combine(FlavContainer& flav1, FlavContainer& flav2);
59 class HVStringPT :
public StringPT {
70 void init(Settings& settings, ParticleData& particleData, Rndm* rndmPtrIn);
78 class HVStringZ :
public StringZ {
89 void init(Settings& settings, ParticleData& particleData, Rndm* rndmPtrIn);
92 double zFrag(
int idOld,
int idNew = 0,
double mT2 = 1.);
95 virtual double stopMass() {
return 1.5 * mhvMeson;}
96 virtual double stopNewFlav() {
return 2.0;}
97 virtual double stopSmear() {
return 0.2;}
102 double mqv2, bmqv2, rFactqv, mhvMeson;
111 class HiddenValleyFragmentation {
116 HiddenValleyFragmentation() : doHVfrag(false), hvFlavSelPtr(NULL),
117 hvPTSelPtr(NULL), hvZSelPtr(NULL) {}
120 ~HiddenValleyFragmentation() {
if (doHVfrag) {
121 if (hvZSelPtr)
delete hvZSelPtr;
if (hvPTSelPtr)
delete hvPTSelPtr;
122 if (hvFlavSelPtr)
delete hvFlavSelPtr;} }
125 bool init(Info* infoPtrIn, Settings& settings,
126 ParticleData* particleDataPtrIn, Rndm* rndmPtrIn);
129 bool fragment(
Event& event);
137 ParticleData* particleDataPtr;
144 int nFlav, hvOldSize, hvNewSize;
145 double mhvMeson, mSys;
146 vector<int> ihvParton;
149 ColConfig hvColConfig;
155 StringFragmentation hvStringFrag;
158 MiniStringFragmentation hvMinistringFrag;
161 StringFlav* hvFlavSelPtr;
162 StringPT* hvPTSelPtr;
166 bool extractHVevent(
Event& event);
169 bool collapseToMeson();
172 bool insertHVevent(
Event& event);
180 #endif // Pythia8_HiddenValleyFragmentation_H