#ifndef ALIANALYSISTASKCOMBINHF_H
#define ALIANALYSISTASKCOMBINHF_H
#include <TH1F.h>
#include <TH3F.h>
#include <TObjString.h>
#include <THnSparse.h>
#include "AliAnalysisTaskSE.h"
#include "AliAODTrack.h"
#include "AliNormalizationCounter.h"
#include "AliRDHFCuts.h"
class AliAnalysisTaskCombinHF : public AliAnalysisTaskSE
{
public:
AliAnalysisTaskCombinHF();
AliAnalysisTaskCombinHF(Int_t meson, AliRDHFCuts* analysiscuts);
virtual ~AliAnalysisTaskCombinHF();
virtual void UserCreateOutputObjects();
virtual void Init(){};
virtual void LocalInit() {Init();}
virtual void UserExec(Option_t *option);
virtual void Terminate(Option_t *option);
virtual void FinishTaskOutput();
void SetReadMC(Bool_t read){fReadMC=read;}
void SetEventMixingWithCuts(Double_t maxDeltaVz, Double_t maxDeltaMult){
fDoEventMixing=2; fMaxzVertDistForMix=maxDeltaVz; fMaxMultDiffForMix=maxDeltaMult;
}
void SetEventMixingWithPools(){fDoEventMixing=1;}
void SetEventMixingOff(){fDoEventMixing=0;}
void SetNumberOfEventsForMixing(Int_t minn){fNumberOfEventsForMixing=minn;}
void ConfigureZVertPools(Int_t nPools, Double_t* zVertLimits);
void ConfigureMultiplicityPools(Int_t nPools, Double_t* multLimits);
void SelectPromptD(){fPromptFeeddown=kPrompt;}
void SelectFeeddownD(){fPromptFeeddown=kFeeddown;}
void SelectPromptAndFeeddownD(){fPromptFeeddown=kBoth;}
void SetGoUpToQuark(Bool_t opt){fGoUpToQuark=opt;}
void SetKeepNegIDtracks(Bool_t nid){fKeepNegID=nid;}
void SetTrackCuts(AliESDtrackCuts* cuts){
if(fTrackCutsAll) delete fTrackCutsAll;
fTrackCutsAll=new AliESDtrackCuts(*cuts);
}
void SetPionTrackCuts(AliESDtrackCuts* cuts){
if(fTrackCutsPion) delete fTrackCutsPion;
fTrackCutsPion=new AliESDtrackCuts(*cuts);
}
void SetKaonTrackCuts(AliESDtrackCuts* cuts){
if(fTrackCutsKaon) delete fTrackCutsKaon;
fTrackCutsKaon=new AliESDtrackCuts(*cuts);
}
void SetPIDHF(AliAODPidHF* pid){
if(fPidHF) delete fPidHF;
fPidHF=new AliAODPidHF(*pid);
}
void SetRDHFCuts(AliRDHFCuts* cuts){
fAnalysisCuts=cuts;
}
void SetFilterMask(UInt_t mask=16){fFilterMask=mask;}
void SetAnalysisLevel(Int_t level){fFullAnalysis=level;}
void ConfigureRotation(Int_t n, Double_t phimin, Double_t phimax){
fNRotations=n;
fMinAngleForRot=phimin;
fMaxAngleForRot=phimax;
}
void SetMassWindow(Double_t minMass, Double_t maxMass){fMinMass=minMass; fMaxMass=maxMass;}
void SetMaxPt(Double_t maxPt){fMaxPt=maxPt;}
void SetPtBinWidth(Double_t binw){fPtBinWidth=binw;}
void SetEtaAccCut(Double_t etacut){fEtaAccCut=etacut;}
void SetPtAccCut(Double_t ptcut){fPtAccCut=ptcut;}
void SetMultiplicityRange(Double_t mmin=-0.5, Double_t mmax=199.5){
fMinMultiplicity=mmin;
fMaxMultiplicity=mmax;
}
void SetPIDstrategy(Int_t strat){fPIDstrategy=strat;}
void SetMaxPforIDPion(Double_t maxpIdPion){fmaxPforIDPion=maxpIdPion;}
void SetMaxPforIDKaon(Double_t maxpIdKaon){fmaxPforIDKaon=maxpIdKaon;}
void SetPIDselCaseZero(Int_t strat){fPIDselCaseZero=strat;}
void SetBayesThres(Double_t thresKaon, Double_t thresPion){
fBayesThresKaon=thresKaon;
fBayesThresPion=thresPion;
}
Bool_t IsTrackSelected(AliAODTrack* track);
Bool_t IsKaon(AliAODTrack* track);
Bool_t IsPion(AliAODTrack* track);
Bool_t SelectAODTrack(AliAODTrack *track, AliESDtrackCuts *cuts);
Bool_t FillHistos(Int_t pdgD,Int_t nProngs, AliAODRecoDecay* tmpRD, Double_t* px, Double_t* py, Double_t* pz, UInt_t *pdgdau, TClonesArray *arrayMC, Int_t* dgLabels);
void FillLSHistos(Int_t pdgD,Int_t nProngs, AliAODRecoDecay* tmpRD, Double_t* px, Double_t* py, Double_t* pz, UInt_t *pdgdau, Int_t charge);
void FillMEHistos(Int_t pdgD,Int_t nProngs, AliAODRecoDecay* tmpRD, Double_t* px, Double_t* py, Double_t* pz, UInt_t *pdgdau);
void FillMEHistosLS(Int_t pdgD,Int_t nProngs, AliAODRecoDecay* tmpRD, Double_t* px, Double_t* py, Double_t* pz, UInt_t *pdgdau, Int_t charge);
void FillGenHistos(TClonesArray* arrayMC);
Bool_t CheckAcceptance(TClonesArray* arrayMC, Int_t nProng, Int_t *labDau);
Int_t GetPoolIndex(Double_t zvert, Double_t mult);
void ResetPool(Int_t poolIndex);
void DoMixingWithPools(Int_t poolIndex);
void DoMixingWithCuts();
Bool_t CanBeMixed(Double_t zv1, Double_t zv2, Double_t mult1, Double_t mult2);
enum EMesonSpecies {kDzero, kDplus, kDstar, kDs};
enum EPrompFd {kNone,kPrompt,kFeeddown,kBoth};
enum EPIDstrategy {knSigma, kBayesianMaxProb, kBayesianThres};
private:
AliAnalysisTaskCombinHF(const AliAnalysisTaskCombinHF &source);
AliAnalysisTaskCombinHF& operator=(const AliAnalysisTaskCombinHF& source);
TList *fOutput;
TH1F *fHistNEvents;
TH1F *fHistTrackStatus;
TH1F *fHistCheckOrigin;
TH1F *fHistCheckOriginSel;
TH1F *fHistCheckDecChan;
TH1F *fHistCheckDecChanAcc;
TH3F *fPtVsYVsMultGen;
TH3F *fPtVsYVsMultGenLargeAcc;
TH3F *fPtVsYVsMultGenLimAcc;
TH3F *fPtVsYVsMultGenAcc;
TH3F *fPtVsYVsMultReco;
TH3F *fMassVsPtVsY;
TH3F *fMassVsPtVsYRot;
TH3F *fMassVsPtVsYLSpp;
TH3F *fMassVsPtVsYLSmm;
TH3F *fMassVsPtVsYSig;
TH3F *fMassVsPtVsYRefl;
TH3F *fMassVsPtVsYBkg;
TH1F *fNSelected;
TH1F *fNormRotated;
TH1F *fDeltaMass;
THnSparse *fDeltaMassFullAnalysis;
TH3F *fMassVsPtVsYME;
TH3F *fMassVsPtVsYMELSpp;
TH3F *fMassVsPtVsYMELSmm;
TH2F* fEventsPerPool;
TH2F* fMixingsPerPool;
UInt_t fFilterMask;
AliESDtrackCuts* fTrackCutsAll;
AliESDtrackCuts* fTrackCutsPion;
AliESDtrackCuts* fTrackCutsKaon;
AliAODPidHF* fPidHF;
AliRDHFCuts *fAnalysisCuts;
Double_t fMinMass;
Double_t fMaxMass;
Double_t fMaxPt;
Double_t fPtBinWidth;
Double_t fEtaAccCut;
Double_t fPtAccCut;
Int_t fNRotations;
Double_t fMinAngleForRot;
Double_t fMaxAngleForRot;
Double_t fMinAngleForRot3;
Double_t fMaxAngleForRot3;
AliNormalizationCounter *fCounter;
Int_t fMeson;
Bool_t fReadMC;
Int_t fPromptFeeddown;
Bool_t fGoUpToQuark;
Int_t fFullAnalysis;
Int_t fPIDstrategy;
Double_t fmaxPforIDPion;
Double_t fmaxPforIDKaon;
Bool_t fKeepNegID;
Int_t fPIDselCaseZero;
Double_t fBayesThresKaon;
Double_t fBayesThresPion;
Int_t fDoEventMixing;
Int_t fNumberOfEventsForMixing;
Double_t fMaxzVertDistForMix;
Double_t fMaxMultDiffForMix;
Int_t fNzVertPools;
Int_t fNzVertPoolsLimSize;
Double_t* fzVertPoolLims;
Int_t fNMultPools;
Int_t fNMultPoolsLimSize;
Double_t* fMultPoolLims;
Int_t fNOfPools;
TTree** fEventBuffer;
TObjString* fEventInfo;
Double_t fVtxZ;
Double_t fMultiplicity;
Double_t fMinMultiplicity;
Double_t fMaxMultiplicity;
TObjArray* fKaonTracks;
TObjArray* fPionTracks;
ClassDef(AliAnalysisTaskCombinHF,10);
};
#endif
AliAnalysisTaskCombinHF.h:1 AliAnalysisTaskCombinHF.h:2 AliAnalysisTaskCombinHF.h:3 AliAnalysisTaskCombinHF.h:4 AliAnalysisTaskCombinHF.h:5 AliAnalysisTaskCombinHF.h:6 AliAnalysisTaskCombinHF.h:7 AliAnalysisTaskCombinHF.h:8 AliAnalysisTaskCombinHF.h:9 AliAnalysisTaskCombinHF.h:10 AliAnalysisTaskCombinHF.h:11 AliAnalysisTaskCombinHF.h:12 AliAnalysisTaskCombinHF.h:13 AliAnalysisTaskCombinHF.h:14 AliAnalysisTaskCombinHF.h:15 AliAnalysisTaskCombinHF.h:16 AliAnalysisTaskCombinHF.h:17 AliAnalysisTaskCombinHF.h:18 AliAnalysisTaskCombinHF.h:19 AliAnalysisTaskCombinHF.h:20 AliAnalysisTaskCombinHF.h:21 AliAnalysisTaskCombinHF.h:22 AliAnalysisTaskCombinHF.h:23 AliAnalysisTaskCombinHF.h:24 AliAnalysisTaskCombinHF.h:25 AliAnalysisTaskCombinHF.h:26 AliAnalysisTaskCombinHF.h:27 AliAnalysisTaskCombinHF.h:28 AliAnalysisTaskCombinHF.h:29 AliAnalysisTaskCombinHF.h:30 AliAnalysisTaskCombinHF.h:31 AliAnalysisTaskCombinHF.h:32 AliAnalysisTaskCombinHF.h:33 AliAnalysisTaskCombinHF.h:34 AliAnalysisTaskCombinHF.h:35 AliAnalysisTaskCombinHF.h:36 AliAnalysisTaskCombinHF.h:37 AliAnalysisTaskCombinHF.h:38 AliAnalysisTaskCombinHF.h:39 AliAnalysisTaskCombinHF.h:40 AliAnalysisTaskCombinHF.h:41 AliAnalysisTaskCombinHF.h:42 AliAnalysisTaskCombinHF.h:43 AliAnalysisTaskCombinHF.h:44 AliAnalysisTaskCombinHF.h:45 AliAnalysisTaskCombinHF.h:46 AliAnalysisTaskCombinHF.h:47 AliAnalysisTaskCombinHF.h:48 AliAnalysisTaskCombinHF.h:49 AliAnalysisTaskCombinHF.h:50 AliAnalysisTaskCombinHF.h:51 AliAnalysisTaskCombinHF.h:52 AliAnalysisTaskCombinHF.h:53 AliAnalysisTaskCombinHF.h:54 AliAnalysisTaskCombinHF.h:55 AliAnalysisTaskCombinHF.h:56 AliAnalysisTaskCombinHF.h:57 AliAnalysisTaskCombinHF.h:58 AliAnalysisTaskCombinHF.h:59 AliAnalysisTaskCombinHF.h:60 AliAnalysisTaskCombinHF.h:61 AliAnalysisTaskCombinHF.h:62 AliAnalysisTaskCombinHF.h:63 AliAnalysisTaskCombinHF.h:64 AliAnalysisTaskCombinHF.h:65 AliAnalysisTaskCombinHF.h:66 AliAnalysisTaskCombinHF.h:67 AliAnalysisTaskCombinHF.h:68 AliAnalysisTaskCombinHF.h:69 AliAnalysisTaskCombinHF.h:70 AliAnalysisTaskCombinHF.h:71 AliAnalysisTaskCombinHF.h:72 AliAnalysisTaskCombinHF.h:73 AliAnalysisTaskCombinHF.h:74 AliAnalysisTaskCombinHF.h:75 AliAnalysisTaskCombinHF.h:76 AliAnalysisTaskCombinHF.h:77 AliAnalysisTaskCombinHF.h:78 AliAnalysisTaskCombinHF.h:79 AliAnalysisTaskCombinHF.h:80 AliAnalysisTaskCombinHF.h:81 AliAnalysisTaskCombinHF.h:82 AliAnalysisTaskCombinHF.h:83 AliAnalysisTaskCombinHF.h:84 AliAnalysisTaskCombinHF.h:85 AliAnalysisTaskCombinHF.h:86 AliAnalysisTaskCombinHF.h:87 AliAnalysisTaskCombinHF.h:88 AliAnalysisTaskCombinHF.h:89 AliAnalysisTaskCombinHF.h:90 AliAnalysisTaskCombinHF.h:91 AliAnalysisTaskCombinHF.h:92 AliAnalysisTaskCombinHF.h:93 AliAnalysisTaskCombinHF.h:94 AliAnalysisTaskCombinHF.h:95 AliAnalysisTaskCombinHF.h:96 AliAnalysisTaskCombinHF.h:97 AliAnalysisTaskCombinHF.h:98 AliAnalysisTaskCombinHF.h:99 AliAnalysisTaskCombinHF.h:100 AliAnalysisTaskCombinHF.h:101 AliAnalysisTaskCombinHF.h:102 AliAnalysisTaskCombinHF.h:103 AliAnalysisTaskCombinHF.h:104 AliAnalysisTaskCombinHF.h:105 AliAnalysisTaskCombinHF.h:106 AliAnalysisTaskCombinHF.h:107 AliAnalysisTaskCombinHF.h:108 AliAnalysisTaskCombinHF.h:109 AliAnalysisTaskCombinHF.h:110 AliAnalysisTaskCombinHF.h:111 AliAnalysisTaskCombinHF.h:112 AliAnalysisTaskCombinHF.h:113 AliAnalysisTaskCombinHF.h:114 AliAnalysisTaskCombinHF.h:115 AliAnalysisTaskCombinHF.h:116 AliAnalysisTaskCombinHF.h:117 AliAnalysisTaskCombinHF.h:118 AliAnalysisTaskCombinHF.h:119 AliAnalysisTaskCombinHF.h:120 AliAnalysisTaskCombinHF.h:121 AliAnalysisTaskCombinHF.h:122 AliAnalysisTaskCombinHF.h:123 AliAnalysisTaskCombinHF.h:124 AliAnalysisTaskCombinHF.h:125 AliAnalysisTaskCombinHF.h:126 AliAnalysisTaskCombinHF.h:127 AliAnalysisTaskCombinHF.h:128 AliAnalysisTaskCombinHF.h:129 AliAnalysisTaskCombinHF.h:130 AliAnalysisTaskCombinHF.h:131 AliAnalysisTaskCombinHF.h:132 AliAnalysisTaskCombinHF.h:133 AliAnalysisTaskCombinHF.h:134 AliAnalysisTaskCombinHF.h:135 AliAnalysisTaskCombinHF.h:136 AliAnalysisTaskCombinHF.h:137 AliAnalysisTaskCombinHF.h:138 AliAnalysisTaskCombinHF.h:139 AliAnalysisTaskCombinHF.h:140 AliAnalysisTaskCombinHF.h:141 AliAnalysisTaskCombinHF.h:142 AliAnalysisTaskCombinHF.h:143 AliAnalysisTaskCombinHF.h:144 AliAnalysisTaskCombinHF.h:145 AliAnalysisTaskCombinHF.h:146 AliAnalysisTaskCombinHF.h:147 AliAnalysisTaskCombinHF.h:148 AliAnalysisTaskCombinHF.h:149 AliAnalysisTaskCombinHF.h:150 AliAnalysisTaskCombinHF.h:151 AliAnalysisTaskCombinHF.h:152 AliAnalysisTaskCombinHF.h:153 AliAnalysisTaskCombinHF.h:154 AliAnalysisTaskCombinHF.h:155 AliAnalysisTaskCombinHF.h:156 AliAnalysisTaskCombinHF.h:157 AliAnalysisTaskCombinHF.h:158 AliAnalysisTaskCombinHF.h:159 AliAnalysisTaskCombinHF.h:160 AliAnalysisTaskCombinHF.h:161 AliAnalysisTaskCombinHF.h:162 AliAnalysisTaskCombinHF.h:163 AliAnalysisTaskCombinHF.h:164 AliAnalysisTaskCombinHF.h:165 AliAnalysisTaskCombinHF.h:166 AliAnalysisTaskCombinHF.h:167 AliAnalysisTaskCombinHF.h:168 AliAnalysisTaskCombinHF.h:169 AliAnalysisTaskCombinHF.h:170 AliAnalysisTaskCombinHF.h:171 AliAnalysisTaskCombinHF.h:172 AliAnalysisTaskCombinHF.h:173 AliAnalysisTaskCombinHF.h:174 AliAnalysisTaskCombinHF.h:175 AliAnalysisTaskCombinHF.h:176 AliAnalysisTaskCombinHF.h:177 AliAnalysisTaskCombinHF.h:178 AliAnalysisTaskCombinHF.h:179 AliAnalysisTaskCombinHF.h:180 AliAnalysisTaskCombinHF.h:181 AliAnalysisTaskCombinHF.h:182 AliAnalysisTaskCombinHF.h:183 AliAnalysisTaskCombinHF.h:184 AliAnalysisTaskCombinHF.h:185 AliAnalysisTaskCombinHF.h:186 AliAnalysisTaskCombinHF.h:187 AliAnalysisTaskCombinHF.h:188 AliAnalysisTaskCombinHF.h:189 AliAnalysisTaskCombinHF.h:190 AliAnalysisTaskCombinHF.h:191 AliAnalysisTaskCombinHF.h:192 AliAnalysisTaskCombinHF.h:193 AliAnalysisTaskCombinHF.h:194 AliAnalysisTaskCombinHF.h:195 AliAnalysisTaskCombinHF.h:196 AliAnalysisTaskCombinHF.h:197 AliAnalysisTaskCombinHF.h:198 AliAnalysisTaskCombinHF.h:199 AliAnalysisTaskCombinHF.h:200 AliAnalysisTaskCombinHF.h:201 AliAnalysisTaskCombinHF.h:202 AliAnalysisTaskCombinHF.h:203 AliAnalysisTaskCombinHF.h:204 AliAnalysisTaskCombinHF.h:205 AliAnalysisTaskCombinHF.h:206 AliAnalysisTaskCombinHF.h:207 AliAnalysisTaskCombinHF.h:208 AliAnalysisTaskCombinHF.h:209 AliAnalysisTaskCombinHF.h:210 AliAnalysisTaskCombinHF.h:211 AliAnalysisTaskCombinHF.h:212