]>
Commit | Line | Data |
---|---|---|
aec0ec32 | 1 | // |
2 | // *** Class AliRsnPair *** | |
3 | // | |
4 | // TODO | |
5 | // | |
6 | // authors: A. Pulvirenti (email: alberto.pulvirenti@ct.infn.it) | |
7 | // M. Vala (email: martin.vala@cern.ch) | |
8 | // | |
9 | ||
10 | #ifndef ALIRSNPAIR_H | |
11 | #define ALIRSNPAIR_H | |
12 | ||
13 | #include "TH1.h" | |
14 | #include "TH2.h" | |
15 | #include "TList.h" | |
16 | ||
17 | #include "AliRsnDaughter.h" | |
18 | #include "AliRsnPairDef.h" | |
19 | #include "AliRsnEventBuffer.h" | |
20 | #include "AliRsnEvent.h" | |
21 | #include "AliRsnCutMgr.h" | |
22 | #include "AliRsnHistoDef.h" | |
23 | ||
24 | class AliRsnFunction; | |
25 | ||
26 | class AliRsnPair : public TObject | |
27 | { | |
28 | public: | |
29 | ||
30 | enum EPairType | |
31 | { | |
e0baff8c | 32 | kNoPID = 0, kNoPIDMix, |
33 | kRealisticPID, kRealisticPIDMix, | |
34 | kPerfectPID, kPerfectPIDMix, | |
35 | kTruePairs, | |
36 | kPairTypes | |
aec0ec32 | 37 | }; |
38 | ||
e0baff8c | 39 | AliRsnPair(EPairType type = kRealisticPID, AliRsnPairDef *def = 0, |
40 | Int_t mixNum = 1, Double_t mixVzCut = 1.0, Int_t mixMultCut = 10); | |
aec0ec32 | 41 | ~AliRsnPair(); |
42 | ||
43 | void Init(); | |
44 | void Print(); | |
45 | void ProcessPair(AliRsnEventBuffer *buf); | |
46 | void SetCutMgr(AliRsnCutMgr* theValue) { fCutMgr = theValue; } | |
e0baff8c | 47 | void SetMixingCut(AliRsnCutSet* theValue) { fMixingCut = theValue; } |
aec0ec32 | 48 | void AddFunction(AliRsnFunction *fcn); |
49 | TList* GenerateHistograms(TString prefix = ""); | |
50 | void GenerateHistograms(TString prefix, TList *tgt); | |
51 | ||
52 | TString GetPairTypeName(EPairType type); | |
53 | TString GetPairName(); | |
54 | TString GetPairHistName(AliRsnFunction *fcn, TString text = ""); | |
55 | TString GetPairHistTitle(AliRsnFunction *fcn, TString text=""); | |
56 | ||
57 | private: | |
e0baff8c | 58 | |
aec0ec32 | 59 | AliRsnPair (const AliRsnPair ©) : TObject(copy), |
e0baff8c | 60 | fIsMixed(kFALSE),fUseMC(kFALSE),fIsLikeSign(kFALSE),fMixNum(1),fMixingCut(0x0), |
61 | fPairDef(0x0),fPairType(kPairTypes),fTypePID(AliRsnDaughter::kRealistic), | |
62 | fCutMgr(0x0),fFunctions("AliRsnFunction",0) {} | |
aec0ec32 | 63 | AliRsnPair& operator=(const AliRsnPair&) {return *this;} |
64 | ||
65 | void SetUp(EPairType type); // sets up all flags | |
66 | void SetAllFlags(AliRsnDaughter::EPIDMethod pidType,Bool_t isMix, Bool_t useMC); | |
67 | AliRsnEvent* FindEventByEventCut(AliRsnEventBuffer *buf,Int_t & num); | |
68 | void LoopPair(AliRsnEvent *ev1,TArrayI *a1,AliRsnEvent *ev2,TArrayI *a2); | |
69 | ||
aec0ec32 | 70 | Bool_t CutPass(AliRsnDaughter *d); |
71 | Bool_t CutPass(AliRsnPairParticle *p); | |
72 | Bool_t CutPass(AliRsnEvent *e); | |
73 | ||
74 | // flags & integer data | |
75 | Bool_t fIsMixed; // doing event-mixing ? | |
76 | Bool_t fUseMC; // using MC inv. mass ? | |
77 | Bool_t fIsLikeSign; // is a like-sign pair ? | |
78 | Int_t fMixNum; // number of mixed events | |
e0baff8c | 79 | AliRsnCutSet *fMixingCut; // cut for event mixing |
aec0ec32 | 80 | |
81 | // work management | |
82 | AliRsnPairDef *fPairDef; // pair definition (particles, charges) | |
83 | EPairType fPairType; // pair type (PID + mixing or not) | |
84 | AliRsnDaughter::EPIDMethod fTypePID; // pid type variable for single track | |
85 | AliRsnCutMgr *fCutMgr; // cut manager | |
86 | TClonesArray fFunctions; // functions | |
87 | ||
88 | ClassDef (AliRsnPair, 1) | |
89 | }; | |
90 | ||
91 | #endif |