X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TEPEMGEN%2FAliGenEpEmv1.cxx;h=78f24143ac4450a55d37aa4d66c28ff36c5123a4;hb=efd1de451a3da7eabab6e83ff7b5fa4812ddf1f5;hp=450e3d2d96ca5c9291fff89ecab23fd876ffb2f3;hpb=93a2041b6acdbf31d3a3eb48708a2a54a759543d;p=u%2Fmrichter%2FAliRoot.git diff --git a/TEPEMGEN/AliGenEpEmv1.cxx b/TEPEMGEN/AliGenEpEmv1.cxx index 450e3d2d96c..78f24143ac4 100644 --- a/TEPEMGEN/AliGenEpEmv1.cxx +++ b/TEPEMGEN/AliGenEpEmv1.cxx @@ -79,7 +79,12 @@ ClassImp(AliGenEpEmv1) //------------------------------------------------------------ -AliGenEpEmv1::AliGenEpEmv1() +AliGenEpEmv1::AliGenEpEmv1(): + fMass(0), + fEpEmGen(0), + fDebug(0), + fEvent(0), + fHeader(AliGenEventHeader()) { // Default constructor // Avoid zero pt @@ -127,6 +132,7 @@ void AliGenEpEmv1::Generate() Float_t polar[3]= {0,0,0}; Float_t origin[3]; + Float_t time = 0.; Float_t p[3]; Double_t ptElectron,ptPositron, phiElectron,phiPositron, mt; @@ -141,12 +147,17 @@ void AliGenEpEmv1::Generate() yElectron,yPositron,xElectron,xPositron,phi12); for (j=0;j<3;j++) origin[j]=fOrigin[j]; + time = fTimeOrigin; 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])); } + Rndm(random,2); + time += fOsigma[2]/TMath::Ccgs()* + TMath::Cos(2*random[0]*TMath::Pi())* + TMath::Sqrt(-2*TMath::Log(random[1])); } Rndm(random,1); @@ -163,7 +174,7 @@ void AliGenEpEmv1::Generate() id = 11; if (fDebug == 2) printf("id=%+3d, p = (%+11.4e,%+11.4e,%+11.4e) GeV\n",id,p[0],p[1],p[2]); - PushTrack(fTrackIt,-1, id,p,origin,polar,0,kPPrimary,nt,weight); + PushTrack(fTrackIt,-1, id,p,origin,polar,time,kPPrimary,nt,weight); // Produce positron mt = TMath::Sqrt(ptPositron*ptPositron + fMass*fMass); @@ -173,12 +184,15 @@ void AliGenEpEmv1::Generate() id = -11; if (fDebug == 2) printf("id=%+3d, p = (%+11.4e,%+11.4e,%+11.4e) GeV\n",id,p[0],p[1],p[2]); - PushTrack(fTrackIt,-1, id,p,origin,polar,0,kPPrimary,nt,weight); + PushTrack(fTrackIt,-1, id,p,origin,polar,time,kPPrimary,nt,weight); fEvent++; if (fEvent%1000 == 0) { printf("=====> AliGenEpEmv1::Generate(): \n Event %d, sigma=%f +- %f kb\n", fEvent,fEpEmGen->GetXsection(),fEpEmGen->GetDsection()); } + fHeader.SetEventWeight(weight); + fHeader.SetInteractionTime(time); + AddHeader(&fHeader); }