ROOT logo
// -*- c++ -*-
// $Id: AddAnalysisTaskPidPidCorrelations.C

const Int_t nBinCent = 1;
Double_t centLimits[nBinCent+1] = {0.,5.};
// Double_t centLimits[nBinCent+1] = {0.,1.,2.,3.,4.,5.,10.,20.,30.,40.,50.,60.,70.,80.,90.,100.1};
const Int_t nBinZvtx = 10;
// Double_t zvtxLimits[nBinZvtx+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.};
Double_t zvtxLimits[nBinZvtx+1] = {-10.,-8.,-6.,-4.,-2.,0.,2.,4.,6.,8.,10.};
const Int_t nBinPt = 8;
Double_t ptLimits[nBinPt+1] = {0.0, 0.5, 1.0, 2.0, 3.0, 4.0,, 5.0, 6.0, 7.0};
// 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};
const Int_t nBinEta = 20;
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};


AliAnalysisTaskPidPidCorrelations*
AddAnalysisTaskPidPidCorrelations(Bool_t mc = kFALSE
				, TString centralityEstimator = "V0M"
				, Bool_t eventMixing = kTRUE
				, Double_t ptMin = 0.2
				, Double_t ptMax = 6.0
				, Double_t etaMin = -0.8
				, Double_t etaMax = 0.8
				, Double_t centrMin = 0.
				, Double_t centrMax = 5.
				, Double_t vertexZ = 10.
				, Int_t triggerPID = 1
				, Int_t assocPID = 1
				)
{
  // Get the pointer to the existing analysis manager via the static access method.
  //===========================================================================
  AliAnalysisManager* mgr = AliAnalysisManager::GetAnalysisManager();
  if (mgr == NULL) { ::Error("AddAnalysisTaskPidPidCorrelations", "No analysis manager to connect to."); return NULL; }
  
  // Check the analysis type using the event handlers connected to the analysis manager.
  //===========================================================================
  if (mgr->GetInputEventHandler() == NULL) { ::Error("AddAnalysisTaskPidPidCorrelations", "This task requires an input event handler"); return NULL; }
  
  // Create the task, add it to manager and configure it.
  //===========================================================================
  AliAnalysisTaskPidPidCorrelations *taskPIDCorr = new AliAnalysisTaskPidPidCorrelations(Form("AliAnalysisTaskPidPidCorrelations__%.0f-%.0f_%s",centrMin,centrMax,centralityEstimator.Data()));

  taskPIDCorr -> SetTriggerMask(AliVEvent::kMB|AliVEvent::kCentral|AliVEvent::kSemiCentral);
//     taskPIDCorr->SelectCollisionCandidates(AliVEvent::kMB);//MB  //now inside task
  
  //______ DATA or MC
  taskPIDCorr -> SetMC(mc);

  //______ kinematics cut
  taskPIDCorr -> SetKinematicsCutsAOD(ptMin,ptMax,etaMin,etaMax);
//   taskPIDCorr -> SetEtaRange(-0.9, 0.9);
  //_____ vertex
  taskPIDCorr -> SetVertexDiamond(.3,.3,vertexZ);  
  //____ centrality
  taskPIDCorr -> SetCentralityEstimator(centralityEstimator);
  taskPIDCorr -> SetCentralityRange(centrMin,centrMax);
  taskPIDCorr -> SetEventMixing(eventMixing);
//     taskPIDCorr -> SetTriggerRestrictEta(0.5);
  taskPIDCorr -> SetEtaOrdering(kFALSE);
  taskPIDCorr -> SetPairCuts(kFALSE, kFALSE);
  taskPIDCorr -> SetTwoTrackEfficiencyCut(0.02,0.8);
  taskPIDCorr -> SetFillpT(kFALSE);
  taskPIDCorr -> SetMixingTracks(50000,1000);  
  taskPIDCorr -> SetWeightPerEvent(kFALSE);
  taskPIDCorr -> SetRejectResonanceDaughters(0);
  taskPIDCorr -> SetSelectCharge(0);
  taskPIDCorr -> SetSelectTriggerCharge(0);
  taskPIDCorr -> SetSelectAssociatedCharge(0);
  taskPIDCorr -> SetOnlyOneEtaSide(0);
  taskPIDCorr -> SetPtOrder(kFALSE);
  taskPIDCorr -> UseMomentumDifferenceCut(kFALSE,0.01);
  taskPIDCorr -> SetCentBinning(nBinCent, centLimits);
  taskPIDCorr -> SetZvtxBinning(nBinZvtx, zvtxLimits);
  taskPIDCorr -> SetPtBinning(nBinPt, ptLimits);
  taskPIDCorr -> SetEtaBinning(nBinEta, etaLimits);
  taskPIDCorr -> SetPIDsToCorrelate(triggerPID,assocPID);
  
  // ADD the task
  //===========================================================================
  mgr -> AddTask(taskPIDCorr);  
  
  // Create ONLY the output containers for the data produced by the task.
  // Get and connect other common input/output containers via the manager as below
  //===========================================================================

  TString outputFileName = AliAnalysisManager::GetCommonFileName();
  outputFileName += ":PWGCFEbyE.outputPIDPIDCorrelations";

  AliAnalysisDataContainer *listPIDCorr1 = mgr -> CreateContainer( Form("listPIDPIDCorr_%.0f-%.0f_%s",centrMin,centrMax,centralityEstimator.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, outputFileName.Data());
  AliAnalysisDataContainer *listPIDCorr2 = mgr -> CreateContainer( Form("OutputCFCont_%.0f-%.0f_%s",centrMin,centrMax,centralityEstimator.Data()), AliCFContainer::Class(), AliAnalysisManager::kOutputContainer, outputFileName.Data());
  
  mgr -> ConnectInput( taskPIDCorr, 0, mgr -> GetCommonInputContainer());
  mgr -> ConnectOutput( taskPIDCorr, 1, listPIDCorr1);
  mgr -> ConnectOutput( taskPIDCorr, 2, listPIDCorr2);
  
  return taskPIDCorr;
}
 AddAnalysisTaskPidPidCorrelations.C:1
 AddAnalysisTaskPidPidCorrelations.C:2
 AddAnalysisTaskPidPidCorrelations.C:3
 AddAnalysisTaskPidPidCorrelations.C:4
 AddAnalysisTaskPidPidCorrelations.C:5
 AddAnalysisTaskPidPidCorrelations.C:6
 AddAnalysisTaskPidPidCorrelations.C:7
 AddAnalysisTaskPidPidCorrelations.C:8
 AddAnalysisTaskPidPidCorrelations.C:9
 AddAnalysisTaskPidPidCorrelations.C:10
 AddAnalysisTaskPidPidCorrelations.C:11
 AddAnalysisTaskPidPidCorrelations.C:12
 AddAnalysisTaskPidPidCorrelations.C:13
 AddAnalysisTaskPidPidCorrelations.C:14
 AddAnalysisTaskPidPidCorrelations.C:15
 AddAnalysisTaskPidPidCorrelations.C:16
 AddAnalysisTaskPidPidCorrelations.C:17
 AddAnalysisTaskPidPidCorrelations.C:18
 AddAnalysisTaskPidPidCorrelations.C:19
 AddAnalysisTaskPidPidCorrelations.C:20
 AddAnalysisTaskPidPidCorrelations.C:21
 AddAnalysisTaskPidPidCorrelations.C:22
 AddAnalysisTaskPidPidCorrelations.C:23
 AddAnalysisTaskPidPidCorrelations.C:24
 AddAnalysisTaskPidPidCorrelations.C:25
 AddAnalysisTaskPidPidCorrelations.C:26
 AddAnalysisTaskPidPidCorrelations.C:27
 AddAnalysisTaskPidPidCorrelations.C:28
 AddAnalysisTaskPidPidCorrelations.C:29
 AddAnalysisTaskPidPidCorrelations.C:30
 AddAnalysisTaskPidPidCorrelations.C:31
 AddAnalysisTaskPidPidCorrelations.C:32
 AddAnalysisTaskPidPidCorrelations.C:33
 AddAnalysisTaskPidPidCorrelations.C:34
 AddAnalysisTaskPidPidCorrelations.C:35
 AddAnalysisTaskPidPidCorrelations.C:36
 AddAnalysisTaskPidPidCorrelations.C:37
 AddAnalysisTaskPidPidCorrelations.C:38
 AddAnalysisTaskPidPidCorrelations.C:39
 AddAnalysisTaskPidPidCorrelations.C:40
 AddAnalysisTaskPidPidCorrelations.C:41
 AddAnalysisTaskPidPidCorrelations.C:42
 AddAnalysisTaskPidPidCorrelations.C:43
 AddAnalysisTaskPidPidCorrelations.C:44
 AddAnalysisTaskPidPidCorrelations.C:45
 AddAnalysisTaskPidPidCorrelations.C:46
 AddAnalysisTaskPidPidCorrelations.C:47
 AddAnalysisTaskPidPidCorrelations.C:48
 AddAnalysisTaskPidPidCorrelations.C:49
 AddAnalysisTaskPidPidCorrelations.C:50
 AddAnalysisTaskPidPidCorrelations.C:51
 AddAnalysisTaskPidPidCorrelations.C:52
 AddAnalysisTaskPidPidCorrelations.C:53
 AddAnalysisTaskPidPidCorrelations.C:54
 AddAnalysisTaskPidPidCorrelations.C:55
 AddAnalysisTaskPidPidCorrelations.C:56
 AddAnalysisTaskPidPidCorrelations.C:57
 AddAnalysisTaskPidPidCorrelations.C:58
 AddAnalysisTaskPidPidCorrelations.C:59
 AddAnalysisTaskPidPidCorrelations.C:60
 AddAnalysisTaskPidPidCorrelations.C:61
 AddAnalysisTaskPidPidCorrelations.C:62
 AddAnalysisTaskPidPidCorrelations.C:63
 AddAnalysisTaskPidPidCorrelations.C:64
 AddAnalysisTaskPidPidCorrelations.C:65
 AddAnalysisTaskPidPidCorrelations.C:66
 AddAnalysisTaskPidPidCorrelations.C:67
 AddAnalysisTaskPidPidCorrelations.C:68
 AddAnalysisTaskPidPidCorrelations.C:69
 AddAnalysisTaskPidPidCorrelations.C:70
 AddAnalysisTaskPidPidCorrelations.C:71
 AddAnalysisTaskPidPidCorrelations.C:72
 AddAnalysisTaskPidPidCorrelations.C:73
 AddAnalysisTaskPidPidCorrelations.C:74
 AddAnalysisTaskPidPidCorrelations.C:75
 AddAnalysisTaskPidPidCorrelations.C:76
 AddAnalysisTaskPidPidCorrelations.C:77
 AddAnalysisTaskPidPidCorrelations.C:78
 AddAnalysisTaskPidPidCorrelations.C:79
 AddAnalysisTaskPidPidCorrelations.C:80
 AddAnalysisTaskPidPidCorrelations.C:81
 AddAnalysisTaskPidPidCorrelations.C:82
 AddAnalysisTaskPidPidCorrelations.C:83
 AddAnalysisTaskPidPidCorrelations.C:84
 AddAnalysisTaskPidPidCorrelations.C:85
 AddAnalysisTaskPidPidCorrelations.C:86
 AddAnalysisTaskPidPidCorrelations.C:87
 AddAnalysisTaskPidPidCorrelations.C:88
 AddAnalysisTaskPidPidCorrelations.C:89
 AddAnalysisTaskPidPidCorrelations.C:90
 AddAnalysisTaskPidPidCorrelations.C:91
 AddAnalysisTaskPidPidCorrelations.C:92
 AddAnalysisTaskPidPidCorrelations.C:93
 AddAnalysisTaskPidPidCorrelations.C:94
 AddAnalysisTaskPidPidCorrelations.C:95
 AddAnalysisTaskPidPidCorrelations.C:96
 AddAnalysisTaskPidPidCorrelations.C:97
 AddAnalysisTaskPidPidCorrelations.C:98
 AddAnalysisTaskPidPidCorrelations.C:99
 AddAnalysisTaskPidPidCorrelations.C:100