143 cout <<
"-E MpdDCMSMMGenerator: Input file not open! " << endl;
149 cout <<
"-E- MpdDCMSMMGenerator::ReadEvent: "
150 <<
"No PrimaryGenerator!" << endl;
159 Fatal(__func__,
": cannot read the header of the next event from %s: %s",
fFileName.Data(),
167 sscanf(read,
"%d %f %f %f", &evnr, &b, &bimpX, &bimpY);
169 sscanf(read,
"%d %d %f %f %f", &evnr, &npp, &b, &bimpX, &bimpY);
176 cout <<
"-I MpdDCMSMMGenerator : End of input file reached." << endl;
195 if (event && (!event->IsSet())) {
196 event->SetEventID(evnr);
198 event->MarkSet(
kTRUE);
205 for (
Int_t ibeam = 0; ibeam < 3; ibeam++) {
209 sscanf(read,
"%d", &np);
217 Int_t iN, iQ, iS = 0;
219 Int_t pdgID_in = 0, iL;
223 sscanf(read,
"%d %d %f %f %f %f", &iN, &iQ, &xxx, &px, &py, &pz);
225 sscanf(read,
"%d %d %d %f %f %f %f", &iN, &iQ, &iS, &px, &py, &pz, &mass);
228 Int_t res = sscanf(read,
"%d%d%d%d%d%f%f%f%f%f%f", &iQ, &iL, &iS, &iN, &pdgID_in, &px, &py, &pz, &pLabZ,
239 Fatal(__func__,
": data format mismatch, event %d\n", evnr);
244 Int_t pdgID = pdgID_in;
249 if (massFactor != 1.) {
263 if (pdgID == 310 || pdgID == 130 ||
TMath::Abs(pdgID) == 311) {
289 cout <<
"pz=" << pz <<
" N=" << iN <<
" Q=" << iQ <<
" pdg=" << pdgID <<
"\n";
290 primGen->AddTrack(pdgID, px, py, pz, 0., 0., 0.);
295 cout <<
"-I MpdDCMSMMGenerator : unknown particle N=" << iN <<
" Q=" << iQ;
297 cout <<
" PDG_in=" << pdgID_in <<
" ibeam=" << ibeam << endl;
396 const Int_t n000 = 7;
398 Float_t M000L[n000] = {0.0, 0.13400, 0.54700, 0.7680, 0.78200, 0.95700, 1.019390};
399 Float_t M000U[n000] = {0.0, 0.13510, 0.54810, 0.7711, 0.78310, 0.95810, 1.019610};
400 Int_t C000[n000] = {22, 111, 211, 113, 223, 331, 333};
402 if (mass < M000L[
i] || mass > M000U[
i])
408 if (k == 0 && mass > 0.4979 && mass < 0.4981)
412 if (mass > 0.1389 && mass < 0.1401)
414 else if (mass > 0.134 && mass < 0.136)
416 else if (mass == 0.776)
418 else if (mass > 0.0004 && mass < 0.0011)
420 else if (mass > 0.1055 && mass < 0.1065)
425 if (mass > 0.491 && mass < 0.4981) {
431 }
else if (mass == 0.8922)
435 if (mass > 0.491 && mass < 0.4951)
437 else if (mass > 0.8815 && mass > 0.8895)
441 }
else if (aA == 1) {
444 if ((mass > 0.9389 && mass < 0.940) || mass < -1.)
446 else if (mass == 1.232)
448 }
else if (aZ == 1) {
449 if ((mass > 0.9379 && mass < 0.9401) || mass < -1.)
451 else if (mass == 1.232) {
454 else if (A * Z == -1)
457 }
else if (aZ == 2) {
461 }
else if (aS == 1) {
463 if (mass > 1.1149 && mass < 1.1161)
465 else if (mass > 1.189 && mass < 1.1921)
467 else if (mass == 1.382)
469 }
else if (aZ == 1) {
470 if (mass > 1.1889 && mass < 1.1921)
472 else if (mass > 1.196 && mass < 1.1971)
474 else if (mass == 1.3823)
476 else if (mass == 1.3875)
479 }
else if (aS == 2) {
481 if (mass > 1.3139 && mass < 1.3161)
483 else if (mass == 1.5318)
485 }
else if (aZ == 1) {
486 if (mass > 1.3139 && mass < 1.3221)
488 else if (mass == 1.535)
491 }
else if (aS == 3) {
493 if (mass > 1.6 && mass < 1.801)
500 if (Z == 1 && (mass < -1 || (mass > 1.875 && mass < 1.877)))
502 }
else if (S == -1) {
505 massFactor = 1.197436 / mass;
507 else if (Z == 0 && mass > 2.0545 && mass < 2.0555)
510 massFactor = 1.11568 / mass;
512 else if (Z == 1 && mass > 2.0535 && mass < 2.0545)
515 massFactor = 1.11568 / mass;
520 massFactor = 1.18937 / mass;
522 }
else if (S == -2) {
523 if (Z == -1 && mass > 2.2545 && mass < 2.2615) {
525 massFactor = 1.32132 / mass;
529 if (mass > 2.2305 && mass < 2.2315) {
531 massFactor = 1.11568 / mass;
533 else if (mass > 2.2525 && mass < 2.2555)
536 massFactor = 1.19255 / mass;
538 else if (mass > 2.2595 && mass < 2.2605)
541 massFactor = 1.197436 / mass;
543 }
else if (Z == 1 && mass > 2.2525 && mass < 2.2535) {
545 massFactor = 1.3149 / mass;
547 }
else if (S == -3) {
548 if (Z == -1 && mass > 2.4305 && mass < 2.4375) {
550 massFactor = 1.197436 / mass;
552 else if (Z == 0 && mass > 2.4301 && mass < 2.4315)
555 massFactor = 1.3149 / mass;
557 }
else if (S == -4 && Z == -1 && mass > 2.6295 && mass < 2.6365) {
559 massFactor = 1.32132 / mass;
564 if (Z == 1 && mass > 2.8085 && mass < 2.8095)
566 else if (Z == 2 && mass > 2.8085 && mass < 2.8095)
568 }
else if (S == -1) {
569 if (Z == 1 && mass > 2.9915 && mass < 2.9925)
574 if (Z == 2 && mass > 3.7275 && mass < 3.7285)
577 }
else if (S == -1) {
578 if (Z == 1 && mass > 3.9245 && mass < 3.9255)
580 if (Z == 2 && mass > 3.9245 && mass < 3.9255)
582 }
else if (S == -2) {
590 if (mass > -10 && k == 0) {
593 cout <<
"A=" << A <<
" S=" << S <<
" Z=" << Z <<
" mass= " << mass <<
" Pdg=" << k << endl;