fKeep(0),
fQuench(1),
fShadowing(1),
- fDecaysOff(1),
+ fDecaysOff(3),
fTrigger(0),
fEvaluate(0),
fSelectAll(0),
fLHC(kFALSE),
fRandomPz(kFALSE),
fNoHeavyQuarks(kFALSE),
- fEventTime(0.),
- fHeader(0)
+ fHeader(AliGenHijingEventHeader("Hijing"))
{
// Constructor
fEnergyCMS = 5500.;
fKeep(0),
fQuench(1),
fShadowing(1),
- fDecaysOff(1),
+ fDecaysOff(3),
fTrigger(0),
fEvaluate(0),
fSelectAll(0),
fLHC(kFALSE),
fRandomPz(kFALSE),
fNoHeavyQuarks(kFALSE),
- fEventTime(0.),
- fHeader(0)
+ fHeader(AliGenHijingEventHeader("Hijing"))
{
// Default PbPb collisions at 5. 5 TeV
//
//
// Set random number generator
AliHijingRndm::SetHijingRandom(GetRandom());
+
}
AliGenHijing::~AliGenHijing()
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;
}
// Get event vertex
//
- TParticle * iparticle = (TParticle *) fParticles.At(0);
fVertex[0] = origin0[0];
fVertex[1] = origin0[1];
fVertex[2] = origin0[2];
-
+ fTime = time0;
//
// First select parent particles
//
-
+ TParticle * iparticle = 0;
for (i = 0; i < np; i++) {
iparticle = (TParticle *) fParticles.At(i);
} // 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) {
printf("\n Projectile Radius (fm): %f \n",fHijing->GetHIPR1(34));
printf("\n Target Radius (fm): %f \n",fHijing->GetHIPR1(35));
+ printf("\n Inelastic and total cross section (mb) %f %f \n",fHijing->GetHINT1(12), fHijing->GetHINT1(13));
Int_t i;
Float_t oldvalue= 0.;
Float_t* b = new Float_t[kMax];
Float_t* si1 = new Float_t[kMax];
Float_t* si2 = new Float_t[kMax];
-
+ for (i = 0; i < kMax; i++){
+ b[i] = 0.;
+ si1[i] = 0.;
+ si2[i] = 0.;
+ }
+
for (i = 0; i < kMax; i++)
{
Float_t xb = bMin+i*kdib;
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
//
void AliGenHijing::MakeHeader()
{
// Builds the event header, to be called after each event
- if (fHeader) delete fHeader;
- fHeader = new AliGenHijingEventHeader("Hijing");
-
- ((AliGenHijingEventHeader*) fHeader)->SetNProduced(fNprimaries);
- ((AliGenHijingEventHeader*) fHeader)->SetImpactParameter(fHijing->GetHINT1(19));
- ((AliGenHijingEventHeader*) fHeader)->SetTotalEnergy(fHijing->GetEATT());
- ((AliGenHijingEventHeader*) fHeader)->SetHardScatters(fHijing->GetJATT());
- ((AliGenHijingEventHeader*) fHeader)->SetParticipants(fHijing->GetNP(), fHijing->GetNT());
- ((AliGenHijingEventHeader*) fHeader)->SetCollisions(fHijing->GetN0(),
- fHijing->GetN01(),
- fHijing->GetN10(),
- fHijing->GetN11());
- ((AliGenHijingEventHeader*) fHeader)->SetSpectators(fProjectileSpecn, fProjectileSpecp,
- fTargetSpecn,fTargetSpecp);
- ((AliGenHijingEventHeader*) fHeader)->SetReactionPlaneAngle(fHijing->GetHINT1(20));
-// printf("Impact Parameter %13.3f \n", fHijing->GetHINT1(19));
-
-
+ fHeader.SetNProduced(fNprimaries);
+ fHeader.SetImpactParameter(fHijing->GetHINT1(19));
+ fHeader.SetTotalEnergy(fHijing->GetEATT());
+ fHeader.SetHardScatters(fHijing->GetJATT());
+ fHeader.SetParticipants(fHijing->GetNP(), fHijing->GetNT());
+ fHeader.SetCollisions(fHijing->GetN0(),
+ fHijing->GetN01(),
+ fHijing->GetN10(),
+ fHijing->GetN11());
+ fHeader.SetSpectators(fProjectileSpecn, fProjectileSpecp,
+ fTargetSpecn,fTargetSpecp);
+ fHeader.SetReactionPlaneAngle(fHijing->GetHINT1(20));
+ fHeader.SetTrueNPart(fHijing->GetNPART());
// 4-momentum vectors of the triggered jets.
//
fHijing->GetHINT1(37),
fHijing->GetHINT1(38),
fHijing->GetHINT1(39));
- ((AliGenHijingEventHeader*) fHeader)->SetJets(jet1, jet2, jet3, jet4);
+ fHeader.SetJets(jet1, jet2, jet3, jet4);
// Bookkeeping for kinematic bias
- ((AliGenHijingEventHeader*) fHeader)->SetTrials(fTrials);
+ fHeader.SetTrials(fTrials);
// Event Vertex
- fHeader->SetPrimaryVertex(fVertex);
- fHeader->SetInteractionTime(fEventTime);
- AddHeader(fHeader);
- fCollisionGeometry = (AliGenHijingEventHeader*) fHeader;
+ fHeader.SetPrimaryVertex(fVertex);
+ fHeader.SetInteractionTime(fTime);
+ AddHeader(&fHeader);
+ fCollisionGeometry = &fHeader;
}