ROOT logo
#ifndef ALISELECTNONHFE_H
#define ALISELECTNONHFE_H

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

////////////////////////////////////////////////////////////////////////
//                                                                    //
//  	Class for the Selection of Non-Heavy-Flavour-Electrons 	      //
//                                                                    //
//  		Author: Elienos Pereira de Oliveira Filho 				  //
//					(epereira@cern.ch)								  //
//					University of São Paulo							  //	
//                                                                    //
////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TNamed
#include <TNamed.h>
#endif

class TH1F;
class TH2F;
class AliVEvent;
class AliVParticle;
class AliESDtrackCuts;
class AliPIDResponse;

class AliSelectNonHFE : public TNamed {
 public:
  AliSelectNonHFE();
  AliSelectNonHFE(const char *name, const Char_t *title);
  virtual ~AliSelectNonHFE();
  Int_t GetNLS() const {return fNLS;};
  Int_t GetNULS() const {return fNULS;};
  Int_t* GetPartnersLS() const {return fLSPartner;};
  Int_t* GetPartnersULS() const {return fULSPartner;};
  Bool_t IsLS() const {return fIsLS;};
  Bool_t IsULS() const {return fIsULS;};
  void FindNonHFE(Int_t iTrack1, AliVParticle *Vtrack1, AliVEvent *fVevent);
  void SetAlgorithm(TString Algorithm) {fAlgorithm = Algorithm;};
  void SetAdditionalCuts(Double_t PtMin, Int_t TpcNcls) {fPtMin = PtMin; fTpcNcls = TpcNcls; fHasPtCut=kTRUE; };
  void SetAODanalysis(Bool_t IsAOD) {fIsAOD = IsAOD;};
  void SetChi2OverNDFCut(Double_t Chi2OverNDFCut) {fChi2OverNDFCut = Chi2OverNDFCut;};
  void SetDCACut(Double_t dcaCut) {fdcaCut = dcaCut;};
  void SetHistAngleBack(TH1F *HistAngleBack) {fHistAngleBack = HistAngleBack;};
  void SetHistAngle(TH1F *HistAngle) {fHistAngle = HistAngle;};
  void SetHistDCABack(TH1F *HistDCABack) {fHistDCABack = HistDCABack;};
  void SetHistDCA(TH1F *HistDCA) {fHistDCA = HistDCA;};
  void SetHistMassBack(TH1F *HistMassBack) {fHistMassBack = HistMassBack;};
  void SetHistMass(TH1F *HistMass) {fHistMass = HistMass;};
  void SetInvariantMassCut(Double_t MassCut) {fMassCut = MassCut;};
  void SetOpeningAngleCut(Double_t AngleCut) {fAngleCut = AngleCut;};
  void SetPIDresponse(AliPIDResponse* PIDResponse) {fPIDResponse = PIDResponse;};
	
	void SetTrackCuts(Double_t TPCnSigmaMin, Double_t TPCnSigmaMax) 
	{
		fTPCnSigmaMin = TPCnSigmaMin; 
		fTPCnSigmaMax = TPCnSigmaMax; 
	};
	
	void SetTrackCuts(Double_t TPCnSigmaMin, Double_t TPCnSigmaMax, AliESDtrackCuts* TrackCuts) 
	{
		fTPCnSigmaMin = TPCnSigmaMin; 
		fTPCnSigmaMax = TPCnSigmaMax; 
		fTrackCuts = TrackCuts;
	};
  
 private:
  AliESDtrackCuts	*fTrackCuts;		//! Track quality
  TString		fAlgorithm;       		//Algorithm choice: "MA" (Manual Algorithm) or "KF" (Kalman Filter Algorithm)
  Double_t 		fAngleCut; 				//Maximum opening angle between the tracks
  Double_t 		fdcaCut;   				//Maximum dca between the tracks
  Double_t 		fTPCnSigmaMin; 			//Minimum partner TPCnSigma value
  Double_t 		fTPCnSigmaMax;  		//Maximum partner TPCnSigma value
  Double_t 		fMassCut;				//Maximum Invariant Mass Value for Non-HF-Electrons
  Double_t		fChi2OverNDFCut;        //Maximum value of Chi2 over NDF in the case of KF Algorithm
  Double_t		fPtMin;					//Minimum pT value for the associated electrons
  Bool_t		fIsLS;					//Unlike signal pairs Flag
  Bool_t		fIsULS;					//like signal pairs Flag
  Bool_t		fIsAOD;					//Flag for AOD analysis
  Bool_t		fHasPtCut;				//Flag for additional pT cut
  Int_t			fNLS;					//Number of Unlike signal pairs
  Int_t			fNULS;					//Number of like signal pairs
  Int_t			fTpcNcls;				//Minimum Number of clusters in the TPC
  Int_t			*fLSPartner;	        //! Pointer for the LS partners index
  Int_t			*fULSPartner;	        //! Pointer for the ULS partners index
  TH1F			*fHistMass;				//! Invariant mass histogram for Unlike sign pairs
  TH1F			*fHistMassBack;         //! Invariant mass histogram for like sign pairs
  TH1F			*fHistDCA;				//! DCA histogram for Unlike sign pairs
  TH1F			*fHistDCABack;	        //! DCA histogram for like sign pairs
  TH1F			*fHistAngle;	        //! Opening Angle histogram for Unlike sign pairs
  TH1F			*fHistAngleBack;        //! Opening Angle histogram for like sign pairs
  AliPIDResponse *fPIDResponse;     	//! PID response object
  
  AliSelectNonHFE(const AliSelectNonHFE&); // not implemented
  AliSelectNonHFE& operator=(const AliSelectNonHFE&); // not implemented
  
  ClassDef(AliSelectNonHFE, 1); //!example of analysis
};

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