]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/EBYE/macros/AddTaskPtFluc.C
Code updates (Stefan Heckel)
[u/mrichter/AliRoot.git] / PWGCF / EBYE / macros / AddTaskPtFluc.C
1 AliAnalysisTask *AddTaskPtFluc(){
2   //get the current analysis manager
3   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
4   if (!mgr) {
5     Error("AddTask_sheckel_PtFluc", "No analysis manager found.");
6     return 0;
7   }
8
9
10   // --- Check for MC ---
11   AliMCEventHandler  *mcH = static_cast<AliMCEventHandler*>(mgr->GetMCtruthEventHandler());
12
13
14   //============= Set Task Name ===================
15   TString taskName=("AliAnalysisTaskPtFluc.cxx+");
16   //===============================================
17   //            Load the task
18   gROOT->LoadMacro(taskName.Data());
19   if (gProof){
20     TString taskSO=gSystem->pwd();
21     taskSO+="/";
22     taskSO+=taskName(0,taskName.First('.'))+"_cxx.so";
23     gProof->Exec(Form("gSystem->Load(\"%s\")",taskSO.Data()),kTRUE);
24   }
25
26
27   //========= Add task to the ANALYSIS manager =====
28   AliAnalysisTaskPtFluc *task = new AliAnalysisTaskPtFluc("sheckelTaskPtFluc");
29
30
31   // --- Set ESD track Cuts ---
32
33   AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("esdTrackCuts"); // My pp track cuts (ITS+TPC)
34   AliESDtrackCuts *esdCuts = new AliESDtrackCuts("esdCuts"); // TPC-only track cuts
35
36   // -- My pp track cuts (ITS+TPC)
37   // TPC
38   esdTrackCuts->SetRequireTPCStandAlone(kFALSE);
39   esdTrackCuts->SetMinNClustersTPC(70);
40   esdTrackCuts->SetMaxChi2PerClusterTPC(4.0);
41   esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
42   esdTrackCuts->SetRequireTPCRefit(kTRUE);
43   // ITS
44   esdTrackCuts->SetRequireITSRefit(kTRUE);
45   esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kAny);
46   // DCA to vertex
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);
54
55
56   // -- TPC-only track cuts
57   // TPC
58   esdCuts->SetRequireTPCStandAlone(kTRUE);
59   esdCuts->SetMinNClustersTPC(70);
60   esdCuts->SetMaxChi2PerClusterTPC(4.0);
61   esdCuts->SetAcceptKinkDaughters(kFALSE);
62   esdCuts->SetRequireTPCRefit(kFALSE);
63   // ITS
64   esdCuts->SetRequireITSRefit(kFALSE);
65   // DCA to vertex
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);
73
74   // --- End track Cuts ---
75
76
77 //   task->SetAliESDtrackCuts(esdTrackCuts);
78   task->SetAliESDtrackCuts(esdCuts);
79
80   task->SelectCollisionCandidates(AliVEvent::kMB);
81   task->SetMaxVertexZ(10.);    // cm
82   task->SetMaxVertexZDiff1(-1.);    // <= 0. -> off,    > 0. -> diff in cm
83   task->SetNContributors(1);
84
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
88
89
90   mgr->AddTask(task);
91
92
93   //================================================
94   //              data containers
95   //================================================
96
97   // input container
98   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
99
100   // output container
101   AliAnalysisDataContainer *coutput =
102       mgr->CreateContainer("sheckel_PtFluc", TList::Class(),
103                            AliAnalysisManager::kOutputContainer,"sheckel_PtFluc.root");
104
105   // connect containers
106   mgr->ConnectInput  (task,  0, cinput );
107   mgr->ConnectOutput (task,  1, coutput );
108
109   return task;
110
111 }