ROOT logo
///////////////////////////////////////////////////////////////////////////
//                                                                       //
// AliFemtoESDTrackCut: A basic track cut that used information from     //
// ALICE ESD to accept or reject the track.                              //  
// Enables the selection on charge, transverse momentum, rapidity,       //
// pid probabilities, number of ITS and TPC clusters                     //
// Author: Marek Chojnacki (WUT), mchojnacki@knf.pw.edu.pl               //
//                                                                       //
///////////////////////////////////////////////////////////////////////////

#ifndef ALIFEMTOV0TRACKCUT_H
#define ALIFEMTOV0TRACKCUT_H

#include "AliFemtoTrackCut.h"

class AliFemtoV0TrackCut : public AliFemtoParticleCut 
{
  public:
  enum V0Type {kLambda = 0, kAntiLambda=1, kAll=99, kLambdaMC=101, kAntiLambdaMC=102};
  typedef enum V0Type AliFemtoV0Type;


  AliFemtoV0TrackCut();
  virtual ~AliFemtoV0TrackCut();

  virtual bool Pass(const AliFemtoV0* aV0);

  virtual AliFemtoString Report();
  virtual TList *ListSettings();
  virtual AliFemtoParticleType Type(){return hbtV0;}
  
  void SetInvariantMassLambda(double,double);
  void SetMinDaughtersToPrimVertex(double,double);
  void SetMaxDcaV0Daughters(double);
  void SetMaxDcaV0(double);
  void SetMaxCosPointingAngle(double);
  void SetMaxV0DecayLength(double);
  void SetParticleType(short);
  void SetEta(double);
  void SetPt(double,double);
  void SetEtaDaughters(float);
  void SetTPCnclsDaughters(int);
  void SetNdofDaughters(int);
  void SetStatusDaughters(unsigned long);
  void SetPtPosDaughter(float,float);
  void SetPtNegDaughter(float,float);
  void SetOnFlyStatus(bool);
  void SetMinAvgSeparation(double);

  //----n sigma----
  bool IsKaonTPCdEdxNSigma(float mom, float nsigmaK);
  bool IsKaonTOFNSigma(float mom, float nsigmaK);
  bool IsKaonNSigma(float mom, float nsigmaTPCK, float nsigmaTOFK);
  bool IsPionNSigma(float mom, float nsigmaTPCPi, float nsigmaTOFPi);
  bool IsProtonNSigma(float mom, float nsigmaTPCP, float nsigmaTOFP);
  
 private:   // here are the quantities I want to cut on...

  double            fInvMassLambdaMin;   //invariant mass lambda min
  double            fInvMassLambdaMax;   //invariant mass lambda max
  double            fMinDcaDaughterPosToVert; //DCA of positive daughter to primary vertex
  double            fMinDcaDaughterNegToVert; //DCA of negative daughter to primary vertex
  double            fMaxDcaV0Daughters;     //Max DCA of v0 daughters at Decay vertex
  double            fMaxDcaV0;
  double            fMaxDecayLength;
  
  double            fMaxCosPointingAngle;
  short             fParticleType; //0-lambda
  double            fEta;
  double            fPtMin;
  double            fPtMax;
  bool              fOnFlyStatus;

  float fMaxEtaDaughters;			            // Eta of positive daughter
  int   fTPCNclsDaughters;			            // No. of cls of pos daughter
  int   fNdofDaughters;			                    // No. of degrees of freedom of the pos. daughter track
  unsigned long fStatusDaughters;			    // Status (tpc refit, its refit...)
  float fPtMinPosDaughter;
  float fPtMaxPosDaughter;
  float fPtMinNegDaughter;
  float fPtMaxNegDaughter;
  double fMinAvgSepDaughters;

#ifdef __ROOT__ 
  ClassDef(AliFemtoV0TrackCut, 1)
#endif

};


#endif

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