5 // Base class to implement any computation within the RSN package.
6 // It contains only an array of output objects which must derive
8 // Its core functions ar Init() and DoLoop() which must be
9 // overloaded by any class which inherits from this.
13 #include "TObjArray.h"
15 #include "AliRsnListOutput.h"
16 #include "AliRsnValue.h"
17 #include "AliRsnCutSet.h"
21 class AliRsnListOutput;
22 class AliRsnDaughterSelector;
24 class AliRsnLoop : public TNamed {
33 AliRsnLoop(const char *name = "default", Bool_t isMixed = kFALSE);
34 AliRsnLoop(const AliRsnLoop ©);
35 AliRsnLoop &operator=(const AliRsnLoop ©);
38 void SetMixed(Bool_t yn = kTRUE) {fIsMixed = yn;}
39 void SetEventCuts(AliRsnCutSet *set) {fEventCuts = set;}
40 Bool_t IsMixed() const {return fIsMixed;}
41 AliRsnCutSet *GetEventCuts() {return fEventCuts;}
42 Bool_t OkEvent(AliRsnEvent *rsn);
44 virtual void AddOutput(TObject *output);
45 virtual void Print(Option_t *option = "") const;
46 virtual Bool_t Init(const char *prefix, TList *list);
47 virtual Int_t DoLoop(AliRsnEvent *main, AliRsnDaughterSelector *smain, AliRsnEvent *mix = 0, AliRsnDaughterSelector *smix = 0);
51 Bool_t fIsMixed; // flag to know if the loop works with event mixing
52 AliRsnCutSet *fEventCuts; // event cuts
53 TClonesArray fOutputs; // output object definitions
57 ClassDef(AliRsnLoop, 1)