Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef SHERPA_Tools_Output_Base_H
0002 #define SHERPA_Tools_Output_Base_H
0003 
0004 #include "ATOOLS/Phys/Blob_List.H"
0005 #include "ATOOLS/Org/Getter_Function.H"
0006 #include "ATOOLS/Phys/Weights.H"
0007 
0008 #include <string>
0009 
0010 namespace SHERPA {
0011 
0012   struct Output_Arguments {
0013     std::string m_outpath, m_outfile;
0014     Output_Arguments(const std::string outpath,
0015              const std::string outfile):
0016       m_outpath(outpath), m_outfile(outfile)
0017     {}
0018   };
0019 
0020   class Event_Handler;
0021 
0022   class Output_Base {
0023   protected:
0024 
0025     std::string m_name;
0026 
0027     Event_Handler *p_eventhandler;
0028 
0029   public:
0030 
0031     typedef ATOOLS::Getter_Function
0032     <Output_Base,Output_Arguments> Getter_Function;
0033 
0034   public:
0035 
0036     Output_Base(const std::string &name);
0037 
0038     virtual ~Output_Base();
0039 
0040     virtual void Header();
0041     virtual void Footer();
0042 
0043     virtual void ChangeFile();
0044 
0045     virtual void SetXS(const ATOOLS::Weights_Map& xs,
0046                const ATOOLS::Weights_Map& err);
0047     virtual void Output(ATOOLS::Blob_List* blobs) = 0;
0048 
0049     inline const std::string Name() { return m_name; }
0050 
0051     void SetEventHandler(Event_Handler *const eh) { p_eventhandler = eh; }
0052 
0053   };
0054 
0055   typedef std::vector<Output_Base*> Output_Vector;
0056 
0057 }
0058 
0059 #endif