]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnCut.h
Fixed bug in the computation of dip angle value
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCut.h
1 //
2 // *** Class AliRsnCut ***
3 //
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.
7 //
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.
11 //
12 // authors: Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
13 //          Martin Vala (martin.vala@cern.ch)
14 //
15
16 #ifndef ALIRSNCUT_H
17 #define ALIRSNCUT_H
18
19 #include "AliRsnTarget.h"
20
21 class AliRsnEvent;
22
23 class AliRsnCut : public AliRsnTarget
24 {
25   public:
26
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; };
33     
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;}
41     
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;}
44
45     void             SetValueI(Int_t value)    {fMinI = value;}
46     void             SetValueD(Double_t value) {fMinD = value;}
47
48     Bool_t           OkValueI();
49     Bool_t           OkRangeI();
50     Bool_t           OkValueD();
51     Bool_t           OkRangeD();
52
53     virtual void     SetEvent(AliRsnEvent *event);
54     AliRsnEvent*     GetEvent() {return fEvent;}
55     
56     virtual Bool_t   IsSelected(TObject *object);
57     virtual void     Print(Option_t *opt = "") const;
58
59   protected:
60
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)
65
66     Int_t        fCutValueI;  //  cut value INT
67     Double_t     fCutValueD;  //  cut value DOUBLE
68     
69     Bool_t       fCutResult;  //  tells if the cut is passed or not
70
71     AliRsnEvent *fEvent;      //! pointer to current event (can be needed sometimes, but never streamed)
72
73     ClassDef(AliRsnCut, 1)
74 };
75
76 #endif