#ifndef ALIHFEV0CUTS_H
#define ALIHFEV0CUTS_H
#include "AliHFEcollection.h"
class TList;
class AliMCParticle;
class AliVEvent;
class AliMCEvent;
class AliESDtrack;
class AliESDv0;
class AliKFVertex;
class AliKFParticle;
class AliVTrack;
class AliHFEV0cuts : public TObject {
public:
enum{
kBitQA = 1,
kBitQAmc = 2
};
enum{
kUndef = 0,
kRecoGamma = 1,
kRecoK0 = 2,
kRecoPhi = 3,
kRecoLambda = 4,
kRecoALambda = -4
};
enum{
kRecoElectron = 0,
kRecoPionK0 = 1,
kRecoPionL = 2,
kRecoKaon = 3,
kRecoProton = 4
};
AliHFEV0cuts();
~AliHFEV0cuts();
AliHFEV0cuts(const AliHFEV0cuts &ref);
AliHFEV0cuts &operator=(const AliHFEV0cuts &ref);
void Init(const char* name);
void SetMCEvent(AliMCEvent* const mce) { fMCEvent = mce; };
void SetInputEvent(AliVEvent* const e) { fInputEvent = e; };
void SetPrimaryVertex(AliKFVertex* const v) { fPrimaryVertex = v; };
TList* GetList() {
CLRBIT(fDestBits, kBitQA);
return fQA->GetList();
};
TList* GetListMC() {
CLRBIT(fDestBits, kBitQAmc);
return fQAmc->GetList();
};
Bool_t TrackCutsCommon(AliESDtrack* track);
Bool_t V0CutsCommon(AliESDv0 *v0);
Bool_t GammaCuts(AliESDv0 *v0);
Bool_t K0Cuts(AliESDv0 *v0);
Bool_t LambdaCuts(AliESDv0 *v0, Bool_t &isLambda);
void Armenteros(const AliESDv0 *v0, Float_t val[2]);
Double_t OpenAngle(AliESDv0 const *v0);
Double_t PsiPair(const AliESDv0 *v0);
Bool_t CheckSigns(AliESDv0 const *v0);
Bool_t GetConvPosXY(AliESDtrack * const ptrack, AliESDtrack * const ntrack, Double_t convpos[2]);
Bool_t GetHelixCenter(AliESDtrack * const track, Double_t b,Int_t charge, Double_t center[2]);
void SetCurrentV0id(Int_t id) { fCurrentV0id = id; };
void SetDaughtersID(Int_t d[2]) {fPdaughterPDG = d[0]; fNdaughterPDG = d[1]; };
AliKFParticle *CreateMotherParticle(AliVTrack const *pdaughter, AliVTrack const *ndaughter, Int_t pspec, Int_t nspec);
private:
void Copy(TObject &ref) const;
private:
AliHFEcollection *fQA;
AliHFEcollection *fQAmc;
AliMCEvent *fMCEvent;
AliVEvent *fInputEvent;
AliKFVertex *fPrimaryVertex;
Int_t fCurrentV0id;
Int_t fPdaughterPDG;
Int_t fNdaughterPDG;
UInt_t fDestBits;
ClassDef(AliHFEV0cuts, 1)
};
#endif