From 971816d4ea32d252dc4b9cd375161edca315a7d6 Mon Sep 17 00:00:00 2001 From: morsch Date: Mon, 15 Oct 2001 16:44:46 +0000 Subject: [PATCH] - Possibility for vertex distribution truncation. - Write mc header with vertex position. --- EVGEN/AliGenHIJINGpara.cxx | 41 +++++++++++++++++++++++++++++++------- EVGEN/AliGenHIJINGpara.h | 13 ++++++------ 2 files changed, 41 insertions(+), 13 deletions(-) diff --git a/EVGEN/AliGenHIJINGpara.cxx b/EVGEN/AliGenHIJINGpara.cxx index cae12bbac38..438a878efde 100644 --- a/EVGEN/AliGenHIJINGpara.cxx +++ b/EVGEN/AliGenHIJINGpara.cxx @@ -15,6 +15,11 @@ /* $Log$ +Revision 1.9 2001/07/27 17:09:36 morsch +Use local SetTrack, KeepTrack and SetHighWaterMark methods +to delegate either to local stack or to stack owned by AliRun. +(Piotr Skowronski, A.M.) + Revision 1.8 2001/07/20 11:03:58 morsch Issue warning message if used outside allowed eta range (-8 to 8). @@ -67,11 +72,14 @@ All coding rule violations except RS3 corrected (AM) /////////////////////////////////////////////////////////////////// #include "AliGenHIJINGpara.h" -#include "TF1.h" +#include "AliGenEventHeader.h" #include "AliRun.h" #include "AliConst.h" #include "AliPDG.h" +#include +#include + ClassImp(AliGenHIJINGpara) AliGenHIJINGpara::AliGenHIJINGpara(const AliGenHIJINGpara & para) @@ -186,6 +194,7 @@ AliGenHIJINGpara::AliGenHIJINGpara() fPtka = 0; fETApic = 0; fETAkac = 0; + SetCutVertexZ(); } //_____________________________________________________________________________ @@ -201,6 +210,7 @@ AliGenHIJINGpara::AliGenHIJINGpara(Int_t npart) fPtka = 0; fETApic = 0; fETAkac = 0; + SetCutVertexZ(); } //_____________________________________________________________________________ @@ -296,13 +306,25 @@ void AliGenHIJINGpara::Generate() Float_t random[6]; // 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])); + + 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]; + } // if kPerEvent + TArrayF eventVertex; + eventVertex.Set(3); + eventVertex[0] = origin[0]; + eventVertex[1] = origin[1]; + eventVertex[2] = origin[2]; + for(i=0;iSetPrimaryVertex(eventVertex); + gAlice->SetGenEventHeader(header); } AliGenHIJINGpara& AliGenHIJINGpara::operator=(const AliGenHIJINGpara& rhs) diff --git a/EVGEN/AliGenHIJINGpara.h b/EVGEN/AliGenHIJINGpara.h index db17176bf2d..328187776a1 100644 --- a/EVGEN/AliGenHIJINGpara.h +++ b/EVGEN/AliGenHIJINGpara.h @@ -21,17 +21,18 @@ class AliGenHIJINGpara : public AliGenerator AliGenHIJINGpara(const AliGenHIJINGpara &HIJINGpara); virtual ~AliGenHIJINGpara(); + virtual void SetCutVertexZ(Float_t cut=999999.) {fCutVertexZ = cut;} virtual void Generate(); virtual void Init(); AliGenHIJINGpara & operator=(const AliGenHIJINGpara & rhs); protected: + Float_t fCutVertexZ; // Vertex truncation + TF1* fPtpi; // Parametrised pt distribution for pi + TF1* fPtka; // Parametrised pt distribution for ka + TF1* fETApic; // Parametrised eta distribution for pi + TF1* fETAkac; // Parametrised eta distribution fro ka - TF1* fPtpi; // Parametrised pt distribution for pi - TF1* fPtka; // Parametrised pt distribution for ka - TF1* fETApic; // Parametrised eta distribution for pi - TF1* fETAkac; // Parametrised eta distribution fro ka - - ClassDef(AliGenHIJINGpara,1) // Hijing parametrisation generator + ClassDef(AliGenHIJINGpara,2) // Hijing parametrisation generator }; #endif -- 2.43.0