2 // *** Class AliRsnPair ***
6 // authors: A. Pulvirenti (email: alberto.pulvirenti@ct.infn.it)
7 // M. Vala (email: martin.vala@cern.ch)
17 #include "TClonesArray.h"
19 #include "AliRsnDaughter.h"
20 #include "AliRsnPairDef.h"
21 #include "AliRsnPairParticle.h"
22 #include "AliRsnEvent.h"
23 #include "AliRsnCutMgr.h"
24 #include "AliRsnHistoDef.h"
25 #include "AliRsnPIDIndex.h"
29 class AliRsnPair : public TObject
35 kNoPID = 0, kNoPIDMix,
36 kRealisticPID, kRealisticPIDMix,
37 kPerfectPID, kPerfectPIDMix,
41 AliRsnPair(EPairType type = kRealisticPID, AliRsnPairDef *def = 0);
44 void Print(Option_t *option = "") const;
45 void LoopPair(AliRsnPIDIndex *pidIndex1, AliRsnEvent *ev1, AliRsnPIDIndex *pidIndex2 = 0, AliRsnEvent *ev2 = 0);
46 void LoopPair(TArrayI *a1, TArrayI *a2, AliRsnEvent *ev1, AliRsnEvent *ev2 = 0);
47 void SetCutMgr(AliRsnCutMgr* theValue) { fCutMgr = theValue; }
48 void AddFunction(AliRsnFunction *fcn);
49 //void AddFunction(AliRsnFunctionDef *fcn);
50 TList* GenerateHistograms(TString prefix = "");
51 void GenerateHistograms(TString prefix, TList *tgt);
53 Bool_t IsMixed() {return fIsMixed;}
54 Bool_t IsPairEqual() {if (fPIDMethod == AliRsnDaughter::kNoPID) return (fPairDef->IsLikeSign());
55 else return (fPairDef->IsLikeSign() && fPairDef->HasEqualTypes());}
57 TString GetPairTypeName(EPairType type) const;
58 TString GetPairName() const;
59 TString GetPairHistName(AliRsnFunction *fcn, TString text = "") const;
60 TString GetPairHistTitle(AliRsnFunction *fcn, TString text = "") const;
61 //TString GetPairHistName(AliRsnFunctionNew *fcn, TString text = "") const;
62 //TString GetPairHistTitle(AliRsnFunctionNew *fcn, TString text = "") const;
66 AliRsnPair (const AliRsnPair ©) : TObject(copy),
67 fIsMixed(kFALSE),fPairType(kPairTypes),fPIDMethod(AliRsnDaughter::kRealistic),
68 fPairDef(0x0),fCutMgr(0x0),fFunctions("AliRsnFunction",0),fTrack1(),fTrack2(),fPairParticle() {}
69 AliRsnPair& operator=(const AliRsnPair&) {return *this;}
71 void SetUp(EPairType type);
72 void SetAllFlags(AliRsnDaughter::EPIDMethod pid, Bool_t mix) {fPIDMethod = pid; fIsMixed = mix;}
74 Bool_t CutPass(AliRsnDaughter *d);
75 Bool_t CutPass(AliRsnPairParticle *p);
76 Bool_t CutPass(AliRsnEvent *e);
78 Bool_t fIsMixed; // doing event-mixing ?
79 EPairType fPairType; // pair type (PID + mixing or not)
80 AliRsnDaughter::EPIDMethod fPIDMethod; // pid type variable for single track
82 AliRsnPairDef *fPairDef; // pair definition (particles, charges)
83 AliRsnCutMgr *fCutMgr; // cut manager
84 TClonesArray fFunctions; // functions
85 AliRsnDaughter fTrack1; // track #1 (external loop)
86 AliRsnDaughter fTrack2; // track #2 (internal loop)
87 AliRsnPairParticle fPairParticle; // track pair
89 ClassDef (AliRsnPair, 2)