2 // *** Class AliRsnCut ***
4 // Cut base class: all other cuts inherit from it.
5 // The 'core' of the class is the method "IsSelected()" which
6 // must be overloaded by any specific cut implementation.
8 // This class provides some default instruments to check values
9 // agains a reference or an allowed range, in order to permit
10 // a unique way to execute such kind of checks.
12 // authors: Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
13 // Martin Vala (martin.vala@cern.ch)
19 #include "AliRsnTarget.h"
23 class AliRsnCut : public AliRsnTarget
27 AliRsnCut(const char *name = "dummy", RSNTARGET target = AliRsnTarget::kTargetTypes);
28 AliRsnCut(const char *name, RSNTARGET target, Int_t imin, Int_t imax=0 , Double_t dmin=0., Double_t dmax=0.);
29 AliRsnCut(const char *name, RSNTARGET target, Double_t dmin, Double_t dmax=0., Int_t imin=0 , Int_t imax=0 );
30 AliRsnCut(const AliRsnCut& copy);
31 AliRsnCut& operator=(const AliRsnCut& copy);
32 virtual ~AliRsnCut() { fEvent = 0x0; };
34 Int_t GetMinI() {return fMinI;}
35 Int_t GetMaxI() {return fMaxI;}
36 Double_t GetMinD() {return fMinD;}
37 Double_t GetMaxD() {return fMaxD;}
38 Int_t GetCutValueI() {return fCutValueI;}
39 Double_t GetCutValueD() {return fCutValueD;}
40 Bool_t GetCutResult() {return fCutResult;}
42 void SetRangeI(Int_t min, Int_t max) {fMinI = min; fMaxI = max;}
43 void SetRangeD(Double_t min, Double_t max) {fMinD = min; fMaxD = max;}
45 void SetValueI(Int_t value) {fMinI = value;}
46 void SetValueD(Double_t value) {fMinD = value;}
53 virtual void SetEvent(AliRsnEvent *event);
54 AliRsnEvent* GetEvent() {return fEvent;}
56 virtual Bool_t IsSelected(TObject *object);
57 virtual void Print(Option_t *opt = "") const;
61 Int_t fMinI; // lower edge of INT range or ref. value for INT CUT
62 Int_t fMaxI; // upper edge of INT range (not used for value cuts)
63 Double_t fMinD; // lower edge of DOUBLE range or ref. value for DOUBLE CUT
64 Double_t fMaxD; // upper edge of DOUBLE range (not used for value cuts)
66 Int_t fCutValueI; // cut value INT
67 Double_t fCutValueD; // cut value DOUBLE
69 Bool_t fCutResult; // tells if the cut is passed or not
71 AliRsnEvent *fEvent; //! pointer to current event (can be needed sometimes, but never streamed)
73 ClassDef(AliRsnCut, 1)