ATLAS Offline Software
HiMain1.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 HiMain1_h
7 #define HiMain1_h
8 
9 #include <cstdint>
10 
11 extern "C" { uintptr_t himain1_address_(); }
19 class HiMain1 {
20 public:
21  HiMain1();
22  ~HiMain1();
23 
24  int& natt (void);
25  float& eatt (void);
26  int& jatt (void);
27  int& nt (void);
28  int& np (void);
29  int& n0 (void);
30  int& n01 (void);
31  int& n10 (void);
32  int& n11 (void);
33 
34  //+++BAC
35  //
36  // Added error status variable to HIMAIN1
37  //
38  //---BAC
39  int& ierrstat(void);
40 
41  void init (void);
42 
43 private:
44 
45  struct HIMAIN1;
46  friend struct HIMAIN1;
47 
48  struct HIMAIN1
49  {
50  int natt;
51  float eatt;
52  int jatt;
53  int nt;
54  int np;
55  int n0;
56  int n01;
57  int n10;
58  int n11;
59 
60  //+++BAC
61  //
62  // Added error status variable to HIMAIN1
63  //
64  //---BAC
65 
66  int ierrstat;
67  };
68 
69  static HIMAIN1* s_himain1;
70 };
71 
72 // set pointer to zero at start
74 
75 inline void
77 { if (!s_himain1) s_himain1 = reinterpret_cast<HIMAIN1*>(himain1_address_()); }
78 
79 // Constructor
80 inline
82 {}
83 
84 // Destructor
85 inline
87 {}
88 
89 inline int&
91 {
92  init();
93  return s_himain1->natt;
94 }
95 
96 inline float&
98 {
99  init();
100  return s_himain1->eatt;
101 }
102 
103 inline int&
105 {
106  init();
107  return s_himain1->jatt;
108 }
109 
110 inline int&
112 {
113  init();
114  return s_himain1->nt;
115 }
116 
117 inline int&
119 {
120  init();
121  return s_himain1->np;
122 }
123 
124 inline int&
126 {
127  init();
128  return s_himain1->n0;
129 }
130 
131 inline int&
133 {
134  init();
135  return s_himain1->n01;
136 }
137 
138 inline int&
140 {
141  init();
142  return s_himain1->n10;
143 }
144 
145 inline int&
147 {
148  init();
149  return s_himain1->n11;
150 }
151 
152 inline int&
154 {
155  init();
156  return s_himain1->ierrstat;
157 }
158 
159 #endif
HiMain1::HIMAIN1::n01
int n01
Definition: HiMain1.h:56
HiMain1::HIMAIN1::n10
int n10
Definition: HiMain1.h:57
HiMain1::HIMAIN1::nt
int nt
Definition: HiMain1.h:53
HiMain1::n10
int & n10(void)
Definition: HiMain1.h:139
HiMain1::s_himain1
static HIMAIN1 * s_himain1
Definition: HiMain1.h:69
HiMain1::HIMAIN1::ierrstat
int ierrstat
Definition: HiMain1.h:66
HiMain1::n0
int & n0(void)
Definition: HiMain1.h:125
HiMain1::init
void init(void)
Definition: HiMain1.h:76
HiMain1::natt
int & natt(void)
Definition: HiMain1.h:90
HiMain1::HIMAIN1::natt
int natt
Definition: HiMain1.h:50
HiMain1::~HiMain1
~HiMain1()
Definition: HiMain1.h:86
HiMain1::HIMAIN1::jatt
int jatt
Definition: HiMain1.h:52
HiMain1::HIMAIN1::n0
int n0
Definition: HiMain1.h:55
HiMain1::HIMAIN1
Definition: HiMain1.h:49
HiMain1::jatt
int & jatt(void)
Definition: HiMain1.h:104
HiMain1::ierrstat
int & ierrstat(void)
Definition: HiMain1.h:153
HiMain1
Class definition for HiMain1, which is used to modify the Hijing HIMAIN1 common.
Definition: HiMain1.h:19
HiMain1::HIMAIN1::eatt
float eatt
Definition: HiMain1.h:51
himain1_address_
uintptr_t himain1_address_()
HiMain1::n11
int & n11(void)
Definition: HiMain1.h:146
HiMain1::HiMain1
HiMain1()
Definition: HiMain1.h:81
HiMain1::nt
int & nt(void)
Definition: HiMain1.h:111
HiMain1::HIMAIN1::np
int np
Definition: HiMain1.h:54
HiMain1::np
int & np(void)
Definition: HiMain1.h:118
HiMain1::n01
int & n01(void)
Definition: HiMain1.h:132
HiMain1::eatt
float & eatt(void)
Definition: HiMain1.h:97
HiMain1::HIMAIN1::n11
int n11
Definition: HiMain1.h:58