EICd
EIC data model
InclusiveKinematics.h
Go to the documentation of this file.
1// AUTOMATICALLY GENERATED FILE - DO NOT EDIT
2
3#ifndef EICD_InclusiveKinematics_H
4#define EICD_InclusiveKinematics_H
5
7
8#include "podio/ObjectID.h"
9#include <ostream>
10
11#ifdef PODIO_JSON_OUTPUT
12#include "nlohmann/json.hpp"
13#endif
14
15// forward declarations
16namespace eicd {
17class ReconstructedParticle;
18class MutableReconstructedParticle;
19}
20
21
22namespace eicd {
23
24class MutableInclusiveKinematics;
25
26/** @class InclusiveKinematics
27 * Kinematic variables for DIS events
28 * @author: S. Joosten, W. Deconinck
29 */
31
35
36public:
37 /// default constructor
39 InclusiveKinematics(float x, float Q2, float W, float y, float nu);
40
41 /// constructor from existing InclusiveKinematicsObj
43
44 /// copy constructor
46
47 /// copy-assignment operator
49
50 /// create a mutable deep-copy of the object with identical relations
52
53 /// destructor
55
56
57public:
58
59 /// Access the Bjorken x (Q2/2P.q)
60 const float& getX() const;
61
62 /// Access the Four-momentum transfer squared [GeV^2]
63 const float& getQ2() const;
64
65 /// Access the Invariant mass of final state [GeV]
66 const float& getW() const;
67
68 /// Access the Inelasticity (P.q/P.k)
69 const float& getY() const;
70
71 /// Access the Energy transfer P.q/M [GeV]
72 const float& getNu() const;
73
74
75 /// Access the Associated scattered electron (if identified)
77
78
79
80 /// check whether the object is actually available
81 bool isAvailable() const;
82 /// disconnect from InclusiveKinematicsObj instance
83 void unlink() { m_obj = nullptr; }
84
85 bool operator==(const InclusiveKinematics& other) const { return m_obj == other.m_obj; }
86 bool operator==(const MutableInclusiveKinematics& other) const;
87
88 // less comparison operator, so that objects can be e.g. stored in sets.
89 bool operator<(const InclusiveKinematics& other) const { return m_obj < other.m_obj; }
90
91 unsigned int id() const { return getObjectID().collectionID * 10000000 + getObjectID().index; }
92
93 const podio::ObjectID getObjectID() const;
94
96 using std::swap;
97 swap(a.m_obj, b.m_obj); // swap out the internal pointers
98 }
99
100private:
102};
103
104std::ostream& operator<<(std::ostream& o, const InclusiveKinematics& value);
105
106#ifdef PODIO_JSON_OUTPUT
107void to_json(nlohmann::json& j, const InclusiveKinematics& value);
108#endif
109
110
111} // namespace eicd
112
113
114#endif
Definition: InclusiveKinematicsCollection.h:82
Definition: InclusiveKinematicsCollection.h:35
Definition: InclusiveKinematics.h:30
const float & getNu() const
Access the Energy transfer P.q/M [GeV].
Definition: InclusiveKinematics.cc:59
unsigned int id() const
Definition: InclusiveKinematics.h:91
bool operator<(const InclusiveKinematics &other) const
Definition: InclusiveKinematics.h:89
const podio::ObjectID getObjectID() const
Definition: InclusiveKinematics.cc:80
friend void swap(InclusiveKinematics &a, InclusiveKinematics &b)
Definition: InclusiveKinematics.h:95
const float & getQ2() const
Access the Four-momentum transfer squared [GeV^2].
Definition: InclusiveKinematics.cc:56
bool operator==(const InclusiveKinematics &other) const
Definition: InclusiveKinematics.h:85
MutableInclusiveKinematics clone() const
create a mutable deep-copy of the object with identical relations
Definition: InclusiveKinematics.cc:45
const float & getY() const
Access the Inelasticity (P.q/P.k)
Definition: InclusiveKinematics.cc:58
const eicd::ReconstructedParticle getScat() const
Access the Associated scattered electron (if identified)
Definition: InclusiveKinematics.cc:61
InclusiveKinematics()
default constructor
Definition: InclusiveKinematics.cc:17
void unlink()
disconnect from InclusiveKinematicsObj instance
Definition: InclusiveKinematics.h:83
const float & getW() const
Access the Invariant mass of final state [GeV].
Definition: InclusiveKinematics.cc:57
InclusiveKinematics & operator=(InclusiveKinematics other)
copy-assignment operator
Definition: InclusiveKinematics.cc:34
bool isAvailable() const
check whether the object is actually available
Definition: InclusiveKinematics.cc:73
const float & getX() const
Access the Bjorken x (Q2/2P.q)
Definition: InclusiveKinematics.cc:55
~InclusiveKinematics()
destructor
Definition: InclusiveKinematics.cc:49
Definition: InclusiveKinematicsObj.h:21
Definition: MutableInclusiveKinematics.h:31
Definition: ReconstructedParticle.h:42
Definition: CalorimeterHit.cc:13
std::ostream & operator<<(std::ostream &o, const CalorimeterHit &value)
Definition: CalorimeterHit.cc:93