]>
Commit | Line | Data |
---|---|---|
1a3b11ce | 1 | // -*- c++ -*- |
2 | // $Id: AddAnalysisTaskPidPidCorrelations.C | |
3 | ||
4 | const Int_t nBinCent = 1; | |
5 | Double_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}; | |
7 | const Int_t nBinZvtx = 10; | |
8 | // Double_t zvtxLimits[nBinZvtx+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.}; | |
9 | Double_t zvtxLimits[nBinZvtx+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.}; | |
10 | const Int_t nBinPt = 8; | |
11 | Double_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}; | |
13 | const Int_t nBinEta = 20; | |
14 | Double_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 | ||
17 | AliAnalysisTaskPidPidCorrelations* | |
18 | AddAnalysisTaskPidPidCorrelations(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 | } |