]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnLoopEff.h
Some bug fixes, removal of some duplicates and clarified the logic of some pieces...
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnLoopEff.h
CommitLineData
c865cb1d 1#ifndef ALIRSNLOOPEFF_H
2#define ALIRSNLOOPEFF_H
3
4//
5// Class to combine pairs of daughters.
6//
7
8#include "AliLog.h"
9
c865cb1d 10#include "AliRsnLoop.h"
f34f960b 11#include "AliRsnListOutput.h"
c865cb1d 12
13class AliRsnLoopEff : public AliRsnLoop {
14public:
15
f34f960b 16 AliRsnLoopEff(const char *name = "default", Int_t nSteps = 0, Double_t maxDistPV = 1E-2);
c865cb1d 17 AliRsnLoopEff(const AliRsnLoopEff &copy);
18 AliRsnLoopEff& operator=(const AliRsnLoopEff&);
19 ~AliRsnLoopEff();
20
f34f960b 21 AliRsnListOutput* GetOutput() {return fOutput;}
c865cb1d 22 void CreateOutput();
f34f960b 23 void AddStep(TObject *set);
24 void SetMaxDistanceFromPV(Double_t value) {fMaxDistPV = value;}
25 virtual void AddOutput(TObject *) {AliWarning("In loops for efficiency it is not allowed to add outputs externally");}
c865cb1d 26 virtual Bool_t Init(const char *prefix, TList *list);
27
28protected:
29
f34f960b 30 Int_t FindTrack(Int_t label, AliVEvent *event);
31 Int_t GetMatchedDaughter(Int_t label, AliRsnEvent *event);
32 Double_t DistanceFromPV(Double_t x, Double_t y, Double_t z);
33 Bool_t CheckDistanceFromPV(Double_t x, Double_t y, Double_t z) {return (DistanceFromPV(x,y,z) <= fMaxDistPV);}
c865cb1d 34
f34f960b 35 Int_t fAddSteps; // number of additional steps
36 TObjArray fSteps; // list of cuts for all steps with MC tracks
37 AliRsnListOutput *fOutput; // unique list output
38 Double_t fVertex[3]; //! primary vertex position
39 Double_t fMaxDistPV; // maximum allowed distance from primary vertex
c865cb1d 40
41private:
42
43 ClassDef(AliRsnLoopEff, 1)
44};
45
46#endif
47