PYTHIA  8.312
HIBasics.h
1 // HIBasics.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2024 Torbjorn Sjostrand.
3 // PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
4 // Please respect the MCnet Guidelines, see GUIDELINES for details.
5 
6 // This file contains the definition of the EventInfo and
7 // HIUserHooks classes, as well as the HIUnits namespace.
8 //
9 // EventInfo: stores full nucleon-nucleon events with corresponding Info.
10 // HIUserHooks: User hooks for HeavyIons models.
11 
12 #ifndef Pythia8_HIBasics_H
13 #define Pythia8_HIBasics_H
14 
15 #include "Pythia8/Pythia.h"
16 
17 namespace Pythia8 {
18 
19 // Forward declarations.
20 class Nucleon;
21 class SubCollision;
22 
23 //==========================================================================
24 
25 // The HIUnits namespace defines the unitsystem used by the heavy ion
26 // machinery in Pythia8. In particular all lengths are in femtometer
27 // and cross sections are therefore in squared femtometer.
28 namespace HIUnits {
29 
30 // Lengths
31 const double femtometer = 1.0;
32 const double millimeter = 1.0e12;
33 
34 // Cross sections
35 const double femtometer2 = 1.0;
36 const double millibarn = 0.1;
37 const double nanobarn = 1.0e-7;
38 
39 }
40 
41 using namespace HIUnits;
42 
43 //==========================================================================
44 
45 // Class for storing Events and Info objects.
46 
47 class EventInfo {
48 
49 public:
50 
51  // Empty constructor.
52  EventInfo(): code(0), ordering(-1.0), coll(0), ok(false) {}
53 
54  // The Event object.
56 
57  // The corresponding Info object.
59 
60  // The code for the subprocess.
61  int code;
62 
63  // The ordering variable of this event.
64  double ordering;
65  bool operator<(const EventInfo & ei) const {
66  return ordering < ei.ordering;
67  }
68 
69  // The associated SubCollision object.
71 
72  // Is the event properly generated?
73  bool ok;
74 
75  // Which projectile and target nucleons are included and where are
76  // they placed?
77  map<Nucleon*, pair<int,int> > projs, targs;
78 
79 };
80 
81 //==========================================================================
82 
83 } // end namespace Pythia8
84 
85 #endif // Pythia8_HIBasics_H
Definition: Info.h:45
The Event class holds all info on the generated event.
Definition: Event.h:453
map< Nucleon *, pair< int, int > > projs
Definition: HIBasics.h:77
Info info
The corresponding Info object.
Definition: HIBasics.h:58
const double femtometer2
Cross sections.
Definition: HIBasics.h:35
double ordering
The ordering variable of this event.
Definition: HIBasics.h:64
Event event
The Event object.
Definition: HIBasics.h:55
bool ok
Is the event properly generated?
Definition: HIBasics.h:73
int code
The code for the subprocess.
Definition: HIBasics.h:61
Definition: HISubCollisionModel.h:30
Class for storing Events and Info objects.
Definition: HIBasics.h:47
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
const SubCollision * coll
The associated SubCollision object.
Definition: HIBasics.h:70
const double femtometer
Lengths.
Definition: HIBasics.h:31
EventInfo()
Empty constructor.
Definition: HIBasics.h:52
bool operator<(const ColourDipolePtr &d1, const ColourDipolePtr &d2)
Comparison operator by index for two dipole pointers.
Definition: ColourReconnection.h:72