EIC Software
Reference for
EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
Kinematics.h
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file Kinematics.h
1
10
#ifndef INCLUDE_EICSMEAR_ERHIC_KINEMATICS_H_
11
#define INCLUDE_EICSMEAR_ERHIC_KINEMATICS_H_
12
13
#include <list>
14
#include <vector>
15
16
#include <Rtypes.h>
17
#include <TLorentzVector.h>
18
19
#include "
eicsmear/erhic/ParticleMC.h
"
20
#include "
eicsmear/erhic/ParticleIdentifier.h
"
21
#include "
eicsmear/erhic/VirtualParticle.h
"
22
23
namespace
erhic {
24
25
class
EventDis;
26
class
VirtualParticle;
27
31
struct
DisKinematics
:
public
TObject
{
35
DisKinematics
();
39
DisKinematics
(
double
x
,
double
y
,
double
nu,
double
Q2,
double
W2);
40
Double32_t
mX
;
41
Double32_t
mQ2
;
42
Double32_t
mW2
;
43
Double32_t
mNu
;
44
Double32_t
mY
;
45
46
static
bool
BoundaryWarning
;
47
48
ClassDef(
erhic::DisKinematics
, 1)
49
};
50
54
class
KinematicsComputer
{
55
public
:
56
virtual
~KinematicsComputer
() { }
57
virtual
TObject
*
Calculate
() = 0;
58
ClassDef(
erhic::KinematicsComputer
, 1)
59
};
60
66
class
LeptonKinematicsComputer
:
public
KinematicsComputer
{
67
public
:
68
virtual
~LeptonKinematicsComputer
() { }
72
explicit
LeptonKinematicsComputer
(
const
EventDis
&);
73
virtual
DisKinematics
*
Calculate
();
74
75
protected
:
76
std::vector<const VirtualParticle*>
mBeams
;
77
78
ClassDef(
erhic::LeptonKinematicsComputer
, 1)
79
};
80
88
class
JacquetBlondelComputer
:
public
KinematicsComputer
{
89
public
:
90
virtual
~JacquetBlondelComputer
();
100
explicit
JacquetBlondelComputer
(
const
EventDis
&);
101
virtual
DisKinematics
*
Calculate
();
102
103
protected
:
104
virtual
Double_t
ComputeY
()
const
;
105
virtual
Double_t
ComputeQSquared
()
const
;
106
virtual
Double_t
ComputeX
()
const
;
108
const
EventDis
&
mEvent
;
110
std::vector<const VirtualParticle*>
mParticles
;
111
112
ClassDef(
erhic::JacquetBlondelComputer
, 1)
113
};
114
119
class
DoubleAngleComputer
:
public
KinematicsComputer
{
120
public
:
121
virtual
~DoubleAngleComputer
();
131
explicit
DoubleAngleComputer
(
const
EventDis
&);
132
virtual
DisKinematics
*
Calculate
();
133
134
protected
:
135
const
EventDis
&
mEvent
;
139
virtual
Double_t
ComputeQuarkAngle
()
const
;
140
virtual
Double_t
ComputeY
()
const
;
141
virtual
Double_t
ComputeQSquared
()
const
;
142
virtual
Double_t
ComputeX
()
const
;
145
mutable
Bool_t
mHasChanged
;
147
mutable
Double_t
mAngle
;
148
std::vector<const VirtualParticle*>
mParticles
;
149
150
ClassDef(
erhic::DoubleAngleComputer
, 1)
151
};
152
153
}
// namespace erhic
154
155
#endif // INCLUDE_EICSMEAR_ERHIC_KINEMATICS_H_
eic-smear
blob
master
include
eicsmear
erhic
Kinematics.h
Built by
Jin Huang
. updated:
Mon Jan 22 2024 12:43:32
using
1.8.2 with
EIC GitHub integration