ROOT logo
#ifndef AliAnalysisTaskCountLcEta_H
#define AliAnalysisTaskCountLcEta_H
//#####################################################
//#                                                   # 
//#          Analysis Task for Lc analysis on ESD     #
//#Authors: C. Bianchin (Utrecht University)	      #
//#         and R. Romita (Univ of Liverpool,         # 
//#         Daresbury Lab),                           #
//#         based on a class                          #
//#         by MinJung Kweon, Universitaet Heidelberg #
//#                                                   #
//#####################################################

class TString;
class TLoretzVector;
class AliESDEvent;
class AliAODEvent;
class AliStack;

#include "AliAnalysisTaskSE.h"

class AliAnalysisTaskCountLcEta : public AliAnalysisTaskSE {
   
public:
   AliAnalysisTaskCountLcEta(const char *name, Int_t ncuts,Double_t* cuts);
   AliAnalysisTaskCountLcEta();
   virtual ~AliAnalysisTaskCountLcEta(){};
   
   virtual void UserCreateOutputObjects();
   
   virtual void   UserExec(Option_t *option);
   virtual void   Terminate(Option_t *);
   void SetFillBkgHistos(Bool_t fill=kTRUE) {fFillBkg=fill;}
   Bool_t GetFillBkgHistos() const {return fFillBkg;}
   void SetDataType(TString type){fAnalysisType=type;}
   TString GetDataType() const {return fAnalysisType;}
   void SetEtaAbs(Float_t eta){fEtaAbs=eta;}
   Float_t GetEtaAbs() const {return fEtaAbs;}
   void SetEtaAbsMax(Float_t eta){fEtaAbsMax=eta;}
   Float_t GetEtaAbsMax() const {return fEtaAbsMax;}
   void SetCuts(Int_t ncuts, Double_t* cuts){fNcuts=ncuts; fCuts=cuts;}
   Double_t* GetCuts() const {return fCuts;}
   void SetCutNames(Int_t ncuts, TString* cutnames){if (ncuts!=fNcuts) {Printf("ERROR! %d names, expected %d",ncuts,fNcuts); return;} else fCutNames=cutnames;}
   TString* GetCutNames() const {return fCutNames;}
   
   void SetInvMassCut(Double_t mass){fInvMassCut=mass;}
   Double_t GetInvMassCut()const {return fInvMassCut;}
   
private:
   AliAnalysisTaskCountLcEta(const AliAnalysisTaskCountLcEta &source);
   AliAnalysisTaskCountLcEta& operator=(const AliAnalysisTaskCountLcEta& source); 
   
   
   void FillHistosL(TParticle *part, AliStack *stack);
   Bool_t SelectTrack(TParticle *p,Bool_t fillh=kFALSE);
   Bool_t SelectTracksForCandidate(TParticle* pion, TParticle* kaon, TParticle* proton);
   Double_t InvMass(TParticle *p1p,TParticle *pn,TParticle *p2p,TLorentzVector *&candp1ppnp2p);
   void FillHistogramsBackgroundCandidates(TParticle *p1,TParticle *p2,TParticle *p3, Double_t etamax);
   
   void DisableMCQA() { fEnableMCQA = kFALSE; }
   
   AliESDEvent 	*fESD;    	   // ESD object
   AliAODEvent 	*fAOD;    	   // AOD object
   TString 	fAnalysisType;	   // "ESD" or "AOD"	
   
   Long64_t fEvt;			   // event number
   TList* fOutList;             // two outputs, one for mcqa and the other for global 
   
   
   Bool_t fEnableMCQA;	
   
   TH1F* fhNevt;
   Float_t fEtaAbs;   // eta limit considered
   Float_t fEtaAbsMax;   // max eta limit considered for PID and background
   Bool_t fFillBkg;   // fill the histograms concerning background
   Int_t fNcuts; // number of selection cuts for MC candidates
   Double_t* fCuts;    //[fNcuts] cut values
   TString* fCutNames; //[fNcuts] names of the cuts variables
   Double_t fLooserPtTrack;
   Double_t fInvMassCut;
   Double_t *fThreesigmas; //[2] number of sigmas
   
   ClassDef(AliAnalysisTaskCountLcEta, 2);	// adding the class to ROOT
};

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