285 lines
7.8 KiB
C++
285 lines
7.8 KiB
C++
//
|
|
// ********************************************************************
|
|
// * 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
|