]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnPair.h
Fixing warnings
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnPair.h
CommitLineData
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
24class AliRsnFunction;
25
26class 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 &copy) : 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