Modified macros for phi analysis: improved pseudorapidity cut flexibility (A.Knospe)
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnLoopPair.h
CommitLineData
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
12class TList;
b63357a0 13class AliRsnEvent;
14class AliRsnPairDef;
c865cb1d 15
16class AliRsnLoopPair : public AliRsnLoop {
17public:
18
19 AliRsnLoopPair(const char *name = "default", AliRsnPairDef *def = 0, Bool_t isMixed = kFALSE);
20 AliRsnLoopPair(const AliRsnLoopPair &copy);
61f275d1 21 AliRsnLoopPair &operator=(const AliRsnLoopPair &copy);
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;}
c865cb1d 40
41 // methods
f34f960b 42 Bool_t IsTrueMother();
c865cb1d 43 virtual void Print(Option_t *opt = "") const;
44 virtual Bool_t Init(const char *prefix, TList *list);
45 virtual Int_t DoLoop(AliRsnEvent *main, AliRsnDaughterSelector *smain, AliRsnEvent *mix = 0, AliRsnDaughterSelector *smix = 0);
46
47protected:
48
b63357a0 49 Bool_t AssignMotherAndDaughters (AliRsnEvent *event, Int_t ipart);
50 Bool_t AssignMotherAndDaughtersESD(AliRsnEvent *event, Int_t ipart);
51 Bool_t AssignMotherAndDaughtersAOD(AliRsnEvent *event, Int_t ipart);
52 Int_t LoopTrueMC(AliRsnEvent *event);
53
54 Bool_t fTrueMC; // if this flag is TRUE, scan the MC for all true resonances from MC
c865cb1d 55 Bool_t fOnlyTrue; // select true pairs only?
52e6652d 56 Bool_t fUseMCRef; // uses MC ref instead of REC
c865cb1d 57 Bool_t fCheckDecay; // is the decay channel correct in a true pair?
58 Int_t fListID[2]; // indexes of the two entry lists to be used
b63357a0 59 Double_t fRangeY; // range in rapidity (serves always)
c865cb1d 60
61 AliRsnPairDef *fPairDef; // pair definition
62 AliRsnCutSet *fPairCuts; // collection of all cuts
63 AliRsnMother fMother; //! mother candidate (to avoid creating it continuously)
64 AliRsnDaughter fDaughter[2]; //! daughter candidates
65
66private:
67
52e6652d 68 ClassDef(AliRsnLoopPair, 4)
c865cb1d 69};
70
71#endif
72