ROOT logo
#ifndef ALIRSNDAUGHTERSELECTOR_H
#define ALIRSNDAUGHTERSELECTOR_H

#include <TNamed.h>
#include <TClonesArray.h>
#include <TObjArray.h>

class TEntryList;
class TList;

class AliRsnCutSet;
class AliRsnEvent;
class AliRsnAction;

class AliRsnDaughterSelector : public TNamed {

public:

   AliRsnDaughterSelector(const char *name = "name", const char *title = "title");
   AliRsnDaughterSelector(const AliRsnDaughterSelector &copy);
   AliRsnDaughterSelector &operator=(const AliRsnDaughterSelector &copy);
   virtual ~AliRsnDaughterSelector();

   void          Init();
   void          InitActions(TList *list);
   void          Reset();
   Int_t         Add(AliRsnCutSet *cuts, Bool_t charged);
   Int_t         GetID(const char *cutSetName, Bool_t charged);
   TEntryList   *GetSelected(Int_t i, Char_t charge);
   TEntryList   *GetSelected(Int_t i, Short_t charge);
   void          ScanEvent(AliRsnEvent *ev);
   void          ExecActions(AliRsnEvent *ev);

   virtual void  Print(Option_t *option = "") const;

   TClonesArray *GetCutSetC() {return &fCutSetsC;}
   TClonesArray *GetCutSetN() {return &fCutSetsN;}

   void          AddAction(AliRsnAction *action);
   TObjArray    *GetActions() { return &fActions; }

   void SetLabelCheck(Bool_t useLabelCheck = kTRUE) { fUseLabelCheck = useLabelCheck;}

private:

   TClonesArray fCutSetsN;        // cuts for neutral daughters
   TClonesArray fCutSetsC;        // cuts for charged daughters (usually, the same)

   TClonesArray fEntryListsN;     // entry lists for neutrals
   TClonesArray fEntryListsP;     // entry lists for charged (one per sign)
   TClonesArray fEntryListsM;     // entry lists for charged (one per sign)

   Bool_t       fUseLabelCheck;   // flag is reapiting of label should be checked

   TObjArray    fActions;

   ClassDef(AliRsnDaughterSelector, 3)
};

#endif
 AliRsnDaughterSelector.h:1
 AliRsnDaughterSelector.h:2
 AliRsnDaughterSelector.h:3
 AliRsnDaughterSelector.h:4
 AliRsnDaughterSelector.h:5
 AliRsnDaughterSelector.h:6
 AliRsnDaughterSelector.h:7
 AliRsnDaughterSelector.h:8
 AliRsnDaughterSelector.h:9
 AliRsnDaughterSelector.h:10
 AliRsnDaughterSelector.h:11
 AliRsnDaughterSelector.h:12
 AliRsnDaughterSelector.h:13
 AliRsnDaughterSelector.h:14
 AliRsnDaughterSelector.h:15
 AliRsnDaughterSelector.h:16
 AliRsnDaughterSelector.h:17
 AliRsnDaughterSelector.h:18
 AliRsnDaughterSelector.h:19
 AliRsnDaughterSelector.h:20
 AliRsnDaughterSelector.h:21
 AliRsnDaughterSelector.h:22
 AliRsnDaughterSelector.h:23
 AliRsnDaughterSelector.h:24
 AliRsnDaughterSelector.h:25
 AliRsnDaughterSelector.h:26
 AliRsnDaughterSelector.h:27
 AliRsnDaughterSelector.h:28
 AliRsnDaughterSelector.h:29
 AliRsnDaughterSelector.h:30
 AliRsnDaughterSelector.h:31
 AliRsnDaughterSelector.h:32
 AliRsnDaughterSelector.h:33
 AliRsnDaughterSelector.h:34
 AliRsnDaughterSelector.h:35
 AliRsnDaughterSelector.h:36
 AliRsnDaughterSelector.h:37
 AliRsnDaughterSelector.h:38
 AliRsnDaughterSelector.h:39
 AliRsnDaughterSelector.h:40
 AliRsnDaughterSelector.h:41
 AliRsnDaughterSelector.h:42
 AliRsnDaughterSelector.h:43
 AliRsnDaughterSelector.h:44
 AliRsnDaughterSelector.h:45
 AliRsnDaughterSelector.h:46
 AliRsnDaughterSelector.h:47
 AliRsnDaughterSelector.h:48
 AliRsnDaughterSelector.h:49
 AliRsnDaughterSelector.h:50
 AliRsnDaughterSelector.h:51
 AliRsnDaughterSelector.h:52
 AliRsnDaughterSelector.h:53
 AliRsnDaughterSelector.h:54
 AliRsnDaughterSelector.h:55
 AliRsnDaughterSelector.h:56
 AliRsnDaughterSelector.h:57
 AliRsnDaughterSelector.h:58
 AliRsnDaughterSelector.h:59
 AliRsnDaughterSelector.h:60