]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnLoopEff.h
Implementation of all needed changes in the package in order to speed-up the executio...
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnLoopEff.h
1 #ifndef ALIRSNLOOPEFF_H
2 #define ALIRSNLOOPEFF_H
3
4 //
5 // Class to combine pairs of daughters.
6 //
7
8 #include "AliLog.h"
9
10 #include "AliRsnEvent.h"
11 #include "AliRsnLoop.h"
12
13 class AliRsnLoopEff : public AliRsnLoop {
14 public:
15
16    AliRsnLoopEff(const char *name = "default", Int_t nSteps = 0);
17    AliRsnLoopEff(const AliRsnLoopEff &copy);
18    AliRsnLoopEff& operator=(const AliRsnLoopEff&);
19    ~AliRsnLoopEff();
20
21    AliRsnListOutput* GetOutput()    {return (AliRsnListOutput*)fOutputs[0];}
22    void              CreateOutput();
23
24    void              AddStep(TObject *set);
25    Int_t             NStepsArray() {return (Int_t)fSteps.GetEntries();}
26    Int_t             NStepsAll()   {return fAddSteps + NStepsArray();}
27                      
28    virtual void      AddOutput(TObject *) { AliWarning("In loops for efficiency it is not allowed to add outputs externally"); }
29    virtual Bool_t    Init(const char *prefix, TList *list);
30
31 protected:
32
33    Int_t  FindTrack(Int_t label, AliVEvent *event);
34
35    Int_t        fAddSteps; //  number of additional steps
36    TObjArray    fSteps;    //  list of cuts for all steps with MC tracks
37
38 private:
39
40    ClassDef(AliRsnLoopEff, 1)
41 };
42
43 #endif
44