From c8f7f6f998ce8749eccbbe3a2178d0f1fc582f30 Mon Sep 17 00:00:00 2001 From: morsch Date: Thu, 26 Jun 2003 10:27:43 +0000 Subject: [PATCH] Improved common vertex handling in cocktails. --- EVGEN/AliGenBox.cxx | 11 ++++++----- EVGEN/AliGenCocktail.cxx | 21 ++++++++++++++++----- EVGEN/AliGenHIJINGpara.cxx | 15 +++++---------- EVGEN/AliGenSlowNucleons.cxx | 18 +++++++++++++++--- EVGEN/AliGenSlowNucleons.h | 3 ++- 5 files changed, 44 insertions(+), 24 deletions(-) diff --git a/EVGEN/AliGenBox.cxx b/EVGEN/AliGenBox.cxx index 72a72598464..fbc1e15f0c5 100644 --- a/EVGEN/AliGenBox.cxx +++ b/EVGEN/AliGenBox.cxx @@ -15,6 +15,9 @@ /* $Log$ +Revision 1.8 2003/01/14 10:50:18 alibrary +Cleanup of STEER coding conventions + Revision 1.7 2002/02/08 16:50:50 morsch Add name and title in constructor. @@ -115,12 +118,10 @@ void AliGenBox::Generate() // for (j=0;j<3;j++) origin[j]=fOrigin[j]; if(fVertexSmear==kPerEvent) { - Rndm(random,6); - for (j=0;j<3;j++) { - origin[j]+=fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())* - TMath::Sqrt(-2*TMath::Log(random[2*j+1])); - } + Vertex(); + for (j=0;j<3;j++) origin[j]=fVertex[j]; } + for(i=0;iSetThetaRange(fThetaMin*180/TMath::Pi(),fThetaMax*180/TMath::Pi()); if (!(Generator->TestBit(kVertexRange))) Generator->SetOrigin(fOrigin[0], fOrigin[1], fOrigin[2]); - Generator-> - SetSigma(fOsigma[0], fOsigma[1], fOsigma[2]); + + Generator->SetSigma(fOsigma[0], fOsigma[1], fOsigma[2]); Generator->SetVertexSmear(fVertexSmear); - Generator->SetTrackingFlag(fTrackIt); + Generator->SetVertexSource(kContainer); + Generator->SetTrackingFlag(fTrackIt); // // Add generator to list @@ -167,7 +171,14 @@ AddGenerator(AliGenerator *Generator, char* Name, Float_t RateExp) AliGenerator* gen = 0; TObjArray *partArray = gAlice->Particles(); - // + +// +// Generate the vertex position used by all generators +// + if(fVertexSmear == kPerEvent) Vertex(); + + + // // Loop over generators and generate events Int_t igen=0; @@ -191,7 +202,7 @@ AddGenerator(AliGenerator *Generator, char* Name, Float_t RateExp) Fatal("Generate()", "No Collision Geometry Provided"); } } - + entry->Generator()->SetVertex(fVertex.At(0), fVertex.At(1), fVertex.At(2)); entry->Generator()->Generate(); entry->SetLast(partArray->GetEntriesFast()); preventry = entry; diff --git a/EVGEN/AliGenHIJINGpara.cxx b/EVGEN/AliGenHIJINGpara.cxx index e0003fc95e4..3e786107322 100644 --- a/EVGEN/AliGenHIJINGpara.cxx +++ b/EVGEN/AliGenHIJINGpara.cxx @@ -15,6 +15,9 @@ /* $Log$ +Revision 1.21 2003/03/15 19:48:01 morsch +AliDecayerPythia replaced by AliDecayer + Revision 1.20 2003/01/28 15:29:07 morsch Spelling in name corrected. @@ -362,16 +365,8 @@ void AliGenHIJINGpara::Generate() for (j=0;j<3;j++) origin[j]=fOrigin[j]; if(fVertexSmear == kPerEvent) { - Float_t dv[3]; - dv[2] = 1.e10; - while(TMath::Abs(dv[2]) > fCutVertexZ*fOsigma[2]) { - Rndm(random,6); - for (j=0; j < 3; j++) { - dv[j] = fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())* - TMath::Sqrt(-2*TMath::Log(random[2*j+1])); - } - } - for (j=0; j < 3; j++) origin[j] += dv[j]; + Vertex(); + for (j=0; j < 3; j++) origin[j] = fVertex[j]; } // if kPerEvent TArrayF eventVertex; eventVertex.Set(3); diff --git a/EVGEN/AliGenSlowNucleons.cxx b/EVGEN/AliGenSlowNucleons.cxx index 115230eb5bc..3599590cfb5 100644 --- a/EVGEN/AliGenSlowNucleons.cxx +++ b/EVGEN/AliGenSlowNucleons.cxx @@ -15,6 +15,10 @@ /* $Log$ +Revision 1.3 2003/06/26 08:45:22 morsch +- Vertex using Vertex() method. +- Use member data in GetNumberOfSlowNucleons call. + Revision 1.2 2003/03/25 09:55:24 morsch Numbers of slow nucleons either from model or user set. @@ -32,6 +36,7 @@ Slow nucleon generator and model. #include #include #include +#include #include "AliCollisionGeometry.h" #include "AliGenSlowNucleons.h" @@ -80,14 +85,20 @@ void AliGenSlowNucleons::Init() fMomentum = fCMS/2. * fZTarget / fATarget; fBeta = fMomentum / TMath::Sqrt(kMass * kMass + fMomentum * fMomentum); if (fDebug) { - fDebugHist = new TH2F("DebugHist", "N_heavy vs nu", 50, 0., 50., 50, 0., 50.); + fDebugHist1 = new TH2F("DebugHist1", "nu vs N_slow", 100, 0., 100., 20, 0., 20.); + fDebugHist2 = new TH2F("DebugHist2", "b vs N_slow", 100, 0., 100., 15, 0., 15.); } } void AliGenSlowNucleons::FinishRun() { if (fDebug) { - fDebugHist->Draw(); + TCanvas *c = new TCanvas("c","Canvas 1",400,10,600,700); + c->Divide(2,1); + c->cd(1); + fDebugHist1->Draw(); + c->cd(2); + fDebugHist2->Draw(); } } @@ -110,7 +121,8 @@ void AliGenSlowNucleons::Generate() fSlowNucleonModel->GetNumberOfSlowNucleons(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn); if (fDebug) { printf("Nucleons %d %d %d %d \n", fNgp, fNgn, fNbp, fNbn); - fDebugHist->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), fCollisionGeometry->NwN(), 1.); + fDebugHist1->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), fCollisionGeometry->NwN(), 1.); + fDebugHist2->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), b, 1.); printf("AliGenSlowNucleons: Impact parameter from Collision Geometry %f %d %d %d %d\n", b, nn, nwn, nnw, nwnw); } diff --git a/EVGEN/AliGenSlowNucleons.h b/EVGEN/AliGenSlowNucleons.h index 9ba2c63cd69..f98875c241f 100644 --- a/EVGEN/AliGenSlowNucleons.h +++ b/EVGEN/AliGenSlowNucleons.h @@ -58,7 +58,8 @@ public: Int_t fNbp; // Number of black protons Int_t fNbn; // Number of black neutrons Int_t fDebug; // Debug flag - TH2F* fDebugHist; // Histogram for debugging + TH2F* fDebugHist1; // Histogram for debugging + TH2F* fDebugHist2; // Histogram for debugging // AliSlowNucleonModel* fSlowNucleonModel; // The slow nucleon model -- 2.43.0