LDMX Software
SimCore
include
SimCore
LHE
LHEEvent.h
Go to the documentation of this file.
1
9
#ifndef SIMCORE_LHEEVENT_H_
10
#define SIMCORE_LHEEVENT_H_
11
12
// LDMX
13
#include "Framework/Exception/Exception.h"
14
#include "
SimCore/LHE/LHEParticle.h
"
15
16
// Geant4
17
#include "globals.hh"
18
19
// STL
20
#include <iostream>
21
#include <memory>
22
#include <sstream>
23
#include <vector>
24
25
namespace
simcore::lhe {
26
37
class
LHEEvent
{
38
public
:
43
LHEEvent
(std::string& data);
44
48
virtual
~LHEEvent
() =
default
;
49
54
int
getNumParticles
()
const
;
55
60
int
getProcessID
()
const
;
61
66
double
getEventWeight
()
const
;
67
72
double
getScaleQ
()
const
;
73
78
double
getCouplingQed
()
const
;
79
84
double
getCouplingQcd
()
const
;
85
89
void
setVertex
(
double
x_,
double
y_,
double
z_);
90
94
void
setVertex
(
const
std::string& line);
95
100
const
double
*
getVertex
()
const
;
101
106
double
getVertexTime
()
const
;
107
112
void
addParticle
(std::unique_ptr<LHEParticle> particle);
113
118
const
std::vector<std::unique_ptr<LHEParticle>>&
getParticles
()
const
;
119
120
private
:
124
int
num_particles_
;
125
129
int
process_id_
;
130
134
double
event_weight_
;
135
139
double
scale_q_
;
140
144
double
coupling_qed_
;
145
149
double
coupling_qcd_
;
150
154
double
vtx_
[3];
155
159
double
vtxt_
{0.};
160
164
std::vector<std::unique_ptr<LHEParticle>>
particles_
;
165
};
166
167
}
// namespace simcore::lhe
168
169
#endif
LHEParticle.h
Class defining a single particle record in an LHE event.
simcore::lhe::LHEEvent
LHE event with a list of particles and information from the header block.
Definition
LHEEvent.h:37
simcore::lhe::LHEEvent::getEventWeight
double getEventWeight() const
Get the event weight (XWGTUP).
Definition
LHEEvent.cxx:43
simcore::lhe::LHEEvent::LHEEvent
LHEEvent(std::string &data)
Class constructor.
Definition
LHEEvent.cxx:6
simcore::lhe::LHEEvent::vtx_
double vtx_[3]
Vertex location.
Definition
LHEEvent.h:154
simcore::lhe::LHEEvent::getProcessID
int getProcessID() const
Get the ID of the physics process (IDRUP).
Definition
LHEEvent.cxx:41
simcore::lhe::LHEEvent::addParticle
void addParticle(std::unique_ptr< LHEParticle > particle)
Add a particle to the event.
Definition
LHEEvent.cxx:55
simcore::lhe::LHEEvent::getCouplingQed
double getCouplingQed() const
Get the value of the QED coupling (AQEDUP).
Definition
LHEEvent.cxx:47
simcore::lhe::LHEEvent::num_particles_
int num_particles_
Number of particles.
Definition
LHEEvent.h:124
simcore::lhe::LHEEvent::getVertexTime
double getVertexTime() const
Get the vertex time.
Definition
LHEEvent.cxx:53
simcore::lhe::LHEEvent::setVertex
void setVertex(double x_, double y_, double z_)
Set the vertex location (careful to match units as expected!)
Definition
LHEEvent.cxx:64
simcore::lhe::LHEEvent::getCouplingQcd
double getCouplingQcd() const
Get the value of the QCD coupling (AQCDUP).
Definition
LHEEvent.cxx:49
simcore::lhe::LHEEvent::event_weight_
double event_weight_
The event weight.
Definition
LHEEvent.h:134
simcore::lhe::LHEEvent::~LHEEvent
virtual ~LHEEvent()=default
Class destructor.
simcore::lhe::LHEEvent::getScaleQ
double getScaleQ() const
Get the scale Q of parton distributions (SCALUP).
Definition
LHEEvent.cxx:45
simcore::lhe::LHEEvent::coupling_qcd_
double coupling_qcd_
QCD coupling value.
Definition
LHEEvent.h:149
simcore::lhe::LHEEvent::getNumParticles
int getNumParticles() const
Get the number of particles (NUP) in the event.
Definition
LHEEvent.cxx:39
simcore::lhe::LHEEvent::getVertex
const double * getVertex() const
Get the vertex location (careful to match units as expected!)
Definition
LHEEvent.cxx:51
simcore::lhe::LHEEvent::particles_
std::vector< std::unique_ptr< LHEParticle > > particles_
The list of particles.
Definition
LHEEvent.h:164
simcore::lhe::LHEEvent::getParticles
const std::vector< std::unique_ptr< LHEParticle > > & getParticles() const
Get the list of particles in the event.
Definition
LHEEvent.cxx:59
simcore::lhe::LHEEvent::scale_q_
double scale_q_
Scale Q of parton distributions.
Definition
LHEEvent.h:139
simcore::lhe::LHEEvent::vtxt_
double vtxt_
Vertex time.
Definition
LHEEvent.h:159
simcore::lhe::LHEEvent::process_id_
int process_id_
The physics process ID.
Definition
LHEEvent.h:129
simcore::lhe::LHEEvent::coupling_qed_
double coupling_qed_
QED coupling value.
Definition
LHEEvent.h:144
Generated by
1.12.0