//------------------------------------------------------------
-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
// 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;
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;
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);
{
// 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()