// // ******************************************************************** // * License and Disclaimer * // * * // * The Geant4 software is copyright of the Copyright Holders of * // * the Geant4 Collaboration. It is provided under the terms and * // * conditions of the Geant4 Software License, included in the file * // * LICENSE and available at http://cern.ch/geant4/license . These * // * include a list of copyright holders. * // * * // * Neither the authors of this software system, nor their employing * // * institutes,nor the agencies providing financial support for this * // * work make any representation or warranty, express or implied, * // * regarding this software system or assume any liability for its * // * use. Please see the license in the file LICENSE and URL above * // * for the full disclaimer and the limitation of liability. * // * * // * This code implementation is the result of the scientific and * // * technical work of the GEANT4 collaboration. * // * By using, copying, modifying or distributing the software (or * // * any work based on the software) you agree to acknowledge its * // * use in resulting scientific publications, and indicate your * // * acceptance of all terms of the Geant4 Software license. * // ******************************************************************** // /// \file G4HIJING_Interface.hh /// \brief Definition of the G4HIJING_Interface class #ifndef G4HIJING_Interface_hh #define G4HIJING_Interface_hh // // MODULE: G4HIJING_Model.hh // // Version: 1.B // Date: 10/09/2013 // Author: Khaled Abdel-Waged // Institute: Umm Al-Qura University // Country: SAUDI ARABIA // // First: 1-COMMON BLOCK FOR OPTIONS AND PARAMETERS //----- // HIPARNT // input parameters // HIPR1, HIPR2 for event options // HINT1, HINT2 of current event //--------------------------------- struct cchijinghiparnt { float hipr1[100]; G4int ihpr2[50]; float hint1[100]; G4int ihnt2[50]; }; //**************************************************************************** // Second: 5-COMMON BLOCKS FOR EVENT INFORMATION //---------------------------------------------------------------------------- // // HIMAIN1-> Global information of the events are defined // struct cchijinghimain1 { G4int natt; float eatt; G4int jatt, nt, np, n0, n01, n10, n11; }; //----------- // HIMAIN2->information of produced stable and undecayed particles //------- struct cchijinghimain2 { G4int katt[4][130000]; float patt[4][130000]; }; //-------- // HIJJET1-> information about produced partons which // are connected with the valence quarks, diquarks,... //-------- struct cchijinghijjet1 { G4int npj[300], kfpj[500][300]; float pjpx[500][300], pjpy[500][300], pjpz[500][300], pjpe[500][300]; float pjpm[500][300]; G4int ntj[300], kftj[500][300]; float pjtx[500][300], pjty[500][300], pjtz[500][300]; float pjte[500][300], pjtm[500][300]; }; //-------- // HIJJET1-> information about produced partons which // will form string systems without being connected with // valence quarks, diquarks,... // ------ struct cchijinghijjet2 { G4int nsg, njsg[900], iasg[3][900], k1sg[100][900]; G4int k2sg[100][900]; float pxsg[100][900], pysg[100][900], pzsg[100][900]; float pesg[100][900], pmsg[100][900]; }; //------ // HISTRNG // contain information about the projectile and target nucleons //----- struct cchijinghistrng { G4int nfp[15][300]; float pp[15][300]; G4int nft[15][300]; float pt[15][300]; }; //**************************************************************************** // third: 2-COMMON BLOCKS which contain specific information //---------------------------------------------------------------------------- struct cchijinghijjet4 { G4int ndr, iadr[2][900], kfdr[900]; float pdr[5][900]; }; struct cchijinghijcrdn { float yp[300][3], yt[300][3]; }; //--------------------------------------------------------- // fourth: 5-Other common blocks // -------------------------------------------------------- struct cchijingbveg1 { float xl, xu, acc; G4int ndim, ncall, itmx, nprn; }; struct cchijingseedvax { G4int num1; }; struct cchijingranseed { float nseed; }; struct cchijinghijdat { float hidat0[10][10], hidat[10]; }; struct cchijinghipyint { G4int mint4, mint5; float atco[20][200], atxs[200 + 1]; }; // hijing extern "C" { // initialize HIJING for specified event type, // collision frame and energy // extern void hijset_ (float*, //// const char*, const char*,const char*, // G4int*, G4int*, G4int*, G4int*); extern void hijset_(float*); // to generate a complete event as specified by sybroutine HIJSET // extern void hijing_ (const char*, // float*, float*); extern void hijing_(float*, float*); extern float ulmass_(G4int*); // reset all relevant common blocks and variables and initialize HIJING // for each event extern void hijini_(); // calculate cross sections for minijet production, cross section of // the triggered processes, elastic, inelastic, total cross section.. extern void hijcrs_(); // // initialize program for generating hard scattering // as specified by parameters and options extern void jetini_(G4int*, G4int*, G4int*); // // re-initiate PYTHIA for the triggered hard processe // or simulate one hard scattering among the multiple jet production // per NN-collision extern void hijhrd_(G4int*, G4int*, G4int*, G4int*, G4int*); // // generate soft interaction for each binary NN-collision extern void hijsft_(G4int*, G4int*, G4int*); // rearrange gluon jets in a string system according to their rapidities extern void hijsrt_(G4int*, G4int*); // perform jet quenching by allowing final state interaction of produced jet // inside excited strings extern void quench_(G4int*, G4int*); // // arrange produced partons together with the valence quarks and diquarks extern void hijfrg_(G4int*, G4int*, G4int*); // perform soft radiation according to the Lund dipole approx. extern void attrad_(G4int*); // generate flavor codes of the valence quark (diquark) // inside a given nucleon (hadron). extern void attflv_(G4int*, G4int*, G4int*); // perform elastic scattering and possible elastic NN cascading extern void hijcsc_(G4int*, G4int*); // three parameter Wood-Sax distribution extern void hijwds_(G4int*, G4int*, float*); // gives profile function of 2 colliding nuclei at a given impact parameter extern float profile_(float*); // transform the produced particles from c.m to lab frame extern void hiboost_(); //---------------------------------------- // the default values of the parametrs and options to initialize // the event record common blocks extern void g4hijingblockdata_(); // ---------------------- // random generator extern void rlu_(G4int*); //----------------------------------------- extern struct cchijinghiparnt hiparnt_; extern struct cchijinghimain1 himain1_; extern struct cchijinghimain2 himain2_; extern struct cchijinghijjet1 hijjet1_; extern struct cchijinghijjet2 hijjet2_; extern struct cchijinghistrng histrng_; extern struct cchijinghijjet4 hijjet4_; extern struct cchijinghijcrdn hijcrdn_; extern struct cchijingbveg1 bveg1_; extern struct cchijingseedvax seedvax_; extern struct cchijingranseed ranseed_; extern struct cchijinghijdat hijdat_; extern struct cchijinghipyint hipyint_; } #endif