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 BeamParticlePtr beamBPtrIn,
int iDSin) {
54 beamAPtr = beamAPtrIn; beamBPtr = beamBPtrIn; iDS = iDSin;}
57 bool add(
Event& event,
int iFirst = 0,
bool doDiffCR =
false);
67 static const bool ALLOWCOLOURTWICE, CORRECTMISMATCH;
68 static const int NTRYCOLMATCH, NTRYKINMATCH;
71 bool doPrimordialKT, allowRescatter, doRescatterRestoreY, doReconnect;
72 double primordialKTsoft, primordialKThard, primordialKTremnant,
73 halfScaleForKT, halfMassForKT, reducedKTatHighY;
74 int remnantMode, reconnectMode;
77 bool isDIS, doMPI, beamA2gamma, beamB2gamma;
78 int nSys, oldSize, iDS;
82 vector<int> colFrom, colTo;
85 ColRecPtr colourReconnectionPtr;
94 bool addOld(
Event& event);
97 bool addNew(
Event& event);
100 PartonVertexPtr partonVertexPtr;
104 bool setKinematics(
Event& event);
109 bool setOneRemnKinematics(
Event& event);
112 void updateColEvent(
Event& event, vector<pair <int,int> > colChanges);
115 bool checkColours(
Event& event);
118 vector <vector<int> > findJunChains(vector<vector <int> > iPartonJun,
119 vector<vector<int> > iPartonAjun);
122 bool splitJunChains(
Event& event, vector<vector<int > >& iPartonJun,
123 vector<vector< int > >& ipartonAntiJun);
126 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:408
Definition: JunctionSplitting.h:30
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:61
void reassignBeamPtrs(BeamParticlePtr beamAPtrIn, BeamParticlePtr beamBPtrIn, int iDSin)
New beams possible for handling of hard diffraction.
Definition: BeamRemnants.h:52
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