fLHC(kFALSE),
fRandomPz(kFALSE),
fNoHeavyQuarks(kFALSE),
- fEventTime(0.),
- fHeader(AliGenHijingEventHeader("Hijing"))
+ fHeader(AliGenHijingEventHeader("Hijing")),
+ fSigmaNN(-1),
+ fNoElas(0)
{
// Constructor
fEnergyCMS = 5500.;
fLHC(kFALSE),
fRandomPz(kFALSE),
fNoHeavyQuarks(kFALSE),
- fEventTime(0.),
- fHeader(AliGenHijingEventHeader("Hijing"))
+ fHeader(AliGenHijingEventHeader("Hijing")),
+ fSigmaNN(-1),
+ fNoElas(0)
{
// Default PbPb collisions at 5. 5 TeV
//
fHijing->SetIHPR2(21, fKeep);
fHijing->SetHIPR1(8, fPtHardMin);
fHijing->SetHIPR1(9, fPtHardMax);
- fHijing->SetHIPR1(10, fPtMinJet);
+ fHijing->SetHIPR1(10, fPtMinJet);
+ if (fSigmaNN>0)
+ fHijing->SetHIPR1(31, fSigmaNN/2.);
fHijing->SetHIPR1(50, fSimpleJet);
+ //
+ // Switching off elastic scattering
+ if (fNoElas)
+ fHijing->SetIHPR2(14, 0);
//
// Quenching
//
Float_t polar[3] = {0,0,0};
Float_t origin[3] = {0,0,0};
Float_t origin0[3] = {0,0,0};
+ Float_t time0 = 0.;
Float_t p[3];
Float_t tof;
fTrials = 0;
for (j = 0;j < 3; j++) origin0[j] = fOrigin[j];
+ time0 = fTimeOrigin;
if(fVertexSmear == kPerEvent) {
Vertex();
for (j=0; j < 3; j++) origin0[j] = fVertex[j];
+ time0 = fTime;
}
fVertex[0] = origin0[0];
fVertex[1] = origin0[1];
fVertex[2] = origin0[2];
-
+ fTime = time0;
//
// First select parent particles
//
} // selected
} // particle loop final state
-//
-// Time of the interactions
- Float_t tInt = 0.;
- if (fPileUpTimeWindow > 0.) tInt = fPileUpTimeWindow * (2. * gRandom->Rndm() - 1.);
-
//
// Write particles to stack
origin[0] = origin0[0]+iparticle->Vx()/10;
origin[1] = origin0[1]+iparticle->Vy()/10;
origin[2] = origin0[2]+iparticle->Vz()/10;
- fEventTime = 0.;
-
- if (TestBit(kVertexRange)) {
- fEventTime = sign * origin0[2] / 2.99792458e10;
- tof = kconv * iparticle->T() + fEventTime;
- } else {
- tof = kconv * iparticle->T();
- fEventTime = tInt;
- if (fPileUpTimeWindow > 0.) tof += tInt;
- }
+ tof = time0+kconv * iparticle->T();
+
imo = -1;
TParticle* mother = 0;
if (hasMother) {
}
}
} // event loop
+
MakeHeader();
SetHighWaterMark(nt);
}
fDnDb = new TGraph(i, b, si2);
}
-Bool_t AliGenHijing::DaughtersSelection(TParticle* iparticle)
+Bool_t AliGenHijing::DaughtersSelection(const TParticle* iparticle)
{
//
// Looks recursively if one of the daughters has been selected
return res;
}
-Bool_t AliGenHijing::Stable(TParticle* particle) const
+Bool_t AliGenHijing::Stable(const TParticle* particle) const
{
// Return true for a stable particle
//
fHeader.SetSpectators(fProjectileSpecn, fProjectileSpecp,
fTargetSpecn,fTargetSpecp);
fHeader.SetReactionPlaneAngle(fHijing->GetHINT1(20));
+ fHeader.SetTrueNPart(fHijing->GetNPART());
// 4-momentum vectors of the triggered jets.
//
fHeader.SetTrials(fTrials);
// Event Vertex
fHeader.SetPrimaryVertex(fVertex);
- fHeader.SetInteractionTime(fEventTime);
+ fHeader.SetInteractionTime(fTime);
+
+ Int_t nsd1 = 0,nsd2 = 0,ndd = 0;
+ Int_t nT = fHijing->GetNT();
+ Int_t nP = fHijing->GetNP();
+ for (Int_t i = 1; i <= nP; ++i) {
+ for (Int_t j = 1; j <= nT; ++j) {
+ Int_t tp = fHijing->GetNFP(i, 5);
+ Int_t tt = fHijing->GetNFT(j, 5);
+ if (tp == 2)
+ nsd1++;
+ if (tt == 2)
+ nsd2++;
+ if (tp == 2 && tt == 2)
+ ndd++;
+ }
+ }
+ fHeader.SetNDiffractive(nsd1, nsd2, ndd);
AddHeader(&fHeader);
fCollisionGeometry = &fHeader;
}