Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:14

0001 #ifndef SHERPA_SoftPhysics_Soft_Collision_Handler_H
0002 #define SHERPA_SoftPhysics_Soft_Collision_Handler_H
0003 
0004 #include "ATOOLS/Phys/Particle_List.H"
0005 #include "ATOOLS/Phys/Blob_List.H"
0006 #include "ATOOLS/Org/CXXFLAGS.H"
0007 #include "ATOOLS/Org/Return_Value.H"
0008 #include "ATOOLS/Org/Terminator_Objects.H"
0009 #include "PDF/Main/Cluster_Definitions_Base.H"
0010 #include "PDF/Main/ISR_Handler.H"
0011 
0012 namespace ATOOLS {
0013   class Cluster_Amplitude;
0014   class Cluster_Definitions_Base;
0015 }
0016 namespace SHRIMPS { class Shrimps; }
0017 namespace AMISIC  { class Amisic; }
0018 namespace MODEL   { class Model_Base;           }
0019 
0020 namespace SHERPA {
0021   class Soft_Collision_Handler: public ATOOLS::Terminator_Object {
0022   private:
0023     struct scmode {
0024       enum code {
0025     none,
0026     shrimps,
0027     amisic
0028       };
0029     };
0030     bool         m_bunch_rescatter;
0031     std::string  m_scmodel;
0032     std::string  m_dir,m_sfile;
0033     scmode::code m_mode;
0034 
0035     SHRIMPS::Shrimps           * p_shrimps;
0036     AMISIC::Amisic             * p_amisic;
0037 
0038     void   PrepareTerminate();
0039     double ImpactParameter();
0040   public:
0041     Soft_Collision_Handler(AMISIC::Amisic * amisic,SHRIMPS::Shrimps * shrimps,
0042                const bool bunch_rescatter=false);
0043     ~Soft_Collision_Handler();
0044 
0045     ATOOLS::Return_Value::code  GenerateMinimumBiasEvent(ATOOLS::Blob_List * blobs);
0046     void                        SetPosition(const size_t & beam,const ATOOLS::Vec4D & pos);
0047     ATOOLS::Return_Value::code  GenerateBunchRescatter(ATOOLS::Blob_List * blobs);
0048     ATOOLS::Cluster_Amplitude * ClusterConfiguration(ATOOLS::Blob *const bl);
0049     
0050     void SetShrimps(SHRIMPS::Shrimps * shrimps=NULL);
0051     void CleanUp();
0052 
0053     inline void SetAmisic(AMISIC::Amisic * amisic) {
0054       p_amisic  = amisic;
0055       m_scmodel = std::string("Amisic");
0056       m_mode    = scmode::amisic;
0057     }    
0058     inline const std::string &  Soft_CollisionModel() const { 
0059       return m_scmodel; 
0060     }
0061     inline SHRIMPS::Shrimps * GetShrimps() const { 
0062       return p_shrimps; 
0063     }
0064     inline AMISIC::Amisic * GetAmisic() const { 
0065       return p_amisic; 
0066     }
0067     inline const bool & BeamRescatter() { return m_bunch_rescatter; }
0068   };// end of class Soft_Collision_Handler
0069   typedef std::map<PDF::isr::id, Soft_Collision_Handler *> Soft_Collision_Handler_Map;
0070 }
0071 #endif
0072