Правильно используйте импортированную функцию [закрыто] ⇐ C++
Правильно используйте импортированную функцию [закрыто]
Я пытался использовать функцию «GetDeltaPInPairReferenceFrame», импортированную из другого файла, для расчета deltaP, но мои расчеты пока не работают. Это импортированная функция:
double GetDeltaPInPairReferenceFrame(const std::vector &vv_particle1, const std::vector &vv_particle2, константное число &u, константное целое &v) { /** Найдите deltaP частиц p1 и p2. p1 и p2 должны находиться в системе координат CM сталкивающегося p+p. */ двойная дельтаP_p1p2 = -99; TLorentzVector tv_p1; //частица 1 TLorentzVector tv_p2; //частица 2 //px, py, pz и E находятся в системе см двух сталкивающихся протонов tv_p1.SetPxPyPzE(vv_particle1[0], vv_particle1[1], vv_particle1[2], vv_particle1[3]); tv_p2.SetPxPyPzE(vv_particle2[0][v], vv_particle2[1][v], vv_particle2[2][v], vv_particle2[3][v]); if (tv_p1 == tv_p2) //если векторы имеют одну и ту же часть, игнорировать. { дельтаП_p1p2 = 0; } еще { TLorentzVector cms_p1p2 = tv_p1 + tv_p2; TVector3 boost_p1p2 = cms_p1p2.BoostVector(); // увеличиваем cms до остального кадра tv_p1.Boost(-boost_p1p2); //ускорение до кадра CM пары tv_p2.Boost(-boost_p1p2); //проверка работоспособности — теперь два вектора должны указывать в противоположном направлении. двойной угол = tv_p1.Angle(tv_p2.Vect()); if (angle > 3.14160 || angular < 3.14158) std::cout
Я пытался использовать функцию «GetDeltaPInPairReferenceFrame», импортированную из другого файла, для расчета deltaP, но мои расчеты пока не работают. Это импортированная функция:
double GetDeltaPInPairReferenceFrame(const std::vector &vv_particle1, const std::vector &vv_particle2, константное число &u, константное целое &v) { /** Найдите deltaP частиц p1 и p2. p1 и p2 должны находиться в системе координат CM сталкивающегося p+p. */ двойная дельтаP_p1p2 = -99; TLorentzVector tv_p1; //частица 1 TLorentzVector tv_p2; //частица 2 //px, py, pz и E находятся в системе см двух сталкивающихся протонов tv_p1.SetPxPyPzE(vv_particle1[0], vv_particle1[1], vv_particle1[2], vv_particle1[3]); tv_p2.SetPxPyPzE(vv_particle2[0][v], vv_particle2[1][v], vv_particle2[2][v], vv_particle2[3][v]); if (tv_p1 == tv_p2) //если векторы имеют одну и ту же часть, игнорировать. { дельтаП_p1p2 = 0; } еще { TLorentzVector cms_p1p2 = tv_p1 + tv_p2; TVector3 boost_p1p2 = cms_p1p2.BoostVector(); // увеличиваем cms до остального кадра tv_p1.Boost(-boost_p1p2); //ускорение до кадра CM пары tv_p2.Boost(-boost_p1p2); //проверка работоспособности — теперь два вектора должны указывать в противоположном направлении. двойной угол = tv_p1.Angle(tv_p2.Vect()); if (angle > 3.14160 || angular < 3.14158) std::cout
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как имитировать функцию, импортированную из другой функции или метода?
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Используйте пользовательский ввод или вообще не используйте эту часть ввода [дубликат]
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-