CFEL - ASG Software Suite  2.5.0
CASS
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
cass::pp89 Class Reference

low / high pass filter of 1D result More...

#include <operations.h>

+ Inheritance diagram for cass::pp89:
+ Collaboration diagram for cass::pp89:

Public Member Functions

 pp89 (const name_t &name)
 constructor More...
 
virtual void process (const CASSEvent &, result_t &)
 process event More...
 
virtual void loadSettings (size_t)
 load the settings of the pp More...
 
- Public Member Functions inherited from cass::Processor
 Processor (const name_t &name)
 constructor More...
 
virtual ~Processor ()
 virtual destructor More...
 
virtual void processEvent (const CASSEvent &event)
 process the event More...
 
virtual const result_tresult (const CASSEvent::id_t eventid=0)
 retrieve a result for a given id. More...
 
virtual void releaseEvent (const CASSEvent &event)
 tell the list that the result for event can be overwritten More...
 
result_t::shared_pointer resultCopy (const uint64_t eventid)
 retrieve histogram for id More...
 
virtual void load ()
 load the general settings More...
 
virtual void aboutToQuit ()
 function that will be called when the processor is about to be deleted More...
 
const names_tdependencies ()
 Define all processors keys a processor depends on. More...
 
void clearDependencies ()
 clear the dependenies More...
 
void clearHistograms ()
 clear the histograms More...
 
virtual void processCommand (std::string command)
 process command in pp More...
 
const name_t name () const
 retrieve the name of this processor More...
 
bool hide () const
 retrieve the hide flag of this processor More...
 
const std::string & comment () const
 retrieve the comment of this processor More...
 

Protected Member Functions

void highPass (result_t::const_iterator orig, result_t::iterator filtered)
 high pass filtering function More...
 
void lowPass (result_t::const_iterator orig, result_t::iterator filtered)
 low pass filtering function More...
 
- Protected Member Functions inherited from cass::Processor
virtual void createHistList (result_t::shared_pointer result)
 create result list. More...
 
void setupGeneral ()
 general setup of the processor More...
 
bool setupCondition (bool defaultConditionType=true)
 setup the condition. More...
 
shared_pointer setupDependency (const std::string &depVarName, const name_t &name="")
 setup the dependecy. More...
 

Protected Attributes

shared_pointer _pHist
 processor containing input result More...
 
float _alpha
 factor used for filtering More...
 
std::tr1::function< void(result_t::const_iterator, result_t::iterator)> _func
 function to retrieve the parameter from the axis More...
 
- Protected Attributes inherited from cass::Processor
const name_t _name
 the processors name More...
 
bool _hide
 flag to tell whether this pp should be hidden in the dropdown list More...
 
std::string _comment
 optional comment that one can add to a processor. More...
 
CachedList _resultList
 the list of results More...
 
names_t _dependencies
 the list of dependencies More...
 
shared_pointer _condition
 pointer to the processor that will contain the condition More...
 

Additional Inherited Members

- Public Types inherited from cass::Processor
typedef std::tr1::shared_ptr< Processorshared_pointer
 a shared pointer of this More...
 
typedef std::string name_t
 define the name type More...
 
typedef std::list< name_tnames_t
 define the list of names More...
 
typedef CachedList::item_type result_t
 define the results More...
 
typedef CachedList::item_sp resultsp_t
 define the shared pointer to the result More...
 

Detailed Description

low / high pass filter of 1D result

Available PostProcessors:
"89":high or low pass filter on 1D result

inspired by code found at http://stackoverflow.com/questions/13882038/implementing-simple-high-and-low-pass-filters-in-c copright Slater Tyrus

HighPass function:

float RC = 1.0/(CUTOFF*2*3.14);
float dt = 1.0/SAMPLE_RATE;
float alpha = RC/(RC + dt);
float filteredArray[numSamples];
filteredArray[0] = data.recordedSamples[0];
for (i = 1; i<numSamples; i++){
  filteredArray[i] = alpha * (filteredArray[i-1] + data.recordedSamples[i] - data.recordedSamples[i-1]);
}
data.recordedSamples = filteredArray;

LowPass function:

float RC = 1.0/(CUTOFF*2*3.14);
float dt = 1.0/SAMPLE_RATE;
float alpha = dt/(RC+dt);
float filteredArray[numSamples];
filteredArray[0] = data.recordedSamples[0];
for(i=1; i<numSamples; i++){
  filteredArray[i] = filteredArray[i-1] + (alpha*(data.recordedSamples[i] - filteredArray[i-1]));
}
data.recordedSamples = filteredArray;
See also
Processor for a list of all commonly available cass.ini settings.
User definable Parameters:

Processor/%name%/{InputName}
Name of the processor that contains the 1D result to filter

Processor/%name%/{FilterType}
The filter type to use. Default is "LowPass". Possible values are:

  • "LowPass": a low pass filter
  • "HighPass": a high pass filter

Processor/%name%/{Cutoff}
The cutoff of the filter.

Processor/%name%/{SampleRate}
The sampling rate of the filter

Author
Lutz Foucar

Definition at line 2300 of file operations.h.

Constructor & Destructor Documentation

pp89::pp89 ( const name_t name)

constructor

Definition at line 3178 of file operations.cpp.

References loadSettings().

Member Function Documentation

void pp89::highPass ( result_t::const_iterator  orig,
result_t::iterator  filtered 
)
protected

high pass filtering function

Parameters
origiterator to the original value
filterediterator to the filtered value

Definition at line 3231 of file operations.cpp.

References _alpha.

Referenced by loadSettings().

void pp89::loadSettings ( size_t  )
virtual
void pp89::lowPass ( result_t::const_iterator  orig,
result_t::iterator  filtered 
)
protected

low pass filtering function

Parameters
origiterator to the original value
filterediterator to the filtered value

Definition at line 3248 of file operations.cpp.

References _alpha.

Referenced by loadSettings().

void pp89::process ( const CASSEvent evt,
result_t result 
)
virtual

Member Data Documentation

float cass::pp89::_alpha
protected

factor used for filtering

Definition at line 2333 of file operations.h.

Referenced by highPass(), loadSettings(), and lowPass().

std::tr1::function<void(result_t::const_iterator, result_t::iterator)> cass::pp89::_func
protected

function to retrieve the parameter from the axis

Definition at line 2337 of file operations.h.

Referenced by loadSettings(), and process().

shared_pointer cass::pp89::_pHist
protected

processor containing input result

Definition at line 2330 of file operations.h.

Referenced by loadSettings(), and process().


The documentation for this class was generated from the following files: