SimVertex.hpp 1.99 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
// This file is part of the Acts project.
//
// Copyright (C) 2018 CERN for the benefit of the Acts project
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
// file, You can obtain one at http://mozilla.org/MPL/2.0/.

#pragma once

//#include "Acts/Utilities/Definitions.hpp"
//#include "ActsFatras/EventData/Particle.hpp"
//#include "ActsFatras/EventData/ProcessType.hpp"
//
//#include <vector>
//
//namespace FW {
//
///// A simultated vertex e.g. from a physics process.
//struct SimVertex {
//  using Scalar = double;
//  using Vector4 = Acts::ActsVector<Scalar, 4>;
//
//  /// The vertex four-position.
//  Vector4 position4 = Vector4::Zero();
//  /// The vertex process type.
//  ActsFatras::ProcessType process = ActsFatras::ProcessType::eUndefined;
//  /// The incoming particles into the vertex
//  std::vector<ActsFatras::Particle> incoming = {};
//  /// The outgoing particles from the vertex
//  std::vector<ActsFatras::Particle> outgoing = {};
//
//  /// Construct the vertex from a position and optional process type.
//  ///
//  /// @param position4_ the vertex four-position
//  /// @param process_ the process type that generated this vertex
//  ///
//  /// Associated particles are left empty by default and must be filled by the
//  /// user after construction.
//  SimVertex(const Vector4& position4_, ActsFatras::ProcessType process_ =
//                                           ActsFatras::ProcessType::eUndefined)
//      : position4(position4_), process(process_) {}
//  // explicitely default rule-of-five.
//  SimVertex() = default;
//  SimVertex(const SimVertex&) = default;
//  SimVertex(SimVertex&&) = default;
//  SimVertex& operator=(const SimVertex&) = default;
//  SimVertex& operator=(SimVertex&&) = default;
//
//  /// The vertex three-position.
//  auto position() const { return position4.head<3>(); }
//  /// The vertex time.
//  Scalar time() const { return position4[3]; }
//};
//
//}  // namespace FW