source: trunk/MagicSoft/Mars/mbase/MFilter.cc@ 3361

Last change on this file since 3361 was 2386, checked in by tbretz, 21 years ago
*** empty log message ***
File size: 4.8 KB
Line 
1/* ======================================================================== *\
2!
3! *
4! * This file is part of MARS, the MAGIC Analysis and Reconstruction
5! * Software. It is distributed to you in the hope that it can be a useful
6! * and timesaving tool in analysing Data of imaging Cerenkov telescopes.
7! * It is distributed WITHOUT ANY WARRANTY.
8! *
9! * Permission to use, copy, modify and distribute this software and its
10! * documentation for any purpose is hereby granted without fee,
11! * provided that the above copyright notice appear in all copies and
12! * that both that copyright notice and this permission notice appear
13! * in supporting documentation. It is provided "as is" without express
14! * or implied warranty.
15! *
16!
17!
18! Author(s): Thomas Bretz, 07/2001 <mailto:tbretz@astro.uni-wuerzburg.de>
19!
20! Copyright: MAGIC Software Development, 2000-2003
21!
22!
23\* ======================================================================== */
24
25/////////////////////////////////////////////////////////////////////////////
26// //
27// MFilter //
28// //
29// This is a base class which defines an interface to create your own //
30// filters. To do it derive a class from MFilter. //
31// //
32// You can invert the meaning of a filter (logical NOT '!') by calling //
33// SetInverted(). //
34// //
35// You can create two types of Filters: //
36// - static Filters and //
37// - dynamic Filters //
38// //
39// Static Filters: //
40// A static filter is a filter which value doesn't change dynamically, //
41// which mean only once while running through your tasklist. To create //
42// a static filter override the Process-function of MFilter (this is //
43// the function in which the filer-value should be updated). If //
44// necessary you can also overwrite Pre-/PostProcess. The process //
45// function should calculate the return value of IsExpressionTrue. //
46// IsExpressionTrue should simply return this value. This kind of //
47// filter must be added to the tasklist at a point which is forseen to //
48// update the value of the filter (eg. after the reading task). //
49// //
50// Dynamic Filters: //
51// A dynamic filter is a filter which returns a value which must be //
52// calculated at the time the filter is called. To create such a //
53// filter you have to overwrite IsExpressionTrue only. If there is //
54// no need for a 'one-point' update this filter must not be added to //
55// the tasklist. //
56// //
57// Usage: //
58// A Filter is connected to a task by calling MTask::SetFilter. The //
59// task is now executed when IsExpressionTrue returns a value //
60// (different from kFALSE) only. //
61// //
62// Remarks: //
63// - Make sure, that all tasks which depends on this filter are either //
64// collected in a MTaskList-object or are conected to the same //
65// filter. //
66// - If you want to use different filters (combined logically) for one //
67// task please look for the MFilterList class. //
68// - Be careful, the return value of IsExpressionTrue is NOT a real //
69// boolean. You can return other values, too. //
70// //
71/////////////////////////////////////////////////////////////////////////////
72
73#include "MFilter.h"
74
75ClassImp(MFilter);
76
77MFilter::MFilter(const char *name, const char *title) : fInverted(kFALSE)
78{
79 fName = name ? name : "MFilter";
80 fTitle = title ? title : "Base Class for a filter";
81}
82
83TString MFilter::GetRule() const
84{
85 return "<GetRule n/a for " + fName + ">";
86}
Note: See TracBrowser for help on using the repository browser.