]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnCutSet.h
Modified some standards, added a cut in pseudo-rapidity
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnCutSet.h
1 //
2 // Class AliRsnCutSet
3 //
4 // This is the front-end for cut management and checking.
5 // It must be prepared by adding all required single cuts,
6 // and then with a logical expression which combines all cuts
7 // with the "AND", "OR" and "NOT" operators.
8 //
9 // author: M. Vala (martin.vala@cern.ch)
10 //
11
12 #ifndef ALIRSNCUTSET_H
13 #define ALIRSNCUTSET_H
14
15 #include <TNamed.h>
16 #include <TObjArray.h>
17
18 #include "AliRsnCut.h"
19
20 class AliRsnDaughter;
21 class AliRsnExpression;
22 class AliRsnPairParticle;
23 class AliRsnEvent;
24
25 class AliRsnCutSet : public TNamed
26 {
27   public:
28
29     AliRsnCutSet(AliRsnCut::ETarget target = AliRsnCut::kLastCutTarget);
30     AliRsnCutSet(TString name, AliRsnCut::ETarget target);
31     AliRsnCutSet(const AliRsnCutSet &copy);
32     AliRsnCutSet& operator=(const AliRsnCutSet& /*copy*/) {return (*this);}
33     ~AliRsnCutSet();
34
35     void      AddCut(AliRsnCut* cut);
36
37     void      ShowCuts() const;
38     Int_t     GetIndexByCutName(TString s);
39     Bool_t    Passed();
40     Bool_t    IsValidScheme();
41     TString   ShowCutScheme();
42     Int_t     TestExpression(TString opt="short");
43     void      PrintSetInfo();
44
45     Bool_t    IsSelected(TObject *obj1, TObject *obj2 = 0x0);
46
47     void SetBoolValue(Bool_t theValue,Int_t index) { fBoolValues[index] = theValue; }
48     Bool_t GetBoolValue(Int_t index) const { return fBoolValues[index]; }
49
50     void SetCutScheme(const TString& theValue);
51     TString GetCutScheme() const { return fCutScheme; }
52
53     void SetCutSchemeIndexed(TString theValue);
54     TString   GetCutSchemeIndexed();
55
56     TObjArray *GetCuts() { return &fCuts; }
57
58     void       SetEvent(AliRsnEvent *event);
59
60   private:
61
62     AliRsnCut::ETarget fTarget;  // cut target
63     TObjArray     fCuts;                  // array of cuts
64     Int_t         fNumOfCuts;             // number of cuts
65     TString       fCutScheme;             // cut scheme
66     TString       fCutSchemeIndexed;      // cut scheme indexed
67
68     Bool_t       *fBoolValues;            //[fNumOfCuts]
69     Bool_t        fIsScheme;              // is scheme
70
71     AliRsnExpression  *fExpression;       // pointer to AliRsnExpression
72
73     ClassDef(AliRsnCutSet,1)    // ROOT dictionary
74 };
75
76 #endif