#ifndef ALIANALYSISTASKSELAMBDACUP_H
#define ALIANALYSISTASKSELAMBDACUP_H
#include <TROOT.h>
#include <TSystem.h>
#include <TNtuple.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TArrayD.h>
#include "AliAnalysisTaskSE.h"
#include "AliAnalysisVertexingHF.h"
#include "AliAODMCParticle.h"
#include "AliRDHFCutsLctopKpi.h"
#include "AliRDHFCuts.h"
#include "TClonesArray.h"
#include "AliPIDResponse.h"
#include "AliNormalizationCounter.h"
class AliAnalysisTaskSELambdacUp : public AliAnalysisTaskSE
{
public:
AliAnalysisTaskSELambdacUp();
AliAnalysisTaskSELambdacUp(const char *name, Bool_t fillNtuple,AliRDHFCutsLctopKpi *lccutsana, AliRDHFCutsLctopKpi *lccutsprod);
virtual ~AliAnalysisTaskSELambdacUp();
void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
void SetMCPid(){fMCPid=kTRUE;fReadMC=kTRUE;fRealPid=kFALSE;fResPid=kFALSE;return;}
void SetRealPid(){fRealPid=kTRUE;fMCPid=kFALSE;return;}
void SetResonantPid(){fResPid=kTRUE;fRealPid=kTRUE;fMCPid=kFALSE;return;}
void SetCutsKF(Float_t cutsKF[2]){for(Int_t i=0;i<2;i++){fCutsKF[i]=cutsKF[i];}return;}
void SetUseKF(Bool_t useKF=kTRUE){fUseKF=useKF;}
void SetAnalysis(Bool_t analysis=kTRUE){fAnalysis=analysis;}
void SetMassLimits(Float_t range);
void SetMassLimits(Float_t lowlimit, Float_t uplimit);
void SetPtBinLimit(Int_t n, Float_t *limitarray);
void SetFillVarHists(Bool_t setter) {fFillVarHists=setter;return;}
Float_t GetUpperMassLimit() const {return fUpmasslimit;}
Float_t GetLowerMassLimit() const {return fLowmasslimit;}
Int_t GetNBinsPt() const {return fNPtBins;}
Double_t GetPtBinLimit(Int_t ibin) const ;
Bool_t IspiKpMC(AliAODRecoDecayHF3Prong *d,TClonesArray *arrayMC) const ;
Bool_t IspKpiMC(AliAODRecoDecayHF3Prong *d,TClonesArray *arrayMC) const ;
void IspiKpResonant(AliAODRecoDecayHF3Prong *d,Double_t field,Int_t *resNumber) const ;
void IspKpiResonant(AliAODRecoDecayHF3Prong *d,Double_t field,Int_t *resNumber) const ;
Bool_t VertexingKF(AliAODRecoDecayHF3Prong *d,Int_t *pdgs,Double_t field) const ;
Int_t MatchToMCLambdac(AliAODRecoDecayHF3Prong *d,TClonesArray *arrayMC) const ;
Bool_t GetLambdacDaugh(AliAODMCParticle *part, TClonesArray *arrayMC) const ;
Bool_t CheckOrigin(AliAODRecoDecayHF3Prong *part, TClonesArray *arrayMC);
void FillMassHists(AliAODEvent *aod,AliAODRecoDecayHF3Prong *part, TClonesArray *arrayMC, AliRDHFCutsLctopKpi *cuts,Int_t *nSelectedloose,Int_t *nSelectedtight);
void FillVarHists(AliAODRecoDecayHF3Prong *part, TClonesArray *arrMC, AliRDHFCutsLctopKpi *cuts, AliAODEvent *aod);
virtual void UserCreateOutputObjects();
virtual void Init();
virtual void LocalInit() {Init();}
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
private:
AliAnalysisTaskSELambdacUp(const AliAnalysisTaskSELambdacUp &source);
AliAnalysisTaskSELambdacUp& operator=(const AliAnalysisTaskSELambdacUp& source);
Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*4;}
Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*4+1;}
Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*4+2;}
Int_t GetPYTHIAHistoIndex(Int_t iPtBin)const { return iPtBin*4+3;}
Bool_t ReconstructKF(AliAODRecoDecayHF3Prong *d,Int_t *pdgs,Double_t field) const;
enum {kMaxPtBins=10};
TList *fOutput;
TH1F *fHistNEvents;
TH1F *fhChi2;
TH1F *fMassHist[4*kMaxPtBins];
TH1F *fMassHistTC[4*kMaxPtBins];
TH1F *fMassHistLpi[4*kMaxPtBins];
TH1F *fMassHistLpiTC[4*kMaxPtBins];
TH1F *fMassHistKp[4*kMaxPtBins];
TH1F *fMassHistKpTC[4*kMaxPtBins];
TH1F *fMassHistDk[4*kMaxPtBins];
TH1F *fMassHistDkTC[4*kMaxPtBins];
TH1F *fMassHist3Pr[4*kMaxPtBins];
TH1F *fMassHist3PrTC[4*kMaxPtBins];
TNtuple *fNtupleLambdac;
Float_t fUpmasslimit;
Float_t fLowmasslimit;
Float_t fCutsKF[2];
Int_t fNPtBins;
AliRDHFCutsLctopKpi *fRDCutsAnalysis;
AliRDHFCutsLctopKpi *fRDCutsProduction;
TList *fListCuts;
Double_t fArrayBinLimits[kMaxPtBins+1];
Bool_t fFillNtuple;
Bool_t fReadMC;
Bool_t fMCPid;
Bool_t fRealPid;
Bool_t fResPid;
Bool_t fUseKF;
Bool_t fAnalysis;
AliAnalysisVertexingHF *fVHF;
Bool_t fFillVarHists;
TH1F *fNentries;
TList *fOutputMC;
AliPIDResponse *fPIDResponse;
AliNormalizationCounter *fCounter;
ClassDef(AliAnalysisTaskSELambdacUp,1);
};
#endif
AliAnalysisTaskSELambdacUp.h:1 AliAnalysisTaskSELambdacUp.h:2 AliAnalysisTaskSELambdacUp.h:3 AliAnalysisTaskSELambdacUp.h:4 AliAnalysisTaskSELambdacUp.h:5 AliAnalysisTaskSELambdacUp.h:6 AliAnalysisTaskSELambdacUp.h:7 AliAnalysisTaskSELambdacUp.h:8 AliAnalysisTaskSELambdacUp.h:9 AliAnalysisTaskSELambdacUp.h:10 AliAnalysisTaskSELambdacUp.h:11 AliAnalysisTaskSELambdacUp.h:12 AliAnalysisTaskSELambdacUp.h:13 AliAnalysisTaskSELambdacUp.h:14 AliAnalysisTaskSELambdacUp.h:15 AliAnalysisTaskSELambdacUp.h:16 AliAnalysisTaskSELambdacUp.h:17 AliAnalysisTaskSELambdacUp.h:18 AliAnalysisTaskSELambdacUp.h:19 AliAnalysisTaskSELambdacUp.h:20 AliAnalysisTaskSELambdacUp.h:21 AliAnalysisTaskSELambdacUp.h:22 AliAnalysisTaskSELambdacUp.h:23 AliAnalysisTaskSELambdacUp.h:24 AliAnalysisTaskSELambdacUp.h:25 AliAnalysisTaskSELambdacUp.h:26 AliAnalysisTaskSELambdacUp.h:27 AliAnalysisTaskSELambdacUp.h:28 AliAnalysisTaskSELambdacUp.h:29 AliAnalysisTaskSELambdacUp.h:30 AliAnalysisTaskSELambdacUp.h:31 AliAnalysisTaskSELambdacUp.h:32 AliAnalysisTaskSELambdacUp.h:33 AliAnalysisTaskSELambdacUp.h:34 AliAnalysisTaskSELambdacUp.h:35 AliAnalysisTaskSELambdacUp.h:36 AliAnalysisTaskSELambdacUp.h:37 AliAnalysisTaskSELambdacUp.h:38 AliAnalysisTaskSELambdacUp.h:39 AliAnalysisTaskSELambdacUp.h:40 AliAnalysisTaskSELambdacUp.h:41 AliAnalysisTaskSELambdacUp.h:42 AliAnalysisTaskSELambdacUp.h:43 AliAnalysisTaskSELambdacUp.h:44 AliAnalysisTaskSELambdacUp.h:45 AliAnalysisTaskSELambdacUp.h:46 AliAnalysisTaskSELambdacUp.h:47 AliAnalysisTaskSELambdacUp.h:48 AliAnalysisTaskSELambdacUp.h:49 AliAnalysisTaskSELambdacUp.h:50 AliAnalysisTaskSELambdacUp.h:51 AliAnalysisTaskSELambdacUp.h:52 AliAnalysisTaskSELambdacUp.h:53 AliAnalysisTaskSELambdacUp.h:54 AliAnalysisTaskSELambdacUp.h:55 AliAnalysisTaskSELambdacUp.h:56 AliAnalysisTaskSELambdacUp.h:57 AliAnalysisTaskSELambdacUp.h:58 AliAnalysisTaskSELambdacUp.h:59 AliAnalysisTaskSELambdacUp.h:60 AliAnalysisTaskSELambdacUp.h:61 AliAnalysisTaskSELambdacUp.h:62 AliAnalysisTaskSELambdacUp.h:63 AliAnalysisTaskSELambdacUp.h:64 AliAnalysisTaskSELambdacUp.h:65 AliAnalysisTaskSELambdacUp.h:66 AliAnalysisTaskSELambdacUp.h:67 AliAnalysisTaskSELambdacUp.h:68 AliAnalysisTaskSELambdacUp.h:69 AliAnalysisTaskSELambdacUp.h:70 AliAnalysisTaskSELambdacUp.h:71 AliAnalysisTaskSELambdacUp.h:72 AliAnalysisTaskSELambdacUp.h:73 AliAnalysisTaskSELambdacUp.h:74 AliAnalysisTaskSELambdacUp.h:75 AliAnalysisTaskSELambdacUp.h:76 AliAnalysisTaskSELambdacUp.h:77 AliAnalysisTaskSELambdacUp.h:78 AliAnalysisTaskSELambdacUp.h:79 AliAnalysisTaskSELambdacUp.h:80 AliAnalysisTaskSELambdacUp.h:81 AliAnalysisTaskSELambdacUp.h:82 AliAnalysisTaskSELambdacUp.h:83 AliAnalysisTaskSELambdacUp.h:84 AliAnalysisTaskSELambdacUp.h:85 AliAnalysisTaskSELambdacUp.h:86 AliAnalysisTaskSELambdacUp.h:87 AliAnalysisTaskSELambdacUp.h:88 AliAnalysisTaskSELambdacUp.h:89 AliAnalysisTaskSELambdacUp.h:90 AliAnalysisTaskSELambdacUp.h:91 AliAnalysisTaskSELambdacUp.h:92 AliAnalysisTaskSELambdacUp.h:93 AliAnalysisTaskSELambdacUp.h:94 AliAnalysisTaskSELambdacUp.h:95 AliAnalysisTaskSELambdacUp.h:96 AliAnalysisTaskSELambdacUp.h:97 AliAnalysisTaskSELambdacUp.h:98 AliAnalysisTaskSELambdacUp.h:99 AliAnalysisTaskSELambdacUp.h:100 AliAnalysisTaskSELambdacUp.h:101 AliAnalysisTaskSELambdacUp.h:102 AliAnalysisTaskSELambdacUp.h:103 AliAnalysisTaskSELambdacUp.h:104 AliAnalysisTaskSELambdacUp.h:105 AliAnalysisTaskSELambdacUp.h:106 AliAnalysisTaskSELambdacUp.h:107 AliAnalysisTaskSELambdacUp.h:108 AliAnalysisTaskSELambdacUp.h:109 AliAnalysisTaskSELambdacUp.h:110 AliAnalysisTaskSELambdacUp.h:111 AliAnalysisTaskSELambdacUp.h:112 AliAnalysisTaskSELambdacUp.h:113 AliAnalysisTaskSELambdacUp.h:114 AliAnalysisTaskSELambdacUp.h:115 AliAnalysisTaskSELambdacUp.h:116 AliAnalysisTaskSELambdacUp.h:117 AliAnalysisTaskSELambdacUp.h:118 AliAnalysisTaskSELambdacUp.h:119 AliAnalysisTaskSELambdacUp.h:120 AliAnalysisTaskSELambdacUp.h:121 AliAnalysisTaskSELambdacUp.h:122 AliAnalysisTaskSELambdacUp.h:123 AliAnalysisTaskSELambdacUp.h:124 AliAnalysisTaskSELambdacUp.h:125 AliAnalysisTaskSELambdacUp.h:126 AliAnalysisTaskSELambdacUp.h:127 AliAnalysisTaskSELambdacUp.h:128 AliAnalysisTaskSELambdacUp.h:129 AliAnalysisTaskSELambdacUp.h:130 AliAnalysisTaskSELambdacUp.h:131