source: tags/Mars-V0.8.6/mfbase/MFDataChain.h

Last change on this file was 3573, checked in by tbretz, 21 years ago
*** empty log message ***
File size: 1.6 KB
Line 
1#ifndef MARS_MFDataChain
2#define MARS_MFDataChain
3
4/////////////////////////////////////////////////////////////////////////////
5// //
6// MFDataChain //
7// //
8/////////////////////////////////////////////////////////////////////////////
9
10#ifndef MARS_MFilter
11#include "MFilter.h"
12#endif
13#ifndef MARS_MDataChain
14#include "MDataChain.h"
15#endif
16
17class MParList;
18
19class MFDataChain : public MFilter
20{
21private:
22 MDataChain fData;
23 MData *fCond;
24
25 typedef enum { kELowerThan, kEGreaterThan } FilterType_t;
26 FilterType_t fFilterType;
27
28 Bool_t fResult; //!
29
30 void StreamPrimitive(ofstream &out) const;
31
32 Int_t PreProcess(MParList *pList);
33 Int_t Process();
34
35public:
36 MFDataChain(const char *name=NULL, const char *title=NULL);
37 MFDataChain(const char *rule, const char type, const Double_t val,
38 const char *name=NULL, const char *title=NULL);
39 MFDataChain(const char *rule, const char type, const char *cond,
40 const char *name=NULL, const char *title=NULL);
41 ~MFDataChain();
42
43 Bool_t IsExpressionTrue() const { return fResult; }
44
45 void Print(Option_t *opt = "") const;
46 TString GetRule() const;
47
48 void SetVariables(const TArrayD &arr)
49 {
50 fData.SetVariables(arr);
51 if (fCond)
52 fCond->SetVariables(arr);
53 }
54
55 ClassDef(MFDataChain, 1) // A Filter for cuts in any data member
56};
57
58#endif
Note: See TracBrowser for help on using the repository browser.