Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-19 07:53:51

0001 //
0002 // ********************************************************************
0003 // * License and Disclaimer                                           *
0004 // *                                                                  *
0005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
0006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
0007 // * conditions of the Geant4 Software License,  included in the file *
0008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
0009 // * include a list of copyright holders.                             *
0010 // *                                                                  *
0011 // * Neither the authors of this software system, nor their employing *
0012 // * institutes,nor the agencies providing financial support for this *
0013 // * work  make  any representation or  warranty, express or implied, *
0014 // * regarding  this  software system or assume any liability for its *
0015 // * use.  Please see the license in the file  LICENSE  and URL above *
0016 // * for the full disclaimer and the limitation of liability.         *
0017 // *                                                                  *
0018 // * This  code  implementation is the result of  the  scientific and *
0019 // * technical work of the GEANT4 collaboration.                      *
0020 // * By using,  copying,  modifying or  distributing the software (or *
0021 // * any work based  on the software)  you  agree  to acknowledge its *
0022 // * use  in  resulting  scientific  publications,  and indicate your *
0023 // * acceptance of all terms of the Geant4 Software license.          *
0024 // ********************************************************************
0025 //
0026 /// \file G4HIJING_Interface.hh
0027 /// \brief Definition of the G4HIJING_Interface class
0028 
0029 #ifndef G4HIJING_Interface_hh
0030 #define G4HIJING_Interface_hh
0031 
0032 //
0033 // MODULE:           G4HIJING_Model.hh
0034 //
0035 // Version:          1.B
0036 // Date:       10/09/2013
0037 // Author:     Khaled Abdel-Waged
0038 // Institute:  Umm Al-Qura University
0039 // Country:    SAUDI ARABIA
0040 //
0041 
0042 // First: 1-COMMON BLOCK FOR OPTIONS AND PARAMETERS
0043 //-----
0044 // HIPARNT
0045 // input parameters
0046 // HIPR1, HIPR2 for event options
0047 // HINT1, HINT2 of current event
0048 //---------------------------------
0049 struct cchijinghiparnt
0050 {
0051     float hipr1[100];
0052     G4int ihpr2[50];
0053     float hint1[100];
0054     G4int ihnt2[50];
0055 };
0056 
0057 //****************************************************************************
0058 // Second: 5-COMMON BLOCKS FOR EVENT INFORMATION
0059 //----------------------------------------------------------------------------
0060 
0061 //
0062 // HIMAIN1-> Global information of the events are defined
0063 //
0064 struct cchijinghimain1
0065 {
0066     G4int natt;
0067     float eatt;
0068     G4int jatt, nt, np, n0, n01, n10, n11;
0069 };
0070 //-----------
0071 // HIMAIN2->information of produced stable and undecayed particles
0072 //-------
0073 struct cchijinghimain2
0074 {
0075     G4int katt[4][130000];
0076     float patt[4][130000];
0077 };
0078 //--------
0079 // HIJJET1-> information about produced partons which
0080 //           are connected with the valence quarks, diquarks,...
0081 //--------
0082 struct cchijinghijjet1
0083 {
0084     G4int npj[300], kfpj[500][300];
0085     float pjpx[500][300], pjpy[500][300], pjpz[500][300], pjpe[500][300];
0086     float pjpm[500][300];
0087     G4int ntj[300], kftj[500][300];
0088     float pjtx[500][300], pjty[500][300], pjtz[500][300];
0089     float pjte[500][300], pjtm[500][300];
0090 };
0091 //--------
0092 // HIJJET1-> information about produced partons which
0093 //           will form string systems without being connected with
0094 //           valence quarks, diquarks,...
0095 // ------
0096 struct cchijinghijjet2
0097 {
0098     G4int nsg, njsg[900], iasg[3][900], k1sg[100][900];
0099     G4int k2sg[100][900];
0100     float pxsg[100][900], pysg[100][900], pzsg[100][900];
0101     float pesg[100][900], pmsg[100][900];
0102 };
0103 
0104 //------
0105 // HISTRNG
0106 // contain information about the projectile and target nucleons
0107 //-----
0108 struct cchijinghistrng
0109 {
0110     G4int nfp[15][300];
0111     float pp[15][300];
0112     G4int nft[15][300];
0113     float pt[15][300];
0114 };
0115 //****************************************************************************
0116 // third: 2-COMMON BLOCKS which contain specific information
0117 //----------------------------------------------------------------------------
0118 
0119 struct cchijinghijjet4
0120 {
0121     G4int ndr, iadr[2][900], kfdr[900];
0122     float pdr[5][900];
0123 };
0124 
0125 struct cchijinghijcrdn
0126 {
0127     float yp[300][3], yt[300][3];
0128 };
0129 //---------------------------------------------------------
0130 // fourth: 5-Other common blocks
0131 // --------------------------------------------------------
0132 
0133 struct cchijingbveg1
0134 {
0135     float xl, xu, acc;
0136     G4int ndim, ncall, itmx, nprn;
0137 };
0138 
0139 struct cchijingseedvax
0140 {
0141     G4int num1;
0142 };
0143 
0144 struct cchijingranseed
0145 {
0146     float nseed;
0147 };
0148 
0149 struct cchijinghijdat
0150 {
0151     float hidat0[10][10], hidat[10];
0152 };
0153 
0154 struct cchijinghipyint
0155 {
0156     G4int mint4, mint5;
0157     float atco[20][200], atxs[200 + 1];
0158 };
0159 
0160 // hijing
0161 
0162 extern "C"
0163 {
0164   // initialize HIJING for specified event type,
0165   // collision frame and energy
0166 
0167   // extern void hijset_ (float*,
0168   ////                     const char*, const char*,const char*,
0169   //                     G4int*, G4int*, G4int*, G4int*);
0170 
0171   extern void hijset_(float*);
0172 
0173   // to generate a complete event as specified by sybroutine HIJSET
0174 
0175   // extern void hijing_ (const char*,
0176   //                     float*, float*);
0177 
0178   extern void hijing_(float*, float*);
0179 
0180   extern float ulmass_(G4int*);
0181 
0182   // reset all relevant common blocks and variables and initialize HIJING
0183   // for each event
0184 
0185   extern void hijini_();
0186 
0187   // calculate cross sections for minijet production, cross section of
0188   // the triggered processes, elastic, inelastic, total cross section..
0189   extern void hijcrs_();
0190 
0191   //
0192   // initialize program for generating hard scattering
0193   // as specified by  parameters and options
0194 
0195   extern void jetini_(G4int*, G4int*, G4int*);
0196   //
0197 
0198   // re-initiate PYTHIA for the triggered hard processe
0199   // or simulate one hard scattering among the multiple jet production
0200   // per NN-collision
0201 
0202   extern void hijhrd_(G4int*, G4int*, G4int*, G4int*, G4int*);
0203 
0204   //
0205   // generate soft interaction for each binary NN-collision
0206 
0207   extern void hijsft_(G4int*, G4int*, G4int*);
0208 
0209   // rearrange gluon jets in a string system according to their rapidities
0210 
0211   extern void hijsrt_(G4int*, G4int*);
0212 
0213   // perform jet quenching by allowing final state interaction of produced jet
0214   // inside excited strings
0215 
0216   extern void quench_(G4int*, G4int*);
0217 
0218   //
0219   // arrange produced partons together with the valence quarks and diquarks
0220 
0221   extern void hijfrg_(G4int*, G4int*, G4int*);
0222 
0223   // perform soft radiation according to the Lund dipole approx.
0224 
0225   extern void attrad_(G4int*);
0226 
0227   // generate flavor codes of the valence quark (diquark)
0228   // inside a given nucleon (hadron).
0229 
0230   extern void attflv_(G4int*, G4int*, G4int*);
0231 
0232   // perform elastic scattering and possible elastic NN cascading
0233 
0234   extern void hijcsc_(G4int*, G4int*);
0235 
0236   // three parameter Wood-Sax distribution
0237 
0238   extern void hijwds_(G4int*, G4int*, float*);
0239 
0240   // gives profile function of 2 colliding nuclei at a given impact parameter
0241 
0242   extern float profile_(float*);
0243 
0244   // transform the produced particles from c.m to lab frame
0245 
0246   extern void hiboost_();
0247 
0248   //----------------------------------------
0249   // the default values of the parametrs and options to initialize
0250   // the event record common blocks
0251 
0252   extern void g4hijingblockdata_();
0253   // ----------------------
0254   // random generator
0255 
0256   extern void rlu_(G4int*);
0257 
0258   //-----------------------------------------
0259   extern struct cchijinghiparnt hiparnt_;
0260 
0261   extern struct cchijinghimain1 himain1_;
0262   extern struct cchijinghimain2 himain2_;
0263 
0264   extern struct cchijinghijjet1 hijjet1_;
0265   extern struct cchijinghijjet2 hijjet2_;
0266 
0267   extern struct cchijinghistrng histrng_;
0268 
0269   extern struct cchijinghijjet4 hijjet4_;
0270 
0271   extern struct cchijinghijcrdn hijcrdn_;
0272 
0273   extern struct cchijingbveg1 bveg1_;
0274 
0275   extern struct cchijingseedvax seedvax_;
0276 
0277   extern struct cchijingranseed ranseed_;
0278 
0279   extern struct cchijinghijdat hijdat_;
0280 
0281   extern struct cchijinghipyint hipyint_;
0282 }
0283 
0284 #endif