File indexing completed on 2025-04-19 09:09:41
0001 #ifndef Analysis_Main_Analysis_Handler_H
0002 #define Analysis_Main_Analysis_Handler_H
0003
0004 #include "AddOns/Analysis/Main/Primitive_Analysis.H"
0005 #include "AddOns/Analysis/Observables/Primitive_Observable_Base.H"
0006 #include "SHERPA/Tools/Analysis_Interface.H"
0007 #include "ATOOLS/Org/File_IO_Base.H"
0008 #include "ATOOLS/Org/Exception.H"
0009
0010 namespace ANALYSIS {
0011
0012 class Analysis_Handler: public ATOOLS::File_IO_Base,
0013 public SHERPA::Analysis_Interface {
0014 public:
0015
0016 typedef ANALYSIS::Primitive_Observable_Base::Getter_Function
0017 Observable_Getter_Function;
0018 typedef ANALYSIS::Analysis_Object::Getter_Function
0019 Object_Getter_Function;
0020 typedef std::vector<ANALYSIS::Primitive_Analysis*> Analyses_Vector;
0021
0022 private:
0023
0024 Analyses_Vector m_analyses;
0025
0026 int m_weighted;
0027 bool m_write;
0028
0029 void Clean();
0030
0031 void DoAnalysis(const ATOOLS::Blob_List *bloblist,const double weight);
0032
0033 public:
0034
0035
0036 Analysis_Handler();
0037
0038
0039 ~Analysis_Handler();
0040
0041
0042 bool Init();
0043
0044 bool Run(ATOOLS::Blob_List *const bl);
0045 bool WriteOut();
0046 bool Finish();
0047 void CleanUp();
0048
0049 void ShowSyntax(const int mode);
0050
0051
0052 inline void SetWeighted(const int weighted) { m_weighted=weighted; }
0053
0054 inline int Weighted() const { return m_weighted; }
0055
0056 inline SHERPA::Event_Handler *EventHandler() { return p_eventhandler; }
0057
0058 };
0059
0060 }
0061
0062 #endif