]>
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 ©); | |
b63357a0 | 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;} | |
28 | AliRsnPairDef* GetPairDef() {return fPairDef;} | |
29 | AliRsnCutSet* GetPairCuts() {return fPairCuts;} | |
30 | AliRsnMother* GetMother() {return &fMother;} | |
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;} |
36 | void SetCheckDecay(Bool_t check = kTRUE) {fCheckDecay = check;} | |
37 | void SetListID(Int_t i, Int_t val) {if (i==0||i==1) fListID[i] = val;} | |
b63357a0 | 38 | void SetRangeY(Double_t range) {fRangeY = range;} |
c865cb1d | 39 | |
40 | // methods | |
f34f960b | 41 | Bool_t IsTrueMother(); |
c865cb1d | 42 | virtual void Print(Option_t *opt = "") const; |
43 | virtual Bool_t Init(const char *prefix, TList *list); | |
44 | virtual Int_t DoLoop(AliRsnEvent *main, AliRsnDaughterSelector *smain, AliRsnEvent *mix = 0, AliRsnDaughterSelector *smix = 0); | |
45 | ||
46 | protected: | |
47 | ||
b63357a0 | 48 | Bool_t AssignMotherAndDaughters (AliRsnEvent *event, Int_t ipart); |
49 | Bool_t AssignMotherAndDaughtersESD(AliRsnEvent *event, Int_t ipart); | |
50 | Bool_t AssignMotherAndDaughtersAOD(AliRsnEvent *event, Int_t ipart); | |
51 | Int_t LoopTrueMC(AliRsnEvent *event); | |
52 | ||
53 | Bool_t fTrueMC; // if this flag is TRUE, scan the MC for all true resonances from MC | |
c865cb1d | 54 | Bool_t fOnlyTrue; // select true pairs only? |
55 | Bool_t fCheckDecay; // is the decay channel correct in a true pair? | |
56 | Int_t fListID[2]; // indexes of the two entry lists to be used | |
b63357a0 | 57 | Double_t fRangeY; // range in rapidity (serves always) |
c865cb1d | 58 | |
59 | AliRsnPairDef *fPairDef; // pair definition | |
60 | AliRsnCutSet *fPairCuts; // collection of all cuts | |
61 | AliRsnMother fMother; //! mother candidate (to avoid creating it continuously) | |
62 | AliRsnDaughter fDaughter[2]; //! daughter candidates | |
63 | ||
64 | private: | |
65 | ||
b63357a0 | 66 | ClassDef(AliRsnLoopPair, 3) |
c865cb1d | 67 | }; |
68 | ||
69 | #endif | |
70 |