48 printf(
"-I- MpdPHSDGenerator: End of file reached.\n");
53 if (fisRP) {fPsiRP=frandom->Uniform(2.0*TMath::Pi());}
57 FairMCEventHeader *eventHeader = primGen->GetEvent();
58 if (eventHeader && (!eventHeader->IsSet()))
60 eventHeader->SetB(fb);
61 eventHeader->MarkSet(kTRUE);
66 extraEventHeader->
SetPhi(fPsiRP);
70 Double_t
kProtonMass = TDatabasePDG::Instance()->GetParticle(2212)->Mass();
75 Double_t gammaCM = TMath::Sqrt( 1. / ( 1. - betaCM*betaCM) );
79 for(Int_t
i=1;
i<=fntr;
i++)
82 Int_t ipdg; Float_t px,py,pz,ee;
84 gzgets(fgzFile,fbuffer,256);
85 if (gzeof(fgzFile)) {printf(
"-E- MpdPHSDGenerator: unexpected end of file\n"); exit(1);}
89 int res=sscanf(fbuffer,
"%d %*d %e %e %e %e",&ipdg,&px,&py,&pz,&ee);
90 if (res!=5) {printf(
"-E- MpdPHSDGenerator: selftest error in track, scan %d of 5\n",res); exit(1);}
91 if (ipdg==0) {printf(
"-W- MpdPHSDGenerator: particle with pdg=0\n");
continue;}
92 if (!TDatabasePDG::Instance()->GetParticle(ipdg)) { std::cout <<
"\033[31m -W- ---------- MpdPHSDGenerator: particle with pdg " << ipdg <<
" not found \033[0m" << std::endl;
continue; }
96 if (ipdg==+413) ipdg=+421;
97 if (ipdg==-413) ipdg=-421;
98 if (ipdg==+423) ipdg=+421;
99 if (ipdg==-423) ipdg=-421;
100 if (ipdg==+4214) ipdg=+4122;
101 if (ipdg==-4214) ipdg=-4122;
102 if (ipdg==+4114) ipdg=+4122;
103 if (ipdg==-4114) ipdg=-4122;
104 if (ipdg==+4224) ipdg=+4122;
105 if (ipdg==-4224) ipdg=-4122;
111 pz = gammaCM * (pz + betaCM * ee);
117 Double_t cosPsi = TMath::Cos(fPsiRP);
118 Double_t sinPsi = TMath::Sin(fPsiRP);
119 Double_t px1=px*cosPsi-py*sinPsi;
120 Double_t py1=px*sinPsi+py*cosPsi;
125 primGen->AddTrack(ipdg, px, py, pz, 0., 0., 0.);