Juggler
Juggling algorithms and event processing using gaudi framework
SimIdentifier.hpp
Go to the documentation of this file.
1 // This file is part of the Acts project.
2 //
3 // Copyright (C) 2016-2018 CERN for the benefit of the Acts project
4 //
5 // This Source Code Form is subject to the terms of the Mozilla Public
6 // License, v. 2.0. If a copy of the MPL was not distributed with this
7 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 
9 #pragma once
10 
11 //#include "Acts/EventData/MeasurementHelpers.hpp"
12 //
13 //#include <cstddef>
14 //#include <vector>
15 //
16 //namespace FW {
17 //
18 ///// A hit identifier with additional truth information.
19 /////
20 ///// In an addition to a unique identifier, an list of additional indices is
21 ///// stored. These can refer e.g. to particle indices or truth hit indices.
22 ///// Using indices instead of pointers allows more flexibility, i.e. we are not
23 ///// fixed to a specific object type when using e.g. pointers, and is more
24 ///// robust since no requirements on stable memory locations of the pointed-to
25 ///// objects are necessary (as would be the case for pointers).
26 //class SimIdentifier : public Acts::MinimalSourceLink {
27 // public:
28 // using Value = uint64_t;
29 // using Difference = int64_t;
30 //
31 // /// Constructor from encoded identifier value.
32 // ///
33 // /// @param value is the identifier value
34 // explicit SimIdentifier(Value value) : m_value(value) {}
35 // /// Constructor from encoded identifier value and truth information.
36 // ///
37 // /// @param value is the identifier value
38 // /// @param indices
39 // SimIdentifier(Value value, std::vector<std::size_t> indices)
40 // : m_value(value), m_indices(std::move(indices)) {}
41 //
42 // // Explicitely defaulted constructors and assignment operators
43 // SimIdentifier() = default;
44 // SimIdentifier(const SimIdentifier&) = default;
45 // SimIdentifier(SimIdentifier&&) = default;
46 // SimIdentifier& operator=(const SimIdentifier&) = default;
47 // SimIdentifier& operator=(SimIdentifier&&) = default;
48 //
49 // /// Assign from an identifier value.
50 // SimIdentifier& operator=(Value value);
51 // /// Cast to an identifier value.
52 // operator Value() const { return m_value; }
53 //
54 // /// Explicit access the underlying identifier value.
55 // Value value() const { return m_value; }
56 // /// Access all associated truth indices.
57 // const std::vector<std::size_t>& indices() const { return m_indices; }
58 //
59 // /// Attach a truth index to the identifier.
60 // void addIndex(std::size_t index) { m_indices.push_back(index); }
61 //
62 // private:
63 // /// The stored identifier value.
64 // Value m_value = 0u;
65 // /// Associated truth indices.
66 // std::vector<std::size_t> m_indices;
67 //
68 // friend constexpr bool operator<(const SimIdentifier& lhs,
69 // const SimIdentifier& rhs) {
70 // return lhs.m_value < rhs.m_value;
71 // }
72 // friend bool operator==(const SimIdentifier& lhs, const SimIdentifier& rhs) {
73 // return lhs.m_value == rhs.m_value;
74 // }
75 //};
76 //
77 //} // end of namespace FW
78 //
79 //using identifier_type = ::FW::SimIdentifier::Value;
80 //using identifier_diff = ::FW::SimIdentifier::Difference;
81 //using Identifier = ::FW::SimIdentifier;