353fc4064422a9c84cb8f9ff08f95f13862ecf7a
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnDaughterSelector.h
1 #ifndef ALIRSNDAUGHTERSELECTOR_H
2 #define ALIRSNDAUGHTERSELECTOR_H
3
4 #include <TNamed.h>
5 #include <TClonesArray.h>
6
7 class TEntryList;
8
9 class AliRsnCutSet;
10 class AliRsnEvent;
11
12 class AliRsnDaughterSelector : public TNamed {
13
14 public:
15
16    AliRsnDaughterSelector(const char *name = "name", const char *title = "title");
17    AliRsnDaughterSelector(const AliRsnDaughterSelector &copy);
18    AliRsnDaughterSelector &operator=(const AliRsnDaughterSelector &copy);
19    virtual ~AliRsnDaughterSelector();
20
21    void          Init();
22    void          Reset();
23    Int_t         Add(AliRsnCutSet *cuts, Bool_t charged);
24    Int_t         GetID(const char *cutSetName, Bool_t charged);
25    TEntryList   *GetSelected(Int_t i, Char_t charge);
26    TEntryList   *GetSelected(Int_t i, Short_t charge);
27    void          ScanEvent(AliRsnEvent *ev);
28
29    virtual void  Print(Option_t *option = "") const;
30
31    TClonesArray *GetCutSetC() {return &fCutSetsC;}
32    TClonesArray *GetCutSetN() {return &fCutSetsN;}
33    
34    void SetLabelCheck(Bool_t useLabelCheck = kTRUE) { fUseLabelCheck = useLabelCheck;}
35
36 private:
37
38    TClonesArray fCutSetsN;        // cuts for neutral daughters
39    TClonesArray fCutSetsC;        // cuts for charged daughters (usually, the same)
40
41    TClonesArray fEntryListsN;     // entry lists for neutrals
42    TClonesArray fEntryListsP;     // entry lists for charged (one per sign)
43    TClonesArray fEntryListsM;     // entry lists for charged (one per sign)
44    
45    Bool_t       fUseLabelCheck;   // flag is reapiting of label should be checked
46
47    ClassDef(AliRsnDaughterSelector, 2)
48 };
49
50 #endif