#ifndef ALIANALYSISTASKEVENTMIXINGBF_CXX
#define ALIANALYSISTASKEVENTMIXINGBF_CXX
class TList;
class TH1F;
class TH2F;
class TF1;
class AliMixInputEventHandler;
class AliBalanceEventMixing;
class AliESDtrackCuts;
#include "AliAnalysisTaskSE.h"
#include "AliBalanceEventMixing.h"
#include "AliPID.h"
#include "AliPIDResponse.h"
#include "AliPIDCombined.h"
class AliAnalysisTaskEventMixingBF : public AliAnalysisTaskSE {
public:
AliAnalysisTaskEventMixingBF(const char *name = "AliAnalysisTaskEventMixingBF");
virtual ~AliAnalysisTaskEventMixingBF();
virtual void UserCreateOutputObjects();
virtual void UserExec(Option_t *option);
virtual void UserExecMix(Option_t*);
virtual void FinishTaskOutput();
virtual void Terminate(Option_t *);
void SetAnalysisObject(AliBalanceEventMixing *const analysis) {
fBalance = analysis;
}
void SetShufflingObject(AliBalanceEventMixing *const analysisShuffled) {
fRunShuffling = kTRUE;
fShuffledBalance = analysisShuffled;
}
void SetAnalysisCutObject(AliESDtrackCuts *const trackCuts) {
fESDtrackCuts = trackCuts;}
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 SetKinematicsCutsMC(Double_t ptmin, Double_t ptmax,
Double_t etamin, Double_t etamax){
fPtMin = ptmin; fPtMax = ptmax;
fEtaMin = etamin; fEtaMax = etamax;
}
void UseFlowAfterBurner(TF1 *gDifferentialV2) {
fDifferentialV2 = gDifferentialV2;
fUseFlowAfterBurner = kTRUE;
}
void ExcludeResonancesInMC() {fExcludeResonancesInMC = kTRUE;}
void SetPDGCode(Int_t gPdgCode) {
fUseMCPdgCode = kTRUE;
fPDGCodeToBeAnalyzed = gPdgCode;
}
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;}
void SetAcceptanceParameterization(TF1 *parameterization) {
fAcceptanceParameterization = parameterization;}
enum kDetectorUsedForPID { kTPCpid, kTOFpid, kTPCTOF };
enum kParticleOfInterest { kMuon, kElectron, kPion, kKaon, kProton };
void SetUseBayesianPID(Double_t gMinProbabilityValue) {
fUsePID = kTRUE; fUsePIDnSigma = kFALSE; fUsePIDPropabilities = kTRUE;
fMinAcceptedPIDProbability = gMinProbabilityValue; }
void SetUseNSigmaPID(Double_t gMaxNSigma) {
fUsePID = kTRUE; fUsePIDPropabilities = kFALSE; fUsePIDnSigma = kTRUE;
fPIDNSigma = gMaxNSigma; }
void SetParticleOfInterest(kParticleOfInterest poi) {
fParticleOfInterest = poi;}
void SetDetectorUsedForPID(kDetectorUsedForPID detConfig) {
fPidDetectorConfig = detConfig;}
private:
AliBalanceEventMixing *fBalance;
Bool_t fRunShuffling;
AliBalanceEventMixing *fShuffledBalance;
TList *fList;
TList *fListEventMixingBF;
TList *fListEventMixingBFS;
TList *fHistListPIDQA;
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;
TH2D *fHistdEdxVsPTPCbeforePID;
TH2D *fHistBetavsPTOFbeforePID;
TH2D *fHistProbTPCvsPtbeforePID;
TH2D *fHistProbTOFvsPtbeforePID;
TH2D *fHistProbTPCTOFvsPtbeforePID;
TH2D *fHistNSigmaTPCvsPtbeforePID;
TH2D *fHistNSigmaTOFvsPtbeforePID;
TH2D *fHistdEdxVsPTPCafterPID;
TH2D *fHistBetavsPTOFafterPID;
TH2D *fHistProbTPCvsPtafterPID;
TH2D *fHistProbTOFvsPtafterPID;
TH2D *fHistProbTPCTOFvsPtafterPID;
TH2D *fHistNSigmaTPCvsPtafterPID;
TH2D *fHistNSigmaTOFvsPtafterPID;
AliPIDResponse *fPIDResponse;
AliPIDCombined *fPIDCombined;
kParticleOfInterest fParticleOfInterest;
kDetectorUsedForPID fPidDetectorConfig;
Bool_t fUsePID;
Bool_t fUsePIDnSigma;
Bool_t fUsePIDPropabilities;
Double_t fPIDNSigma;
Double_t fMinAcceptedPIDProbability;
AliESDtrackCuts *fESDtrackCuts;
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;
TF1 *fAcceptanceParameterization;
TF1 *fDifferentialV2;
Bool_t fUseFlowAfterBurner;
Bool_t fExcludeResonancesInMC;
Bool_t fUseMCPdgCode;
Int_t fPDGCodeToBeAnalyzed;
AliVEvent *fMainEvent;
AliVEvent *fMixEvent;
AliMixInputEventHandler *SetupEventsForMixing();
AliAnalysisTaskEventMixingBF(const AliAnalysisTaskEventMixingBF&);
AliAnalysisTaskEventMixingBF& operator=(const AliAnalysisTaskEventMixingBF&);
ClassDef(AliAnalysisTaskEventMixingBF, 1);
};
#endif
AliAnalysisTaskEventMixingBF.h:1 AliAnalysisTaskEventMixingBF.h:2 AliAnalysisTaskEventMixingBF.h:3 AliAnalysisTaskEventMixingBF.h:4 AliAnalysisTaskEventMixingBF.h:5 AliAnalysisTaskEventMixingBF.h:6 AliAnalysisTaskEventMixingBF.h:7 AliAnalysisTaskEventMixingBF.h:8 AliAnalysisTaskEventMixingBF.h:9 AliAnalysisTaskEventMixingBF.h:10 AliAnalysisTaskEventMixingBF.h:11 AliAnalysisTaskEventMixingBF.h:12 AliAnalysisTaskEventMixingBF.h:13 AliAnalysisTaskEventMixingBF.h:14 AliAnalysisTaskEventMixingBF.h:15 AliAnalysisTaskEventMixingBF.h:16 AliAnalysisTaskEventMixingBF.h:17 AliAnalysisTaskEventMixingBF.h:18 AliAnalysisTaskEventMixingBF.h:19 AliAnalysisTaskEventMixingBF.h:20 AliAnalysisTaskEventMixingBF.h:21 AliAnalysisTaskEventMixingBF.h:22 AliAnalysisTaskEventMixingBF.h:23 AliAnalysisTaskEventMixingBF.h:24 AliAnalysisTaskEventMixingBF.h:25 AliAnalysisTaskEventMixingBF.h:26 AliAnalysisTaskEventMixingBF.h:27 AliAnalysisTaskEventMixingBF.h:28 AliAnalysisTaskEventMixingBF.h:29 AliAnalysisTaskEventMixingBF.h:30 AliAnalysisTaskEventMixingBF.h:31 AliAnalysisTaskEventMixingBF.h:32 AliAnalysisTaskEventMixingBF.h:33 AliAnalysisTaskEventMixingBF.h:34 AliAnalysisTaskEventMixingBF.h:35 AliAnalysisTaskEventMixingBF.h:36 AliAnalysisTaskEventMixingBF.h:37 AliAnalysisTaskEventMixingBF.h:38 AliAnalysisTaskEventMixingBF.h:39 AliAnalysisTaskEventMixingBF.h:40 AliAnalysisTaskEventMixingBF.h:41 AliAnalysisTaskEventMixingBF.h:42 AliAnalysisTaskEventMixingBF.h:43 AliAnalysisTaskEventMixingBF.h:44 AliAnalysisTaskEventMixingBF.h:45 AliAnalysisTaskEventMixingBF.h:46 AliAnalysisTaskEventMixingBF.h:47 AliAnalysisTaskEventMixingBF.h:48 AliAnalysisTaskEventMixingBF.h:49 AliAnalysisTaskEventMixingBF.h:50 AliAnalysisTaskEventMixingBF.h:51 AliAnalysisTaskEventMixingBF.h:52 AliAnalysisTaskEventMixingBF.h:53 AliAnalysisTaskEventMixingBF.h:54 AliAnalysisTaskEventMixingBF.h:55 AliAnalysisTaskEventMixingBF.h:56 AliAnalysisTaskEventMixingBF.h:57 AliAnalysisTaskEventMixingBF.h:58 AliAnalysisTaskEventMixingBF.h:59 AliAnalysisTaskEventMixingBF.h:60 AliAnalysisTaskEventMixingBF.h:61 AliAnalysisTaskEventMixingBF.h:62 AliAnalysisTaskEventMixingBF.h:63 AliAnalysisTaskEventMixingBF.h:64 AliAnalysisTaskEventMixingBF.h:65 AliAnalysisTaskEventMixingBF.h:66 AliAnalysisTaskEventMixingBF.h:67 AliAnalysisTaskEventMixingBF.h:68 AliAnalysisTaskEventMixingBF.h:69 AliAnalysisTaskEventMixingBF.h:70 AliAnalysisTaskEventMixingBF.h:71 AliAnalysisTaskEventMixingBF.h:72 AliAnalysisTaskEventMixingBF.h:73 AliAnalysisTaskEventMixingBF.h:74 AliAnalysisTaskEventMixingBF.h:75 AliAnalysisTaskEventMixingBF.h:76 AliAnalysisTaskEventMixingBF.h:77 AliAnalysisTaskEventMixingBF.h:78 AliAnalysisTaskEventMixingBF.h:79 AliAnalysisTaskEventMixingBF.h:80 AliAnalysisTaskEventMixingBF.h:81 AliAnalysisTaskEventMixingBF.h:82 AliAnalysisTaskEventMixingBF.h:83 AliAnalysisTaskEventMixingBF.h:84 AliAnalysisTaskEventMixingBF.h:85 AliAnalysisTaskEventMixingBF.h:86 AliAnalysisTaskEventMixingBF.h:87 AliAnalysisTaskEventMixingBF.h:88 AliAnalysisTaskEventMixingBF.h:89 AliAnalysisTaskEventMixingBF.h:90 AliAnalysisTaskEventMixingBF.h:91 AliAnalysisTaskEventMixingBF.h:92 AliAnalysisTaskEventMixingBF.h:93 AliAnalysisTaskEventMixingBF.h:94 AliAnalysisTaskEventMixingBF.h:95 AliAnalysisTaskEventMixingBF.h:96 AliAnalysisTaskEventMixingBF.h:97 AliAnalysisTaskEventMixingBF.h:98 AliAnalysisTaskEventMixingBF.h:99 AliAnalysisTaskEventMixingBF.h:100 AliAnalysisTaskEventMixingBF.h:101 AliAnalysisTaskEventMixingBF.h:102 AliAnalysisTaskEventMixingBF.h:103 AliAnalysisTaskEventMixingBF.h:104 AliAnalysisTaskEventMixingBF.h:105 AliAnalysisTaskEventMixingBF.h:106 AliAnalysisTaskEventMixingBF.h:107 AliAnalysisTaskEventMixingBF.h:108 AliAnalysisTaskEventMixingBF.h:109 AliAnalysisTaskEventMixingBF.h:110 AliAnalysisTaskEventMixingBF.h:111 AliAnalysisTaskEventMixingBF.h:112 AliAnalysisTaskEventMixingBF.h:113 AliAnalysisTaskEventMixingBF.h:114 AliAnalysisTaskEventMixingBF.h:115 AliAnalysisTaskEventMixingBF.h:116 AliAnalysisTaskEventMixingBF.h:117 AliAnalysisTaskEventMixingBF.h:118 AliAnalysisTaskEventMixingBF.h:119 AliAnalysisTaskEventMixingBF.h:120 AliAnalysisTaskEventMixingBF.h:121 AliAnalysisTaskEventMixingBF.h:122 AliAnalysisTaskEventMixingBF.h:123 AliAnalysisTaskEventMixingBF.h:124 AliAnalysisTaskEventMixingBF.h:125 AliAnalysisTaskEventMixingBF.h:126 AliAnalysisTaskEventMixingBF.h:127 AliAnalysisTaskEventMixingBF.h:128 AliAnalysisTaskEventMixingBF.h:129 AliAnalysisTaskEventMixingBF.h:130 AliAnalysisTaskEventMixingBF.h:131 AliAnalysisTaskEventMixingBF.h:132 AliAnalysisTaskEventMixingBF.h:133 AliAnalysisTaskEventMixingBF.h:134 AliAnalysisTaskEventMixingBF.h:135 AliAnalysisTaskEventMixingBF.h:136 AliAnalysisTaskEventMixingBF.h:137 AliAnalysisTaskEventMixingBF.h:138 AliAnalysisTaskEventMixingBF.h:139 AliAnalysisTaskEventMixingBF.h:140 AliAnalysisTaskEventMixingBF.h:141 AliAnalysisTaskEventMixingBF.h:142 AliAnalysisTaskEventMixingBF.h:143 AliAnalysisTaskEventMixingBF.h:144 AliAnalysisTaskEventMixingBF.h:145 AliAnalysisTaskEventMixingBF.h:146 AliAnalysisTaskEventMixingBF.h:147 AliAnalysisTaskEventMixingBF.h:148 AliAnalysisTaskEventMixingBF.h:149 AliAnalysisTaskEventMixingBF.h:150 AliAnalysisTaskEventMixingBF.h:151 AliAnalysisTaskEventMixingBF.h:152 AliAnalysisTaskEventMixingBF.h:153 AliAnalysisTaskEventMixingBF.h:154 AliAnalysisTaskEventMixingBF.h:155 AliAnalysisTaskEventMixingBF.h:156 AliAnalysisTaskEventMixingBF.h:157 AliAnalysisTaskEventMixingBF.h:158 AliAnalysisTaskEventMixingBF.h:159 AliAnalysisTaskEventMixingBF.h:160 AliAnalysisTaskEventMixingBF.h:161 AliAnalysisTaskEventMixingBF.h:162 AliAnalysisTaskEventMixingBF.h:163 AliAnalysisTaskEventMixingBF.h:164 AliAnalysisTaskEventMixingBF.h:165 AliAnalysisTaskEventMixingBF.h:166 AliAnalysisTaskEventMixingBF.h:167 AliAnalysisTaskEventMixingBF.h:168 AliAnalysisTaskEventMixingBF.h:169 AliAnalysisTaskEventMixingBF.h:170 AliAnalysisTaskEventMixingBF.h:171 AliAnalysisTaskEventMixingBF.h:172 AliAnalysisTaskEventMixingBF.h:173 AliAnalysisTaskEventMixingBF.h:174 AliAnalysisTaskEventMixingBF.h:175 AliAnalysisTaskEventMixingBF.h:176 AliAnalysisTaskEventMixingBF.h:177 AliAnalysisTaskEventMixingBF.h:178 AliAnalysisTaskEventMixingBF.h:179 AliAnalysisTaskEventMixingBF.h:180 AliAnalysisTaskEventMixingBF.h:181 AliAnalysisTaskEventMixingBF.h:182 AliAnalysisTaskEventMixingBF.h:183 AliAnalysisTaskEventMixingBF.h:184 AliAnalysisTaskEventMixingBF.h:185 AliAnalysisTaskEventMixingBF.h:186 AliAnalysisTaskEventMixingBF.h:187 AliAnalysisTaskEventMixingBF.h:188 AliAnalysisTaskEventMixingBF.h:189 AliAnalysisTaskEventMixingBF.h:190 AliAnalysisTaskEventMixingBF.h:191 AliAnalysisTaskEventMixingBF.h:192 AliAnalysisTaskEventMixingBF.h:193 AliAnalysisTaskEventMixingBF.h:194 AliAnalysisTaskEventMixingBF.h:195 AliAnalysisTaskEventMixingBF.h:196 AliAnalysisTaskEventMixingBF.h:197 AliAnalysisTaskEventMixingBF.h:198 AliAnalysisTaskEventMixingBF.h:199 AliAnalysisTaskEventMixingBF.h:200 AliAnalysisTaskEventMixingBF.h:201 AliAnalysisTaskEventMixingBF.h:202 AliAnalysisTaskEventMixingBF.h:203 AliAnalysisTaskEventMixingBF.h:204 AliAnalysisTaskEventMixingBF.h:205 AliAnalysisTaskEventMixingBF.h:206 AliAnalysisTaskEventMixingBF.h:207 AliAnalysisTaskEventMixingBF.h:208 AliAnalysisTaskEventMixingBF.h:209 AliAnalysisTaskEventMixingBF.h:210 AliAnalysisTaskEventMixingBF.h:211 AliAnalysisTaskEventMixingBF.h:212 AliAnalysisTaskEventMixingBF.h:213 AliAnalysisTaskEventMixingBF.h:214 AliAnalysisTaskEventMixingBF.h:215 AliAnalysisTaskEventMixingBF.h:216 AliAnalysisTaskEventMixingBF.h:217 AliAnalysisTaskEventMixingBF.h:218 AliAnalysisTaskEventMixingBF.h:219 AliAnalysisTaskEventMixingBF.h:220 AliAnalysisTaskEventMixingBF.h:221 AliAnalysisTaskEventMixingBF.h:222 AliAnalysisTaskEventMixingBF.h:223 AliAnalysisTaskEventMixingBF.h:224 AliAnalysisTaskEventMixingBF.h:225 AliAnalysisTaskEventMixingBF.h:226 AliAnalysisTaskEventMixingBF.h:227 AliAnalysisTaskEventMixingBF.h:228 AliAnalysisTaskEventMixingBF.h:229 AliAnalysisTaskEventMixingBF.h:230 AliAnalysisTaskEventMixingBF.h:231 AliAnalysisTaskEventMixingBF.h:232 AliAnalysisTaskEventMixingBF.h:233 AliAnalysisTaskEventMixingBF.h:234 AliAnalysisTaskEventMixingBF.h:235 AliAnalysisTaskEventMixingBF.h:236 AliAnalysisTaskEventMixingBF.h:237 AliAnalysisTaskEventMixingBF.h:238 AliAnalysisTaskEventMixingBF.h:239 AliAnalysisTaskEventMixingBF.h:240 AliAnalysisTaskEventMixingBF.h:241 AliAnalysisTaskEventMixingBF.h:242 AliAnalysisTaskEventMixingBF.h:243