//_________________________________________________________//
AliAnalysisTaskBF *AddTaskBalanceFunctionInpp(Double_t vertexZ=10.,
Double_t DCAxy=2.4,
Double_t DCAz=3.2,
Double_t ptMin=0.3,
Double_t ptMax=1.5,
Double_t etaMin=-0.8,
Double_t etaMax=0.8,
TString fileNameBase="AnalysisResults") {
// Creates a balance function analysis task and adds it to the analysis manager.
// Get the pointer to the existing analysis manager via the static access method.
TString outputFileName(fileNameBase);
outputFileName.Append(".root");
//===========================================================================
AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
if (!mgr) {
::Error("AddTaskBF", "No analysis manager to connect to.");
return NULL;
}
// Check the analysis type using the event handlers connected to the analysis manager.
//===========================================================================
if (!mgr->GetInputEventHandler()) {
::Error("AddTaskBF", "This task requires an input event handler");
return NULL;
}
TString analysisType = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
gROOT->LoadMacro("./configBalanceFunctionAnalysis.C");
AliBalance *bf = 0; // Balance Function object
AliBalance *bfs = 0; // shuffled Balance function object
if (analysisType=="ESD"){
bf = GetBalanceFunctionObject("ESD");
bfs = GetBalanceFunctionObject("ESD",kTRUE);
}
else if (analysisType=="AOD"){
bf = GetBalanceFunctionObject("AOD");
bfs = GetBalanceFunctionObject("AOD",kTRUE);
}
else{
bf = GetBalanceFunctionObject("MC");
bfs = GetBalanceFunctionObject("MC",kTRUE);
}
// Create the task, add it to manager and configure it.
//===========================================================================
AliAnalysisTaskBF *taskBF = new AliAnalysisTaskBF("TaskBF");
taskBF->SetAnalysisObject(bf);
taskBF->SetShufflingObject(bfs);
if(analysisType == "ESD") {
AliESDtrackCuts *trackCuts = GetTrackCutsObject();
taskBF->SetAnalysisCutObject(trackCuts);
// offline trigger selection (AliVEvent.h)
// taskBF->UseOfflineTrigger(); // NOT used (selection is done with the AliAnalysisTaskSE::SelectCollisionCandidates())
// with this only selected events are analyzed (first 2 bins in event QA histogram are the same))
taskBF->SelectCollisionCandidates(AliVEvent::kMB);
}
else if(analysisType == "AOD") {
// pt and eta cut (pt_min, pt_max, eta_min, eta_max)
taskBF->SetAODtrackCutBit(128);
taskBF->SetKinematicsCutsAOD(ptMin,ptMax,etaMin,etaMax);
taskBF->SetExtraDCACutsAOD(DCAxy,DCAz);
}
// vertex cut (x,y,z)
taskBF->SetVertexDiamond(.3,.3,vertexZ);
//bf->PrintAnalysisSettings();
mgr->AddTask(taskBF);
// 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
//======================================================================
AliAnalysisDataContainer *coutQA = mgr->CreateContainer("listQA", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
AliAnalysisDataContainer *coutBF = mgr->CreateContainer("listBF", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
AliAnalysisDataContainer *coutBFS= mgr->CreateContainer("listBFshuffled", TList::Class(),AliAnalysisManager::kOutputContainer,outputFileName.Data());
mgr->ConnectInput(taskBF, 0, mgr->GetCommonInputContainer());
mgr->ConnectOutput(taskBF, 1, coutQA);
mgr->ConnectOutput(taskBF, 2, coutBF);
mgr->ConnectOutput(taskBF, 3, coutBFS);
return taskBF;
}
AddTaskBalanceFunctionInpp.C:1 AddTaskBalanceFunctionInpp.C:2 AddTaskBalanceFunctionInpp.C:3 AddTaskBalanceFunctionInpp.C:4 AddTaskBalanceFunctionInpp.C:5 AddTaskBalanceFunctionInpp.C:6 AddTaskBalanceFunctionInpp.C:7 AddTaskBalanceFunctionInpp.C:8 AddTaskBalanceFunctionInpp.C:9 AddTaskBalanceFunctionInpp.C:10 AddTaskBalanceFunctionInpp.C:11 AddTaskBalanceFunctionInpp.C:12 AddTaskBalanceFunctionInpp.C:13 AddTaskBalanceFunctionInpp.C:14 AddTaskBalanceFunctionInpp.C:15 AddTaskBalanceFunctionInpp.C:16 AddTaskBalanceFunctionInpp.C:17 AddTaskBalanceFunctionInpp.C:18 AddTaskBalanceFunctionInpp.C:19 AddTaskBalanceFunctionInpp.C:20 AddTaskBalanceFunctionInpp.C:21 AddTaskBalanceFunctionInpp.C:22 AddTaskBalanceFunctionInpp.C:23 AddTaskBalanceFunctionInpp.C:24 AddTaskBalanceFunctionInpp.C:25 AddTaskBalanceFunctionInpp.C:26 AddTaskBalanceFunctionInpp.C:27 AddTaskBalanceFunctionInpp.C:28 AddTaskBalanceFunctionInpp.C:29 AddTaskBalanceFunctionInpp.C:30 AddTaskBalanceFunctionInpp.C:31 AddTaskBalanceFunctionInpp.C:32 AddTaskBalanceFunctionInpp.C:33 AddTaskBalanceFunctionInpp.C:34 AddTaskBalanceFunctionInpp.C:35 AddTaskBalanceFunctionInpp.C:36 AddTaskBalanceFunctionInpp.C:37 AddTaskBalanceFunctionInpp.C:38 AddTaskBalanceFunctionInpp.C:39 AddTaskBalanceFunctionInpp.C:40 AddTaskBalanceFunctionInpp.C:41 AddTaskBalanceFunctionInpp.C:42 AddTaskBalanceFunctionInpp.C:43 AddTaskBalanceFunctionInpp.C:44 AddTaskBalanceFunctionInpp.C:45 AddTaskBalanceFunctionInpp.C:46 AddTaskBalanceFunctionInpp.C:47 AddTaskBalanceFunctionInpp.C:48 AddTaskBalanceFunctionInpp.C:49 AddTaskBalanceFunctionInpp.C:50 AddTaskBalanceFunctionInpp.C:51 AddTaskBalanceFunctionInpp.C:52 AddTaskBalanceFunctionInpp.C:53 AddTaskBalanceFunctionInpp.C:54 AddTaskBalanceFunctionInpp.C:55 AddTaskBalanceFunctionInpp.C:56 AddTaskBalanceFunctionInpp.C:57 AddTaskBalanceFunctionInpp.C:58 AddTaskBalanceFunctionInpp.C:59 AddTaskBalanceFunctionInpp.C:60 AddTaskBalanceFunctionInpp.C:61 AddTaskBalanceFunctionInpp.C:62 AddTaskBalanceFunctionInpp.C:63 AddTaskBalanceFunctionInpp.C:64 AddTaskBalanceFunctionInpp.C:65 AddTaskBalanceFunctionInpp.C:66 AddTaskBalanceFunctionInpp.C:67 AddTaskBalanceFunctionInpp.C:68 AddTaskBalanceFunctionInpp.C:69 AddTaskBalanceFunctionInpp.C:70 AddTaskBalanceFunctionInpp.C:71 AddTaskBalanceFunctionInpp.C:72 AddTaskBalanceFunctionInpp.C:73 AddTaskBalanceFunctionInpp.C:74 AddTaskBalanceFunctionInpp.C:75 AddTaskBalanceFunctionInpp.C:76 AddTaskBalanceFunctionInpp.C:77 AddTaskBalanceFunctionInpp.C:78 AddTaskBalanceFunctionInpp.C:79 AddTaskBalanceFunctionInpp.C:80 AddTaskBalanceFunctionInpp.C:81 AddTaskBalanceFunctionInpp.C:82 AddTaskBalanceFunctionInpp.C:83 AddTaskBalanceFunctionInpp.C:84 AddTaskBalanceFunctionInpp.C:85 AddTaskBalanceFunctionInpp.C:86