example macros to run on proof
[u/mrichter/AliRoot.git] / PWG2 / 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);
b63357a0 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;}
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
46protected:
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
64private:
65
b63357a0 66 ClassDef(AliRsnLoopPair, 3)
c865cb1d 67};
68
69#endif
70