File indexing completed on 2025-04-19 09:09:48
0001 #ifndef AMISIC_Tools_Impact_Parameter_H
0002 #define AMISIC_Tools_Impact_Parameter_H
0003
0004 #include "AMISIC++/Tools/Interaction_Probability.H"
0005 #include "ATOOLS/Math/Histogram.H"
0006 #include <map>
0007 #include <string>
0008
0009 namespace AMISIC {
0010 class MI_Processes;
0011 class Sudakov_Argument;
0012
0013 class Impact_Parameter {
0014 Interaction_Probability m_pint;
0015 Matter_Overlap * p_mo;
0016 Sudakov_Argument * p_sudakov;
0017
0018 double m_b, m_bmax;
0019 bool m_test, m_ana;
0020 std::map<std::string,ATOOLS::Histogram *> m_histos;
0021
0022 void InitAnalysis();
0023 void BAnalyse(const double & pt2,const double & b);
0024 void Analyse(const double & pt2,const double & sudakov,
0025 const double & softpart, const double & hardpart);
0026 void FinishAnalysis();
0027 void Test();
0028 public:
0029 Impact_Parameter();
0030 ~Impact_Parameter();
0031
0032 void Initialize(REMNANTS::Remnant_Handler * remnant_handler,
0033 MI_Processes * processes);
0034 double CalculateB(const double & s,const double & pt2=-1.);
0035 double operator()(const double & s,const double & b);
0036
0037 inline ATOOLS::Vec4D SelectPositionForScatter(const double & b) const {
0038 return p_mo->SelectPositionForScatter(b);
0039 }
0040 inline ATOOLS::Vec4D SelectRelativePositionForParton() const {
0041 return p_mo->SelectRelativePositionForParton();
0042 }
0043 };
0044 }
0045
0046 #endif