]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/macros/pidpid/AddAnalysisTaskPidPidCorrelations.C
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGCF / Correlations / macros / pidpid / AddAnalysisTaskPidPidCorrelations.C
CommitLineData
1a3b11ce 1// -*- c++ -*-
2// $Id: AddAnalysisTaskPidPidCorrelations.C
3
4const Int_t nBinCent = 1;
5Double_t centLimits[nBinCent+1] = {0.,5.};
6// Double_t centLimits[nBinCent+1] = {0.,1.,2.,3.,4.,5.,10.,20.,30.,40.,50.,60.,70.,80.,90.,100.1};
7const Int_t nBinZvtx = 10;
8// Double_t zvtxLimits[nBinZvtx+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.};
9Double_t zvtxLimits[nBinZvtx+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.};
10const Int_t nBinPt = 8;
11Double_t ptLimits[nBinPt+1] = {0.0, 0.5, 1.0, 2.0, 3.0, 4.0,, 5.0, 6.0, 7.0};
12// Double_t ptLimits[nBinPt+1] = {0.0, 0.1, 0.2, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0, 6.0};
13const Int_t nBinEta = 20;
14Double_t etaLimits[nBinEta+1] = {-1.0, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0};
15
16
17AliAnalysisTaskPidPidCorrelations*
18AddAnalysisTaskPidPidCorrelations(Bool_t mc = kFALSE
19 , TString centralityEstimator = "V0M"
20 , Bool_t eventMixing = kTRUE
21 , Double_t ptMin = 0.2
22 , Double_t ptMax = 6.0
23 , Double_t etaMin = -0.8
24 , Double_t etaMax = 0.8
25 , Double_t centrMin = 0.
26 , Double_t centrMax = 5.
27 , Double_t vertexZ = 10.
28 , Int_t triggerPID = 1
29 , Int_t assocPID = 1
30 )
31{
32 // Get the pointer to the existing analysis manager via the static access method.
33 //===========================================================================
34 AliAnalysisManager* mgr = AliAnalysisManager::GetAnalysisManager();
35 if (mgr == NULL) { ::Error("AddAnalysisTaskPidPidCorrelations", "No analysis manager to connect to."); return NULL; }
36
37 // Check the analysis type using the event handlers connected to the analysis manager.
38 //===========================================================================
39 if (mgr->GetInputEventHandler() == NULL) { ::Error("AddAnalysisTaskPidPidCorrelations", "This task requires an input event handler"); return NULL; }
40
41 // Create the task, add it to manager and configure it.
42 //===========================================================================
43 AliAnalysisTaskPidPidCorrelations *taskPIDCorr = new AliAnalysisTaskPidPidCorrelations(Form("AliAnalysisTaskPidPidCorrelations__%.0f-%.0f_%s",centrMin,centrMax,centralityEstimator.Data()));
44
45 taskPIDCorr -> SetTriggerMask(AliVEvent::kMB|AliVEvent::kCentral|AliVEvent::kSemiCentral);
46// taskPIDCorr->SelectCollisionCandidates(AliVEvent::kMB);//MB //now inside task
47
48 //______ DATA or MC
49 taskPIDCorr -> SetMC(mc);
50
51 //______ kinematics cut
52 taskPIDCorr -> SetKinematicsCutsAOD(ptMin,ptMax,etaMin,etaMax);
53// taskPIDCorr -> SetEtaRange(-0.9, 0.9);
54 //_____ vertex
55 taskPIDCorr -> SetVertexDiamond(.3,.3,vertexZ);
56 //____ centrality
57 taskPIDCorr -> SetCentralityEstimator(centralityEstimator);
58 taskPIDCorr -> SetCentralityRange(centrMin,centrMax);
59 taskPIDCorr -> SetEventMixing(eventMixing);
60// taskPIDCorr -> SetTriggerRestrictEta(0.5);
61 taskPIDCorr -> SetEtaOrdering(kFALSE);
62 taskPIDCorr -> SetPairCuts(kFALSE, kFALSE);
63 taskPIDCorr -> SetTwoTrackEfficiencyCut(0.02,0.8);
64 taskPIDCorr -> SetFillpT(kFALSE);
65 taskPIDCorr -> SetMixingTracks(50000,1000);
66 taskPIDCorr -> SetWeightPerEvent(kFALSE);
67 taskPIDCorr -> SetRejectResonanceDaughters(0);
68 taskPIDCorr -> SetSelectCharge(0);
69 taskPIDCorr -> SetSelectTriggerCharge(0);
70 taskPIDCorr -> SetSelectAssociatedCharge(0);
71 taskPIDCorr -> SetOnlyOneEtaSide(0);
72 taskPIDCorr -> SetPtOrder(kFALSE);
73 taskPIDCorr -> UseMomentumDifferenceCut(kFALSE,0.01);
74 taskPIDCorr -> SetCentBinning(nBinCent, centLimits);
75 taskPIDCorr -> SetZvtxBinning(nBinZvtx, zvtxLimits);
76 taskPIDCorr -> SetPtBinning(nBinPt, ptLimits);
77 taskPIDCorr -> SetEtaBinning(nBinEta, etaLimits);
78 taskPIDCorr -> SetPIDsToCorrelate(triggerPID,assocPID);
79
80 // ADD the task
81 //===========================================================================
82 mgr -> AddTask(taskPIDCorr);
83
84 // Create ONLY the output containers for the data produced by the task.
85 // Get and connect other common input/output containers via the manager as below
86 //===========================================================================
87
88 TString outputFileName = AliAnalysisManager::GetCommonFileName();
89 outputFileName += ":PWGCFEbyE.outputPIDPIDCorrelations";
90
91 AliAnalysisDataContainer *listPIDCorr1 = mgr -> CreateContainer( Form("listPIDPIDCorr_%.0f-%.0f_%s",centrMin,centrMax,centralityEstimator.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, outputFileName.Data());
92 AliAnalysisDataContainer *listPIDCorr2 = mgr -> CreateContainer( Form("OutputCFCont_%.0f-%.0f_%s",centrMin,centrMax,centralityEstimator.Data()), AliCFContainer::Class(), AliAnalysisManager::kOutputContainer, outputFileName.Data());
93
94 mgr -> ConnectInput( taskPIDCorr, 0, mgr -> GetCommonInputContainer());
95 mgr -> ConnectOutput( taskPIDCorr, 1, listPIDCorr1);
96 mgr -> ConnectOutput( taskPIDCorr, 2, listPIDCorr2);
97
98 return taskPIDCorr;
99}