IAP GITLAB

Commit 3a26d12e authored by Tanguy Pierog's avatar Tanguy Pierog

reactivate old DPMJET 3.0-6 and secure interface for Phojet, Pythia and DPMJET

parent b1e0b614
...@@ -10,12 +10,13 @@ OPTION (__QGSJET01__ "Build with model" OFF) ...@@ -10,12 +10,13 @@ OPTION (__QGSJET01__ "Build with model" OFF)
OPTION (__GHEISHA__ "Build with model" OFF) OPTION (__GHEISHA__ "Build with model" OFF)
OPTION (__PYTHIA__ "Build with model" OFF) OPTION (__PYTHIA__ "Build with model" OFF)
OPTION (__HIJING__ "Build with model" OFF) OPTION (__HIJING__ "Build with model" OFF)
OPTION (__SIBYLL__ "Build with model" ON) OPTION (__SIBYLL__ "Build with model" OFF)
OPTION (__PHOJET__ "Build with model" OFF) OPTION (__PHOJET__ "Build with model" OFF)
OPTION (__DPMJET06__ "Build with model" OFF)
OPTION (__DPMJET17__ "Build with model" OFF) OPTION (__DPMJET17__ "Build with model" OFF)
OPTION (__DPMJET19__ "Build with model" ON) OPTION (__DPMJET19__ "Build with model" OFF)
OPTION (__QGSJETII03__ "Build with model" OFF) OPTION (__QGSJETII03__ "Build with model" OFF)
OPTION (__QGSJETII04__ "Build with model" ON) OPTION (__QGSJETII04__ "Build with model" OFF)
######################################ONLY EDIT THIS###################################### ######################################ONLY EDIT THIS######################################
if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) if (CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT)
...@@ -156,6 +157,10 @@ FILE(READ ${PROJECT_SOURCE_DIR}/src/dpmjet/3.2019-1/hepevt-HEPMCTEMPLATE templat ...@@ -156,6 +157,10 @@ FILE(READ ${PROJECT_SOURCE_DIR}/src/dpmjet/3.2019-1/hepevt-HEPMCTEMPLATE templat
STRING( REGEX REPLACE "HEPEVT_SIZE_REPLACE" "${Replace_String}" template20 "${template19}") STRING( REGEX REPLACE "HEPEVT_SIZE_REPLACE" "${Replace_String}" template20 "${template19}")
FILE(WRITE ${PROJECT_SOURCE_DIR}/src/dpmjet/3.2019-1/DPMJET-19.1/include/pythia/inc/hepevt "${template20}") FILE(WRITE ${PROJECT_SOURCE_DIR}/src/dpmjet/3.2019-1/DPMJET-19.1/include/pythia/inc/hepevt "${template20}")
FILE(READ ${PROJECT_SOURCE_DIR}/src/dpmjet/3.0-6/pythia6115dpm3v1.f-HEPMCTEMPLATE template21)
STRING( REGEX REPLACE "HEPEVT_SIZE_REPLACE" "${Replace_String}" template22 "${template21}")
FILE(WRITE ${PROJECT_SOURCE_DIR}/src/dpmjet/3.0-6/pythia6115dpm3v1.f "${template22}")
...@@ -225,6 +230,15 @@ get_property(HELPER SOURCE src/models.F PROPERTY COMPILE_FLAGS) ...@@ -225,6 +230,15 @@ get_property(HELPER SOURCE src/models.F PROPERTY COMPILE_FLAGS)
set_property(SOURCE src/models.F PROPERTY COMPILE_FLAGS "${HELPER} -D __PHOJET__") set_property(SOURCE src/models.F PROPERTY COMPILE_FLAGS "${HELPER} -D __PHOJET__")
ENDIF (__PHOJET__) ENDIF (__PHOJET__)
IF (__DPMJET06__)
ADD_SUBDIRECTORY ("${PROJECT_SOURCE_DIR}/src/dpmjet/3.0-6")
LIST(APPEND TABS DPMJET-0.6/dpmjet.dat)
LIST(APPEND TABS DPMJET-0.6/phojet_fitpar.dat)
SET(STATIC_LIBS ${STATIC_LIBS} Dpmjet06)
get_property(HELPER SOURCE src/models.F PROPERTY COMPILE_FLAGS)
set_property(SOURCE src/models.F PROPERTY COMPILE_FLAGS "${HELPER} -D __DPMJET__ -D __DPMJET06__")
ENDIF (__DPMJET06__)
IF (__DPMJET17__) IF (__DPMJET17__)
ADD_SUBDIRECTORY ("${PROJECT_SOURCE_DIR}/src/dpmjet/3.2017-1") ADD_SUBDIRECTORY ("${PROJECT_SOURCE_DIR}/src/dpmjet/3.2017-1")
LIST(APPEND TABS DPMJET-17.1/dpmjet.dat) LIST(APPEND TABS DPMJET-17.1/dpmjet.dat)
......
...@@ -15,7 +15,7 @@ ...@@ -15,7 +15,7 @@
#cmakedefine __SIBYLL__ #cmakedefine __SIBYLL__
#cmakedefine __QGSJETII03__ #cmakedefine __QGSJETII03__
#cmakedefine __QGSJETII04__ #cmakedefine __QGSJETII04__
#cmakedefine __DPMJET__ #cmakedefine __DPMJET06__
#cmakedefine __DPMJET17__ #cmakedefine __DPMJET17__
#cmakedefine __DPMJET19__ #cmakedefine __DPMJET19__
...@@ -56,6 +56,9 @@ bool CRMCinterface::init(int HEmodel) ...@@ -56,6 +56,9 @@ bool CRMCinterface::init(int HEmodel)
#ifdef __QGSJETII03__ #ifdef __QGSJETII03__
case 11: libname << "QgsjetII03"; break; case 11: libname << "QgsjetII03"; break;
#endif #endif
#ifdef __DPMJET06__
case 12: libname << "Dpmjet06"; break;
#endif
#ifdef __DPMJET17__ #ifdef __DPMJET17__
case 12: libname << "Dpmjet17"; break; case 12: libname << "Dpmjet17"; break;
#endif #endif
......
...@@ -94,7 +94,7 @@ CRMCoptions::ParseOptions(int argc, char** argv) ...@@ -94,7 +94,7 @@ CRMCoptions::ParseOptions(int argc, char** argv)
<< ", 3=Gheisha" << ", 3=Gheisha"
#endif #endif
#ifdef __PYTHIA__ #ifdef __PYTHIA__
<< ", 4=Pythia_6.115" << ", 4=Pythia_6.4.28"
#endif #endif
#ifdef __HIJING__ #ifdef __HIJING__
<< ", 5=Hijing_1.38" << ", 5=Hijing_1.38"
...@@ -111,6 +111,9 @@ CRMCoptions::ParseOptions(int argc, char** argv) ...@@ -111,6 +111,9 @@ CRMCoptions::ParseOptions(int argc, char** argv)
#ifdef __QGSJETII03__ #ifdef __QGSJETII03__
<< ", 11=QGSJETII-03" << ", 11=QGSJETII-03"
#endif #endif
#ifdef __DPMJET06__
<< ", 12=DPMJet 3.0-6"
#endif
#ifdef __DPMJET17__ #ifdef __DPMJET17__
<< ", 12=DPMJet-III_2017.1" << ", 12=DPMJet-III_2017.1"
#endif #endif
...@@ -392,6 +395,9 @@ CRMCoptions::DumpConfig() const ...@@ -392,6 +395,9 @@ CRMCoptions::DumpConfig() const
case 7: cout << " (QGSJETII-04) \n"; break; case 7: cout << " (QGSJETII-04) \n"; break;
case 8: cout << " (Phojet) \n"; break; case 8: cout << " (Phojet) \n"; break;
case 11: cout << " (QGSJETII-03) \n"; break; case 11: cout << " (QGSJETII-03) \n"; break;
#ifdef __DPMJET06__
case 12: cout << " (DPMJet 3.0-6) \n"; break;
#endif
#ifdef __DPMJET17__ #ifdef __DPMJET17__
case 12: cout << " (DPMJet-III 2017.1) \n"; break; case 12: cout << " (DPMJet-III 2017.1) \n"; break;
#endif #endif
...@@ -479,11 +485,14 @@ CRMCoptions::GetOutputFileName() const ...@@ -479,11 +485,14 @@ CRMCoptions::GetOutputFileName() const
case 7: crmcFileName << "qgsjetII04"; break; case 7: crmcFileName << "qgsjetII04"; break;
case 8: crmcFileName << "phojet"; break; case 8: crmcFileName << "phojet"; break;
case 11: crmcFileName << "qgsjetII03"; break; case 11: crmcFileName << "qgsjetII03"; break;
#ifdef __DPMJET06__
case 12: crmcFileName << "dpmjet3.0-6"; break;
#endif
#ifdef __DPMJET17__ #ifdef __DPMJET17__
case 12: crmcFileName << "dpmjetIII17"; break; case 12: crmcFileName << "dpmjetIII.17"; break;
#endif #endif
#ifdef __DPMJET19__ #ifdef __DPMJET19__
case 12: crmcFileName << "dpmjetIII19"; break; case 12: crmcFileName << "dpmjetIII.19"; break;
#endif #endif
default: default:
cerr << " crmcOut: error - unknown model " << fHEModel << endl; cerr << " crmcOut: error - unknown model " << fHEModel << endl;
......
...@@ -34,6 +34,8 @@ nodecay -19 !uncomment not to decay antialpha ...@@ -34,6 +34,8 @@ nodecay -19 !uncomment not to decay antialpha
MinDecayLength 1. !minimum c.Tau to define stable particles (cm) MinDecayLength 1. !minimum c.Tau to define stable particles (cm)
fdpmjet path @CRMCROOT@/tabs/ fdpmjet path @CRMCROOT@/tabs/
fdpmjet dat @CRMCROOT@/tabs/dpmjet.dat
fdpmjet pho @CRMCROOT@/tabs/phojet_fitpar.dat
fqgsjet dat @CRMCROOT@/tabs/qgsjet.dat fqgsjet dat @CRMCROOT@/tabs/qgsjet.dat
fqgsjet ncs @CRMCROOT@/tabs/qgsjet.ncs fqgsjet ncs @CRMCROOT@/tabs/qgsjet.ncs
fqgsjetII03 dat @CRMCROOT@/tabs/qgsdat-II-03.lzma fqgsjetII03 dat @CRMCROOT@/tabs/qgsdat-II-03.lzma
......
...@@ -3,13 +3,13 @@ FILE(GLOB files *.f) ...@@ -3,13 +3,13 @@ FILE(GLOB files *.f)
set_source_files_properties( dpmjet3.0-6.f dpmjet-crmc.f phojet1.12-35c4.f pythia6115dpm3v1.f ../../crmc-aaa.f ../../models.F PROPERTIES COMPILE_FLAGS "-D __DPMJET__") set_source_files_properties( dpmjet3.0-6.f dpmjet-crmc.f phojet1.12-35c4.f pythia6115dpm3v1.f ../../crmc-aaa.f ../../models.F PROPERTIES COMPILE_FLAGS "-D __DPMJET__")
IF (__CRMCSTATIC__) IF (__CRMCSTATIC__)
add_library(Dpmjet STATIC dpmjet3.0-6.f dpmjet-crmc.f phojet1.12-35c4.f pythia6115dpm3v1.f ../../crmc-aaa.f ../../models.F) add_library(Dpmjet06 STATIC dpmjet3.0-6.f dpmjet-crmc.f phojet1.12-35c4.f pythia6115dpm3v1.f ../../crmc-aaa.f ../../models.F)
ELSE (__CRMCSTATIC__) ELSE (__CRMCSTATIC__)
add_library(Dpmjet SHARED dpmjet3.0-6.f dpmjet-crmc.f phojet1.12-35c4.f pythia6115dpm3v1.f ../../crmc-aaa.f ../../models.F) add_library(Dpmjet06 SHARED dpmjet3.0-6.f dpmjet-crmc.f phojet1.12-35c4.f pythia6115dpm3v1.f ../../crmc-aaa.f ../../models.F)
target_link_libraries(Dpmjet CrmcBasic) target_link_libraries(Dpmjet06 CrmcBasic)
ENDIF (__CRMCSTATIC__) ENDIF (__CRMCSTATIC__)
INSTALL (TARGETS Dpmjet INSTALL (TARGETS Dpmjet06
RUNTIME DESTINATION bin RUNTIME DESTINATION bin
LIBRARY DESTINATION lib LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib/static ARCHIVE DESTINATION lib/static
......
...@@ -88,13 +88,14 @@ c particle without breit-wigner decay will be decayed in EPOS to get full histor ...@@ -88,13 +88,14 @@ c particle without breit-wigner decay will be decayed in EPOS to get full histor
idpdg = KCHG(I,4) idpdg = KCHG(I,4)
c don't touch decays with unknown code c don't touch decays with unknown code
eposid = idtrafostatus('pdg','nxs',idpdg,istatus) idepos = idtrafostatus('pdg','nxs',idpdg,istatus)
if(abs(idpdg).eq.10323)print *,idpdg,idepos,istatus
if(istatus.ne.0) then if(istatus.ne.0) then
go to 100 go to 100
endif endif
c don't touch decays with unknown width c don't touch decays with unknown width
call idtaustatus(eposid,0,0,taugm,istatus) call idtaustatus(idepos,0,0,taugm,istatus)
c print *,i,(taugm.eq.indexOutOfRange.or.taugm.eq.iijjOutOfRange) c print *,i,(taugm.eq.indexOutOfRange.or.taugm.eq.iijjOutOfRange)
c + ,(PMAS(i,2).LT.PARP(41)) c + ,(PMAS(i,2).LT.PARP(41))
if(istatus.ne.0) then if(istatus.ne.0) then
...@@ -230,7 +231,8 @@ c PLEASE FILL!! ...@@ -230,7 +231,8 @@ c PLEASE FILL!!
GOTO 1001 GOTO 1001
ENDIF ENDIF
do k=1,NHKK do 100 k=1,NHKK
nptlhep(k)=0
c LIST is the code of final particle, P - its 4-momentum and mass. c LIST is the code of final particle, P - its 4-momentum and mass.
ic=IDHKK(k) !! copies IDs ic=IDHKK(k) !! copies IDs
...@@ -240,8 +242,6 @@ c LIST is the code of final particle, P - its 4-momentum and mass. ...@@ -240,8 +242,6 @@ c LIST is the code of final particle, P - its 4-momentum and mass.
$ , ' momentum :',ISTHKK(k),(sngl(PHKK(i,k)),i=1,5) $ , ' momentum :',ISTHKK(k),(sngl(PHKK(i,k)),i=1,5)
$ ,JMOHKK(1,k),JMOHKK(2,k),JDAHKK(1,k),JDAHKK(2,k) $ ,JMOHKK(1,k),JMOHKK(2,k),JDAHKK(1,k),JDAHKK(2,k)
nptl=nptl+1 !! add 1 particle to stack
nptlhep(k)=nptl
IF(ISTHKK(k).GE.1 .AND. ISTHKK(k).LE.2 .AND. ic.NE.99999 )THEN !! if final particle IF(ISTHKK(k).GE.1 .AND. ISTHKK(k).LE.2 .AND. ic.NE.99999 )THEN !! if final particle
ist=ISTHKK(k)-1 !!0 means last generation other codes are e.g. for pomerons, remnants... ist=ISTHKK(k)-1 !!0 means last generation other codes are e.g. for pomerons, remnants...
...@@ -250,8 +250,23 @@ c LIST is the code of final particle, P - its 4-momentum and mass. ...@@ -250,8 +250,23 @@ c LIST is the code of final particle, P - its 4-momentum and mass.
else else
ist=abs(ISTHKK(k)) !!0 means last generation other codes are e.g ist=abs(ISTHKK(k)) !!0 means last generation other codes are e.g
endif endif
id = idtrafostatus('pdg','nxs',ic,istatus)
if(istatus.ne.0)then
if(ist.eq.0)then
print *,ic,id,istatus
stop "pdg id from DPMJet unknown !"
else
goto 100
endif
endif
id=idtrafo('pdg','nxs',ic) !! convert to epos ids nptl=nptl+1 !! add 1 particle to stack
IF(nptl.GE.mxptl) THEN
if(ish.ge.2)WRITE(ifch,'(a)')
& 'mxptl too small for event. Skipping'
GOTO 1001
ENDIF
nptlhep(k)=nptl
if(ish.ge.7)write(ifch,'(a,i5,a,i5,a)') if(ish.ge.7)write(ifch,'(a,i5,a,i5,a)')
$ ' epos particle ',nptl,' id :',id,' after conversion' $ ' epos particle ',nptl,' id :',id,' after conversion'
...@@ -351,7 +366,7 @@ C $ nptlhep(JMOHKK(1,k)) ...@@ -351,7 +366,7 @@ C $ nptlhep(JMOHKK(1,k))
$ , ' momentum :',(pptl(i,nptl),i=1,5) $ , ' momentum :',(pptl(i,nptl),i=1,5)
enddo !! end of loop over particles for copying to epos block 100 continue !! end of loop over particles for copying to epos block
c update daughter index c update daughter index
do i=1,nptl do i=1,nptl
......
...@@ -168,7 +168,7 @@ ctp modifications for CRMC line 16784 and in DT_INIT for NCASES=-1 ...@@ -168,7 +168,7 @@ ctp modifications for CRMC line 16784 and in DT_INIT for NCASES=-1
* flags for activated histograms * flags for activated histograms
COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL COMMON /DTHIS3/ IHISPP(50),IHISXS(50),IXSTBL
COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5) COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
* LEPTO * LEPTO
**LUND single / double precision **LUND single / double precision
REAL CUT,PARL,TMPX,TMPY,TMPW2,TMPQ2,TMPU REAL CUT,PARL,TMPX,TMPY,TMPW2,TMPQ2,TMPU
...@@ -2116,13 +2116,13 @@ C IF (IDP.EQ.27) IDP = 6 ...@@ -2116,13 +2116,13 @@ C IF (IDP.EQ.27) IDP = 6
ENDIF ENDIF
* initialization of Glauber-formalism (moved to xAEVT, sr 26.3.96) * initialization of Glauber-formalism (moved to xAEVT, sr 26.3.96)
IF (NCOMPO.LE.0) THEN c IF (NCOMPO.LE.0) THEN
CALL DT_SHMAKI(IP,IPZ,IT,ITZ,IDP,PPN,IGLAU) c CALL DT_SHMAKI(IP,IPZ,IT,ITZ,IDP,PPN,IGLAU)
ELSE c ELSE
DO 493 I=1,NCOMPO c DO 493 I=1,NCOMPO
CALL DT_SHMAKI(IP,IPZ,IEMUMA(I),IEMUCH(I),IDP,PPN,0) c CALL DT_SHMAKI(IP,IPZ,IEMUMA(I),IEMUCH(I),IDP,PPN,0)
493 CONTINUE c 493 CONTINUE
ENDIF c ENDIF
* pre-tabulation of elastic cross-sections * pre-tabulation of elastic cross-sections
CALL DT_SIGTBL(JDUM,JDUM,DUM,DUM,-1) CALL DT_SIGTBL(JDUM,JDUM,DUM,DUM,-1)
...@@ -14997,7 +14997,7 @@ C DO 1 I=NPOINT(5),NEND ...@@ -14997,7 +14997,7 @@ C DO 1 I=NPOINT(5),NEND
COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK), COMMON /DTEVT2/ IDRES(NMXHKK),IDXRES(NMXHKK),NOBAM(NMXHKK),
& IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10), & IDBAM(NMXHKK),IDCH(NMXHKK),NPOINT(10),
& IHIST(2,NMXHKK) & IHIST(2,NMXHKK)
COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5) COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
PARAMETER (MAXLND=4000) PARAMETER (MAXLND=4000)
COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5) COMMON/PYJETS/N,NPAD,K(MAXLND,5),P(MAXLND,5),V(MAXLND,5)
...@@ -15586,7 +15586,7 @@ C ISU = 4 ...@@ -15586,7 +15586,7 @@ C ISU = 4
COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4) COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5) COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
* flags for particle decays * flags for particle decays
COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20), COMMON /DTFRPA/ MSTUX(20),PARUX(20),MSTJX(20),PARJX(20),
& IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20), & IMSTU(20),IPARU(20),IMSTJ(20),IPARJ(20),
...@@ -20296,8 +20296,8 @@ C & ZSTLIN (2,IA) = MAX ( SQRT (ZSTLIN(2,IA)-ZSTLIN(1,IA)**2), ...@@ -20296,8 +20296,8 @@ C & ZSTLIN (2,IA) = MAX ( SQRT (ZSTLIN(2,IA)-ZSTLIN(1,IA)**2),
IMPLICIT DOUBLE PRECISION (A-H,O-Z) IMPLICIT DOUBLE PRECISION (A-H,O-Z)
SAVE SAVE
CHARACTER*500 FNDPMJET CHARACTER*500 fndpmjet,fndpmjetpho
COMMON/DPMJETFNAME/ FNDPMJET COMMON/DPMJETFNAME/ fndpmjet,fndpmjetpho
PARAMETER ( CSNNRM = 2.0D-15 ) PARAMETER ( CSNNRM = 2.0D-15 )
PARAMETER ( ZERZER = 0.D+00 ) PARAMETER ( ZERZER = 0.D+00 )
...@@ -28339,56 +28339,56 @@ C & '-------------------------------' ...@@ -28339,56 +28339,56 @@ C & '-------------------------------'
* *
*===pohist=============================================================* *===pohist=============================================================*
* *
SUBROUTINE PHO_PHIST(IMODE,WEIGHT) c SUBROUTINE PHO_PHIST(IMODE,WEIGHT)
c
IMPLICIT DOUBLE PRECISION (A-H,O-X,Z) c IMPLICIT DOUBLE PRECISION (A-H,O-X,Z)
SAVE c SAVE
c
COMMON /DTIONT/ LINP,LOUT,LDAT c COMMON /DTIONT/ LINP,LOUT,LDAT
PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50) c PARAMETER (NCOMPX=20,NEB=8,NQB= 5,KSITEB=50)
* Glauber formalism: cross sections c* Glauber formalism: cross sections
COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2, c COMMON /DTGLXS/ ECMNN(NEB),Q2G(NQB),ECMNOW,Q2,
& XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX), c & XSTOT(NEB,NQB,NCOMPX),XSELA(NEB,NQB,NCOMPX),
& XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX), c & XSQEP(NEB,NQB,NCOMPX),XSQET(NEB,NQB,NCOMPX),
& XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX), c & XSQE2(NEB,NQB,NCOMPX),XSPRO(NEB,NQB,NCOMPX),
& XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX), c & XSDEL(NEB,NQB,NCOMPX),XSDQE(NEB,NQB,NCOMPX),
& XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX), c & XETOT(NEB,NQB,NCOMPX),XEELA(NEB,NQB,NCOMPX),
& XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX), c & XEQEP(NEB,NQB,NCOMPX),XEQET(NEB,NQB,NCOMPX),
& XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX), c & XEQE2(NEB,NQB,NCOMPX),XEPRO(NEB,NQB,NCOMPX),
& XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX), c & XEDEL(NEB,NQB,NCOMPX),XEDQE(NEB,NQB,NCOMPX),
& BSLOPE,NEBINI,NQBINI c & BSLOPE,NEBINI,NQBINI
c
ILAB = 0 c ILAB = 0
IF (IMODE.EQ.10) THEN c IF (IMODE.EQ.10) THEN
IMODE = 1 c IMODE = 1
ILAB = 1 c ILAB = 1
ENDIF c ENDIF
IF (ABS(IMODE).LT.1000) THEN c IF (ABS(IMODE).LT.1000) THEN
* PHOJET-statistics c* PHOJET-statistics
C CALL POHISX(IMODE,WEIGHT) cC CALL POHISX(IMODE,WEIGHT)
IF (IMODE.EQ.-1) THEN c IF (IMODE.EQ.-1) THEN
MODE = 1 c MODE = 1
XSTOT(1,1,1) = WEIGHT c XSTOT(1,1,1) = WEIGHT
ENDIF c ENDIF
IF (IMODE.EQ. 1) MODE = 2 c IF (IMODE.EQ. 1) MODE = 2
IF (IMODE.EQ.-2) MODE = 3 c IF (IMODE.EQ.-2) MODE = 3
IF (MODE.EQ.2) CALL DT_SWPPHO(ILAB) c IF (MODE.EQ.2) CALL DT_SWPPHO(ILAB)
C IF (MODE.EQ.3) WRITE(LOUT,*) cC IF (MODE.EQ.3) WRITE(LOUT,*)
C & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization' cC & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization'
CALL DT_HISTOG(MODE) c CALL DT_HISTOG(MODE)
CALL DT_USRHIS(MODE) c CALL DT_USRHIS(MODE)
ELSE c ELSE
* DTUNUC-statistics c* DTUNUC-statistics
MODE = IMODE/1000 c MODE = IMODE/1000
C IF (MODE.EQ.3) WRITE(LOUT,*) cC IF (MODE.EQ.3) WRITE(LOUT,*)
C & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization' cC & ' Sigma = ',XSPRO(1,1,1),' mb used for normalization'
CALL DT_HISTOG(MODE) c CALL DT_HISTOG(MODE)
CALL DT_USRHIS(MODE) c CALL DT_USRHIS(MODE)
ENDIF c ENDIF
c
RETURN c RETURN
END c END
c
*$ CREATE DT_SWPPHO.FOR *$ CREATE DT_SWPPHO.FOR
*COPY DT_SWPPHO *COPY DT_SWPPHO
* *
...@@ -33002,15 +33002,15 @@ C SUBROUTINE POHISX(I,X) ...@@ -33002,15 +33002,15 @@ C SUBROUTINE POHISX(I,X)
*COPY PHO_LHIST *COPY PHO_LHIST
* *
*===poluhi=============================================================* *===poluhi=============================================================*
* c*
SUBROUTINE PHO_LHIST(I,X) c SUBROUTINE PHO_LHIST(I,X)
** c**
c
IMPLICIT DOUBLE PRECISION (A-H,O-Z) c IMPLICIT DOUBLE PRECISION (A-H,O-Z)
SAVE c SAVE
c
RETURN c RETURN
END c END
*$ CREATE PDFSET.FOR *$ CREATE PDFSET.FOR
*COPY PDFSET *COPY PDFSET
...@@ -509,7 +509,7 @@ C hard cross sections and MC selection weights ...@@ -509,7 +509,7 @@ C hard cross sections and MC selection weights
COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4) COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
INTEGER MDCY,MDME,KFDP INTEGER MDCY,MDME,KFDP
DOUBLE PRECISION BRAT DOUBLE PRECISION BRAT
COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5) COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
INTEGER PYCOMP INTEGER PYCOMP
...@@ -34813,7 +34813,7 @@ C input/output channels ...@@ -34813,7 +34813,7 @@ C input/output channels
COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4) COMMON/PYDAT2/KCHG(500,4),PMAS(500,4),PARF(2000),VCKM(4,4)
INTEGER MDCY,MDME,KFDP INTEGER MDCY,MDME,KFDP
DOUBLE PRECISION BRAT DOUBLE PRECISION BRAT
COMMON/PYDAT3/MDCY(500,3),MDME(4000,2),BRAT(4000),KFDP(4000,5) COMMON/PYDAT3/MDCY(500,3),MDME(8000,2),BRAT(8000),KFDP(8000,5)
INTEGER PYCOMP INTEGER PYCOMP
...@@ -223,13 +223,13 @@ c particle without breit-wigner decay will be decayed in EPOS to get full histor ...@@ -223,13 +223,13 @@ c particle without breit-wigner decay will be decayed in EPOS to get full histor
idpdgi = KCHG(I,4) idpdgi = KCHG(I,4)
c don't touch decays with unknown code c don't touch decays with unknown code
eposid = idtrafostatus('pdg','nxs',idpdgi,istatus) idepos = idtrafostatus('pdg','nxs',idpdgi,istatus)
if(istatus.ne.0) then if(istatus.ne.0) then
go to 100 go to 100
endif endif
c don't touch decays with unknown width c don't touch decays with unknown width
call idtaustatus(eposid,0,0,taugm,istatus) call idtaustatus(idepos,0,0,taugm,istatus)
c print *,i,(taugm.eq.indexOutOfRange.or.taugm.eq.iijjOutOfRange) c print *,i,(taugm.eq.indexOutOfRange.or.taugm.eq.iijjOutOfRange)
c + ,(PMAS(i,2).LT.PARP(41)) c + ,(PMAS(i,2).LT.PARP(41))
if(istatus.ne.0) then if(istatus.ne.0) then
...@@ -415,7 +415,8 @@ c PLEASE FILL!! ...@@ -415,7 +415,8 @@ c PLEASE FILL!!
anintine=anintine+1. anintine=anintine+1.
c esum=0.d0 c esum=0.d0
do k=1,NHKK do 100 k=1,NHKK
nptlhep(k)=0
c LIST is the code of final particle, P - its 4-momentum and mass. c LIST is the code of final particle, P - its 4-momentum and mass.
ic=IDHKK(k) !! copies IDs ic=IDHKK(k) !! copies IDs
...@@ -425,17 +426,7 @@ c LIST is the code of final particle, P - its 4-momentum and mass. ...@@ -425,17 +426,7 @@ c LIST is the code of final particle, P - its 4-momentum and mass.
$ , ' momentum :',ISTHKK(k),(sngl(PHKK(i,k)),i=1,5) $ , ' momentum :',ISTHKK(k),(sngl(PHKK(i,k)),i=1,5)
$ ,JMOHKK(1,k),JMOHKK(2,k),JDAHKK(1,k),JDAHKK(2,k) $ ,JMOHKK(1,k),JMOHKK(2,k),JDAHKK(1,k),JDAHKK(2,k)
nptl=nptl+1 !! add 1 particle to stack
IF(nptl.GE.mxptl) THEN
if(ish.ge.2)WRITE(ifch,'(a)')
& 'mxptl too small for event. Skipping'
GOTO 1001
ENDIF
anintine=anintine+1.
nptlhep(k)=nptl
IF(ISTHKK(k).GE.1 .AND. ISTHKK(k).LE.2 .AND. ic.NE.99999 )THEN! if final particle IF(ISTHKK(k).GE.1 .AND. ISTHKK(k).LE.2 .AND. ic.NE.99999 )THEN! if final particle
ist=ISTHKK(k)-1 !!0 means last generation other codes are e.g. for pomerons, remnants... ist=ISTHKK(k)-1 !!0 means last generation other codes are e.g. for pomerons, remnants...
...@@ -460,9 +451,25 @@ c esum=esum+PHKK(4,k) ...@@ -460,9 +451,25 @@ c esum=esum+PHKK(4,k)
elseif(ic.eq.66666)then !cascade elseif(ic.eq.66666)then !cascade
id=80000000 id=80000000
else else
id=idtrafo('pdg','nxs',ic) !! convert to epos id id = idtrafostatus('pdg','nxs',ic,istatus)
if(istatus.ne.0)then
if(ist.eq.0)then
print *,ic,id,istatus
stop "pdg id from DPMJet unknown !"
else
goto 100
endif
endif
c if(ist.eq.0)esum=esum+PHKK(4,k) c if(ist.eq.0)esum=esum+PHKK(4,k)
endif endif
nptl=nptl+1 !! add 1 particle to stack
IF(nptl.GE.mxptl) THEN
if(ish.ge.2)WRITE(ifch,'(a)')
& 'mxptl too small for event. Skipping'
GOTO 1001
ENDIF
nptlhep(k)=nptl
if(ish.ge.7)write(ifch,'(a,i5,a,i12,a)') if(ish.ge.7)write(ifch,'(a,i5,a,i12,a)')
$ ' epos particle ',nptl,' id :',id,' after conversion' $ ' epos particle ',nptl,' id :',id,' after conversion'
...@@ -571,7 +578,7 @@ C $ nptlhep(JMOHKK(1,k)) ...@@ -571,7 +578,7 @@ C $ nptlhep(JMOHKK(1,k))
$ , ' momentum :',(pptl(i,nptl),i=1,5) $ , ' momentum :',(pptl(i,nptl),i=1,5)
enddo !! end of loop over particles for copying to epos block 100 continue !! end of loop over particles for copying to epos block
c write(ifch,*)'esum',esum,0.5*engy*(maproj+matarg) c write(ifch,*)'esum',esum,0.5*engy*(maproj+matarg)
c update daughter index c update daughter index
......
...@@ -223,13 +223,13 @@ c particle without breit-wigner decay will be decayed in EPOS to get full histor ...@@ -223,13 +223,13 @@ c particle without breit-wigner decay will be decayed in EPOS to get full histor
idpdgi = KCHG(I,4) idpdgi = KCHG(I,4)
c don't touch decays with unknown code c don't touch decays with unknown code
eposid = idtrafostatus('pdg','nxs',idpdgi,istatus) idepos = idtrafostatus('pdg','nxs',idpdgi,istatus)
if(istatus.ne.0) then if(istatus.ne.0) then
go to 100 go to 100
endif endif