#ifndef ALIANALYSISTASKTRIGGEREDBF_CXX
#define ALIANALYSISTASKTRIGGEREDBF_CXX
#include "AliLog.h"
#include "AliAnalysisTaskSE.h"
#include "AliBalanceTriggered.h"
#include "AliPIDResponse.h"
#include "AliPIDCombined.h"
class TList;
class TH1F;
class TH2F;
class AliBalanceTriggered;
class AliEventPoolManager;
class AliAnalysisTaskTriggeredBF : public AliAnalysisTaskSE {
public:
AliAnalysisTaskTriggeredBF(const char *name = "AliAnalysisTaskTriggeredBF");
virtual ~AliAnalysisTaskTriggeredBF();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void UserExecMix(Option_t*);
virtual void FinishTaskOutput();
virtual void Terminate(Option_t *);
void SetAnalysisObject(AliBalanceTriggered *const analysis) {
fBalance = analysis;
}
void SetShufflingObject(AliBalanceTriggered *const analysisShuffled) {
fRunShuffling = kTRUE;
fShuffledBalance = analysisShuffled;
}
void SetMixingObject(AliBalanceTriggered *const analysisMixed) {
fRunMixing = kTRUE;
fMixedBalance = analysisMixed;
}
void SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; }
void SetRunV0(Bool_t runV0 = kTRUE) { fRunV0 = runV0; }
void SetVertexDiamond(Double_t vx, Double_t vy, Double_t vz) {
fVxMax = vx;
fVyMax = vy;
fVzMax = vz;
}
void SetAODtrackCutBit(Int_t bit){
nAODtrackCutBit = bit;
}
void SetKinematicsCutsAOD(Double_t ptmin, Double_t ptmax, Double_t etamin, Double_t etamax){
fPtMin = ptmin; fPtMax = ptmax;
fEtaMin = etamin; fEtaMax = etamax;
}
void SetExtraDCACutsAOD(Double_t DCAxy, Double_t DCAz){
fDCAxyCut = DCAxy;
fDCAzCut = DCAz;
}
void SetExtraTPCCutsAOD(Double_t maxTPCchi2, Int_t minNClustersTPC){
fTPCchi2Cut = maxTPCchi2;
fNClustersTPCCut = minNClustersTPC;
}
void SetCentralityEstimator(const char* centralityEstimator) {fCentralityEstimator = centralityEstimator;}
const char* GetCentralityEstimator(void) const {return fCentralityEstimator;}
void SetCentralityPercentileRange(Double_t min, Double_t max) {
fUseCentrality = kTRUE;
fCentralityPercentileMin=min;
fCentralityPercentileMax=max;
}
void SetImpactParameterRange(Double_t min, Double_t max) {
fUseCentrality = kTRUE;
fImpactParameterMin=min;
fImpactParameterMax=max;
}
void SetMultiplicityRange(Int_t min, Int_t max) {
fUseMultiplicity = kTRUE;
fNumberOfAcceptedTracksMin = min;
fNumberOfAcceptedTracksMax = max;}
void UseOfflineTrigger() {fUseOfflineTrigger = kTRUE;}
private:
Float_t IsEventAccepted(AliVEvent* event);
TObjArray* GetAcceptedTracks(AliVEvent* event);
TObjArray* GetAcceptedV0s(AliVEvent* event);
TObjArray* GetShuffledTracks(TObjArray* tracks);
AliBalanceTriggered *fBalance;
Bool_t fRunShuffling;
AliBalanceTriggered *fShuffledBalance;
Bool_t fRunMixing;
Int_t fMixingTracks;
AliBalanceTriggered *fMixedBalance;
AliEventPoolManager* fPoolMgr;
Bool_t fRunV0;
AliPIDResponse *fPIDResponse;
AliPIDCombined *fPIDCombined;
TList *fList;
TList *fListTriggeredBF;
TList *fListTriggeredBFS;
TList *fListTriggeredBFM;
TList *fHistListPIDQA;
TList *fHistListV0;
TH1F *fHistEventStats;
TH2F *fHistCentStats;
TH1F *fHistTriggerStats;
TH1F *fHistTrackStats;
TH1F *fHistVx;
TH1F *fHistVy;
TH1F *fHistVz;
TH2F *fHistClus;
TH2F *fHistDCA;
TH1F *fHistChi2;
TH1F *fHistPt;
TH1F *fHistEta;
TH1F *fHistPhi;
TH1F *fHistPhiBefore;
TH1F *fHistPhiAfter;
TH2F *fHistV0M;
TH2F *fHistRefTracks;
TH1F *fHistV0MultiplicityBeforeTrigSel;
TH1F *fHistV0MultiplicityForTrigEvt;
TH1F *fHistV0MultiplicityForSelEvt;
TH1F *fHistV0MultiplicityForSelEvtNoTPCOnly;
TH1F *fHistV0MultiplicityForSelEvtNoTPCOnlyNoPileup;
TH1F *fHistMultiplicityBeforeTrigSel;
TH1F *fHistMultiplicityForTrigEvt;
TH1F *fHistMultiplicity;
TH1F *fHistMultiplicityNoTPCOnly;
TH1F *fHistMultiplicityNoTPCOnlyNoPileup;
TH1F* fHistV0InvMassK0;
TH1F* fHistV0InvMassLambda;
TH1F* fHistV0InvMassAntiLambda;
TH2F* fHistV0Armenteros;
TH1F* fHistV0SelInvMassK0;
TH1F* fHistV0SelInvMassLambda;
TH1F* fHistV0SelInvMassAntiLambda;
TH2F* fHistV0SelArmenteros;
TString fCentralityEstimator;
Bool_t fUseCentrality;
Double_t fCentralityPercentileMin;
Double_t fCentralityPercentileMax;
Double_t fImpactParameterMin;
Double_t fImpactParameterMax;
Bool_t fUseMultiplicity;
Int_t fNumberOfAcceptedTracksMin;
Int_t fNumberOfAcceptedTracksMax;
TH1F *fHistNumberOfAcceptedTracks;
Bool_t fUseOfflineTrigger;
Double_t fVxMax;
Double_t fVyMax;
Double_t fVzMax;
Int_t nAODtrackCutBit;
Double_t fPtMin;
Double_t fPtMax;
Double_t fEtaMin;
Double_t fEtaMax;
Double_t fDCAxyCut;
Double_t fDCAzCut;
Double_t fTPCchi2Cut;
Int_t fNClustersTPCCut;
AliAnalysisTaskTriggeredBF(const AliAnalysisTaskTriggeredBF&);
AliAnalysisTaskTriggeredBF& operator=(const AliAnalysisTaskTriggeredBF&);
ClassDef(AliAnalysisTaskTriggeredBF, 1);
};
class AliBFBasicParticle : public AliVParticle
{
public:
AliBFBasicParticle(Float_t eta, Float_t phi, Float_t pt, Short_t charge, Double_t correction)
: fEta(eta), fPhi(phi), fpT(pt), fCharge(charge), fCorrection(correction)
{
}
~AliBFBasicParticle() {}
virtual Double_t Px() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Py() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Pz() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Pt() const { return fpT; }
virtual Double_t P() const { AliFatal("Not implemented"); return 0; }
virtual Bool_t PxPyPz(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
virtual Double_t Xv() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Yv() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Zv() const { AliFatal("Not implemented"); return 0; }
virtual Bool_t XvYvZv(Double_t[3]) const { AliFatal("Not implemented"); return 0; }
virtual Double_t OneOverPt() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Phi() const { return fPhi; }
virtual Double_t Theta() const { AliFatal("Not implemented"); return 0; }
virtual Double_t E() const { AliFatal("Not implemented"); return 0; }
virtual Double_t M() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Eta() const { return fEta; }
virtual Double_t Y() const { AliFatal("Not implemented"); return 0; }
virtual Short_t Charge() const { return fCharge; }
virtual Int_t GetLabel() const { AliFatal("Not implemented"); return 0; }
virtual Double_t Correction() const { return fCorrection; }
virtual Int_t PdgCode() const { AliFatal("Not implemented"); return 0; }
virtual const Double_t *PID() const { AliFatal("Not implemented"); return 0; }
private:
Float_t fEta;
Float_t fPhi;
Float_t fpT;
Short_t fCharge;
Double_t fCorrection;
ClassDef( AliBFBasicParticle, 1);
};
#endif
AliAnalysisTaskTriggeredBF.h:1 AliAnalysisTaskTriggeredBF.h:2 AliAnalysisTaskTriggeredBF.h:3 AliAnalysisTaskTriggeredBF.h:4 AliAnalysisTaskTriggeredBF.h:5 AliAnalysisTaskTriggeredBF.h:6 AliAnalysisTaskTriggeredBF.h:7 AliAnalysisTaskTriggeredBF.h:8 AliAnalysisTaskTriggeredBF.h:9 AliAnalysisTaskTriggeredBF.h:10 AliAnalysisTaskTriggeredBF.h:11 AliAnalysisTaskTriggeredBF.h:12 AliAnalysisTaskTriggeredBF.h:13 AliAnalysisTaskTriggeredBF.h:14 AliAnalysisTaskTriggeredBF.h:15 AliAnalysisTaskTriggeredBF.h:16 AliAnalysisTaskTriggeredBF.h:17 AliAnalysisTaskTriggeredBF.h:18 AliAnalysisTaskTriggeredBF.h:19 AliAnalysisTaskTriggeredBF.h:20 AliAnalysisTaskTriggeredBF.h:21 AliAnalysisTaskTriggeredBF.h:22 AliAnalysisTaskTriggeredBF.h:23 AliAnalysisTaskTriggeredBF.h:24 AliAnalysisTaskTriggeredBF.h:25 AliAnalysisTaskTriggeredBF.h:26 AliAnalysisTaskTriggeredBF.h:27 AliAnalysisTaskTriggeredBF.h:28 AliAnalysisTaskTriggeredBF.h:29 AliAnalysisTaskTriggeredBF.h:30 AliAnalysisTaskTriggeredBF.h:31 AliAnalysisTaskTriggeredBF.h:32 AliAnalysisTaskTriggeredBF.h:33 AliAnalysisTaskTriggeredBF.h:34 AliAnalysisTaskTriggeredBF.h:35 AliAnalysisTaskTriggeredBF.h:36 AliAnalysisTaskTriggeredBF.h:37 AliAnalysisTaskTriggeredBF.h:38 AliAnalysisTaskTriggeredBF.h:39 AliAnalysisTaskTriggeredBF.h:40 AliAnalysisTaskTriggeredBF.h:41 AliAnalysisTaskTriggeredBF.h:42 AliAnalysisTaskTriggeredBF.h:43 AliAnalysisTaskTriggeredBF.h:44 AliAnalysisTaskTriggeredBF.h:45 AliAnalysisTaskTriggeredBF.h:46 AliAnalysisTaskTriggeredBF.h:47 AliAnalysisTaskTriggeredBF.h:48 AliAnalysisTaskTriggeredBF.h:49 AliAnalysisTaskTriggeredBF.h:50 AliAnalysisTaskTriggeredBF.h:51 AliAnalysisTaskTriggeredBF.h:52 AliAnalysisTaskTriggeredBF.h:53 AliAnalysisTaskTriggeredBF.h:54 AliAnalysisTaskTriggeredBF.h:55 AliAnalysisTaskTriggeredBF.h:56 AliAnalysisTaskTriggeredBF.h:57 AliAnalysisTaskTriggeredBF.h:58 AliAnalysisTaskTriggeredBF.h:59 AliAnalysisTaskTriggeredBF.h:60 AliAnalysisTaskTriggeredBF.h:61 AliAnalysisTaskTriggeredBF.h:62 AliAnalysisTaskTriggeredBF.h:63 AliAnalysisTaskTriggeredBF.h:64 AliAnalysisTaskTriggeredBF.h:65 AliAnalysisTaskTriggeredBF.h:66 AliAnalysisTaskTriggeredBF.h:67 AliAnalysisTaskTriggeredBF.h:68 AliAnalysisTaskTriggeredBF.h:69 AliAnalysisTaskTriggeredBF.h:70 AliAnalysisTaskTriggeredBF.h:71 AliAnalysisTaskTriggeredBF.h:72 AliAnalysisTaskTriggeredBF.h:73 AliAnalysisTaskTriggeredBF.h:74 AliAnalysisTaskTriggeredBF.h:75 AliAnalysisTaskTriggeredBF.h:76 AliAnalysisTaskTriggeredBF.h:77 AliAnalysisTaskTriggeredBF.h:78 AliAnalysisTaskTriggeredBF.h:79 AliAnalysisTaskTriggeredBF.h:80 AliAnalysisTaskTriggeredBF.h:81 AliAnalysisTaskTriggeredBF.h:82 AliAnalysisTaskTriggeredBF.h:83 AliAnalysisTaskTriggeredBF.h:84 AliAnalysisTaskTriggeredBF.h:85 AliAnalysisTaskTriggeredBF.h:86 AliAnalysisTaskTriggeredBF.h:87 AliAnalysisTaskTriggeredBF.h:88 AliAnalysisTaskTriggeredBF.h:89 AliAnalysisTaskTriggeredBF.h:90 AliAnalysisTaskTriggeredBF.h:91 AliAnalysisTaskTriggeredBF.h:92 AliAnalysisTaskTriggeredBF.h:93 AliAnalysisTaskTriggeredBF.h:94 AliAnalysisTaskTriggeredBF.h:95 AliAnalysisTaskTriggeredBF.h:96 AliAnalysisTaskTriggeredBF.h:97 AliAnalysisTaskTriggeredBF.h:98 AliAnalysisTaskTriggeredBF.h:99 AliAnalysisTaskTriggeredBF.h:100 AliAnalysisTaskTriggeredBF.h:101 AliAnalysisTaskTriggeredBF.h:102 AliAnalysisTaskTriggeredBF.h:103 AliAnalysisTaskTriggeredBF.h:104 AliAnalysisTaskTriggeredBF.h:105 AliAnalysisTaskTriggeredBF.h:106 AliAnalysisTaskTriggeredBF.h:107 AliAnalysisTaskTriggeredBF.h:108 AliAnalysisTaskTriggeredBF.h:109 AliAnalysisTaskTriggeredBF.h:110 AliAnalysisTaskTriggeredBF.h:111 AliAnalysisTaskTriggeredBF.h:112 AliAnalysisTaskTriggeredBF.h:113 AliAnalysisTaskTriggeredBF.h:114 AliAnalysisTaskTriggeredBF.h:115 AliAnalysisTaskTriggeredBF.h:116 AliAnalysisTaskTriggeredBF.h:117 AliAnalysisTaskTriggeredBF.h:118 AliAnalysisTaskTriggeredBF.h:119 AliAnalysisTaskTriggeredBF.h:120 AliAnalysisTaskTriggeredBF.h:121 AliAnalysisTaskTriggeredBF.h:122 AliAnalysisTaskTriggeredBF.h:123 AliAnalysisTaskTriggeredBF.h:124 AliAnalysisTaskTriggeredBF.h:125 AliAnalysisTaskTriggeredBF.h:126 AliAnalysisTaskTriggeredBF.h:127 AliAnalysisTaskTriggeredBF.h:128 AliAnalysisTaskTriggeredBF.h:129 AliAnalysisTaskTriggeredBF.h:130 AliAnalysisTaskTriggeredBF.h:131 AliAnalysisTaskTriggeredBF.h:132 AliAnalysisTaskTriggeredBF.h:133 AliAnalysisTaskTriggeredBF.h:134 AliAnalysisTaskTriggeredBF.h:135 AliAnalysisTaskTriggeredBF.h:136 AliAnalysisTaskTriggeredBF.h:137 AliAnalysisTaskTriggeredBF.h:138 AliAnalysisTaskTriggeredBF.h:139 AliAnalysisTaskTriggeredBF.h:140 AliAnalysisTaskTriggeredBF.h:141 AliAnalysisTaskTriggeredBF.h:142 AliAnalysisTaskTriggeredBF.h:143 AliAnalysisTaskTriggeredBF.h:144 AliAnalysisTaskTriggeredBF.h:145 AliAnalysisTaskTriggeredBF.h:146 AliAnalysisTaskTriggeredBF.h:147 AliAnalysisTaskTriggeredBF.h:148 AliAnalysisTaskTriggeredBF.h:149 AliAnalysisTaskTriggeredBF.h:150 AliAnalysisTaskTriggeredBF.h:151 AliAnalysisTaskTriggeredBF.h:152 AliAnalysisTaskTriggeredBF.h:153 AliAnalysisTaskTriggeredBF.h:154 AliAnalysisTaskTriggeredBF.h:155 AliAnalysisTaskTriggeredBF.h:156 AliAnalysisTaskTriggeredBF.h:157 AliAnalysisTaskTriggeredBF.h:158 AliAnalysisTaskTriggeredBF.h:159 AliAnalysisTaskTriggeredBF.h:160 AliAnalysisTaskTriggeredBF.h:161 AliAnalysisTaskTriggeredBF.h:162 AliAnalysisTaskTriggeredBF.h:163 AliAnalysisTaskTriggeredBF.h:164 AliAnalysisTaskTriggeredBF.h:165 AliAnalysisTaskTriggeredBF.h:166 AliAnalysisTaskTriggeredBF.h:167 AliAnalysisTaskTriggeredBF.h:168 AliAnalysisTaskTriggeredBF.h:169 AliAnalysisTaskTriggeredBF.h:170 AliAnalysisTaskTriggeredBF.h:171 AliAnalysisTaskTriggeredBF.h:172 AliAnalysisTaskTriggeredBF.h:173 AliAnalysisTaskTriggeredBF.h:174 AliAnalysisTaskTriggeredBF.h:175 AliAnalysisTaskTriggeredBF.h:176 AliAnalysisTaskTriggeredBF.h:177 AliAnalysisTaskTriggeredBF.h:178 AliAnalysisTaskTriggeredBF.h:179 AliAnalysisTaskTriggeredBF.h:180 AliAnalysisTaskTriggeredBF.h:181 AliAnalysisTaskTriggeredBF.h:182 AliAnalysisTaskTriggeredBF.h:183 AliAnalysisTaskTriggeredBF.h:184 AliAnalysisTaskTriggeredBF.h:185 AliAnalysisTaskTriggeredBF.h:186 AliAnalysisTaskTriggeredBF.h:187 AliAnalysisTaskTriggeredBF.h:188 AliAnalysisTaskTriggeredBF.h:189 AliAnalysisTaskTriggeredBF.h:190 AliAnalysisTaskTriggeredBF.h:191 AliAnalysisTaskTriggeredBF.h:192 AliAnalysisTaskTriggeredBF.h:193 AliAnalysisTaskTriggeredBF.h:194 AliAnalysisTaskTriggeredBF.h:195 AliAnalysisTaskTriggeredBF.h:196 AliAnalysisTaskTriggeredBF.h:197 AliAnalysisTaskTriggeredBF.h:198 AliAnalysisTaskTriggeredBF.h:199 AliAnalysisTaskTriggeredBF.h:200 AliAnalysisTaskTriggeredBF.h:201 AliAnalysisTaskTriggeredBF.h:202 AliAnalysisTaskTriggeredBF.h:203 AliAnalysisTaskTriggeredBF.h:204 AliAnalysisTaskTriggeredBF.h:205 AliAnalysisTaskTriggeredBF.h:206 AliAnalysisTaskTriggeredBF.h:207 AliAnalysisTaskTriggeredBF.h:208 AliAnalysisTaskTriggeredBF.h:209 AliAnalysisTaskTriggeredBF.h:210 AliAnalysisTaskTriggeredBF.h:211 AliAnalysisTaskTriggeredBF.h:212 AliAnalysisTaskTriggeredBF.h:213 AliAnalysisTaskTriggeredBF.h:214 AliAnalysisTaskTriggeredBF.h:215 AliAnalysisTaskTriggeredBF.h:216 AliAnalysisTaskTriggeredBF.h:217 AliAnalysisTaskTriggeredBF.h:218 AliAnalysisTaskTriggeredBF.h:219 AliAnalysisTaskTriggeredBF.h:220 AliAnalysisTaskTriggeredBF.h:221 AliAnalysisTaskTriggeredBF.h:222 AliAnalysisTaskTriggeredBF.h:223 AliAnalysisTaskTriggeredBF.h:224 AliAnalysisTaskTriggeredBF.h:225 AliAnalysisTaskTriggeredBF.h:226 AliAnalysisTaskTriggeredBF.h:227 AliAnalysisTaskTriggeredBF.h:228 AliAnalysisTaskTriggeredBF.h:229 AliAnalysisTaskTriggeredBF.h:230 AliAnalysisTaskTriggeredBF.h:231 AliAnalysisTaskTriggeredBF.h:232 AliAnalysisTaskTriggeredBF.h:233 AliAnalysisTaskTriggeredBF.h:234 AliAnalysisTaskTriggeredBF.h:235 AliAnalysisTaskTriggeredBF.h:236 AliAnalysisTaskTriggeredBF.h:237 AliAnalysisTaskTriggeredBF.h:238 AliAnalysisTaskTriggeredBF.h:239 AliAnalysisTaskTriggeredBF.h:240 AliAnalysisTaskTriggeredBF.h:241 AliAnalysisTaskTriggeredBF.h:242 AliAnalysisTaskTriggeredBF.h:243 AliAnalysisTaskTriggeredBF.h:244 AliAnalysisTaskTriggeredBF.h:245 AliAnalysisTaskTriggeredBF.h:246 AliAnalysisTaskTriggeredBF.h:247 AliAnalysisTaskTriggeredBF.h:248 AliAnalysisTaskTriggeredBF.h:249 AliAnalysisTaskTriggeredBF.h:250 AliAnalysisTaskTriggeredBF.h:251 AliAnalysisTaskTriggeredBF.h:252 AliAnalysisTaskTriggeredBF.h:253 AliAnalysisTaskTriggeredBF.h:254 AliAnalysisTaskTriggeredBF.h:255 AliAnalysisTaskTriggeredBF.h:256 AliAnalysisTaskTriggeredBF.h:257 AliAnalysisTaskTriggeredBF.h:258