]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/FEMTOSCOPY/AliFemto/AliFemtoV0TrackPairCut.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemto / AliFemtoV0TrackPairCut.h
1 /////////////////////////////////////////////////////////////////////////////
2 //                                                                         //
3 // AliFemtoShareQualityPairCut - a pair cut which checks for some pair     //
4 // qualities that attempt to identify slit/doubly reconstructed tracks     //
5 //                                                                         //
6 /////////////////////////////////////////////////////////////////////////////
7 /***************************************************************************
8  *
9  * $Id: AliFemtoShareQualityPairCut.h 24360 2008-03-10 09:48:27Z akisiel $
10  *
11  * Author: Adam Kisiel, Ohio State University, kisiel@mps.ohio-state.edu
12  ***************************************************************************
13  *
14  * Description: part of STAR HBT Framework: AliFemtoMaker package
15  *   a cut to remove "shared" and "split" pairs
16  *
17  ***************************************************************************
18  *
19  *
20  **************************************************************************/
21
22
23 #ifndef ALIFEMTOV0TRACKPAIRCUT_H
24 #define ALIFEMTOV0TRACKPAIRCUT_H
25
26 // do I need these lines ?
27 //#ifndef StMaker_H
28 //#include "StMaker.h"
29 //#endif
30
31 #include "AliFemtoPairCut.h"
32
33 class AliFemtoV0TrackPairCut : public AliFemtoPairCut{
34 public:
35   enum ParticleType {kLambda=0, kAntiLambda=1, kProton=2, kAntiProton=3};
36   typedef enum ParticleType AliFemtoParticleType;
37   AliFemtoV0TrackPairCut();
38   AliFemtoV0TrackPairCut(const AliFemtoV0TrackPairCut& cut);
39   virtual ~AliFemtoV0TrackPairCut();
40   AliFemtoV0TrackPairCut& operator=(const AliFemtoV0TrackPairCut& cut);
41   
42   virtual bool Pass(const AliFemtoPair* pair);
43   virtual AliFemtoString Report();
44   virtual TList *ListSettings();
45   virtual AliFemtoPairCut* Clone();
46   void SetV0Max(Double_t aAliFemtoV0Max);
47   Double_t GetAliFemtoV0Max() const;
48   void     SetRemoveSameLabel(Bool_t aRemove);
49   void SetTPCOnly(Bool_t tpconly);
50   void SetShareQualityMax(Double_t aShareQualityMax);
51   void SetShareFractionMax(Double_t aShareFractionMax);
52   void SetTPCEntranceSepMinimum(double dtpc);
53   void SetTPCExitSepMinimum(double dtpc);
54   void SetDataType(AliFemtoDataType type);
55   void SetKstarCut(double kstar, AliFemtoParticleType firstParticle, AliFemtoParticleType secondParticle);
56   void SetMinAvgSeparation(int type, double minSep);
57
58  protected:
59   long fNPairsPassed;          // Number of pairs consideered that passed the cut 
60   long fNPairsFailed;          // Number of pairs consideered that failed the cut
61
62  private:
63   Double_t fV0Max;   // Maximum allowed pair quality
64   Double_t fShareQualityMax;
65   Double_t fShareFractionMax;  // Maximum allowed share fraction
66   Bool_t   fRemoveSameLabel;   // If 1 pairs with two tracks with the same label will be removed
67   Bool_t fTrackTPCOnly;
68
69   AliFemtoDataType fDataType; //Use ESD / AOD / Kinematics.
70   Double_t fDTPCMin;          // Minimum allowed pair nominal separation at the entrance to the TPC
71   Double_t fDTPCExitMin;          // Minimum allowed pair nominal separation at the exit of the TPC
72  
73   double fKstarCut; //do we want the K star cut, if yes (>0) then it is the minimum value of k*
74   AliFemtoParticleType fFirstParticleType;  //for kstar - first particle type (V0 type) 
75   AliFemtoParticleType fSecondParticleType; //for kstar - second particle type (primary track)
76   double   fMinAvgSepTrackPos;
77   double   fMinAvgSepTrackNeg;
78
79 #ifdef __ROOT__
80   ClassDef(AliFemtoV0TrackPairCut, 0)
81 #endif
82 };
83
84 inline AliFemtoV0TrackPairCut::AliFemtoV0TrackPairCut(const AliFemtoV0TrackPairCut& c) : 
85   AliFemtoPairCut(c),
86   fNPairsPassed(0),
87   fNPairsFailed(0),
88   fV0Max(1.0),
89   fShareQualityMax(1.0),
90   fShareFractionMax(1.0),
91   fRemoveSameLabel(0),
92   fTrackTPCOnly(0),
93   fDataType(kAOD),
94   fDTPCMin(0),
95   fDTPCExitMin(0),
96   fKstarCut(0),
97   fFirstParticleType(kLambda), 
98   fSecondParticleType(kProton),
99   fMinAvgSepTrackPos(0),
100   fMinAvgSepTrackNeg(0)
101
102 { /* no-op */ }
103
104 inline AliFemtoPairCut* AliFemtoV0TrackPairCut::Clone() { AliFemtoV0TrackPairCut* c = new AliFemtoV0TrackPairCut(*this); return c;}
105
106 #endif