Added event cut set for MC
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnLoopDaughter.h
1 #ifndef ALIRSNLOOPDAUGHTER_H
2 #define ALIRSNLOOPDAUGHTER_H
3
4 //
5 // Computator for single daughters.
6 // Implements a simple loop on tracks from one of the entry lists
7 // filled by the task AliRsnInputHandler, adding a check on their
8 // definition specified in the daughter def.
9 //
10
11 #include "AliRsnDaughter.h"
12 #include "AliRsnLoop.h"
13
14 class AliRsnDaughterDef;
15
16 class AliRsnLoopDaughter : public AliRsnLoop {
17 public:
18
19    AliRsnLoopDaughter(const char *name = "default", Int_t listID = 0, AliRsnDaughterDef *def = 0);
20    AliRsnLoopDaughter(const AliRsnLoopDaughter &copy);
21    AliRsnLoopDaughter &operator=(const AliRsnLoopDaughter &copy);
22    ~AliRsnLoopDaughter();
23
24    Int_t              GetListID() const              {return  fListID;}
25    AliRsnDaughterDef *GetDef()                       {return  fDef;}
26    AliRsnDaughter    *GetDaughter()                  {return &fDaughter;}
27
28    void               SetTrueMC(Bool_t yn = kTRUE)   {fTrueMC = yn;}
29    void               SetOnlyTrue(Bool_t yn = kTRUE) {fOnlyTrue = yn;}
30    void               SetMCRefInfo(Bool_t b = kTRUE) {fUseMCRef = b;}
31    void               SetListID(Int_t i)             {fListID = i;}
32    void               SetDef(AliRsnDaughterDef *def) {fDef = def;}
33
34    virtual void       Print(Option_t *opt = "") const;
35    virtual Bool_t     Init(const char *prefix, TList *list);
36    virtual Int_t      DoLoop(AliRsnEvent *main, AliRsnDaughterSelector *smain, AliRsnEvent *mix = 0, AliRsnDaughterSelector *smix = 0);
37
38 protected:
39
40    Int_t LoopTrueMC(AliRsnEvent *rsn);
41
42    Bool_t             fTrueMC;     //  if this flag is TRUE, scan the MC for all true resonances from MC
43    Bool_t             fOnlyTrue;   //  for selecting only true particles
44    Bool_t             fUseMCRef;   //  uses MC ref instead of REC
45    Int_t              fListID;     //  index of entry list to use
46    AliRsnDaughterDef *fDef;        //  definition for selection
47    AliRsnDaughter     fDaughter;   //! daughter temporary member
48
49 private:
50
51    ClassDef(AliRsnLoopDaughter, 4)
52 };
53
54 #endif
55