#ifndef AliHFAssociatedTrackCuts_H
#define AliHFAssociatedTrackCuts_H
#include <TString.h>
#include "AliAnalysisCuts.h"
#include "AliESDtrackCuts.h"
#include "AliESDVertex.h"
#include "AliAODPidHF.h"
#include "AliAODEvent.h"
#include "AliAODRecoDecayHF2Prong.h"
#include <TClonesArray.h>
#include <TH3D.h>
class AliAODTrack;
class AliAODEvent;
class AliHFAssociatedTrackCuts : public AliAnalysisCuts
{
public:
AliHFAssociatedTrackCuts();
AliHFAssociatedTrackCuts(const char* name, const char* title);
AliHFAssociatedTrackCuts(const AliHFAssociatedTrackCuts& source);
AliHFAssociatedTrackCuts& operator=(const AliHFAssociatedTrackCuts& source);
virtual ~AliHFAssociatedTrackCuts();
Bool_t IsSelected(TList* list) {if(list) return kTRUE; return kFALSE;};
Bool_t IsSelected(TObject* obj) {if(obj) return kTRUE; return kFALSE;};
Bool_t IsInAcceptance();
Bool_t IsHadronSelected(AliAODTrack * track,const AliESDVertex *primary=0x0, Double_t magfield=0);
Bool_t CheckHadronKinematic(Double_t pt, Double_t d0);
Bool_t Charge(Short_t charge, AliAODTrack* track);
Bool_t CheckKaonCompatibility(AliAODTrack * track, Bool_t useMc, TClonesArray* mcArray, Int_t method=1);
Bool_t IsKZeroSelected(AliAODv0 *vzero, AliAODVertex *vtx1);
Bool_t *IsMCpartFromHF(Int_t label, TClonesArray*mcArray);
Bool_t InvMassDstarRejection(AliAODRecoDecayHF2Prong* d, AliAODTrack *track, Int_t hypD0) const;
void SetPidAssociated();
AliESDtrackCuts * GetESDTrackCuts() const {return fESDTrackCuts;}
AliAODPidHF * GetPIDObject() const {return fPidObj;}
TH3D * GetEfficiencyWeight() const {return fEffWeights;}
Int_t GetMaxNEventsInPool() const {return fPoolMaxNEvents;}
Int_t GetMinNTracksInPool() const {return fPoolMinNTracks;}
Int_t GetMinEventsToMix() const {return fMinEventsToMix;}
Int_t GetNZvtxPoolBins() const {return fNzVtxBins;}
Double_t *GetZvtxPoolBins() const {return fZvtxBins;}
Int_t GetNCentPoolBins() const {return fNCentBins;}
Double_t *GetCentPoolBins() const {return fCentBins;}
Int_t GetNofMCEventType() const {return fNofMCEventType;}
Int_t *GetMCEventType() const {return fMCEventType;}
Int_t GetPoolBin(Double_t multorcent, Double_t zVtx) const;
Int_t GetNTrackCuts() const {return fNTrackCuts;}
Float_t* GetAODTrackCuts() const {return fAODTrackCuts;}
TString * GetTrackCutNames() const {return fTrackCutsNames;}
Int_t GetNvZeroCuts() const {return fNvZeroCuts;}
Float_t * GetAODvZeroCuts() const {return fAODvZeroCuts;}
TString * GetvZeroCutNames() const {return fvZeroCutsNames;}
Int_t GetFilterBit() const {return fBit;}
Short_t GetCharge() const {return fCharge;}
TString GetDescription() const {return fDescription;}
void AddTrackCuts(const AliESDtrackCuts *cuts) {
delete fESDTrackCuts;
fESDTrackCuts=new AliESDtrackCuts(*cuts);
return;
}
void AddDescription(TString description){fDescription=description;}
void SetMaxNEventsInPool(Int_t events){fPoolMaxNEvents=events;}
void SetMinNTracksInPool(Int_t tracks){fPoolMinNTracks=tracks;}
void SetMinEventsToMix(Int_t events){fMinEventsToMix=events;}
void SetNofPoolBins(Int_t Nzvtxbins, Int_t Ncentbins){
fNzVtxBins=Nzvtxbins;
fNzVtxBinsDim=Nzvtxbins+1;
fNCentBins=Ncentbins;
fNCentBinsDim=Ncentbins+1;
}
void SetPoolBins(Double_t *ZvtxBins, Double_t* CentBins){
fZvtxBins=ZvtxBins;
fCentBins=CentBins;
}
void SetNofMCEventTypes(Int_t k) {fNofMCEventType=k;}
void SetMCEventTypes(Int_t *MCEventTypeArray);
void SetAODTrackCuts(Float_t *cutsarray);
void SetTrackCutsNames();
void SetAODvZeroCuts(Float_t *cutsarray);
void SetvZeroCutsNames();
void SetPidHF(AliAODPidHF* pid) {fPidObj = pid; return;}
void SetCharge(Short_t charge) {fCharge = charge;}
void SetFilterBit(Int_t bit) {fBit = bit;}
void SetEfficiencyWeightMap(TH3D *hMap){if(fEffWeights)delete fEffWeights;fEffWeights=(TH3D*)hMap->Clone();}
void SetTriggerEffWeightMapvspt(TH1D* hTrigMap) {if(fTrigEffWeightsvspt) delete fTrigEffWeightsvspt; fTrigEffWeightsvspt=(TH1D*)hTrigMap->Clone();}
void SetTriggerEffWeightMapvsptB(TH1D* hTrigMapB) {if(fTrigEffWeightsvsptB) delete fTrigEffWeightsvsptB; fTrigEffWeightsvsptB=(TH1D*)hTrigMapB->Clone();}
void SetTriggerEffWeightMap(TH2D* hTrigMap) {if(fTrigEffWeights) delete fTrigEffWeights; fTrigEffWeights=(TH2D*)hTrigMap->Clone();}
void SetTriggerEffWeightMapB(TH2D* hTrigMapB) {if(fTrigEffWeightsB) delete fTrigEffWeightsB; fTrigEffWeightsB=(TH2D*)hTrigMapB->Clone();}
Double_t GetTrackWeight(Double_t pt, Double_t eta,Double_t zvtx);
Double_t GetTrigWeight(Double_t pt, Double_t mult=0);
Double_t GetTrigWeightB(Double_t pt, Double_t mult=0);
Bool_t IsTrackEffMap(){if(fEffWeights) return kTRUE; else return kFALSE;}
Bool_t IsTrigEffMap1D(){ if(fTrigEffWeightsvspt) return kTRUE; else return kFALSE;}
Bool_t IsTrigEffMap1DB(){ if(fTrigEffWeightsvsptB) return kTRUE; else return kFALSE;}
Bool_t IsTrigEffMap2D(){ if(fTrigEffWeights) return kTRUE; else return kFALSE;}
Bool_t IsTrigEffMap2DB(){ if(fTrigEffWeightsB) return kTRUE; else return kFALSE;}
void Print(Option_t *option) const;
virtual void PrintAll() const;
virtual void PrintPoolParameters() const;
virtual void PrintSelectedMCevents() const;
void SetNVarsTrack(Int_t nVars){fNTrackCuts=nVars;}
void SetNVarsVzero(Int_t nVars){fNvZeroCuts=nVars;}
private:
AliESDtrackCuts *fESDTrackCuts;
AliAODPidHF * fPidObj;
TH3D *fEffWeights;
TH1D *fTrigEffWeightsvspt;
TH1D *fTrigEffWeightsvsptB;
TH2D *fTrigEffWeights;
TH2D *fTrigEffWeightsB;
Int_t fPoolMaxNEvents;
Int_t fPoolMinNTracks;
Int_t fMinEventsToMix;
Int_t fNzVtxBins;
Int_t fNzVtxBinsDim;
Double_t* fZvtxBins;
Int_t fNCentBins;
Int_t fNCentBinsDim;
Double_t* fCentBins;
Int_t fNofMCEventType;
Int_t *fMCEventType;
Int_t fNTrackCuts;
Float_t* fAODTrackCuts;
TString * fTrackCutsNames;
Int_t fNvZeroCuts;
Float_t *fAODvZeroCuts;
TString * fvZeroCutsNames;
Int_t fBit;
Short_t fCharge;
TString fDescription;
ClassDef(AliHFAssociatedTrackCuts,6);
};
#endif
AliHFAssociatedTrackCuts.h:1 AliHFAssociatedTrackCuts.h:2 AliHFAssociatedTrackCuts.h:3 AliHFAssociatedTrackCuts.h:4 AliHFAssociatedTrackCuts.h:5 AliHFAssociatedTrackCuts.h:6 AliHFAssociatedTrackCuts.h:7 AliHFAssociatedTrackCuts.h:8 AliHFAssociatedTrackCuts.h:9 AliHFAssociatedTrackCuts.h:10 AliHFAssociatedTrackCuts.h:11 AliHFAssociatedTrackCuts.h:12 AliHFAssociatedTrackCuts.h:13 AliHFAssociatedTrackCuts.h:14 AliHFAssociatedTrackCuts.h:15 AliHFAssociatedTrackCuts.h:16 AliHFAssociatedTrackCuts.h:17 AliHFAssociatedTrackCuts.h:18 AliHFAssociatedTrackCuts.h:19 AliHFAssociatedTrackCuts.h:20 AliHFAssociatedTrackCuts.h:21 AliHFAssociatedTrackCuts.h:22 AliHFAssociatedTrackCuts.h:23 AliHFAssociatedTrackCuts.h:24 AliHFAssociatedTrackCuts.h:25 AliHFAssociatedTrackCuts.h:26 AliHFAssociatedTrackCuts.h:27 AliHFAssociatedTrackCuts.h:28 AliHFAssociatedTrackCuts.h:29 AliHFAssociatedTrackCuts.h:30 AliHFAssociatedTrackCuts.h:31 AliHFAssociatedTrackCuts.h:32 AliHFAssociatedTrackCuts.h:33 AliHFAssociatedTrackCuts.h:34 AliHFAssociatedTrackCuts.h:35 AliHFAssociatedTrackCuts.h:36 AliHFAssociatedTrackCuts.h:37 AliHFAssociatedTrackCuts.h:38 AliHFAssociatedTrackCuts.h:39 AliHFAssociatedTrackCuts.h:40 AliHFAssociatedTrackCuts.h:41 AliHFAssociatedTrackCuts.h:42 AliHFAssociatedTrackCuts.h:43 AliHFAssociatedTrackCuts.h:44 AliHFAssociatedTrackCuts.h:45 AliHFAssociatedTrackCuts.h:46 AliHFAssociatedTrackCuts.h:47 AliHFAssociatedTrackCuts.h:48 AliHFAssociatedTrackCuts.h:49 AliHFAssociatedTrackCuts.h:50 AliHFAssociatedTrackCuts.h:51 AliHFAssociatedTrackCuts.h:52 AliHFAssociatedTrackCuts.h:53 AliHFAssociatedTrackCuts.h:54 AliHFAssociatedTrackCuts.h:55 AliHFAssociatedTrackCuts.h:56 AliHFAssociatedTrackCuts.h:57 AliHFAssociatedTrackCuts.h:58 AliHFAssociatedTrackCuts.h:59 AliHFAssociatedTrackCuts.h:60 AliHFAssociatedTrackCuts.h:61 AliHFAssociatedTrackCuts.h:62 AliHFAssociatedTrackCuts.h:63 AliHFAssociatedTrackCuts.h:64 AliHFAssociatedTrackCuts.h:65 AliHFAssociatedTrackCuts.h:66 AliHFAssociatedTrackCuts.h:67 AliHFAssociatedTrackCuts.h:68 AliHFAssociatedTrackCuts.h:69 AliHFAssociatedTrackCuts.h:70 AliHFAssociatedTrackCuts.h:71 AliHFAssociatedTrackCuts.h:72 AliHFAssociatedTrackCuts.h:73 AliHFAssociatedTrackCuts.h:74 AliHFAssociatedTrackCuts.h:75 AliHFAssociatedTrackCuts.h:76 AliHFAssociatedTrackCuts.h:77 AliHFAssociatedTrackCuts.h:78 AliHFAssociatedTrackCuts.h:79 AliHFAssociatedTrackCuts.h:80 AliHFAssociatedTrackCuts.h:81 AliHFAssociatedTrackCuts.h:82 AliHFAssociatedTrackCuts.h:83 AliHFAssociatedTrackCuts.h:84 AliHFAssociatedTrackCuts.h:85 AliHFAssociatedTrackCuts.h:86 AliHFAssociatedTrackCuts.h:87 AliHFAssociatedTrackCuts.h:88 AliHFAssociatedTrackCuts.h:89 AliHFAssociatedTrackCuts.h:90 AliHFAssociatedTrackCuts.h:91 AliHFAssociatedTrackCuts.h:92 AliHFAssociatedTrackCuts.h:93 AliHFAssociatedTrackCuts.h:94 AliHFAssociatedTrackCuts.h:95 AliHFAssociatedTrackCuts.h:96 AliHFAssociatedTrackCuts.h:97 AliHFAssociatedTrackCuts.h:98 AliHFAssociatedTrackCuts.h:99 AliHFAssociatedTrackCuts.h:100 AliHFAssociatedTrackCuts.h:101 AliHFAssociatedTrackCuts.h:102 AliHFAssociatedTrackCuts.h:103 AliHFAssociatedTrackCuts.h:104 AliHFAssociatedTrackCuts.h:105 AliHFAssociatedTrackCuts.h:106 AliHFAssociatedTrackCuts.h:107 AliHFAssociatedTrackCuts.h:108 AliHFAssociatedTrackCuts.h:109 AliHFAssociatedTrackCuts.h:110 AliHFAssociatedTrackCuts.h:111 AliHFAssociatedTrackCuts.h:112 AliHFAssociatedTrackCuts.h:113 AliHFAssociatedTrackCuts.h:114 AliHFAssociatedTrackCuts.h:115 AliHFAssociatedTrackCuts.h:116 AliHFAssociatedTrackCuts.h:117 AliHFAssociatedTrackCuts.h:118 AliHFAssociatedTrackCuts.h:119 AliHFAssociatedTrackCuts.h:120 AliHFAssociatedTrackCuts.h:121 AliHFAssociatedTrackCuts.h:122 AliHFAssociatedTrackCuts.h:123 AliHFAssociatedTrackCuts.h:124 AliHFAssociatedTrackCuts.h:125 AliHFAssociatedTrackCuts.h:126 AliHFAssociatedTrackCuts.h:127 AliHFAssociatedTrackCuts.h:128 AliHFAssociatedTrackCuts.h:129 AliHFAssociatedTrackCuts.h:130 AliHFAssociatedTrackCuts.h:131 AliHFAssociatedTrackCuts.h:132 AliHFAssociatedTrackCuts.h:133 AliHFAssociatedTrackCuts.h:134 AliHFAssociatedTrackCuts.h:135 AliHFAssociatedTrackCuts.h:136 AliHFAssociatedTrackCuts.h:137 AliHFAssociatedTrackCuts.h:138 AliHFAssociatedTrackCuts.h:139 AliHFAssociatedTrackCuts.h:140 AliHFAssociatedTrackCuts.h:141 AliHFAssociatedTrackCuts.h:142 AliHFAssociatedTrackCuts.h:143 AliHFAssociatedTrackCuts.h:144 AliHFAssociatedTrackCuts.h:145 AliHFAssociatedTrackCuts.h:146 AliHFAssociatedTrackCuts.h:147 AliHFAssociatedTrackCuts.h:148 AliHFAssociatedTrackCuts.h:149 AliHFAssociatedTrackCuts.h:150 AliHFAssociatedTrackCuts.h:151 AliHFAssociatedTrackCuts.h:152 AliHFAssociatedTrackCuts.h:153 AliHFAssociatedTrackCuts.h:154 AliHFAssociatedTrackCuts.h:155 AliHFAssociatedTrackCuts.h:156 AliHFAssociatedTrackCuts.h:157 AliHFAssociatedTrackCuts.h:158 AliHFAssociatedTrackCuts.h:159 AliHFAssociatedTrackCuts.h:160 AliHFAssociatedTrackCuts.h:161 AliHFAssociatedTrackCuts.h:162 AliHFAssociatedTrackCuts.h:163 AliHFAssociatedTrackCuts.h:164 AliHFAssociatedTrackCuts.h:165 AliHFAssociatedTrackCuts.h:166 AliHFAssociatedTrackCuts.h:167 AliHFAssociatedTrackCuts.h:168 AliHFAssociatedTrackCuts.h:169 AliHFAssociatedTrackCuts.h:170 AliHFAssociatedTrackCuts.h:171 AliHFAssociatedTrackCuts.h:172 AliHFAssociatedTrackCuts.h:173 AliHFAssociatedTrackCuts.h:174 AliHFAssociatedTrackCuts.h:175 AliHFAssociatedTrackCuts.h:176 AliHFAssociatedTrackCuts.h:177 AliHFAssociatedTrackCuts.h:178 AliHFAssociatedTrackCuts.h:179 AliHFAssociatedTrackCuts.h:180 AliHFAssociatedTrackCuts.h:181 AliHFAssociatedTrackCuts.h:182 AliHFAssociatedTrackCuts.h:183 AliHFAssociatedTrackCuts.h:184 AliHFAssociatedTrackCuts.h:185 AliHFAssociatedTrackCuts.h:186 AliHFAssociatedTrackCuts.h:187 AliHFAssociatedTrackCuts.h:188 AliHFAssociatedTrackCuts.h:189 AliHFAssociatedTrackCuts.h:190 AliHFAssociatedTrackCuts.h:191 AliHFAssociatedTrackCuts.h:192 AliHFAssociatedTrackCuts.h:193 AliHFAssociatedTrackCuts.h:194 AliHFAssociatedTrackCuts.h:195 AliHFAssociatedTrackCuts.h:196 AliHFAssociatedTrackCuts.h:197 AliHFAssociatedTrackCuts.h:198 AliHFAssociatedTrackCuts.h:199 AliHFAssociatedTrackCuts.h:200 AliHFAssociatedTrackCuts.h:201 AliHFAssociatedTrackCuts.h:202 AliHFAssociatedTrackCuts.h:203 AliHFAssociatedTrackCuts.h:204 AliHFAssociatedTrackCuts.h:205 AliHFAssociatedTrackCuts.h:206 AliHFAssociatedTrackCuts.h:207 AliHFAssociatedTrackCuts.h:208 AliHFAssociatedTrackCuts.h:209