Back to home page

sPhenix code displayed by LXR

 
 

    


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

0001 
0002 #ifndef HijJet4_h
0003 #define HijJet4_h
0004 
0005 extern "C" { void* hijjet4_address_(void); }
0006 
0007 /**
0008 @class HijJet4
0009 @brief  Class definition for HijJet4, which is used
0010      to modify the Hijing HIJJET4 common.
0011 */
0012 
0013 class HijJet4 {
0014 public:
0015     HijJet4();
0016     ~HijJet4();
0017     
0018     int&    ndr (void);
0019     int&        iadr    (int i, int j);
0020     int&        kfdr    (int i);
0021     float&      pdr (int i, int k);
0022     
0023     void    init    (void);
0024 
0025     // return common array lengths
0026     inline int  lenI() const {return _lenI;}
0027     inline int  lenJ() const {return _lenJ;}
0028     inline int  lenK() const {return _lenK;}
0029 
0030 private: 
0031 
0032     // Lengths of array in HiMain2 common
0033     static const int _lenI  = 900;
0034     static const int _lenJ  = 2;
0035     static const int _lenK  = 5;
0036 
0037     struct HIJJET4;
0038     friend struct HIJJET4;
0039 
0040     struct HIJJET4
0041     {
0042     int     ndr;
0043     int iadr    [_lenJ][_lenI];
0044     int     kfdr    [_lenI];
0045     float   pdr [_lenK][_lenI];
0046     };
0047 
0048     int  _dummy;
0049     float  _realdummy;
0050 
0051     static HIJJET4* _hijjet4;
0052 };
0053 
0054 // set pointer to zero at start
0055 HijJet4::HIJJET4* HijJet4::_hijjet4 =0;
0056 
0057 inline void
0058 HijJet4::init(void)
0059 { if (!_hijjet4) _hijjet4 = static_cast<HIJJET4*>(hijjet4_address_()); }
0060 
0061 // Constructor
0062 inline
0063 HijJet4::HijJet4()
0064     : _dummy        (-999),
0065       _realdummy    (-999.)
0066 {}
0067 
0068 // Destructor
0069 inline
0070 HijJet4::~HijJet4()
0071 {}
0072 
0073 inline int&
0074 HijJet4::ndr    (void)
0075 {
0076     init(); // check COMMON is initialized
0077     return _hijjet4->ndr;
0078 }
0079 
0080 inline int&
0081 HijJet4::iadr   (int i, int j)
0082 {
0083     init(); // check COMMON is initialized
0084     if( i < 1 || i > lenI() ||
0085     j < 1 || j > lenJ() ) return _dummy;
0086 
0087     return _hijjet4->iadr[j-1][i-1];
0088 }
0089 
0090 inline int&
0091 HijJet4::kfdr    (int i)
0092 {
0093     init(); // check COMMON is initialized
0094     if(i < 1 || i > lenI()) return _dummy;
0095     return _hijjet4->kfdr[i-1];
0096 }
0097 
0098 inline float&
0099 HijJet4::pdr    (int i, int k)
0100 {
0101     init(); // check COMMON is initialized
0102     if( i < 1 || i > lenI() ||
0103     k < 1 || k > lenK() ) return _realdummy;
0104 
0105     return _hijjet4->pdr[k-1][i-1];
0106 }
0107 
0108 #endif