example macros to run on proof
[u/mrichter/AliRoot.git] / PWG2 / 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               SetListID(Int_t i)             {fListID = i;}
31    void               SetDef(AliRsnDaughterDef *def) {fDef = def;}
32    
33    virtual void       Print(Option_t *opt = "") const;
34    virtual Bool_t     Init(const char *prefix, TList *list);
35    virtual Int_t      DoLoop(AliRsnEvent *main, AliRsnDaughterSelector *smain, AliRsnEvent *mix = 0, AliRsnDaughterSelector *smix = 0);
36
37 protected:
38
39    Int_t LoopTrueMC(AliRsnEvent *rsn);
40
41    Bool_t             fTrueMC;     //  if this flag is TRUE, scan the MC for all true resonances from MC
42    Bool_t             fOnlyTrue;   //  for selecting only true particles
43    Int_t              fListID;     //  index of entry list to use
44    AliRsnDaughterDef *fDef;        //  definition for selection
45    AliRsnDaughter     fDaughter;   //! daughter temporary member
46
47 private:
48
49    ClassDef(AliRsnLoopDaughter, 3)
50 };
51
52 #endif
53