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
1.3.4