fTriggerMultiplicityEta(0),
fTriggerMultiplicityPtMin(0),
fkTuneForDiff(0),
- fProcDiff(0)
+ fProcDiff(0),
+ fFragmentation(kFALSE)
{
// Constructor
fEnergyCMS = 5500.;
fTriggerMultiplicityEta(0),
fTriggerMultiplicityPtMin(0),
fkTuneForDiff(0),
- fProcDiff(0)
+ fProcDiff(0),
+ fFragmentation(kFALSE)
+
{
// Default PbPb collisions at 5. 5 TeV
//
fTriggerMultiplicityEta(0),
fTriggerMultiplicityPtMin(0),
fkTuneForDiff(0),
- fProcDiff(0)
+ fProcDiff(0),
+ fFragmentation(kFALSE)
+
{
// Dummy copy constructor
fEnergyCMS = 5500.;
fDPMjet->SetbRange(fMinImpactParam, fMaxImpactParam);
fDPMjet->SetPi0Decay(fPi0Decay);
fDPMjet->SetDecayAll(fDecayAll);
+ fDPMjet->SetFragmentProd(fFragmentation);
AliGenMC::Init();
virtual void Init();
virtual void FinishRun();
virtual void SetEnergyCMS(Float_t energy = 14000.) {fEnergyCMS = energy; fBeamEn = energy / 2.;}
+ virtual void SetpBeamEnergy(Float_t benergy = 14000.) {fBeamEn = benergy;}
virtual void SetImpactParameterRange(Float_t bmin=0., Float_t bmax=1.)
{fMinImpactParam=bmin; fMaxImpactParam=bmax;}
virtual void SetProcess(DpmProcess_t iproc) {fProcess = iproc;}
void SetTuneForDiff(Bool_t a=kTRUE) {fkTuneForDiff=a;}
+ virtual void SetFragmentProd(Bool_t val) {fFragmentation = val;}
+
protected:
Bool_t SelectFlavor(Int_t pid);
void MakeHeader();
Bool_t fkTuneForDiff; // Phojet tune
Int_t fProcDiff;
+
+ Bool_t fFragmentation; // Allows evaporation and fragments production
private:
// adjust the weight from kinematic cuts
Bool_t GetWeightsDiffraction(Double_t M, Double_t &Mmin, Double_t &Mmax,
Double_t &wSD, Double_t &wDD, Double_t &wND);
- ClassDef(AliGenDPMjet,4) // AliGenerator interface to DPMJET
+ ClassDef(AliGenDPMjet,5) // AliGenerator interface to DPMJET
};
#endif
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(-1)
{
printf("TDPMJet Constructor %d %d %d %d \n", Ip, Ipz, It, Itz);
}
}
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 towwards A side (directed z>0)
+ 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: p beam energy = %10.1f, CMS energy = %10.1f\n\n",fEpn,fCMEn/2);
}
}
}
// 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)
fprintf(out, "PARDECAY %10.1f%10.1f%10.1f%10.1f%10.1f%10.1f\n", 2., 0., 0., 0., 0., 0.);
virtual void SetPi0Decay(Int_t iPi0) {fPi0Decay = iPi0;}
virtual void SetDecayAll(Int_t iDecAll) {fDecayAll = iDecAll;}
+ virtual void SetFragmentProd(Bool_t val) {fFragmentation = val;}
+
// Access to DPMJET common blocks:
virtual Int_t GetEvNum() const;
virtual Int_t GetEntriesNum() const;
Int_t fPi0Decay;// Flag for pi0 decays
Int_t fDecayAll;// Flag to decay also long-lived particles
DpmProcess_t fProcess; // Process type
+ //
+ Bool_t fFragmentation; // Allows evaporation and fragments production
- ClassDef(TDPMjet,2) //Interface to DPMJET Event Generator
+ ClassDef(TDPMjet,3) //Interface to DPMJET Event Generator
};
#endif