1 AliAnalysisTask *AddTaskPtFluc(){
2 //get the current analysis manager
3 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
5 Error("AddTask_sheckel_PtFluc", "No analysis manager found.");
10 // --- Check for MC ---
11 AliMCEventHandler *mcH = static_cast<AliMCEventHandler*>(mgr->GetMCtruthEventHandler());
14 //============= Set Task Name ===================
15 TString taskName=("AliAnalysisTaskPtFluc.cxx+");
16 //===============================================
18 gROOT->LoadMacro(taskName.Data());
20 TString taskSO=gSystem->pwd();
22 taskSO+=taskName(0,taskName.First('.'))+"_cxx.so";
23 gProof->Exec(Form("gSystem->Load(\"%s\")",taskSO.Data()),kTRUE);
27 //========= Add task to the ANALYSIS manager =====
28 AliAnalysisTaskPtFluc *task = new AliAnalysisTaskPtFluc("sheckelTaskPtFluc");
31 // --- Set ESD track Cuts ---
33 AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("esdTrackCuts"); // My pp track cuts (ITS+TPC)
34 AliESDtrackCuts *esdCuts = new AliESDtrackCuts("esdCuts"); // TPC-only track cuts
36 // -- My pp track cuts (ITS+TPC)
38 esdTrackCuts->SetRequireTPCStandAlone(kFALSE);
39 esdTrackCuts->SetMinNClustersTPC(70);
40 esdTrackCuts->SetMaxChi2PerClusterTPC(4.0);
41 esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
42 esdTrackCuts->SetRequireTPCRefit(kTRUE);
44 esdTrackCuts->SetRequireITSRefit(kTRUE);
45 esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kAny);
47 esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01"); // 7*(0.0026+0.0050/pt^1.01)
48 esdTrackCuts->SetMaxDCAToVertexZ(2.);
49 esdTrackCuts->SetDCAToVertex2D(kFALSE);
50 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
51 // Pt range and acceptance in eta
52 esdTrackCuts->SetPtRange(0.15,2.);
53 esdTrackCuts->SetEtaRange(-0.8,0.8);
56 // -- TPC-only track cuts
58 esdCuts->SetRequireTPCStandAlone(kTRUE);
59 esdCuts->SetMinNClustersTPC(70);
60 esdCuts->SetMaxChi2PerClusterTPC(4.0);
61 esdCuts->SetAcceptKinkDaughters(kFALSE);
62 esdCuts->SetRequireTPCRefit(kFALSE);
64 esdCuts->SetRequireITSRefit(kFALSE);
66 esdCuts->SetMaxDCAToVertexXY(2.4); // cm
67 esdCuts->SetMaxDCAToVertexZ(3.2); // cm
68 esdCuts->SetDCAToVertex2D(kTRUE);
69 esdCuts->SetRequireSigmaToVertex(kFALSE);
70 // Pt range and acceptance in eta
71 esdCuts->SetPtRange(0.15,2.);
72 esdCuts->SetEtaRange(-0.8,0.8);
74 // --- End track Cuts ---
77 // task->SetAliESDtrackCuts(esdTrackCuts);
78 task->SetAliESDtrackCuts(esdCuts);
80 task->SelectCollisionCandidates(AliVEvent::kMB);
81 task->SetMaxVertexZ(10.); // cm
82 task->SetMaxVertexZDiff1(-1.); // <= 0. -> off, > 0. -> diff in cm
83 task->SetNContributors(1);
85 if (mcH) task->SetMC(kTRUE);
86 if (mcH) task->SetMCType(0); // 0 = ESD, 1 = MC truth with ESD, 2 = mod. MC truth with ESD,
87 // 3 = MC truth only, 4 = mod. MC truth only
93 //================================================
95 //================================================
98 AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
101 AliAnalysisDataContainer *coutput =
102 mgr->CreateContainer("sheckel_PtFluc", TList::Class(),
103 AliAnalysisManager::kOutputContainer,"sheckel_PtFluc.root");
105 // connect containers
106 mgr->ConnectInput (task, 0, cinput );
107 mgr->ConnectOutput (task, 1, coutput );