ATLAS Offline Software
Loading...
Searching...
No Matches
HijJet4.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 HijJet4_h
7#define HijJet4_h
8
9#include <cstdint>
10
11extern "C" { uintptr_t hijjet4_address_(); }
12
18
19class HijJet4 {
20public:
21 HijJet4();
22 ~HijJet4();
23
24 int& ndr (void);
25 int& iadr (int i, int j);
26 int& kfdr (int i);
27 float& pdr (int i, int k);
28 float& vdr (int i, int k);
29
30 void init (void);
31
32 // return common array lengths
33 inline int lenI() const {return s_lenI;}
34 inline int lenJ() const {return s_lenJ;}
35 inline int lenK() const {return s_lenK;}
36
37private:
38
39 // Lengths of array in HiMain2 common
40 static const int s_lenI = 900;
41 static const int s_lenJ = 2;
42 static const int s_lenK = 5;
43
44 struct HIJJET4;
45 friend struct HIJJET4;
46
47 struct HIJJET4
48 {
49 int ndr;
51 int kfdr [s_lenI];
52 float pdr [s_lenK][s_lenI];
53 float vdr [s_lenK][s_lenI];
54 };
55
58
60};
61
62// set pointer to zero at start
64
65inline void
67{ if (!s_hijjet4) s_hijjet4 = reinterpret_cast<HIJJET4*>(hijjet4_address_()); }
68
69// Constructor
70inline
72 : m_dummy (-999),
73 m_realdummy (-999.)
74{}
75
76// Destructor
77inline
80
81inline int&
83{
84 init(); // check COMMON is initialized
85 return s_hijjet4->ndr;
86}
87
88inline int&
89HijJet4::iadr (int i, int j)
90{
91 init(); // check COMMON is initialized
92 if( i < 1 || i > lenI() ||
93 j < 1 || j > lenJ() ) return m_dummy;
94
95 return s_hijjet4->iadr[j-1][i-1];
96}
97
98inline int&
100{
101 init(); // check COMMON is initialized
102 if(i < 1 || i > lenI()) return m_dummy;
103 return s_hijjet4->kfdr[i-1];
104}
105
106inline float&
107HijJet4::pdr (int i, int k)
108{
109 init(); // check COMMON is initialized
110 if( i < 1 || i > lenI() ||
111 k < 1 || k > lenK() ) return m_realdummy;
112
113 return s_hijjet4->pdr[k-1][i-1];
114}
115
116
117inline float&
118HijJet4::vdr (int i, int k)
119{
120 init(); // check COMMON is initialized
121 if( i < 1 || i > lenI() ||
122 k < 1 || k > lenK() ) return m_realdummy;
123
124 return s_hijjet4->vdr[k-1][i-1];
125}
126
127#endif
uintptr_t hijjet4_address_()
void init(void)
Definition HijJet4.h:66
int & iadr(int i, int j)
Definition HijJet4.h:89
float m_realdummy
Definition HijJet4.h:57
float & pdr(int i, int k)
Definition HijJet4.h:107
int & kfdr(int i)
Definition HijJet4.h:99
HijJet4()
Definition HijJet4.h:71
static const int s_lenI
Definition HijJet4.h:40
static HIJJET4 * s_hijjet4
Definition HijJet4.h:59
int lenK() const
Definition HijJet4.h:35
int & ndr(void)
Definition HijJet4.h:82
static const int s_lenK
Definition HijJet4.h:42
int m_dummy
Definition HijJet4.h:56
static const int s_lenJ
Definition HijJet4.h:41
float & vdr(int i, int k)
Definition HijJet4.h:118
int lenI() const
Definition HijJet4.h:33
int lenJ() const
Definition HijJet4.h:34
~HijJet4()
Definition HijJet4.h:78
int kfdr[s_lenI]
Definition HijJet4.h:51
float vdr[s_lenK][s_lenI]
Definition HijJet4.h:53
float pdr[s_lenK][s_lenI]
Definition HijJet4.h:52
int iadr[s_lenJ][s_lenI]
Definition HijJet4.h:50