ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HijCrdn.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file HijCrdn.h
1 
2 #ifndef HijCrdn_h
3 #define HijCrdn_h
4 
5 extern "C" { void* hijcrdn_address_(void); }
11 class HijCrdn {
12 public:
13  HijCrdn();
14  ~HijCrdn();
15 
16  float& yp (int i, int j);
17  float& yt (int i, int j);
18 
19  void init (void);
20 
21  // return common array lengths
22  inline int lenI() const {return _lenI;}
23  inline int lenJ() const {return _lenJ;}
24 
25 private:
26 
27  // Lengths of array in HiMain2 common
28  static const int _lenI = 3;
29  static const int _lenJ = 300;
30 
31  struct HIJCRDN;
32  friend struct HIJCRDN;
33 
34  struct HIJCRDN
35  {
36  float yp [_lenJ][_lenI];
37  float yt [_lenJ][_lenI];
38  };
39 
40 // int _dummy;
41  float _realdummy;
42 
43  static HIJCRDN* _hijcrdn;
44 };
45 
46 // set pointer to zero at start
48 
49 inline void
51 { if (!_hijcrdn) _hijcrdn = static_cast<HIJCRDN*>(hijcrdn_address_()); }
52 
53 // Constructor
54 inline
56  :// _dummy (-999),
57  _realdummy (-999.)
58 {}
59 
60 // Destructor
61 inline
63 {}
64 
65 inline float&
66 HijCrdn::yp (int i, int j)
67 {
68  init(); // check COMMON is initialized
69  if( i < 1 || i > lenI() ||
70  j < 1 || j > lenJ() ) return _realdummy;
71 
72  return _hijcrdn->yp[j-1][i-1];
73 }
74 
75 inline float&
76 HijCrdn::yt (int i, int j)
77 {
78  init(); // check COMMON is initialized
79  if( i < 1 || i > lenI() ||
80  j < 1 || j > lenJ() ) return _realdummy;
81 
82  return _hijcrdn->yt[j-1][i-1];
83 }
84 
85 #endif