]>
Commit | Line | Data |
---|---|---|
e2bafbbc | 1 | // |
32992791 | 2 | // *** Class AliRsnCut *** |
06351446 | 3 | // |
32992791 | 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. | |
06351446 | 7 | // |
32992791 | 8 | // This class provides some default instruments to check values |
eaa44581 | 9 | // against a reference or an allowed range, in order to permit |
32992791 | 10 | // a unique way to execute such kind of checks. |
eaa44581 | 11 | // Moreover, if one checks values and ranges using default methods |
12 | // a debug message can be printed on request. | |
32992791 | 13 | // |
14 | // authors: Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it) | |
15 | // Martin Vala (martin.vala@cern.ch) | |
e2bafbbc | 16 | // |
06351446 | 17 | |
18 | #ifndef ALIRSNCUT_H | |
19 | #define ALIRSNCUT_H | |
20 | ||
32992791 | 21 | #include "AliRsnTarget.h" |
06351446 | 22 | |
2a1c7696 | 23 | class AliRsnCut : public AliRsnTarget { |
24 | public: | |
25 | ||
26 | AliRsnCut(const char *name = "dummy", RSNTARGET target = AliRsnTarget::kTargetTypes); | |
27 | AliRsnCut(const char *name, RSNTARGET target, Int_t imin, Int_t imax = 0 , Double_t dmin = 0., Double_t dmax = 0.); | |
28 | AliRsnCut(const char *name, RSNTARGET target, Double_t dmin, Double_t dmax = 0., Int_t imin = 0 , Int_t imax = 0); | |
61f275d1 | 29 | AliRsnCut(const AliRsnCut ©); |
30 | AliRsnCut &operator=(const AliRsnCut ©); | |
2a1c7696 | 31 | virtual ~AliRsnCut() { }; |
32 | ||
b63357a0 | 33 | Int_t GetMinI() const {return fMinI;} |
34 | Int_t GetMaxI() const {return fMaxI;} | |
35 | Double_t GetMinD() const {return fMinD;} | |
36 | Double_t GetMaxD() const {return fMaxD;} | |
37 | Int_t GetCutValueI() const {return fCutValueI;} | |
38 | Double_t GetCutValueD() const {return fCutValueD;} | |
39 | Bool_t GetCutResult() const {return fCutResult;} | |
2a1c7696 | 40 | |
41 | void SetRangeI(Int_t min, Int_t max) {fMinI = min; fMaxI = max;} | |
42 | void SetRangeD(Double_t min, Double_t max) {fMinD = min; fMaxD = max;} | |
43 | ||
44 | void SetValueI(Int_t value) {fMinI = value;} | |
45 | void SetValueD(Double_t value) {fMinD = value;} | |
46 | ||
669ee453 | 47 | void SetMaxPt(Double_t value) {fMaxPt = value;} |
48 | void SetMinPt(Double_t value) {fMinPt = value;} | |
49 | void SetPtDepCut(Bool_t flag) {fPtDepCut = flag;} | |
50 | void SetPtDepCutMaxFormula(const char *formula) {fPtDepCutMaxFormula = formula;} | |
51 | void SetPtDepCutMinFormula(const char *formula) {fPtDepCutMinFormula = formula;} | |
52 | ||
2a1c7696 | 53 | Bool_t OkValueI(); |
54 | Bool_t OkRangeI(); | |
55 | Bool_t OkValueD(); | |
56 | Bool_t OkRangeD(); | |
57 | ||
58 | virtual Bool_t IsSelected(TObject *object); | |
59 | virtual void Print(Option_t *opt = "") const; | |
60 | ||
61 | protected: | |
62 | ||
63 | Int_t fMinI; // lower edge of INT range or ref. value for INT CUT | |
64 | Int_t fMaxI; // upper edge of INT range (not used for value cuts) | |
65 | Double_t fMinD; // lower edge of DOUBLE range or ref. value for DOUBLE CUT | |
66 | Double_t fMaxD; // upper edge of DOUBLE range (not used for value cuts) | |
fda16e8d | 67 | |
68 | Int_t fMinIptdep; // lower edge of INT range or ref. value for INT CUT -- pt dependent | |
69 | Int_t fMaxIptdep; // upper edge of INT range (not used for value cuts) -- pt dependent | |
70 | Double_t fMinDptdep; // lower edge of DOUBLE range or ref. value for DOUBLE CUT -- pt dependent | |
71 | Double_t fMaxDptdep; // upper edge of DOUBLE range (not used for value cuts) -- pt dependent | |
2a1c7696 | 72 | |
73 | Int_t fCutValueI; // cut value INT | |
74 | Double_t fCutValueD; // cut value DOUBLE | |
669ee453 | 75 | Bool_t fPtDepCut; // flag to enable a pt dependent pair cut |
76 | Double_t fRefPtValueD; // pt value for a pt dependent pair cut | |
77 | Double_t fMaxPt; // maximum pt at which applying a pt dependent cut | |
78 | Double_t fMinPt; // minimum pt at which applying a pt dependent cut | |
79 | TString fPtDepCutMaxFormula; //pt dependent cut formula | |
80 | TString fPtDepCutMinFormula; //pt dependent cut formula | |
2a1c7696 | 81 | |
82 | Bool_t fCutResult; // tells if the cut is passed or not | |
83 | ||
fda16e8d | 84 | ClassDef(AliRsnCut, 3) |
06351446 | 85 | }; |
86 | ||
87 | #endif |