Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-03 08:16:38

0001 
0002 #ifndef HijJet2_h
0003 #define HijJet2_h
0004 
0005 extern "C" { void* hijjet2_address_(void); }
0006 /**
0007 @class HijJet2
0008 
0009 @brief Class definition for HijJet2, which is used
0010       to modify the Hijing HIJJET2 common.
0011 */
0012 class HijJet2 {
0013 public:
0014     HijJet2();
0015     ~HijJet2();
0016     
0017     int&    nsg (void);
0018     int&        njsg    (int i);
0019     int&        iasg    (int i, int k);
0020     int&        k1sg    (int i, int j);
0021     int&        k2sg    (int i, int j);
0022     float&      pxsg    (int i, int j);
0023     float&      pysg    (int i, int j);
0024     float&      pzsg    (int i, int j);
0025     float&      pesg    (int i, int j);
0026     float&      pmsg    (int i, int j);
0027     
0028     void    init    (void);
0029 
0030     // return common array lengths
0031     inline int  lenI() const {return _lenI;}
0032     inline int  lenJ() const {return _lenJ;}
0033     inline int  lenK() const {return _lenK;}
0034 
0035 private: 
0036 
0037     // Lengths of array in HiMain2 common
0038     static const int _lenI  = 900;
0039     static const int _lenJ  = 100;
0040     static const int _lenK  = 3;
0041 
0042     struct HIJJET2;
0043     friend struct HIJJET2;
0044 
0045     struct HIJJET2
0046     {
0047     int     nsg;
0048     int     njsg    [_lenI];
0049     int iasg    [_lenK][_lenI];
0050     int k1sg    [_lenJ][_lenI];
0051     int k2sg    [_lenJ][_lenI];
0052     float   pxsg    [_lenJ][_lenI];
0053     float   pysg    [_lenJ][_lenI];
0054     float   pzsg    [_lenJ][_lenI];
0055     float   pesg    [_lenJ][_lenI];
0056     float   pmsg    [_lenJ][_lenI];
0057     };
0058 
0059     int  _dummy;
0060     float  _realdummy;
0061 
0062     static HIJJET2* _hijjet2;
0063 };
0064 
0065 // set pointer to zero at start
0066 HijJet2::HIJJET2* HijJet2::_hijjet2 =0;
0067 
0068 inline void
0069 HijJet2::init(void)
0070 { if (!_hijjet2) _hijjet2 = static_cast<HIJJET2*>(hijjet2_address_()); }
0071 
0072 // Constructor
0073 inline
0074 HijJet2::HijJet2()
0075     : _dummy        (-999),
0076       _realdummy    (-999.)
0077 {}
0078 
0079 // Destructor
0080 inline
0081 HijJet2::~HijJet2()
0082 {}
0083 
0084 inline int&
0085 HijJet2::nsg    (void)
0086 {
0087     init(); // check COMMON is initialized
0088     return _hijjet2->nsg;
0089 }
0090 
0091 inline int&
0092 HijJet2::njsg    (int i)
0093 {
0094     init(); // check COMMON is initialized
0095     if(i < 1 || i > lenI()) return _dummy;
0096     return _hijjet2->njsg[i-1];
0097 }
0098 
0099 inline int&
0100 HijJet2::iasg   (int i, int k)
0101 {
0102     init(); // check COMMON is initialized
0103     if( i < 1 || i > lenI() ||
0104     k < 1 || k > lenK() ) return _dummy;
0105 
0106     return _hijjet2->iasg[k-1][i-1];
0107 }
0108 
0109 inline int&
0110 HijJet2::k1sg   (int i, int j)
0111 {
0112     init(); // check COMMON is initialized
0113     if( i < 1 || i > lenI() ||
0114     j < 1 || j > lenJ() ) return _dummy;
0115 
0116     return _hijjet2->k1sg[j-1][i-1];
0117 }
0118 
0119 inline int&
0120 HijJet2::k2sg   (int i, int j)
0121 {
0122     init(); // check COMMON is initialized
0123     if( i < 1 || i > lenI() ||
0124     j < 1 || j > lenJ() ) return _dummy;
0125 
0126     return _hijjet2->k2sg[j-1][i-1];
0127 }
0128 
0129 inline float&
0130 HijJet2::pxsg   (int i, int j)
0131 {
0132     init(); // check COMMON is initialized
0133     if( i < 1 || i > lenI() ||
0134     j < 1 || j > lenJ() ) return _realdummy;
0135 
0136     return _hijjet2->pxsg[j-1][i-1];
0137 }
0138 
0139 inline float&
0140 HijJet2::pysg   (int i, int j)
0141 {
0142     init(); // check COMMON is initialized
0143     if( i < 1 || i > lenI() ||
0144     j < 1 || j > lenJ() ) return _realdummy;
0145 
0146     return _hijjet2->pysg[j-1][i-1];
0147 }
0148 
0149 inline float&
0150 HijJet2::pzsg   (int i, int j)
0151 {
0152     init(); // check COMMON is initialized
0153     if( i < 1 || i > lenI() ||
0154     j < 1 || j > lenJ() ) return _realdummy;
0155 
0156     return _hijjet2->pzsg[j-1][i-1];
0157 }
0158 
0159 inline float&
0160 HijJet2::pesg   (int i, int j)
0161 {
0162     init(); // check COMMON is initialized
0163     if( i < 1 || i > lenI() ||
0164     j < 1 || j > lenJ() ) return _realdummy;
0165 
0166     return _hijjet2->pesg[j-1][i-1];
0167 }
0168 
0169 inline float&
0170 HijJet2::pmsg   (int i, int j)
0171 {
0172     init(); // check COMMON is initialized
0173     if( i < 1 || i > lenI() ||
0174     j < 1 || j > lenJ() ) return _realdummy;
0175 
0176     return _hijjet2->pmsg[j-1][i-1];
0177 }
0178 
0179 #endif