ATLAS Offline Software
Loading...
Searching...
No Matches
HijJet2.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5
6#ifndef HijJet2_h
7#define HijJet2_h
8
9#include <cstdint>
10
11extern "C" { uintptr_t hijjet2_address_(); }
18class HijJet2 {
19public:
20 HijJet2();
21 ~HijJet2();
22
23 int& nsg (void);
24 int& njsg (int i);
25 int& iasg (int i, int k);
26 int& k1sg (int i, int j);
27 int& k2sg (int i, int j);
28 float& pxsg (int i, int j);
29 float& pysg (int i, int j);
30 float& pzsg (int i, int j);
31 float& pesg (int i, int j);
32 float& pmsg (int i, int j);
33
34 void init (void);
35
36 // return common array lengths
37 inline int lenI() const {return s_lenI;}
38 inline int lenJ() const {return s_lenJ;}
39 inline int lenK() const {return s_lenK;}
40
41private:
42
43 // Lengths of array in HiMain2 common
44 static const int s_lenI = 900;
45 static const int s_lenJ = 100;
46 static const int s_lenK = 3;
47
48 struct HIJJET2;
49 friend struct HIJJET2;
50
51 struct HIJJET2
52 {
53 int nsg;
54 int njsg [s_lenI];
58 float pxsg [s_lenJ][s_lenI];
59 float pysg [s_lenJ][s_lenI];
60 float pzsg [s_lenJ][s_lenI];
61 float pesg [s_lenJ][s_lenI];
62 float pmsg [s_lenJ][s_lenI];
63 };
64
67
69};
70
71// set pointer to zero at start
73
74inline void
76{ if (!s_hijjet2) s_hijjet2 = reinterpret_cast<HIJJET2*>(hijjet2_address_()); }
77
78// Constructor
79inline
81 : m_dummy (-999),
82 m_realdummy (-999.)
83{}
84
85// Destructor
86inline
89
90inline int&
92{
93 init(); // check COMMON is initialized
94 return s_hijjet2->nsg;
95}
96
97inline int&
99{
100 init(); // check COMMON is initialized
101 if(i < 1 || i > lenI()) return m_dummy;
102 return s_hijjet2->njsg[i-1];
103}
104
105inline int&
106HijJet2::iasg (int i, int k)
107{
108 init(); // check COMMON is initialized
109 if( i < 1 || i > lenI() ||
110 k < 1 || k > lenK() ) return m_dummy;
111
112 return s_hijjet2->iasg[k-1][i-1];
113}
114
115inline int&
116HijJet2::k1sg (int i, int j)
117{
118 init(); // check COMMON is initialized
119 if( i < 1 || i > lenI() ||
120 j < 1 || j > lenJ() ) return m_dummy;
121
122 return s_hijjet2->k1sg[j-1][i-1];
123}
124
125inline int&
126HijJet2::k2sg (int i, int j)
127{
128 init(); // check COMMON is initialized
129 if( i < 1 || i > lenI() ||
130 j < 1 || j > lenJ() ) return m_dummy;
131
132 return s_hijjet2->k2sg[j-1][i-1];
133}
134
135inline float&
136HijJet2::pxsg (int i, int j)
137{
138 init(); // check COMMON is initialized
139 if( i < 1 || i > lenI() ||
140 j < 1 || j > lenJ() ) return m_realdummy;
141
142 return s_hijjet2->pxsg[j-1][i-1];
143}
144
145inline float&
146HijJet2::pysg (int i, int j)
147{
148 init(); // check COMMON is initialized
149 if( i < 1 || i > lenI() ||
150 j < 1 || j > lenJ() ) return m_realdummy;
151
152 return s_hijjet2->pysg[j-1][i-1];
153}
154
155inline float&
156HijJet2::pzsg (int i, int j)
157{
158 init(); // check COMMON is initialized
159 if( i < 1 || i > lenI() ||
160 j < 1 || j > lenJ() ) return m_realdummy;
161
162 return s_hijjet2->pzsg[j-1][i-1];
163}
164
165inline float&
166HijJet2::pesg (int i, int j)
167{
168 init(); // check COMMON is initialized
169 if( i < 1 || i > lenI() ||
170 j < 1 || j > lenJ() ) return m_realdummy;
171
172 return s_hijjet2->pesg[j-1][i-1];
173}
174
175inline float&
176HijJet2::pmsg (int i, int j)
177{
178 init(); // check COMMON is initialized
179 if( i < 1 || i > lenI() ||
180 j < 1 || j > lenJ() ) return m_realdummy;
181
182 return s_hijjet2->pmsg[j-1][i-1];
183}
184
185#endif
uintptr_t hijjet2_address_()
float & pxsg(int i, int j)
Definition HijJet2.h:136
static const int s_lenK
Definition HijJet2.h:46
int & njsg(int i)
Definition HijJet2.h:98
static HIJJET2 * s_hijjet2
Definition HijJet2.h:68
static const int s_lenI
Definition HijJet2.h:44
int lenI() const
Definition HijJet2.h:37
float & pmsg(int i, int j)
Definition HijJet2.h:176
int lenK() const
Definition HijJet2.h:39
int & k1sg(int i, int j)
Definition HijJet2.h:116
int & nsg(void)
Definition HijJet2.h:91
float & pesg(int i, int j)
Definition HijJet2.h:166
int & iasg(int i, int k)
Definition HijJet2.h:106
HijJet2()
Definition HijJet2.h:80
void init(void)
Definition HijJet2.h:75
float & pysg(int i, int j)
Definition HijJet2.h:146
float & pzsg(int i, int j)
Definition HijJet2.h:156
int lenJ() const
Definition HijJet2.h:38
int & k2sg(int i, int j)
Definition HijJet2.h:126
~HijJet2()
Definition HijJet2.h:87
int m_dummy
Definition HijJet2.h:65
float m_realdummy
Definition HijJet2.h:66
static const int s_lenJ
Definition HijJet2.h:45
int iasg[s_lenK][s_lenI]
Definition HijJet2.h:55
float pxsg[s_lenJ][s_lenI]
Definition HijJet2.h:58
int k1sg[s_lenJ][s_lenI]
Definition HijJet2.h:56
float pzsg[s_lenJ][s_lenI]
Definition HijJet2.h:60
int njsg[s_lenI]
Definition HijJet2.h:54
float pysg[s_lenJ][s_lenI]
Definition HijJet2.h:59
float pmsg[s_lenJ][s_lenI]
Definition HijJet2.h:62
float pesg[s_lenJ][s_lenI]
Definition HijJet2.h:61
int k2sg[s_lenJ][s_lenI]
Definition HijJet2.h:57