X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=EVGEN%2FAliGenHalo.cxx;h=82031dab68cab887ab0dd691ff99ca18b494ccaf;hb=75eff6de2d7200ef8cd1a53bb2f14934ae346818;hp=df5dfb754ea250620239e15b8c6f50156a77497c;hpb=418e091f31ef997ccabfd6dfc4448dfc6e495c11;p=u%2Fmrichter%2FAliRoot.git diff --git a/EVGEN/AliGenHalo.cxx b/EVGEN/AliGenHalo.cxx index df5dfb754ea..82031dab68c 100644 --- a/EVGEN/AliGenHalo.cxx +++ b/EVGEN/AliGenHalo.cxx @@ -30,6 +30,7 @@ #include #include "AliGenHalo.h" +#include "AliGenEventHeader.h" #include "AliRun.h" #include "AliLog.h" @@ -121,6 +122,9 @@ void AliGenHalo::Init() { // Initialisation fFile = fopen(fFileName,"r"); + Int_t ir = 0; + + if (fFile) { printf("\n File %s opened for reading, %p ! \n ", fFileName.Data(), (void*)fFile); } else { @@ -181,7 +185,9 @@ void AliGenHalo::Init() for (i = 0; i < fGPASize; i++) { - fscanf(file, "%f %f %f %f %f %f", &z, &p[0], &p[1], &p[2] , &p[3], &p[4]); + ir = fscanf(file, "%f %f %f %f %f %f", &z, &p[0], &p[1], &p[2] , &p[3], &p[4]); + if (ir == 0) break; + fG1[i] = p[fRunPeriod]; if (i > 0) { @@ -195,7 +201,9 @@ void AliGenHalo::Init() // for (i = 0; i < fGPASize; i++) { - fscanf(file, "%f %f %f %f %f %f", &z, &p[0], &p[1], &p[2] , &p[3], &p[4]); + ir = fscanf(file, "%f %f %f %f %f %f", &z, &p[0], &p[1], &p[2] , &p[3], &p[4]); + if (ir == 0) break; + fG2[i] = p[fRunPeriod]; if (i > 0) { fZ2[i] = fZ2[i-1] + z; @@ -215,7 +223,8 @@ void AliGenHalo::Init() } else { for (i = 0; i < fGPASize; i++) { - fscanf(file, "%f %e %e %e %e %e", &z, &p[0], &p[1], &p[2], &p[3], &p[4]); + ir = fscanf(file, "%f %e %e %e %e %e", &z, &p[0], &p[1], &p[2], &p[3], &p[4]); + if (ir == 0) break; z /= 1000.; fG1[i] = p[4] * kCrossSection * kFlux; // 1/m/s // 1/3 of nominal intensity at startup @@ -270,6 +279,7 @@ void AliGenHalo::Generate() if (first && (fNskip == 0)) ReadNextParticle(); first = kFALSE; oldID = fLossID; + Int_t np = 0; while(1) { // Push particle to stack @@ -291,7 +301,7 @@ void AliGenHalo::Generate() origin[2] = 1950.; PushTrack(fTrackIt , -1, fPdg , p, origin, polar, fTS - 1950./2.9979e10, kPNoProcess, nt, fWS); - + np++; Int_t nc = ReadNextParticle(); if (fLossID != oldID || nc == 0) { @@ -299,9 +309,19 @@ void AliGenHalo::Generate() break; } } + SetHighWaterMark(nt); + AliGenEventHeader* header = new AliGenEventHeader("HALO"); + header->SetNProduced(np); + // Passes header either to the container or to gAlice + if (fContainer) { + header->SetName(fName); + fContainer->AddHeader(header); + } else { + gAlice->SetGenEventHeader(header); + } } - + Float_t AliGenHalo::GasPressureWeight(Float_t zPrimary) { @@ -392,6 +412,7 @@ void AliGenHalo::SkipEvents() } void AliGenHalo::CountEvents() { + // Count total number of events Int_t nev = 0; Int_t oldID = -1; Int_t nc = 1;