X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=THijing%2FAliGenHijing.cxx;h=915e8cf34baeb786f9594e08f74fbaccd822891c;hb=12e33589bac950fd5eeee7acce6cea7865315c77;hp=26602e42c3f5f0926cd680d9ae1bee1c10307d29;hpb=68f18c58898f17147fe3619702dcd1a9992908fe;p=u%2Fmrichter%2FAliRoot.git diff --git a/THijing/AliGenHijing.cxx b/THijing/AliGenHijing.cxx index 26602e42c3f..915e8cf34ba 100644 --- a/THijing/AliGenHijing.cxx +++ b/THijing/AliGenHijing.cxx @@ -45,7 +45,7 @@ AliGenHijing::AliGenHijing() fKeep(0), fQuench(1), fShadowing(1), - fDecaysOff(1), + fDecaysOff(3), fTrigger(0), fEvaluate(0), fSelectAll(0), @@ -74,8 +74,7 @@ AliGenHijing::AliGenHijing() fLHC(kFALSE), fRandomPz(kFALSE), fNoHeavyQuarks(kFALSE), - fEventTime(0.), - fHeader(0) + fHeader(AliGenHijingEventHeader("Hijing")) { // Constructor fEnergyCMS = 5500.; @@ -90,7 +89,7 @@ AliGenHijing::AliGenHijing(Int_t npart) fKeep(0), fQuench(1), fShadowing(1), - fDecaysOff(1), + fDecaysOff(3), fTrigger(0), fEvaluate(0), fSelectAll(0), @@ -119,8 +118,7 @@ AliGenHijing::AliGenHijing(Int_t npart) fLHC(kFALSE), fRandomPz(kFALSE), fNoHeavyQuarks(kFALSE), - fEventTime(0.), - fHeader(0) + fHeader(AliGenHijingEventHeader("Hijing")) { // Default PbPb collisions at 5. 5 TeV // @@ -131,6 +129,7 @@ AliGenHijing::AliGenHijing(Int_t npart) // // Set random number generator AliHijingRndm::SetHijingRandom(GetRandom()); + } AliGenHijing::~AliGenHijing() @@ -221,6 +220,7 @@ void AliGenHijing::Generate() 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; @@ -237,10 +237,12 @@ void AliGenHijing::Generate() 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; } @@ -279,15 +281,14 @@ void AliGenHijing::Generate() // 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); @@ -354,11 +355,6 @@ void AliGenHijing::Generate() } // 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 @@ -375,16 +371,8 @@ void AliGenHijing::Generate() 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) { @@ -438,13 +426,19 @@ void AliGenHijing::EvaluateCrossSections() 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; @@ -487,7 +481,7 @@ void AliGenHijing::EvaluateCrossSections() 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 @@ -539,7 +533,7 @@ Bool_t AliGenHijing::SelectFlavor(Int_t pid) return res; } -Bool_t AliGenHijing::Stable(TParticle* particle) const +Bool_t AliGenHijing::Stable(const TParticle* particle) const { // Return true for a stable particle // @@ -557,24 +551,18 @@ Bool_t AliGenHijing::Stable(TParticle* particle) const 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)); // 4-momentum vectors of the triggered jets. // @@ -598,14 +586,14 @@ void AliGenHijing::MakeHeader() 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; }