ROOT logo
/////////////////////////////////////////////////////////////////////////////
//                                                                         //
// AliFemtoShareQualityPairCut - a pair cut which checks for some pair     //
// qualities that attempt to identify slit/doubly reconstructed tracks     //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////
/***************************************************************************
 *
 * $Id: AliFemtoShareQualityPairCut.h 24360 2008-03-10 09:48:27Z akisiel $
 *
 * Author: Adam Kisiel, Ohio State University, kisiel@mps.ohio-state.edu
 ***************************************************************************
 *
 * Description: part of STAR HBT Framework: AliFemtoMaker package
 *   a cut to remove "shared" and "split" pairs
 *
 ***************************************************************************
 *
 *
 **************************************************************************/


#ifndef ALIFEMTOV0TRACKPAIRCUT_H
#define ALIFEMTOV0TRACKPAIRCUT_H

// do I need these lines ?
//#ifndef StMaker_H
//#include "StMaker.h"
//#endif

#include "AliFemtoPairCut.h"

class AliFemtoV0TrackPairCut : public AliFemtoPairCut{
public:
  enum ParticleType {kLambda=0, kAntiLambda=1, kProton=2, kAntiProton=3};
  typedef enum ParticleType AliFemtoParticleType;
  AliFemtoV0TrackPairCut();
  AliFemtoV0TrackPairCut(const AliFemtoV0TrackPairCut& cut);
  virtual ~AliFemtoV0TrackPairCut();
  AliFemtoV0TrackPairCut& operator=(const AliFemtoV0TrackPairCut& cut);
  
  virtual bool Pass(const AliFemtoPair* pair);
  virtual AliFemtoString Report();
  virtual TList *ListSettings();
  virtual AliFemtoPairCut* Clone();
  void SetV0Max(Double_t aAliFemtoV0Max);
  Double_t GetAliFemtoV0Max() const;
  void     SetRemoveSameLabel(Bool_t aRemove);
  void SetTPCOnly(Bool_t tpconly);
  void SetShareQualityMax(Double_t aShareQualityMax);
  void SetShareFractionMax(Double_t aShareFractionMax);
  void SetTPCEntranceSepMinimum(double dtpc);
  void SetTPCExitSepMinimum(double dtpc);
  void SetDataType(AliFemtoDataType type);
  void SetKstarCut(double kstar, AliFemtoParticleType firstParticle, AliFemtoParticleType secondParticle);
  void SetMinAvgSeparation(int type, double minSep);

 protected:
  long fNPairsPassed;          // Number of pairs consideered that passed the cut 
  long fNPairsFailed;          // Number of pairs consideered that failed the cut

 private:
  Double_t fV0Max;   // Maximum allowed pair quality
  Double_t fShareQualityMax;
  Double_t fShareFractionMax;  // Maximum allowed share fraction
  Bool_t   fRemoveSameLabel;   // If 1 pairs with two tracks with the same label will be removed
  Bool_t fTrackTPCOnly;

  AliFemtoDataType fDataType; //Use ESD / AOD / Kinematics.
  Double_t fDTPCMin;          // Minimum allowed pair nominal separation at the entrance to the TPC
  Double_t fDTPCExitMin;          // Minimum allowed pair nominal separation at the exit of the TPC
 
  double fKstarCut; //do we want the K star cut, if yes (>0) then it is the minimum value of k*
  AliFemtoParticleType fFirstParticleType;  //for kstar - first particle type (V0 type) 
  AliFemtoParticleType fSecondParticleType; //for kstar - second particle type (primary track)
  double   fMinAvgSepTrackPos;
  double   fMinAvgSepTrackNeg;

#ifdef __ROOT__
  ClassDef(AliFemtoV0TrackPairCut, 0)
#endif
};

inline AliFemtoV0TrackPairCut::AliFemtoV0TrackPairCut(const AliFemtoV0TrackPairCut& c) : 
  AliFemtoPairCut(c),
  fNPairsPassed(0),
  fNPairsFailed(0),
  fV0Max(1.0),
  fShareQualityMax(1.0),
  fShareFractionMax(1.0),
  fRemoveSameLabel(0),
  fTrackTPCOnly(0),
  fDataType(kAOD),
  fDTPCMin(0),
  fDTPCExitMin(0),
  fKstarCut(0),
  fFirstParticleType(kLambda), 
  fSecondParticleType(kProton),
  fMinAvgSepTrackPos(0),
  fMinAvgSepTrackNeg(0)

{ /* no-op */ }

inline AliFemtoPairCut* AliFemtoV0TrackPairCut::Clone() { AliFemtoV0TrackPairCut* c = new AliFemtoV0TrackPairCut(*this); return c;}

#endif
 AliFemtoV0TrackPairCut.h:1
 AliFemtoV0TrackPairCut.h:2
 AliFemtoV0TrackPairCut.h:3
 AliFemtoV0TrackPairCut.h:4
 AliFemtoV0TrackPairCut.h:5
 AliFemtoV0TrackPairCut.h:6
 AliFemtoV0TrackPairCut.h:7
 AliFemtoV0TrackPairCut.h:8
 AliFemtoV0TrackPairCut.h:9
 AliFemtoV0TrackPairCut.h:10
 AliFemtoV0TrackPairCut.h:11
 AliFemtoV0TrackPairCut.h:12
 AliFemtoV0TrackPairCut.h:13
 AliFemtoV0TrackPairCut.h:14
 AliFemtoV0TrackPairCut.h:15
 AliFemtoV0TrackPairCut.h:16
 AliFemtoV0TrackPairCut.h:17
 AliFemtoV0TrackPairCut.h:18
 AliFemtoV0TrackPairCut.h:19
 AliFemtoV0TrackPairCut.h:20
 AliFemtoV0TrackPairCut.h:21
 AliFemtoV0TrackPairCut.h:22
 AliFemtoV0TrackPairCut.h:23
 AliFemtoV0TrackPairCut.h:24
 AliFemtoV0TrackPairCut.h:25
 AliFemtoV0TrackPairCut.h:26
 AliFemtoV0TrackPairCut.h:27
 AliFemtoV0TrackPairCut.h:28
 AliFemtoV0TrackPairCut.h:29
 AliFemtoV0TrackPairCut.h:30
 AliFemtoV0TrackPairCut.h:31
 AliFemtoV0TrackPairCut.h:32
 AliFemtoV0TrackPairCut.h:33
 AliFemtoV0TrackPairCut.h:34
 AliFemtoV0TrackPairCut.h:35
 AliFemtoV0TrackPairCut.h:36
 AliFemtoV0TrackPairCut.h:37
 AliFemtoV0TrackPairCut.h:38
 AliFemtoV0TrackPairCut.h:39
 AliFemtoV0TrackPairCut.h:40
 AliFemtoV0TrackPairCut.h:41
 AliFemtoV0TrackPairCut.h:42
 AliFemtoV0TrackPairCut.h:43
 AliFemtoV0TrackPairCut.h:44
 AliFemtoV0TrackPairCut.h:45
 AliFemtoV0TrackPairCut.h:46
 AliFemtoV0TrackPairCut.h:47
 AliFemtoV0TrackPairCut.h:48
 AliFemtoV0TrackPairCut.h:49
 AliFemtoV0TrackPairCut.h:50
 AliFemtoV0TrackPairCut.h:51
 AliFemtoV0TrackPairCut.h:52
 AliFemtoV0TrackPairCut.h:53
 AliFemtoV0TrackPairCut.h:54
 AliFemtoV0TrackPairCut.h:55
 AliFemtoV0TrackPairCut.h:56
 AliFemtoV0TrackPairCut.h:57
 AliFemtoV0TrackPairCut.h:58
 AliFemtoV0TrackPairCut.h:59
 AliFemtoV0TrackPairCut.h:60
 AliFemtoV0TrackPairCut.h:61
 AliFemtoV0TrackPairCut.h:62
 AliFemtoV0TrackPairCut.h:63
 AliFemtoV0TrackPairCut.h:64
 AliFemtoV0TrackPairCut.h:65
 AliFemtoV0TrackPairCut.h:66
 AliFemtoV0TrackPairCut.h:67
 AliFemtoV0TrackPairCut.h:68
 AliFemtoV0TrackPairCut.h:69
 AliFemtoV0TrackPairCut.h:70
 AliFemtoV0TrackPairCut.h:71
 AliFemtoV0TrackPairCut.h:72
 AliFemtoV0TrackPairCut.h:73
 AliFemtoV0TrackPairCut.h:74
 AliFemtoV0TrackPairCut.h:75
 AliFemtoV0TrackPairCut.h:76
 AliFemtoV0TrackPairCut.h:77
 AliFemtoV0TrackPairCut.h:78
 AliFemtoV0TrackPairCut.h:79
 AliFemtoV0TrackPairCut.h:80
 AliFemtoV0TrackPairCut.h:81
 AliFemtoV0TrackPairCut.h:82
 AliFemtoV0TrackPairCut.h:83
 AliFemtoV0TrackPairCut.h:84
 AliFemtoV0TrackPairCut.h:85
 AliFemtoV0TrackPairCut.h:86
 AliFemtoV0TrackPairCut.h:87
 AliFemtoV0TrackPairCut.h:88
 AliFemtoV0TrackPairCut.h:89
 AliFemtoV0TrackPairCut.h:90
 AliFemtoV0TrackPairCut.h:91
 AliFemtoV0TrackPairCut.h:92
 AliFemtoV0TrackPairCut.h:93
 AliFemtoV0TrackPairCut.h:94
 AliFemtoV0TrackPairCut.h:95
 AliFemtoV0TrackPairCut.h:96
 AliFemtoV0TrackPairCut.h:97
 AliFemtoV0TrackPairCut.h:98
 AliFemtoV0TrackPairCut.h:99
 AliFemtoV0TrackPairCut.h:100
 AliFemtoV0TrackPairCut.h:101
 AliFemtoV0TrackPairCut.h:102
 AliFemtoV0TrackPairCut.h:103
 AliFemtoV0TrackPairCut.h:104
 AliFemtoV0TrackPairCut.h:105
 AliFemtoV0TrackPairCut.h:106