00001
00002
00003 #ifndef SpecialFilters_h
00004 #define SpecialFilters_h
00005
00006 #include <RecordStreamFilter.h>
00007
00008 #include "Serializable.h"
00009
00010
00011 namespace BIE {
00012
00013
00018 class RPhiFilter : public RecordStreamFilter {
00019 public:
00020
00024 RPhiFilter(RecordStream * stream);
00025
00028 void compute();
00029
00030 private:
00031 static const filterIn input [];
00032 static const filterOut output [];
00033 int x_index, y_index, r_index, p_index;
00034
00035
00036 protected:
00037 RPhiFilter() {}
00038 private:
00039 friend class boost::serialization::access;
00040 template<class Archive>
00041 void serialize(Archive & ar, const unsigned int version) {
00042 this->pre_serialize(ar, version);
00043 try {
00044 ar & BOOST_SERIALIZATION_BASE_OBJECT_NVP(RecordStreamFilter);
00045 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00046 }
00047 try {
00048 ar & BOOST_SERIALIZATION_NVP(x_index);
00049 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00050 }
00051 try {
00052 ar & BOOST_SERIALIZATION_NVP(y_index);
00053 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00054 }
00055 try {
00056 ar & BOOST_SERIALIZATION_NVP(r_index);
00057 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00058 }
00059 try {
00060 ar & BOOST_SERIALIZATION_NVP(p_index);
00061 BIE_CATCH_BOOST_SERIALIZATION_EXCEPTION;
00062 }
00063 this->post_serialize(ar, version);
00064 }
00065
00066 };
00067
00068 }
00069
00070
00071 BIE_CLASS_TYPE_INFO(BIE::RPhiFilter)
00072 BIE_CLASS_EXPORT_KEY(BIE::RPhiFilter)
00073 #endif