X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=TPHIC%2FAliGenTPHIC.cxx;h=8bb0e815558115ef9c41c11f984030ab8e87b978;hb=550c8e217c8eb8c4915c2af44cff87a73eacd3cc;hp=5264b2b4b81b714768478e68c73dff54e908447d;hpb=93a2041b6acdbf31d3a3eb48708a2a54a759543d;p=u%2Fmrichter%2FAliRoot.git diff --git a/TPHIC/AliGenTPHIC.cxx b/TPHIC/AliGenTPHIC.cxx index 5264b2b4b81..8bb0e815558 100644 --- a/TPHIC/AliGenTPHIC.cxx +++ b/TPHIC/AliGenTPHIC.cxx @@ -56,6 +56,8 @@ #include #include #include +#include + #include "AliPythia.h" #include "AliRun.h" #include @@ -66,7 +68,15 @@ ClassImp(AliGenTPHIC) //------------------------------------------------------------ -AliGenTPHIC::AliGenTPHIC() +AliGenTPHIC::AliGenTPHIC() : + AliGenMC(), + fTPHICgen(0x0), + fPythia(0x0), + fParticles(0x0), + fEvent(-1), + fDebug(0), + fDebugEventFirst(-1), + fDebugEventLast(-1) { // Constructor: create generator instance, // create particle array @@ -74,6 +84,7 @@ AliGenTPHIC::AliGenTPHIC() // eta_b production in Ca-Ca collisions at 7 A*TeV SetMC(new TPHICgen()); + fTPHICgen = (TPHICgen*) fMCEvGen; fPythia = AliPythia::Instance(); fParticles = new TClonesArray("TParticle",100); @@ -120,8 +131,10 @@ void AliGenTPHIC::Generate() // The event differectial cross section is assigned as a weight // to each track of the event. - Float_t polar[3]= {0,0,0}; - Float_t origin0[3],origin[3]; + Float_t polar[3] = {0,0,0}; + Float_t origin0[3] = {0,0,0}; + Float_t time0 = 0.; + Float_t origin[3] = {0,0,0}; Float_t p[3], tof; Double_t weight; @@ -139,13 +152,18 @@ void AliGenTPHIC::Generate() Info("Generate()","one event is produced"); Int_t j; - for (j=0;j<3;j++) origin[j]=fOrigin[j]; + for (j=0;j<3;j++) origin0[j]=fOrigin[j]; + time0 = fTimeOrigin; if(fVertexSmear==kPerEvent) { Rndm(random,6); for (j=0;j<3;j++) { origin0[j]+=fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())* TMath::Sqrt(-2*TMath::Log(random[2*j+1])); } + Rndm(random,2); + time0 += fOsigma[2]/TMath::Ccgs()* + TMath::Cos(2*random[0]*TMath::Pi())* + TMath::Sqrt(-2*TMath::Log(random[1])); } Int_t ip; @@ -165,7 +183,7 @@ void AliGenTPHIC::Generate() origin[2] = origin0[2]+iparticle->Vz()/10.; kf = CheckPDGCode(iparticle->GetPdgCode()); iparent = -1; - tof = kconv*iparticle->T(); + tof = time0 + kconv*iparticle->T(); if (ks == 1) trackIt = 1; else trackIt = 0; PushTrack(fTrackIt*trackIt,iparent,kf,p,origin,polar,tof,kPPrimary,nt,weight,ks); @@ -351,20 +369,20 @@ void AliGenTPHIC::SetProcess (Int_t proc ) { // Get 4-momentum of the first recoil nucleus after // the 2-photon process. - return TLorentzVector(fTPHICgen->GetPTAG1(1), + return TLorentzVector(fTPHICgen->GetPTAG1(0), + fTPHICgen->GetPTAG1(1), fTPHICgen->GetPTAG1(2), - fTPHICgen->GetPTAG1(3), - fTPHICgen->GetPTAG1(4)); + fTPHICgen->GetPTAG1(3)); } //____________________________________________________________ TLorentzVector AliGenTPHIC::MomentumRecNucl2() { // Get 4-momentum of the first recoil nucleus after // the 2-photon process. - return TLorentzVector(fTPHICgen->GetPTAG2(1), + return TLorentzVector(fTPHICgen->GetPTAG2(0), + fTPHICgen->GetPTAG2(1), fTPHICgen->GetPTAG2(2), - fTPHICgen->GetPTAG2(3), - fTPHICgen->GetPTAG2(4)); + fTPHICgen->GetPTAG2(3)); } //____________________________________________________________ Float_t AliGenTPHIC::GetXSectionCurrent()