ATLAS Offline Software
Loading...
Searching...
No Matches
HiParnt.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 HiParnt_h
7#define HiParnt_h
8
9#include <cstdint>
10
11extern "C" { uintptr_t hiparnt_address_(); }
12
18class HiParnt {
19public:
20 HiParnt();
21 ~HiParnt();
22
23 float& hipr1 (int n);
24 int& ihpr2 (int n);
25 float& hint1 (int n);
26 int& ihnt2 (int n);
27
28 void init (void);
29
30 // return common array lengths
31 inline int lenHipr1() const {return s_lenHipr1;}
32 inline int lenIhpr2() const {return s_lenIhpr2;}
33 inline int lenHint1() const {return s_lenHint1;}
34 inline int lenIhnt2() const {return s_lenIhnt2;}
35
36private:
37
38 // Lengths of the COMMONS
39 static const int s_lenHipr1 = 100;
40 static const int s_lenIhpr2 = 50;
41 static const int s_lenHint1 = 100;
42 static const int s_lenIhnt2 = 50;
43
44 struct HIPARNT;
45 friend struct HIPARNT;
46
47 struct HIPARNT
48 {
53 };
54
58};
59
60// set pointer to zero at start
62
63inline void
65{ if (!s_hiparnt) s_hiparnt = reinterpret_cast<HIPARNT*>(hiparnt_address_()); }
66
67inline
69 : m_dummy (-999),
70 m_realdummy (-999.)
71{}
72
73inline
76
77inline float&
79{
80 init(); // check COMMON is initialized
81 if(n < 1 || n > lenHipr1()) return m_realdummy;
82 return s_hiparnt->hipr1[n-1];
83}
84
85inline int&
87{
88 init(); // check COMMON is initialized
89 if(n < 1 || n > lenIhpr2()) return m_dummy;
90 return s_hiparnt->ihpr2[n-1];
91}
92
93inline float&
95{
96 init(); // check COMMON is initialized
97 if(n < 1 || n > lenHint1()) return m_realdummy;
98 return s_hiparnt->hint1[n-1];
99}
100
101// access ihnt2 in common
102inline int&
104{
105 init(); // check COMMON is initialized
106 if(n < 1 || n > lenIhnt2()) return m_dummy;
107 return s_hiparnt->ihnt2[n-1];
108}
109
110#endif
uintptr_t hiparnt_address_()
int & ihnt2(int n)
Definition HiParnt.h:103
float m_realdummy
Definition HiParnt.h:56
int & ihpr2(int n)
Definition HiParnt.h:86
float & hipr1(int n)
Definition HiParnt.h:78
int lenIhnt2() const
Definition HiParnt.h:34
int lenHint1() const
Definition HiParnt.h:33
int lenIhpr2() const
Definition HiParnt.h:32
HiParnt()
Definition HiParnt.h:68
int m_dummy
Definition HiParnt.h:55
static const int s_lenIhpr2
Definition HiParnt.h:40
static HIPARNT * s_hiparnt
Definition HiParnt.h:57
float & hint1(int n)
Definition HiParnt.h:94
static const int s_lenHipr1
Definition HiParnt.h:39
static const int s_lenHint1
Definition HiParnt.h:41
~HiParnt()
Definition HiParnt.h:74
void init(void)
Definition HiParnt.h:64
int lenHipr1() const
Definition HiParnt.h:31
static const int s_lenIhnt2
Definition HiParnt.h:42
float hipr1[s_lenHipr1]
Definition HiParnt.h:49
int ihnt2[s_lenIhnt2]
Definition HiParnt.h:52
float hint1[s_lenHint1]
Definition HiParnt.h:51
int ihpr2[s_lenIhpr2]
Definition HiParnt.h:50