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