#ifndef AMISIC_Tools_Impact_Parameter_H #define AMISIC_Tools_Impact_Parameter_H #include "AMISIC++/Tools/Interaction_Probability.H" #include "ATOOLS/Math/Histogram.H" #include #include namespace AMISIC { class MI_Processes; class Sudakov_Argument; class Impact_Parameter { Interaction_Probability m_pint; Matter_Overlap * p_mo; Sudakov_Argument * p_sudakov; double m_b, m_bmax; bool m_test, m_ana; std::map m_histos; void InitAnalysis(); void BAnalyse(const double & pt2,const double & b); void Analyse(const double & pt2,const double & sudakov, const double & softpart, const double & hardpart); void FinishAnalysis(); void Test(); public: Impact_Parameter(); ~Impact_Parameter(); void Initialize(REMNANTS::Remnant_Handler * remnant_handler, MI_Processes * processes); double CalculateB(const double & s,const double & pt2=-1.); double operator()(const double & s,const double & b); inline ATOOLS::Vec4D SelectPositionForScatter(const double & b) const { return p_mo->SelectPositionForScatter(b); } inline ATOOLS::Vec4D SelectRelativePositionForParton() const { return p_mo->SelectRelativePositionForParton(); } }; } #endif