EventShapes.hh
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // EventShapes.h is a part of Herwig++ - A multi-purpose Monte Carlo
4 // event generator Copyright (C) 2002-2011 The Herwig Collaboration
5 //
6 // Herwig++ is licenced under version 2 of the GPL, see COPYING for
7 // details. Please respect the MCnet academic guidelines, see
8 // GUIDELINES for details.
9 //
10 
11 // Jan Hajer - replaced ThePEG classes with BoCA classes
12 
13 #pragma once
14 
15 #include "boca/math/Matrix3.hh"
16 #include "boca/fastjet/Jet.hh"
18 
19 namespace boca
20 {
21 
26 {
27 
28 public:
29 
38  EventShapes();
39 
43  EventShapes(std::vector<Jet> const& jets);
44 
48  EventShapes(std::vector<LorentzVector<Momentum>> const& lorentz_vectors);
50 
61  double Thrust() const;
62 
66  double ThrustMajor() const;
67 
71  double ThrustMinor() const;
72 
76  double Oblateness() const;
77 
82 
86  Vector3<double> MajorAxis() const;
87 
91  Vector3<double> MinorAxis() const;
93 
102  double CParameter() const;
103 
107  double DParameter() const;
108 
112  std::vector<double> LinTenEigenValues() const;
113 
117  std::vector<Vector3<double>> LinTenEigenVectors() const;
119 
128  double Sphericity() const;
129 
133  double Aplanarity() const;
134 
138  double Planarity() const;
139 
144 
148  std::vector<double> SphericityEigenValues() const;
149 
153  std::vector<Vector3<double>> SphericityEigenVectors() const;
155 
160 
169  Momentum PtInT(LorentzVector<Momentum> const& lorentz_vector) const;
170 
175  Momentum PtOutT(LorentzVector<Momentum> const& lorentz_vector) const;
176 
180  Angle RapidityT(LorentzVector<Momentum> const& lorentz_vector) const;
181 
186  Momentum PtInS(LorentzVector<Momentum> const& lorentz_vector) const;
187 
192  Momentum PtOutS(LorentzVector<Momentum> const& lorentz_vector) const;
193 
197  Angle RapidityS(LorentzVector<Momentum> const& lorentz_vector) const;
199 
200 private:
201 
210  Momentum ScalarMomentum() const;
211 
215  Array3<GradedVector3<double>> Thrusts() const;
216 
220  Array3<GradedVector3<double>> LinearTensors() const;
221 
225  Array3<GradedVector3<double>> SphericalTensors() const;
227 
236  Array3<GradedVector3<double>> Thrusts1() const;
237 
241  Array3<GradedVector3<double>> Thrusts2() const;
242 
246  Array3<GradedVector3<double>> Thrusts3() const;
247 
251  Array3<GradedVector3<double>> Thrusts4() const;
252 
256  GradedVector3<Momentum> Thrust(std::vector<Vector3<Momentum>> const& vectors) const;
257 
261  GradedVector3<Momentum> Major(std::vector<Vector3<Momentum>> const& vectors) const;
263 
272  std::vector<LorentzVector<Momentum>> LorentzVectors() const;
273 
277  std::vector<Vector3<Momentum>> Vectors() const;
279 
288  std::vector<LorentzVector<Momentum>> lorentz_vectors_;
289 
295 
304  Mutable<Momentum> scalar_momentum_;
305 
309  Mutable<boca::HemisphereMasses> hemishpere_masses_;
310 
315 
319  Mutable<Array3<GradedVector3<double>>> spherical_tensors_;
320 
324  Mutable<Array3<GradedVector3<double>>> linear_tensors_;
326 
327 };
328 
329 }
double Planarity() const
The planarity.
Definition: EventShapes.cpp:156
double CParameter() const
The C parameter.
Definition: EventShapes.cpp:116
std::vector< double > SphericityEigenValues() const
The sphericity eigenvalues.
Definition: EventShapes.cpp:168
Vector3< double > MajorAxis() const
The major axis.
Definition: EventShapes.cpp:104
Definition: GradedContainer.hh:173
boost::units::quantity< boost::units::si::plane_angle > Angle
Angle measured in radian.
Definition: Si.hh:35
Vector3< double > MinorAxis() const
The minor axis.
Definition: EventShapes.cpp:110
Momentum PtOutT(LorentzVector< Momentum > const &lorentz_vector) const
Transverse momentum with respect to the thrust axis out of the event plane.
Definition: EventShapes.cpp:190
Lazy caching of variables.
Definition: Mutable.hh:19
Vector3< double > ThrustAxis() const
The thrust axis.
Definition: EventShapes.cpp:98
std::vector< Vector3< double > > SphericityEigenVectors() const
The sphericity eigenvectors.
Definition: EventShapes.cpp:176
double Aplanarity() const
The aplanarity.
Definition: EventShapes.cpp:150
double ThrustMinor() const
The minor.
Definition: EventShapes.cpp:86
Angle RapidityT(LorentzVector< Momentum > const &lorentz_vector) const
Rapidity with respect to the thrust axis.
Definition: EventShapes.cpp:196
Momentum Lorentz vector.
Definition: LorentzVector.hh:28
std::vector< Vector3< double > > LinTenEigenVectors() const
The eigenvectors in order of descending eigenvalue.
Definition: EventShapes.cpp:136
Vector3< double > SphericityAxis() const
The sphericity axis.
Definition: EventShapes.cpp:162
Momentum PtInT(LorentzVector< Momentum > const &lorentz_vector) const
Transverse momentum with respect to the thrust axis in the event plane.
Definition: EventShapes.cpp:184
std::array< Value_, 3 > Array3
Definition: Matrix3.hh:14
Boosted Collider Analysis.
Definition: Analysis.hh:15
double ThrustMajor() const
The major.
Definition: EventShapes.cpp:80
Momentum PtOutS(LorentzVector< Momentum > const &lorentz_vector) const
Transverse momentum with respect to the sphericity axis out of the event plane.
Definition: EventShapes.cpp:208
double Thrust() const
The thrust.
Definition: EventShapes.cpp:74
boca::HemisphereMasses HemisphereMasses() const
Hemisphere mass variables and jet broadenings.
Definition: EventShapes.cpp:259
double Sphericity() const
The sphericity.
Definition: EventShapes.cpp:144
Energy Momentum
Momentum measured in electronvolt.
Definition: ElectronVolt.hh:68
double Oblateness() const
The oblateness.
Definition: EventShapes.cpp:92
double DParameter() const
The D parameter.
Definition: EventShapes.cpp:122
EventShapes()
The default constructor.
Definition: EventShapes.cpp:29
Definition: HemisphereMasses.hh:10
Calculates the event shapes for a given collection of jets.
Definition: EventShapes.hh:25
Momentum PtInS(LorentzVector< Momentum > const &lorentz_vector) const
Transverse momentum with respect to the sphericity axis in the event plane.
Definition: EventShapes.cpp:202
Angle RapidityS(LorentzVector< Momentum > const &lorentz_vector) const
Rapidity with respect to the sphericity axis.
Definition: EventShapes.cpp:214
std::vector< double > LinTenEigenValues() const
The eigenvalues in descending order.
Definition: EventShapes.cpp:128