fFCentr(0),
fPi0Decay(0),
fDecayAll(0),
- fProcess(kDpmMb)
+ fProcess(kDpmMb),
+ fFragmentation(kFALSE)
{
// Default Constructor
}
fFCentr(0),
fPi0Decay(0),
fDecayAll(0),
- fProcess(iproc)
+ fProcess(iproc),
+ fFragmentation(kFALSE)
{
printf("TDPMJet Constructor %d %d %d %d \n", Ip, Ipz, It, Itz);
}
//
// Write standard DPMJET input cards
//
+ if(fFragmentation) printf("\tTDPMJet fragmentation/evaporation applied\n");
+
FILE* out = fopen("dpmjet.inp","w");
// Projectile and Target definition
if (fIp == 1 && fIpz ==1) {
}
// Beam energy and crossing-angle
- fprintf(out, "BEAM %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",fEpn, fEpn, 0., 0., 0., 0.);
+ fprintf(out, "CMENERGY %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",fCMEn, 0., 0., 0., 0., 0.);
+ if(fIt == 1 && fIp ==1){
+ fprintf(out, "BEAM %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",fEpn, fEpn, 0., 0., 0., 0.); //p-p
+ }
+ else if(fIp > 1 || fIt > 1){
+ if(fIp>1 && fIt>1) fprintf(out, "BEAM %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",fEpn, fEpn, 0., 0., 0., 0.);//A-A
+ else if(fIp==1 && fIt>1){ // proton towards A side (directed z>0)
+ fprintf(out, "BEAM %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", fEpn,fEpn*fItz/fIt, 0., 0., 0., 0.);//pA
+ printf("\n TDPMjet::Initialize() -> p-A: projectile (p) energy = %10.1f, CMS energy = %10.1f\n\n",fEpn,fCMEn);
+ }
+ else if(fIt==1 && fIp>1){ // proton towards C side (directed z<0)
+ fprintf(out, "BEAM %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", fEpn, fEpn*fIp/fIpz, 0., 0., 0., 0.);//A-p
+ printf("\n TDPMjet::Initialize() -> A-p: projectile (A) energy = %10.1f, CMS energy = %10.1f\n\n",fEpn,fCMEn);
+ }
+ }
// Centrality
- if (fIp > 1. && fIt > 1)
+ if((fIp > 1 || fIt > 1) && fFragmentation)
+ fprintf(out, "CENTRAL %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",-2., fBmin, fBmax, 0., 0., 0.);
+ else if((fIp > 1 || fIt > 1) && !fFragmentation)
fprintf(out, "CENTRAL %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n",-1., fBmin, fBmax, 0., 0., 0.);
// Particle decays
if (fPi0Decay)
}
-Int_t TDPMjet::NHEP() const {return POEVT1.nhep;}
-Int_t TDPMjet::ISTHEP(Int_t i) const {return POEVT1.isthep[i];}
-Int_t TDPMjet::IDHEP(Int_t i) const {return POEVT1.idhep[i];}
-Int_t TDPMjet::PHEP(Int_t i, Int_t j) const {return POEVT1.phep[i][j];}
+Int_t TDPMjet::NHEP() const {return POEVT1.nhep;}
+Int_t TDPMjet::ISTHEP(Int_t i) const {return POEVT1.isthep[i];}
+Int_t TDPMjet::IDHEP(Int_t i) const {return POEVT1.idhep[i];}
+Double_t TDPMjet::PHEP(Int_t i, Int_t j) const {return POEVT1.phep[i][j];}