EventMultiSplitter.hpp

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 #ifndef __EventMultiSplitter__
00007 #define __EventMultiSplitter__
00008 
00009 
00010 #include "cafe/Controller.hpp"
00011 
00012 /*
00013 \ingroup group_cafe
00014  */
00015 namespace cafe {
00016   class Stat;
00017   class PermuterBase;
00018 
00019   class EventMultiSplitter  : public cafe::Controller  {
00020   public:
00021 
00022         EventMultiSplitter (const char *name);
00023         ~EventMultiSplitter (void);
00024 
00025         bool processEvent (cafe::Event &event);
00026 
00027         void finish (void);
00028 
00030         class callback {
00031           friend class EventMultiSplitter;
00032         public:
00033           void operator() (double weight);
00034           inline Event &event() {return _event;};
00035         private:
00036           cafe::Event &_event;
00037           callback (cafe::EventMultiSplitter &splitter, Event &event);
00038           cafe::EventMultiSplitter &_splitter;
00039         };
00040 
00041   private:
00042           ClassDef (EventMultiSplitter,1);
00043 
00044           cafe::PermuterBase *_perm;
00045           cafe::Stat *_local_stat;
00046 
00047           void processPermutation (double weight, Event &event);
00048   };
00049 }
00050 
00051 #endif

Generated on Thu Apr 3 04:14:23 2008 for CAF by doxygen 1.3.4