]>
Commit | Line | Data |
---|---|---|
c865cb1d | 1 | #ifndef ALIRSNLOOPPAIR_H |
2 | #define ALIRSNLOOPPAIR_H | |
3 | ||
4 | // | |
5 | // Class to combine pairs of daughters. | |
b63357a0 | 6 | // See general definition inf mother class AliRsnLoop |
7 | // This is the only implementation which takes into account mixing objects. | |
c865cb1d | 8 | // |
9 | ||
c865cb1d | 10 | #include "AliRsnLoop.h" |
11 | ||
12 | class TList; | |
b63357a0 | 13 | class AliRsnEvent; |
14 | class AliRsnPairDef; | |
c865cb1d | 15 | |
16 | class AliRsnLoopPair : public AliRsnLoop { | |
17 | public: | |
18 | ||
19 | AliRsnLoopPair(const char *name = "default", AliRsnPairDef *def = 0, Bool_t isMixed = kFALSE); | |
20 | AliRsnLoopPair(const AliRsnLoopPair ©); | |
61f275d1 | 21 | AliRsnLoopPair &operator=(const AliRsnLoopPair ©); |
c865cb1d | 22 | ~AliRsnLoopPair(); |
23 | ||
24 | // getters | |
b63357a0 | 25 | Bool_t IsTrueMC() const {return fTrueMC;} |
c865cb1d | 26 | Bool_t IsOnlyTrue() const {return fOnlyTrue;} |
27 | Bool_t IsCheckDecay() const {return fCheckDecay;} | |
61f275d1 | 28 | AliRsnPairDef *GetPairDef() {return fPairDef;} |
29 | AliRsnCutSet *GetPairCuts() {return fPairCuts;} | |
30 | AliRsnMother *GetMother() {return &fMother;} | |
c865cb1d | 31 | |
32 | // setters (not for all members) | |
33 | void SetPairCuts(AliRsnCutSet *cuts) {fPairCuts = cuts;} | |
b63357a0 | 34 | void SetTrueMC(Bool_t yn = kTRUE) {fTrueMC = yn;} |
c865cb1d | 35 | void SetOnlyTrue(Bool_t onlyTrue = kTRUE) {fOnlyTrue = onlyTrue;} |
61f275d1 | 36 | void SetMCRefInfo(Bool_t b = kTRUE) {fUseMCRef = b;} |
c865cb1d | 37 | void SetCheckDecay(Bool_t check = kTRUE) {fCheckDecay = check;} |
38 | void SetListID(Int_t i, Int_t val) {if (i==0||i==1) fListID[i] = val;} | |
b63357a0 | 39 | void SetRangeY(Double_t range) {fRangeY = range;} |
213adb92 | 40 | void SetRangeDCAproduct(Double_t range) {fRangeDCAproduct = range;} |
c865cb1d | 41 | |
42 | // methods | |
f34f960b | 43 | Bool_t IsTrueMother(); |
c865cb1d | 44 | virtual void Print(Option_t *opt = "") const; |
45 | virtual Bool_t Init(const char *prefix, TList *list); | |
46 | virtual Int_t DoLoop(AliRsnEvent *main, AliRsnDaughterSelector *smain, AliRsnEvent *mix = 0, AliRsnDaughterSelector *smix = 0); | |
47 | ||
48 | protected: | |
49 | ||
b63357a0 | 50 | Bool_t AssignMotherAndDaughters (AliRsnEvent *event, Int_t ipart); |
51 | Bool_t AssignMotherAndDaughtersESD(AliRsnEvent *event, Int_t ipart); | |
52 | Bool_t AssignMotherAndDaughtersAOD(AliRsnEvent *event, Int_t ipart); | |
53 | Int_t LoopTrueMC(AliRsnEvent *event); | |
54 | ||
55 | Bool_t fTrueMC; // if this flag is TRUE, scan the MC for all true resonances from MC | |
c865cb1d | 56 | Bool_t fOnlyTrue; // select true pairs only? |
52e6652d | 57 | Bool_t fUseMCRef; // uses MC ref instead of REC |
c865cb1d | 58 | Bool_t fCheckDecay; // is the decay channel correct in a true pair? |
59 | Int_t fListID[2]; // indexes of the two entry lists to be used | |
b63357a0 | 60 | Double_t fRangeY; // range in rapidity (serves always) |
213adb92 | 61 | Double_t fRangeDCAproduct; // range in the daughters's DCA product |
c865cb1d | 62 | |
63 | AliRsnPairDef *fPairDef; // pair definition | |
64 | AliRsnCutSet *fPairCuts; // collection of all cuts | |
65 | AliRsnMother fMother; //! mother candidate (to avoid creating it continuously) | |
66 | AliRsnDaughter fDaughter[2]; //! daughter candidates | |
67 | ||
68 | private: | |
69 | ||
213adb92 | 70 | ClassDef(AliRsnLoopPair, 5) |
c865cb1d | 71 | }; |
72 | ||
73 | #endif | |
74 |