9 #ifndef Pythia8_BeamRemnants_H 10 #define Pythia8_BeamRemnants_H 12 #include "Pythia8/Basics.h" 13 #include "Pythia8/BeamParticle.h" 14 #include "Pythia8/ColourReconnection.h" 15 #include "Pythia8/Event.h" 16 #include "Pythia8/FragmentationFlavZpT.h" 17 #include "Pythia8/Info.h" 18 #include "Pythia8/JunctionSplitting.h" 19 #include "Pythia8/ParticleData.h" 20 #include "Pythia8/PartonDistributions.h" 21 #include "Pythia8/PartonSystems.h" 22 #include "Pythia8/PartonVertex.h" 23 #include "Pythia8/PhysicsBase.h" 24 #include "Pythia8/PythiaStdlib.h" 25 #include "Pythia8/Settings.h" 26 #include "Pythia8/StringLength.h" 40 BeamRemnants() : doPrimordialKT(), allowRescatter(), doRescatterRestoreY(),
41 doReconnect(), primordialKTsoft(), primordialKThard(),
42 primordialKTremnant(), halfScaleForKT(), halfMassForKT(),
43 reducedKTatHighY(), remnantMode(), reconnectMode(), isDIS(), doMPI(),
44 beamA2gamma(), beamB2gamma(), nSys(), oldSize(), iDS(0), eCM(), sCM(),
45 colourReconnectionPtr(), partonVertexPtr(), doPartonVertex() { }
48 bool init( PartonVertexPtr partonVertexPtrIn,
49 ColRecPtr colourReconnectionPtrIn);
53 int iDSin) {beamAPtr = beamAPtrIn; beamBPtr = beamBPtrIn; iDS = iDSin;}
56 bool add(
Event& event,
int iFirst = 0,
bool doDiffCR =
false);
66 static const bool ALLOWCOLOURTWICE, CORRECTMISMATCH;
67 static const int NTRYCOLMATCH, NTRYKINMATCH;
70 bool doPrimordialKT, allowRescatter, doRescatterRestoreY, doReconnect;
71 double primordialKTsoft, primordialKThard, primordialKTremnant,
72 halfScaleForKT, halfMassForKT, reducedKTatHighY;
73 int remnantMode, reconnectMode;
76 bool isDIS, doMPI, beamA2gamma, beamB2gamma;
77 int nSys, oldSize, iDS;
81 vector<int> colFrom, colTo;
84 ColRecPtr colourReconnectionPtr;
93 bool addOld(
Event& event);
96 bool addNew(
Event& event);
99 PartonVertexPtr partonVertexPtr;
103 bool setKinematics(
Event& event);
108 bool setOneRemnKinematics(
Event& event);
111 void updateColEvent(
Event& event, vector<pair <int,int> > colChanges);
114 bool checkColours(
Event& event);
117 vector <vector<int> > findJunChains(vector<vector <int> > iPartonJun,
118 vector<vector<int> > iPartonAjun);
121 bool splitJunChains(
Event& event, vector<vector<int > >& iPartonJun,
122 vector<vector< int > >& ipartonAntiJun);
125 vector<vector<int > > getJunChains(
Event& event);
Definition: PhysicsBase.h:27
void registerSubObject(PhysicsBase &pb)
Register a sub object that should have its information in sync with this.
Definition: PhysicsBase.cc:56
The Event class holds all info on the generated event.
Definition: Event.h:453
Definition: BeamParticle.h:133
Definition: JunctionSplitting.h:30
void reassignBeamPtrs(BeamParticle *beamAPtrIn, BeamParticle *beamBPtrIn, int iDSin)
New beams possible for handling of hard diffraction.
Definition: BeamRemnants.h:52
BeamRemnants()
Constructor.
Definition: BeamRemnants.h:40
StringLength class. It is used to calculate the lambda measure.
Definition: StringLength.h:23
virtual void onInitInfoPtr() override
Definition: BeamRemnants.h:60
bool init(PartonVertexPtr partonVertexPtrIn, ColRecPtr colourReconnectionPtrIn)
Initialization.
Definition: BeamRemnants.cc:38
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
Definition: BeamRemnants.h:35
bool add(Event &event, int iFirst=0, bool doDiffCR=false)
Select the flavours/kinematics/colours of the two beam remnants.
Definition: BeamRemnants.cc:99