Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef SHERPA_Single_Events_Multiple_Interactions_H
0002 #define SHERPA_Single_Events_Multiple_Interactions_H
0003 
0004 #include "SHERPA/Single_Events/Event_Phase_Handler.H"
0005 #include "SHERPA/PerturbativePhysics/MI_Handler.H"
0006 
0007 namespace SHERPA {
0008 
0009   class Multiple_Interactions: public Event_Phase_Handler {
0010   private:
0011     double m_hardveto, m_ptmax_fac;
0012     double m_ecms, m_ptmax, m_lastptmax, m_ecmsmax, m_emax[2];
0013     double m_defaultptmax;
0014     double m_weight, m_ntrials;
0015 
0016     MI_Handler_Map    * p_mihandlers;
0017     MI_Handler        * p_activeMI;
0018     ATOOLS::Blob_List * p_bloblist;
0019     ATOOLS::Blob      * p_lastblob;
0020 
0021     std::set<ATOOLS::Blob *> m_ISblobs;
0022     bool m_vetoed, m_newevent[2];
0023 
0024     ATOOLS::Return_Value::code m_result;
0025     void   Reset();
0026     bool   CheckBlobList();    
0027     bool   BeamsViable();
0028     bool   ExtractISInfo(ATOOLS::Blob * blob);
0029     void   SwitchPerturbativeInputsToMIs();
0030     double ExtractMPIStartingScale(ATOOLS::Blob * blob);
0031 
0032     std::string MakeNameSpec();
0033     
0034     bool CheckMIHandlers();    
0035     bool CheckForMinBias();
0036     bool CheckForMPIs();
0037     bool CheckForRescatter();
0038     void FixMaxEnergies(const bool & updateResidualE=false);
0039     bool TestHardScatter();
0040     ATOOLS::Return_Value::code InitMinBias(); 
0041     bool                       InitMPIs(); 
0042     ATOOLS::Return_Value::code InitRescatter();
0043   public:
0044     Multiple_Interactions(MI_Handler_Map *);
0045     ~Multiple_Interactions() {}
0046 
0047     ATOOLS::Return_Value::code Treat(ATOOLS::Blob_List*);
0048     void CleanUp(const size_t & mode=0);
0049     void Finish(const std::string &);
0050   };
0051 }
0052 
0053 #endif
0054