1 #ifndef ALIHBTPAIRCUT_H
2 #define ALIHBTPAIRCUT_H
6 //Piotr Skowronski@cern.ch
7 //Class implements cut on the pair of particles
9 //more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html
11 #include "AliHBTPair.h"
13 class AliHBTParticleCut;
14 class AliHbtBasePairCut;
16 enum AliHBTPairCutProperty
18 kHbtPairCutPropQInv, //Q invariant
21 kHbtPairCutPropQSideLCMS,
22 kHbtPairCutPropQOutLCMS,
23 kHbtPairCutPropQLongLCMS,
24 kHbtPairCutPropDeltaPhi,
25 kHbtPairCutPropDeltaTheta,
26 kHbtPairCutPropDeltaP,
27 kHbtPairCutPropDeltaPt,
28 kHbtPairCutPropAvSepar,
30 kHbtPairCutPropClOverlap,
31 kHbtPairCutPropPixelSepar,
34 /******************************************************************/
36 class AliHBTPairCut: public TNamed
40 AliHBTPairCut(const AliHBTPairCut& in);
41 AliHBTPairCut& operator = (const AliHBTPairCut& in);
43 virtual ~AliHBTPairCut();
44 virtual Bool_t Pass(AliHBTPair* pair) const;
45 virtual Bool_t PassPairProp(AliHBTPair* pair) const;
47 virtual Bool_t IsEmpty() const {return kFALSE;}
48 void SetFirstPartCut(AliHBTParticleCut* cut); //sets the cut on the first particle
49 void SetSecondPartCut(AliHBTParticleCut* cut); //sets the cut on the second particle
51 void SetPartCut(AliHBTParticleCut* cut);//sets the the same cut on both particles
53 virtual void AddBasePairCut(AliHbtBasePairCut* cut);
57 void SetQInvRange(Double_t min, Double_t max);
58 void SetKtRange(Double_t min, Double_t max);
59 void SetKStarRange(Double_t min, Double_t max);
60 void SetQOutCMSLRange(Double_t min, Double_t max);
61 void SetQSideCMSLRange(Double_t min, Double_t max);
62 void SetQLongCMSLRange(Double_t min, Double_t max);
63 void SetAvSeparationRange(Double_t min,Double_t max = 10e5);//Anti-Merging Cut
64 void SetITSSeparation(Int_t layer, Double_t drphi=0.01,Double_t dz = 0.08);//Anti-Merging Cut for first pixel layer
65 void SetClusterOverlapRange(Double_t min,Double_t max);//Anti-Splitting Max range -0.5 1.0
67 AliHBTParticleCut* GetFirstPartCut() const {return fFirstPartCut;}
68 AliHBTParticleCut* GetSecondPartCut() const {return fSecondPartCut;}
71 AliHBTParticleCut* fFirstPartCut;//cut on first particle in pair
72 AliHBTParticleCut* fSecondPartCut;//cut on second particle in pair
74 AliHbtBasePairCut** fCuts; //! array of poiters to base cuts
75 Int_t fNCuts;//Number of cuts in fCuts array
78 AliHbtBasePairCut* FindCut(AliHBTPairCutProperty cut);
80 static const Int_t fgkMaxCuts; // Max number of cuts
81 ClassDef(AliHBTPairCut,3)
83 /******************************************************************/
84 /******************************************************************/
85 /******************************************************************/