Hi Tayfun,
I like a lot that you want to add new functionality!
But the existing "Gate1D" processors might already be used at some point in your (or others) analysis. And if you modify the behavior of an existing processor it might break your analysis.
It is always good to add new functionality by adding another processor. Doing this, you also have the opportunity to give your processor a name that describes its purpose. To add a new processor, do the following:
1) copy an exsisting processor's header (.hpp) and implementation (.cpp) files
Example:
cp Gate1D.hpp MyNewProcessor.hpp; cp Gate1D.cpp MyNewProcessor.cpp
2) add the new processor to the file module.cpp in the direcory of the plugin. You have to add a line on the top of the file to include your header file:
#include "process/MyNewProcessor.hpp"
and you have to add a line to make the framework aware of the new Processor:
ELDER_MODULE_PROCESSOR_BEGIN;
...
ELDER_MODULE_PROCESSOR_ADD(MyNewProcessor);
...
ELDER_MODULE_PROCESSOR_END;
3) add your processor header and implementation files to the toplevel Makfile.am in the prespec directory.
You have to add it to the correct plugin. If your new processor is in the UTILS plugin, it has to go here:
libprespecUTILS_la_SOURCES = ... \
... \
plugins/UTILS/process/MyNewProcessor.cpp \
plugins/UTILS/process/MyNewProcessor.hpp \
...
Be careful not to put whitespaces after the '\' character!!!!
4) Now you can implement your Processor, but first rename all "Gate1D" to "MyNewProcessor" in the two files MyNewProcessor.cpp and MyNewProcessor.hpp.
5) type 'make' in the prespec toplevel directory.
Once you have written a useful processor, please push it to the repository so that everybody can benefit from your efforts.
I'll post another reply about the assertion failure that you get.
You can also look at the processor "ArrayFilter" in UTILS plugin. It might already do what you need.
Best regards,
Michael