Back to home page

EIC code displayed by LXR

 
 

    


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