#ifndef ALIANALYSISTASKSELAMBDAC_H
#define ALIANALYSISTASKSELAMBDAC_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 AliAnalysisTaskSELambdac : public AliAnalysisTaskSE
{
public:
AliAnalysisTaskSELambdac();
AliAnalysisTaskSELambdac(const char *name, Bool_t fillNtuple,AliRDHFCutsLctopKpi *lccutsana, AliRDHFCutsLctopKpi *lccutsprod);
virtual ~AliAnalysisTaskSELambdac();
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;}
void SetMultiplicityHists(Bool_t setter) {fMultiplicityHists=setter;return;}
void SetPriorsHists(Bool_t setter) {fPriorsHists=setter;return;}
void SetUseFilterBitCut(Bool_t setter) { fLcCut = setter; return; }
void SetUseFilterBitPID(Bool_t setter) { fLcPIDCut = 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 ;
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);
Bool_t Is3ProngFromPDG(AliAODRecoDecayHF3Prong *part, TClonesArray *arrMC, Int_t pdgToBeCompared=4);
Bool_t IsTrackFromPDG(const AliAODTrack *daugh, TClonesArray *arrayMC, Int_t pdgToBeCompared);
Bool_t IsThereAGeneratedLc(TClonesArray *arrayMC);
Int_t NumberPrimaries(const AliAODEvent *aods);
virtual void UserCreateOutputObjects();
virtual void Init();
virtual void LocalInit() {Init();}
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
private:
AliAnalysisTaskSELambdac(const AliAnalysisTaskSELambdac &source);
AliAnalysisTaskSELambdac& operator=(const AliAnalysisTaskSELambdac& source);
Int_t GetHistoIndex(Int_t iPtBin) const { return iPtBin*6;}
Int_t GetSignalHistoIndex(Int_t iPtBin) const { return iPtBin*6+1;}
Int_t GetBackgroundHistoIndex(Int_t iPtBin) const { return iPtBin*6+2;}
Int_t GetLbHistoIndex(Int_t iPtBin) const { return iPtBin*6+3;}
Int_t GetcOnlyHistoIndex(Int_t iPtBin) const { return iPtBin*6+4;}
Int_t GetNoQuarkHistoIndex(Int_t iPtBin) const { return iPtBin*6+5;}
Bool_t ReconstructKF(AliAODRecoDecayHF3Prong *d,Int_t *pdgs,Double_t field) const;
void FillAPrioriConcentrations(AliAODRecoDecayHF3Prong *part, AliRDHFCutsLctopKpi *cuts,
AliAODEvent* aod, TClonesArray *arrMC);
void MultiplicityStudies(AliAODRecoDecayHF3Prong *part, AliRDHFCutsLctopKpi *cuts,
AliAODEvent* aod, TClonesArray *arrMC,
Bool_t &flag1,Bool_t &flag2,Bool_t &flag3,
Bool_t &flag4, Bool_t &flag5, Bool_t &flag6);
enum {kMaxPtBins=10};
TList *fOutput;
TH1F *fHistNEvents;
TH1F *fhChi2;
TH1F *fhMassPtGreater3;
TH1F *fhMassPtGreater3TC;
TH1F *fhMassPtGreater3Kp;
TH1F *fhMassPtGreater3KpTC;
TH1F *fhMassPtGreater3Lpi;
TH1F *fhMassPtGreater3LpiTC;
TH1F *fhMassPtGreater3Dk;
TH1F *fhMassPtGreater3DkTC;
TH1F *fhMassPtGreater33Pr;
TH1F *fhMassPtGreater33PrTC;
TH1F *fhMassPtGreater2;
TH1F *fhMassPtGreater2TC;
TH1F *fhMassPtGreater2Kp;
TH1F *fhMassPtGreater2KpTC;
TH1F *fhMassPtGreater2Lpi;
TH1F *fhMassPtGreater2LpiTC;
TH1F *fhMassPtGreater2Dk;
TH1F *fhMassPtGreater2DkTC;
TH1F *fhMassPtGreater23Pr;
TH1F *fhMassPtGreater23PrTC;
TH1F *fMassHist[6*kMaxPtBins];
TH1F *fMassHistTC[6*kMaxPtBins];
TH1F *fMassHistLpi[3*kMaxPtBins];
TH1F *fMassHistLpiTC[3*kMaxPtBins];
TH1F *fMassHistKp[3*kMaxPtBins];
TH1F *fMassHistKpTC[3*kMaxPtBins];
TH1F *fMassHistDk[3*kMaxPtBins];
TH1F *fMassHistDkTC[3*kMaxPtBins];
TH1F *fMassHist3Pr[3*kMaxPtBins];
TH1F *fMassHist3PrTC[3*kMaxPtBins];
TH2F *fhEta3Prong;
TH2F *fhEta3ProngAcc;
TH2F *fhEta3ProngProd;
TH2F *fhEta3ProngAn;
TH2F *fhRap3Prong;
TH2F *fhRap3ProngAcc;
TH2F *fhRap3ProngProd;
TH2F *fhRap3ProngAn;
TH1F *fhSelectBit;
TH2F *fhProtonPtProngLcPt;
TH2F *fhBProtonPtProngLcPt;
TH2F *fhProtond0ProngLcPt;
TH2F *fhBProtond0ProngLcPt;
TH2F *fhKaonPtProngLcPt;
TH2F *fhBKaonPtProngLcPt;
TH2F *fhKaond0ProngLcPt;
TH2F *fhBKaond0ProngLcPt;
TH2F *fhPionPtProngLcPt;
TH2F *fhBPionPtProngLcPt;
TH2F *fhPiond0ProngLcPt;
TH2F *fhBPiond0ProngLcPt;
TH2F *fhDist12PrimLcPt;
TH2F *fhBDist12PrimLcPt;
TH2F *fhSigmaVertLcPt;
TH2F *fhBSigmaVertLcPt;
TH2F *fhdcasLcPt;
TH2F *fhBdcasLcPt;
TH2F *fhCosPointingAngleLcPt;
TH2F *fhBCosPointingAngleLcPt;
TH2F *fhDecayLengthLcPt;
TH2F *fhBDecayLengthLcPt;
TH2F *fhSum2LcPt;
TH2F *fhBSum2LcPt;
TH2F *fhPtMaxLcPt;
TH2F *fhBPtMaxLcPt;
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;
Bool_t fMultiplicityHists;
Bool_t fPriorsHists;
Bool_t fLcCut;
Bool_t fLcPIDCut;
TH1F *fNentries;
TList *fOutputMC;
TList *fAPriori;
TList *fMultiplicity;
AliPIDResponse *fPIDResponse;
AliNormalizationCounter *fCounter;
ClassDef(AliAnalysisTaskSELambdac,7);
};
#endif
AliAnalysisTaskSELambdac.h:1 AliAnalysisTaskSELambdac.h:2 AliAnalysisTaskSELambdac.h:3 AliAnalysisTaskSELambdac.h:4 AliAnalysisTaskSELambdac.h:5 AliAnalysisTaskSELambdac.h:6 AliAnalysisTaskSELambdac.h:7 AliAnalysisTaskSELambdac.h:8 AliAnalysisTaskSELambdac.h:9 AliAnalysisTaskSELambdac.h:10 AliAnalysisTaskSELambdac.h:11 AliAnalysisTaskSELambdac.h:12 AliAnalysisTaskSELambdac.h:13 AliAnalysisTaskSELambdac.h:14 AliAnalysisTaskSELambdac.h:15 AliAnalysisTaskSELambdac.h:16 AliAnalysisTaskSELambdac.h:17 AliAnalysisTaskSELambdac.h:18 AliAnalysisTaskSELambdac.h:19 AliAnalysisTaskSELambdac.h:20 AliAnalysisTaskSELambdac.h:21 AliAnalysisTaskSELambdac.h:22 AliAnalysisTaskSELambdac.h:23 AliAnalysisTaskSELambdac.h:24 AliAnalysisTaskSELambdac.h:25 AliAnalysisTaskSELambdac.h:26 AliAnalysisTaskSELambdac.h:27 AliAnalysisTaskSELambdac.h:28 AliAnalysisTaskSELambdac.h:29 AliAnalysisTaskSELambdac.h:30 AliAnalysisTaskSELambdac.h:31 AliAnalysisTaskSELambdac.h:32 AliAnalysisTaskSELambdac.h:33 AliAnalysisTaskSELambdac.h:34 AliAnalysisTaskSELambdac.h:35 AliAnalysisTaskSELambdac.h:36 AliAnalysisTaskSELambdac.h:37 AliAnalysisTaskSELambdac.h:38 AliAnalysisTaskSELambdac.h:39 AliAnalysisTaskSELambdac.h:40 AliAnalysisTaskSELambdac.h:41 AliAnalysisTaskSELambdac.h:42 AliAnalysisTaskSELambdac.h:43 AliAnalysisTaskSELambdac.h:44 AliAnalysisTaskSELambdac.h:45 AliAnalysisTaskSELambdac.h:46 AliAnalysisTaskSELambdac.h:47 AliAnalysisTaskSELambdac.h:48 AliAnalysisTaskSELambdac.h:49 AliAnalysisTaskSELambdac.h:50 AliAnalysisTaskSELambdac.h:51 AliAnalysisTaskSELambdac.h:52 AliAnalysisTaskSELambdac.h:53 AliAnalysisTaskSELambdac.h:54 AliAnalysisTaskSELambdac.h:55 AliAnalysisTaskSELambdac.h:56 AliAnalysisTaskSELambdac.h:57 AliAnalysisTaskSELambdac.h:58 AliAnalysisTaskSELambdac.h:59 AliAnalysisTaskSELambdac.h:60 AliAnalysisTaskSELambdac.h:61 AliAnalysisTaskSELambdac.h:62 AliAnalysisTaskSELambdac.h:63 AliAnalysisTaskSELambdac.h:64 AliAnalysisTaskSELambdac.h:65 AliAnalysisTaskSELambdac.h:66 AliAnalysisTaskSELambdac.h:67 AliAnalysisTaskSELambdac.h:68 AliAnalysisTaskSELambdac.h:69 AliAnalysisTaskSELambdac.h:70 AliAnalysisTaskSELambdac.h:71 AliAnalysisTaskSELambdac.h:72 AliAnalysisTaskSELambdac.h:73 AliAnalysisTaskSELambdac.h:74 AliAnalysisTaskSELambdac.h:75 AliAnalysisTaskSELambdac.h:76 AliAnalysisTaskSELambdac.h:77 AliAnalysisTaskSELambdac.h:78 AliAnalysisTaskSELambdac.h:79 AliAnalysisTaskSELambdac.h:80 AliAnalysisTaskSELambdac.h:81 AliAnalysisTaskSELambdac.h:82 AliAnalysisTaskSELambdac.h:83 AliAnalysisTaskSELambdac.h:84 AliAnalysisTaskSELambdac.h:85 AliAnalysisTaskSELambdac.h:86 AliAnalysisTaskSELambdac.h:87 AliAnalysisTaskSELambdac.h:88 AliAnalysisTaskSELambdac.h:89 AliAnalysisTaskSELambdac.h:90 AliAnalysisTaskSELambdac.h:91 AliAnalysisTaskSELambdac.h:92 AliAnalysisTaskSELambdac.h:93 AliAnalysisTaskSELambdac.h:94 AliAnalysisTaskSELambdac.h:95 AliAnalysisTaskSELambdac.h:96 AliAnalysisTaskSELambdac.h:97 AliAnalysisTaskSELambdac.h:98 AliAnalysisTaskSELambdac.h:99 AliAnalysisTaskSELambdac.h:100 AliAnalysisTaskSELambdac.h:101 AliAnalysisTaskSELambdac.h:102 AliAnalysisTaskSELambdac.h:103 AliAnalysisTaskSELambdac.h:104 AliAnalysisTaskSELambdac.h:105 AliAnalysisTaskSELambdac.h:106 AliAnalysisTaskSELambdac.h:107 AliAnalysisTaskSELambdac.h:108 AliAnalysisTaskSELambdac.h:109 AliAnalysisTaskSELambdac.h:110 AliAnalysisTaskSELambdac.h:111 AliAnalysisTaskSELambdac.h:112 AliAnalysisTaskSELambdac.h:113 AliAnalysisTaskSELambdac.h:114 AliAnalysisTaskSELambdac.h:115 AliAnalysisTaskSELambdac.h:116 AliAnalysisTaskSELambdac.h:117 AliAnalysisTaskSELambdac.h:118 AliAnalysisTaskSELambdac.h:119 AliAnalysisTaskSELambdac.h:120 AliAnalysisTaskSELambdac.h:121 AliAnalysisTaskSELambdac.h:122 AliAnalysisTaskSELambdac.h:123 AliAnalysisTaskSELambdac.h:124 AliAnalysisTaskSELambdac.h:125 AliAnalysisTaskSELambdac.h:126 AliAnalysisTaskSELambdac.h:127 AliAnalysisTaskSELambdac.h:128 AliAnalysisTaskSELambdac.h:129 AliAnalysisTaskSELambdac.h:130 AliAnalysisTaskSELambdac.h:131 AliAnalysisTaskSELambdac.h:132 AliAnalysisTaskSELambdac.h:133 AliAnalysisTaskSELambdac.h:134 AliAnalysisTaskSELambdac.h:135 AliAnalysisTaskSELambdac.h:136 AliAnalysisTaskSELambdac.h:137 AliAnalysisTaskSELambdac.h:138 AliAnalysisTaskSELambdac.h:139 AliAnalysisTaskSELambdac.h:140 AliAnalysisTaskSELambdac.h:141 AliAnalysisTaskSELambdac.h:142 AliAnalysisTaskSELambdac.h:143 AliAnalysisTaskSELambdac.h:144 AliAnalysisTaskSELambdac.h:145 AliAnalysisTaskSELambdac.h:146 AliAnalysisTaskSELambdac.h:147 AliAnalysisTaskSELambdac.h:148 AliAnalysisTaskSELambdac.h:149 AliAnalysisTaskSELambdac.h:150 AliAnalysisTaskSELambdac.h:151 AliAnalysisTaskSELambdac.h:152 AliAnalysisTaskSELambdac.h:153 AliAnalysisTaskSELambdac.h:154 AliAnalysisTaskSELambdac.h:155 AliAnalysisTaskSELambdac.h:156 AliAnalysisTaskSELambdac.h:157 AliAnalysisTaskSELambdac.h:158 AliAnalysisTaskSELambdac.h:159 AliAnalysisTaskSELambdac.h:160 AliAnalysisTaskSELambdac.h:161 AliAnalysisTaskSELambdac.h:162 AliAnalysisTaskSELambdac.h:163 AliAnalysisTaskSELambdac.h:164 AliAnalysisTaskSELambdac.h:165 AliAnalysisTaskSELambdac.h:166 AliAnalysisTaskSELambdac.h:167 AliAnalysisTaskSELambdac.h:168 AliAnalysisTaskSELambdac.h:169 AliAnalysisTaskSELambdac.h:170 AliAnalysisTaskSELambdac.h:171 AliAnalysisTaskSELambdac.h:172 AliAnalysisTaskSELambdac.h:173 AliAnalysisTaskSELambdac.h:174 AliAnalysisTaskSELambdac.h:175 AliAnalysisTaskSELambdac.h:176 AliAnalysisTaskSELambdac.h:177 AliAnalysisTaskSELambdac.h:178 AliAnalysisTaskSELambdac.h:179 AliAnalysisTaskSELambdac.h:180 AliAnalysisTaskSELambdac.h:181 AliAnalysisTaskSELambdac.h:182 AliAnalysisTaskSELambdac.h:183 AliAnalysisTaskSELambdac.h:184 AliAnalysisTaskSELambdac.h:185 AliAnalysisTaskSELambdac.h:186 AliAnalysisTaskSELambdac.h:187 AliAnalysisTaskSELambdac.h:188 AliAnalysisTaskSELambdac.h:189 AliAnalysisTaskSELambdac.h:190 AliAnalysisTaskSELambdac.h:191 AliAnalysisTaskSELambdac.h:192 AliAnalysisTaskSELambdac.h:193 AliAnalysisTaskSELambdac.h:194 AliAnalysisTaskSELambdac.h:195 AliAnalysisTaskSELambdac.h:196 AliAnalysisTaskSELambdac.h:197 AliAnalysisTaskSELambdac.h:198 AliAnalysisTaskSELambdac.h:199 AliAnalysisTaskSELambdac.h:200 AliAnalysisTaskSELambdac.h:201 AliAnalysisTaskSELambdac.h:202 AliAnalysisTaskSELambdac.h:203 AliAnalysisTaskSELambdac.h:204 AliAnalysisTaskSELambdac.h:205 AliAnalysisTaskSELambdac.h:206