Back to home page

EIC code displayed by LXR

 
 

    


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     // constructor
0036     Analysis_Handler();
0037 
0038     // destructor
0039     ~Analysis_Handler();
0040 
0041     // member functions
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     // inline functions
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   };// end of class Analysis_Handler   
0059 
0060 }// end of namespace ANALYSIS
0061 
0062 #endif