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