13 #ifndef Pythia8_HIInfo_H 14 #define Pythia8_HIInfo_H 16 #include "Pythia8/Pythia.h" 17 #include "Pythia8/HIBasics.h" 18 #include "Pythia8/HISubCollisionModel.h" 36 : idProjSave(0), idTargSave(0), bSave(0.0), NSave(0), NAccSave(0),
37 sigmaTotSave(0.0), sigmaNDSave(0.0), sigErr2TotSave(0.0),
38 sigErr2NDSave(0.0), avNDbSave(0.0), weightSave(0.0), weightSumSave(0.0),
39 nCollSave(10, 0), nProjSave(10, 0), nTargSave(10, 0), nFailSave(0),
40 subCollisionsPtrSave(nullptr) {}
54 return sigmaTotSave/millibarn;
59 return sqrt(sigErr2TotSave/max(1.0,
double(NSave)))/millibarn;
65 return sigmaNDSave/millibarn;
70 return sqrt(sigErr2NDSave/max(1.0,
double(NSave)));
94 int nCollND()
const {
return nCollSave[1]; }
97 int nCollNDTot()
const {
return nProjSave[1] + nTargSave[1] - nCollSave[1]; }
150 double weight()
const {
return weightSave; }
169 void addAttempt(
double T,
double bin,
double phiin,
double bweight);
172 void reweight(
double w) {
177 void select(
Info & in) {
192 int addProjectileNucleon(
const Nucleon & n);
193 int addTargetNucleon(
const Nucleon & n);
196 int idProjSave, idTargSave;
203 long NSave, NAccSave;
204 double sigmaTotSave, sigmaNDSave, sigErr2TotSave, sigErr2NDSave;
206 double weightSave, weightSumSave;
210 vector<int> nCollSave, nProjSave, nTargSave;
214 map<int,double> sumPrimW, sumPrimW2;
216 map<int,string> NamePrim;
233 subCollisionsPtrSave = subCollisionsPtrIn; }
259 virtual void init(
int idProjIn,
int idTargIn) {
260 idProjSave = idProjIn;
261 idTargSave = idTargIn;
266 virtual shared_ptr<ImpactParameterGenerator> impactParameterGenerator()
267 const {
return nullptr; }
271 virtual shared_ptr<NucleusModel> projectileModel()
const {
return nullptr; }
272 virtual bool hasTargetModel()
const {
return false; }
273 virtual shared_ptr<NucleusModel> targetModel()
const {
return nullptr; }
278 virtual shared_ptr<SubCollisionModel> subCollisionModel() {
return nullptr; }
282 virtual double eventOrdering(
const Event &,
const Info &) {
return -1; }
287 virtual bool fixIsoSpin(
EventInfo &) {
return false; }
301 virtual bool forceHadronLevel(
Pythia &) {
return false; }
308 findRecoilers(
const Event &,
bool ,
int ,
int ,
309 const Vec4 & ,
const Vec4 & )
const {
310 return vector<int>();
int nCollSDP() const
Definition: HIInfo.h:101
virtual void init(int idProjIn, int idTargIn)
Initialize this user hook.
Definition: HIInfo.h:259
bool canAddNucleonExcitation() const
Definition: HIInfo.h:295
virtual bool canFindRecoilers() const
Definition: HIInfo.h:306
long nAttempts() const
The number of attempted impact parameter points.
Definition: HIInfo.h:80
double weight() const
The weight for this collision.
Definition: HIInfo.h:150
int nElProj() const
Definition: HIInfo.h:131
int nFail() const
The number of failed nucleon excitations in the current event.
Definition: HIInfo.h:156
virtual bool canShiftEvent() const
A user-supplied method for shifting the event in impact parameter space.
Definition: HIInfo.h:290
int nCollND() const
Definition: HIInfo.h:94
int nCollEL() const
The number of separate elastic sub collisions.
Definition: HIInfo.h:116
The Event class holds all info on the generated event.
Definition: Event.h:453
double sigmaTotErr() const
The estimated statistical error on sigmaTot().
Definition: HIInfo.h:58
double b() const
The impact-parameter distance in the current event.
Definition: HIInfo.h:43
Definition: HINucleusModel.h:28
double sigmaTot() const
The Monte Carlo integrated total cross section in the current run.
Definition: HIInfo.h:53
int nCollCD() const
Definition: HIInfo.h:113
int nElTarg() const
Definition: HIInfo.h:147
int nPartTarg() const
Definition: HIInfo.h:135
virtual ~HIUserHooks()
Virtual destructor.
Definition: HIInfo.h:256
The SubCollisionSet gives a set of subcollisions between two nuclei.
Definition: HISubCollisionModel.h:84
double weightSum() const
The sum of weights of the produced events.
Definition: HIInfo.h:153
virtual bool hasSubCollisionModel()
Definition: HIInfo.h:277
virtual bool hasImpactParameterGenerator() const
A user-supplied impact parameter generator.
Definition: HIInfo.h:265
void failedExcitation()
Register a failed nucleon excitation.
Definition: HIInfo.h:161
double sigmaND() const
Definition: HIInfo.h:64
const SubCollisionSet * subCollisionsPtr()
Access to subcollision to be extracted by the user.
Definition: HIInfo.h:227
int nPartProj() const
The number of interacting projectile nucleons in the current event.
Definition: HIInfo.h:119
HIInfo * hiInfo
Definition: Info.h:113
double sigmaNDErr() const
The estimated statistical error on sigmaND().
Definition: HIInfo.h:69
int nCollDD() const
Definition: HIInfo.h:109
Definition: HISubCollisionModel.h:30
virtual bool hasProjectileModel() const
A user-supplied NucleusModel for the projectile and target.
Definition: HIInfo.h:270
HIUserHooks()
The default constructor is empty.
Definition: HIInfo.h:253
Class for storing Events and Info objects.
Definition: HIBasics.h:47
int idProjSave
Definition: HIInfo.h:317
int nAbsTarg() const
Definition: HIInfo.h:139
int nAbsProj() const
Definition: HIInfo.h:123
HIInfo()
Constructor.
Definition: HIInfo.h:35
int nCollNDTot() const
The total number of non-diffractive sub collisions in the current event.
Definition: HIInfo.h:97
virtual bool canFixIsoSpin() const
Definition: HIInfo.h:286
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
The Pythia class contains the top-level routines to generate an event.
Definition: Pythia.h:71
int nCollSDT() const
Definition: HIInfo.h:105
int nDiffTarg() const
Definition: HIInfo.h:143
double avNDb() const
Definition: HIInfo.h:75
virtual bool canForceHadronLevel() const
A user supplied wrapper around the Pythia::forceHadronLevel()
Definition: HIInfo.h:300
virtual bool hasEventOrdering() const
A user-supplied ordering of events in (inverse) hardness.
Definition: HIInfo.h:281
int nDiffProj() const
Definition: HIInfo.h:127
double phi() const
The impact parameter angle.
Definition: HIInfo.h:48
Definition: HeavyIons.h:31
The default HeavyIon model in Pythia.
Definition: HeavyIons.h:162
long nAccepted() const
The number of produced events.
Definition: HIInfo.h:85
int nCollTot() const
The total number of separate sub-collisions.
Definition: HIInfo.h:90