ROOT logo
#ifndef ALILNAODTRACKCUTS_H
#define ALILNAODTRACKCUTS_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

// AOD track cuts for B2
// author: Eulogio Serradilla <eulogio.serradilla@cern.ch>

class AliAODEvent;
class AliAODMCParticle;
class AliAODTrack;
class TString;

class AliLnAODtrackCuts: public TObject
{
  public:
	
	AliLnAODtrackCuts();
	virtual ~AliLnAODtrackCuts();
	
	Bool_t IsWithinGeoAcceptance(const AliAODMCParticle* prt) const;
	Bool_t IsWithinGeoAcceptance(const AliAODTrack* trk) const;
	Bool_t IsWithinGeoAcceptance(Double_t p[3]) const;
	
	Bool_t IsKinkDaughter(const AliAODTrack* trk) const;
	
	Bool_t AcceptItsTpcNSigma(const AliAODTrack* trk, Double_t b[2], Double_t bCov[3]) const;
	Bool_t AcceptItsTpcDCA(const AliAODTrack* trk, Double_t b[2]) const;
	Bool_t AcceptItsTpcStdCut(const AliAODTrack* trk, Double_t b[2]) const;
	
	Bool_t AcceptTOF(const AliAODTrack* trk) const;
	
	Bool_t AcceptTrack(const AliAODTrack* trk, Double_t b[2], Double_t bCov[3]) const;
	
	Bool_t TOFmatch() const { return fTOFmatch; }
	
	Double_t GetIntegratedLength(const AliAODTrack* trk, Int_t pid=0) const;
	Double_t GetNSigmaToVertex(Double_t b[2], Double_t bCov[3]) const;
	
	Double_t GetNTPCXRowsOverFindable(const AliAODTrack* trk) const;
	
	void SetSelectionCriteria(const TString& trksel);
	
	void SetMaxDCAxy(Double_t max) { fMaxDCAxy=max; }
	void SetMaxDCAz(Double_t max) { fMaxDCAz=max; }
	void SetMaxNSigmaToVtx(Double_t max) { fMaxNSigma=max; }
	void SetMaxEta(Double_t max) { fMaxEta=max; }
	void SetTPCXRowsCut(Bool_t xrows=1) { fTPCXRows=xrows; }
	void SetMinTPCnClsOrXRows(Int_t min) { fMinTPCnClsOrXRows=min; }
	
  private:
	
	TString fTrackSel; // selection criteria
	Double_t fMaxDCAxy; // maximum dcaxy value
	Double_t fMaxDCAz; // maximum dcaz value
	Double_t fMaxNSigma; // maximum number of sigmas to primary vertex
	Double_t fMaxEta; // maximum pseudorapidity value
	Bool_t fTPCXRows; // enable cut on the number of crossed rows
	Int_t fMinTPCnClsOrXRows; // minimum number of TPC clusters or crossed rows
	Bool_t fTOFmatch; // if a TOF match signal is required
	
	ClassDef(AliLnAODtrackCuts,1)
};

#endif // ALILNAODTRACKCUTS_H
 AliLnAODtrackCuts.h:1
 AliLnAODtrackCuts.h:2
 AliLnAODtrackCuts.h:3
 AliLnAODtrackCuts.h:4
 AliLnAODtrackCuts.h:5
 AliLnAODtrackCuts.h:6
 AliLnAODtrackCuts.h:7
 AliLnAODtrackCuts.h:8
 AliLnAODtrackCuts.h:9
 AliLnAODtrackCuts.h:10
 AliLnAODtrackCuts.h:11
 AliLnAODtrackCuts.h:12
 AliLnAODtrackCuts.h:13
 AliLnAODtrackCuts.h:14
 AliLnAODtrackCuts.h:15
 AliLnAODtrackCuts.h:16
 AliLnAODtrackCuts.h:17
 AliLnAODtrackCuts.h:18
 AliLnAODtrackCuts.h:19
 AliLnAODtrackCuts.h:20
 AliLnAODtrackCuts.h:21
 AliLnAODtrackCuts.h:22
 AliLnAODtrackCuts.h:23
 AliLnAODtrackCuts.h:24
 AliLnAODtrackCuts.h:25
 AliLnAODtrackCuts.h:26
 AliLnAODtrackCuts.h:27
 AliLnAODtrackCuts.h:28
 AliLnAODtrackCuts.h:29
 AliLnAODtrackCuts.h:30
 AliLnAODtrackCuts.h:31
 AliLnAODtrackCuts.h:32
 AliLnAODtrackCuts.h:33
 AliLnAODtrackCuts.h:34
 AliLnAODtrackCuts.h:35
 AliLnAODtrackCuts.h:36
 AliLnAODtrackCuts.h:37
 AliLnAODtrackCuts.h:38
 AliLnAODtrackCuts.h:39
 AliLnAODtrackCuts.h:40
 AliLnAODtrackCuts.h:41
 AliLnAODtrackCuts.h:42
 AliLnAODtrackCuts.h:43
 AliLnAODtrackCuts.h:44
 AliLnAODtrackCuts.h:45
 AliLnAODtrackCuts.h:46
 AliLnAODtrackCuts.h:47
 AliLnAODtrackCuts.h:48
 AliLnAODtrackCuts.h:49
 AliLnAODtrackCuts.h:50
 AliLnAODtrackCuts.h:51
 AliLnAODtrackCuts.h:52
 AliLnAODtrackCuts.h:53
 AliLnAODtrackCuts.h:54
 AliLnAODtrackCuts.h:55
 AliLnAODtrackCuts.h:56
 AliLnAODtrackCuts.h:57
 AliLnAODtrackCuts.h:58
 AliLnAODtrackCuts.h:59
 AliLnAODtrackCuts.h:60
 AliLnAODtrackCuts.h:61
 AliLnAODtrackCuts.h:62
 AliLnAODtrackCuts.h:63
 AliLnAODtrackCuts.h:64
 AliLnAODtrackCuts.h:65
 AliLnAODtrackCuts.h:66