9 #ifndef Pythia8_BeamSetup_H 10 #define Pythia8_BeamSetup_H 12 #include "Pythia8/Basics.h" 13 #include "Pythia8/BeamParticle.h" 14 #include "Pythia8/BeamShape.h" 15 #include "Pythia8/HadronLevel.h" 16 #include "Pythia8/Info.h" 17 #include "Pythia8/LesHouches.h" 18 #include "Pythia8/ParticleData.h" 19 #include "Pythia8/PartonDistributions.h" 20 #include "Pythia8/PartonLevel.h" 21 #include "Pythia8/PhysicsBase.h" 22 #include "Pythia8/ProcessLevel.h" 23 #include "Pythia8/PythiaStdlib.h" 24 #include "Pythia8/Settings.h" 41 bool setPDFPtr( PDFPtr pdfAPtrIn, PDFPtr pdfBPtrIn,
42 PDFPtr pdfHardAPtrIn =
nullptr, PDFPtr pdfHardBPtrIn =
nullptr,
43 PDFPtr pdfPomAPtrIn =
nullptr, PDFPtr pdfPomBPtrIn =
nullptr,
44 PDFPtr pdfGamAPtrIn =
nullptr, PDFPtr pdfGamBPtrIn =
nullptr,
45 PDFPtr pdfHardGamAPtrIn =
nullptr, PDFPtr pdfHardGamBPtrIn =
nullptr,
46 PDFPtr pdfUnresAPtrIn =
nullptr, PDFPtr pdfUnresBPtrIn =
nullptr,
47 PDFPtr pdfUnresGamAPtrIn =
nullptr, PDFPtr pdfUnresGamBPtrIn =
nullptr,
48 PDFPtr pdfVMDAPtrIn =
nullptr, PDFPtr pdfVMDBPtrIn =
nullptr);
54 if ( photonFluxAIn ) pdfGamFluxAPtr = photonFluxAIn;
55 if ( photonFluxBIn ) pdfGamFluxBPtr = photonFluxBIn;
59 bool setLHAupPtr( LHAupPtr lhaUpPtrIn) {lhaUpPtr = lhaUpPtrIn;
60 useNewLHA =
false;
return true;}
73 double pxBIn,
double pyBIn,
double pzBIn);
78 beamShapePtr = beamShapePtrIn;
return true;}
84 PDFPtr
getPDFPtr(
int idIn,
int sequence = 1,
string beam =
"A",
85 bool resolved =
true);
98 bool getVMDsideB() {
return doVMDsideB; }
117 bool doLHA =
false, useNewLHA =
false, skipInit =
false,
118 doMomentumSpread = {}, doVertexSpread = {}, doVarEcm = {},
119 allowIDAswitch = {}, hasSwitchedIDs = {}, beamA2gamma = {},
121 int idA = {}, idB = {}, frameType = {}, boostType = {}, iPDFAsave = {},
123 double mA = {}, mB = {}, pxA = {}, pxB = {}, pyA = {}, pyB = {}, pzA = {},
124 pzB = {}, eA = {}, eB = {}, pzAcm = {}, pzBcm = {}, eCM = {},
125 betaZ = {}, gammaZ = {};
126 Vec4 pAinit = {}, pBinit = {}, pAnow = {}, pBnow = {};
128 LHAupPtr lhaUpPtr = {};
148 331, 333, 411, 431, 443, 511, 531, 541, 553, 3212, 3312, 3334,
149 4112, 4312, 4332, 5112, 5312, 5332};
167 bool doNonPert = {}, doDiffraction = {}, doSoftQCD = {},
168 doHardDiff = {}, doProcessLevel = {}, doPartonVertex = {},
169 doVertexPlane = {}, isUnresolvedA = {}, isUnresolvedB = {},
170 doVMDsideA = {}, doVMDsideB = {}, beamAResGamma = {},
171 beamBResGamma = {}, beamAUnresGamma = {}, beamBUnresGamma = {};
174 PDFPtr pdfAPtr = {}, pdfBPtr = {}, pdfHardAPtr = {}, pdfHardBPtr = {},
175 pdfPomAPtr = {}, pdfPomBPtr = {}, pdfGamAPtr = {}, pdfGamBPtr = {},
176 pdfHardGamAPtr = {}, pdfHardGamBPtr = {}, pdfUnresAPtr = {},
177 pdfUnresBPtr = {}, pdfUnresGamAPtr = {}, pdfUnresGamBPtr = {},
178 pdfGamFluxAPtr = {}, pdfGamFluxBPtr = {}, pdfVMDAPtr = {},
182 vector<PDFPtr> pdfASavePtrs = {};
185 BeamShapePtr beamShapePtr = {};
191 bool initKinematics();
197 PDFPtr initLHAPDF(
int idIn,
string cfg);
BeamParticle beamVMDA
Alternative VMD beam-inside-beam.
Definition: BeamSetup.h:143
bool setPDFAPtr(PDFPtr pdfAPtrIn)
Routine to pass in pointers to PDF's. Usage optional.
Definition: BeamSetup.cc:105
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
Definition: BeamSetup.h:33
void newValenceContent()
Pick new beam valence flavours (for pi0, eta, K0S, Pomeron, etc.).
Definition: BeamSetup.cc:617
The Event class holds all info on the generated event.
Definition: Event.h:453
Definition: BeamParticle.h:133
bool setKinematics(double eCMIn)
Switch beam kinematics.
Definition: BeamSetup.cc:258
bool setPhotonFluxPtr(PDFPtr photonFluxAIn, PDFPtr photonFluxBIn)
Set photon fluxes externally. Used with option "PDF:lepton2gammaSet = 2".
Definition: BeamSetup.h:53
void clear()
Clear all beams.
Definition: BeamSetup.cc:602
void onInitInfoPtr() override
Definition: BeamSetup.h:153
BeamSetup()=default
Constructor.
bool setPDFPtr(PDFPtr pdfAPtrIn, PDFPtr pdfBPtrIn, PDFPtr pdfHardAPtrIn=nullptr, PDFPtr pdfHardBPtrIn=nullptr, PDFPtr pdfPomAPtrIn=nullptr, PDFPtr pdfPomBPtrIn=nullptr, PDFPtr pdfGamAPtrIn=nullptr, PDFPtr pdfGamBPtrIn=nullptr, PDFPtr pdfHardGamAPtrIn=nullptr, PDFPtr pdfHardGamBPtrIn=nullptr, PDFPtr pdfUnresAPtrIn=nullptr, PDFPtr pdfUnresBPtrIn=nullptr, PDFPtr pdfUnresGamAPtrIn=nullptr, PDFPtr pdfUnresGamBPtrIn=nullptr, PDFPtr pdfVMDAPtrIn=nullptr, PDFPtr pdfVMDBPtrIn=nullptr)
Possibility to pass in pointers to PDF's.
Definition: BeamSetup.cc:21
bool initFrame()
Set up frame of beams, Les Houches input, and switches for beam handling.
Definition: BeamSetup.cc:342
BeamParticle beamPomA
Alternative Pomeron beam-inside-beam.
Definition: BeamSetup.h:135
bool doLHA
Some data values are kept public so that the Pythia class can access them.
Definition: BeamSetup.h:117
BeamParticle beamA
The two incoming beams.
Definition: BeamSetup.h:131
map< string, PDFPtr > getPDFPtr()
Return a map of the PDF pointers.
Definition: BeamSetup.cc:1558
BeamParticle beamGamA
Alternative photon beam-inside-beam.
Definition: BeamSetup.h:139
bool setBeamIDs(int idAin, int idBin=0)
Switch to new beam particle identities; for similar hadrons only.
Definition: BeamSetup.cc:180
bool setLHAupPtr(LHAupPtr lhaUpPtrIn)
Possibility to pass in pointer to external LHA-interfaced generator.
Definition: BeamSetup.h:59
void list() const
Print extracted parton list; for debug mainly.
Definition: BeamParticle.cc:1309
bool getVMDsideA()
Return whether VMD states sampled.
Definition: BeamSetup.h:97
void list() const
Print parton lists for the main beams. For debug mainly.
Definition: BeamSetup.h:114
bool initBeams(bool doNonPertIn, StringFlav *flavSelPtr)
Initialize kinematics and PDFs of beams.
Definition: BeamSetup.cc:505
bool setPDFBPtr(PDFPtr pdfBPtrIn)
Routine to pass in pointers to PDF's. Usage optional.
Definition: BeamSetup.cc:129
int represent(int idIn) const
Definition: BeamSetup.cc:151
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
The StringFlav class is used to select quark and hadron flavours.
Definition: FragmentationFlavZpT.h:84
BeamShapePtr getBeamShapePtr()
Possibility to access the pointer to the BeamShape object.
Definition: BeamSetup.h:81
vector< int > idAList
Hadron types for rapid switching.
Definition: BeamSetup.h:147
void boostAndVertex(Event &process, Event &event, bool toLab, bool setVertex)
Boost from CM frame to lab frame, or inverse. Set production vertex.
Definition: BeamSetup.cc:701
bool setBeamShapePtr(BeamShapePtr beamShapePtrIn)
Possibility to pass in pointer for beam shape.
Definition: BeamSetup.h:77
void nextKinematics()
Recalculate kinematics for each event when beam momentum has a spread.
Definition: BeamSetup.cc:632