1 #ifndef ALIRSNLOOPPAIR_H
2 #define ALIRSNLOOPPAIR_H
5 // Class to combine pairs of daughters.
6 // See general definition inf mother class AliRsnLoop
7 // This is the only implementation which takes into account mixing objects.
10 #include "AliRsnLoop.h"
16 class AliRsnLoopPair : public AliRsnLoop {
19 AliRsnLoopPair(const char *name = "default", AliRsnPairDef *def = 0, Bool_t isMixed = kFALSE);
20 AliRsnLoopPair(const AliRsnLoopPair ©);
21 AliRsnLoopPair& operator=(const AliRsnLoopPair ©);
25 Bool_t IsTrueMC() const {return fTrueMC;}
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;}
32 // setters (not for all members)
33 void SetPairCuts(AliRsnCutSet *cuts) {fPairCuts = cuts;}
34 void SetTrueMC(Bool_t yn = kTRUE) {fTrueMC = yn;}
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;}
38 void SetRangeY(Double_t range) {fRangeY = range;}
41 Bool_t IsTrueMother();
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);
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);
53 Bool_t fTrueMC; // if this flag is TRUE, scan the MC for all true resonances from MC
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
57 Double_t fRangeY; // range in rapidity (serves always)
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
66 ClassDef(AliRsnLoopPair, 3)