#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);
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:
double fInvMassLambdaMin;
double fInvMassLambdaMax;
double fMinDcaDaughterPosToVert;
double fMinDcaDaughterNegToVert;
double fMaxDcaV0Daughters;
double fMaxDcaV0;
double fMaxDecayLength;
double fMaxCosPointingAngle;
short fParticleType;
double fEta;
double fPtMin;
double fPtMax;
bool fOnFlyStatus;
float fMaxEtaDaughters;
int fTPCNclsDaughters;
int fNdofDaughters;
unsigned long fStatusDaughters;
float fPtMinPosDaughter;
float fPtMaxPosDaughter;
float fPtMinNegDaughter;
float fPtMaxNegDaughter;
double fMinAvgSepDaughters;
#ifdef __ROOT__
ClassDef(AliFemtoV0TrackCut, 1)
#endif
};
#endif