]>
Commit | Line | Data |
---|---|---|
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 | |
13 | class AliRsnLoopEff : public AliRsnLoop { | |
14 | public: | |
15 | ||
f34f960b | 16 | AliRsnLoopEff(const char *name = "default", Int_t nSteps = 0, Double_t maxDistPV = 1E-2); |
c865cb1d | 17 | AliRsnLoopEff(const AliRsnLoopEff ©); |
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 | ||
28 | protected: | |
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 | |
41 | private: | |
42 | ||
43 | ClassDef(AliRsnLoopEff, 1) | |
44 | }; | |
45 | ||
46 | #endif | |
47 |