74 Int_t id1 = parent_id/1000;
75 Int_t id2 = parent_id%1000;
78 GetParticleSecondaryModel(
makeStaticData()->GetParticleName(id1),
"fermi");
79 }
else if (id2 > 600) {
81 GetParticleSecondaryModel(
makeStaticData()->GetParticleName(id2),
"fermi");
85 GetParticleSecondaryModel(
makeStaticData()->GetParticleName(id1),
"fermi");
89 GetParticleSecondaryModel(
makeStaticData()->GetParticleName(id2),
"fermi");
93 Error(
"GetRandomFermiMomentum",
"No fermi model found");
98 Double_t
p = (fermi_model->GetRandom());
101 Double_t sth = sin(theta);
112 Double_t massS, eS, eP, ptot,
px,
py,
pz, t=-1., mAi;
114 parent->Reconstruct();
118 massS = spectator->M();
119 eS = sqrt(ptot*ptot + massS*massS);
121 t = pow(mAi-massS,2) - 2.*mAi*(eS-massS);
124 eP = sqrt(ptot*ptot + t);
126 participant->SetPxPyPzE(-
px,-
py,-
pz,eP);
127 spectator->SetPxPyPzE(
px,
py,
pz,eS);
129 participant->Boost(target->BoostVector());
130 spectator->Boost(target->BoostVector());
135 participant->Boost(-parent->BoostVector());
136 p2->Boost(-parent->BoostVector());
137 spectator->Boost(-parent->BoostVector());
139 composite->Reconstruct();
142 participant->Boost(parent->BoostVector());
143 p2->Boost(parent->BoostVector());
145 spectator->SetW(parent->W());