]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/PilotTrain/AddTaskHIMultCorr.C
Additional changes for HF-MUON
[u/mrichter/AliRoot.git] / PWGPP / PilotTrain / AddTaskHIMultCorr.C
1 AliAnalysisTaskHIMultCorr *AddTaskHIMultCorr(){
2
3 #define USE_STREAMER 0
4
5   //===============================================
6   //-- Get the current analysis manager
7
8   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
9   if (!mgr) {
10     Error("AddTask_jthaeder_HIMultCorr", "No analysis manager found.");
11     return 0;
12   }
13
14   //===============================================
15   // -- Check for MC
16
17   Bool_t isMC=(mgr->GetMCtruthEventHandler() != NULL);
18   if (isMC){
19     Info("AddTask_jthaeder_HIMultCorr", "This task has MC.");
20   }
21
22   //===============================================
23   // -- Create ESD cuts
24
25   AliESDtrackCuts* esdCuts = new AliESDtrackCuts("AliESDtrackCuts");
26   AliESDtrackCuts* esdCuts2 = new AliESDtrackCuts("AliESDtrackCuts2");
27
28   // -- dNdPt track cuts 23
29   esdCuts->SetRequireSigmaToVertex(kFALSE);
30   esdCuts->SetRequireITSRefit(kFALSE);
31   esdCuts->SetRequireTPCRefit(kFALSE);
32   esdCuts->SetRequireTPCStandAlone(kTRUE);
33   esdCuts->SetAcceptKinkDaughters(kFALSE);
34   esdCuts->SetMinNClustersTPC(70);
35
36   esdCuts->SetMaxChi2PerClusterTPC(4.0);
37
38   esdCuts->SetMaxDCAToVertexXY(2.4); // cm
39   esdCuts->SetMaxDCAToVertexZ(3.2);  // cm
40   esdCuts->SetDCAToVertex2D(kTRUE);
41
42   // -- dNdPt track cuts 72
43   esdCuts2->SetRequireSigmaToVertex(kFALSE);
44   esdCuts2->SetRequireTPCRefit(kTRUE);
45   esdCuts2->SetRequireITSRefit(kTRUE);
46   esdCuts2->SetAcceptKinkDaughters(kFALSE);
47   esdCuts2->SetMinNClustersTPC(70);
48
49   esdCuts2->SetMaxChi2PerClusterTPC(4.0);
50   esdCuts2->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kAny);
51
52   esdCuts2->SetMaxDCAToVertexZ(2.0);
53   esdCuts2->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01"); // 7*(0.0026+0.0050/pt^1.01)
54   esdCuts2->SetDCAToVertex2D(kFALSE);
55
56   // -- acceptance
57   esdCuts->SetEtaRange(-0.8,0.8);
58   esdCuts2->SetEtaRange(-0.8,0.8);
59
60   //===============================================
61   // -- Add task to the ANALYSIS manager
62
63   AliAnalysisTaskHIMultCorr *task =  new AliAnalysisTaskHIMultCorr("AliAnalysisTaskHIMultCorrVZERO");
64   task->SelectCollisionCandidates(AliVEvent::kMB);
65   task->SetUseCentrality(1);  // V0
66   task->SetESDCuts(esdCuts);
67   task->SetESDCuts2(esdCuts2);
68   task->SetMaxVertexZ(10.);    // cm
69   if (isMC) task->SetIsMC();
70   mgr->AddTask(task);
71   
72 #ifdef USE_SPD
73   AliAnalysisTaskHIMultCorr *taskSPD = new AliAnalysisTaskHIMultCorr("AliAnalysisTaskHIMultCorrSPD");
74   taskSPD->SelectCollisionCandidates(AliVEvent::kMB);
75   taskSPD->SetUseCentrality(2);  // SPD
76   taskSPD->SetESDCuts(esdCuts);
77   taskSPD->SetESDCuts2(esdCuts2);
78   taskSPD->SetMaxVertexZ(10.);   // cm
79   if (isMC) task->SetIsMC();
80   mgr->AddTask(taskSPD);
81 #endif
82
83   //================================================
84   // -- Output for Streamer
85 #if USE_STREAMER  
86   TString addoutput = gSystem->Getenv("ADD_OUTPUT_FILES");
87   if (addoutput.Length()) addoutput+=",";
88   addoutput+="eventInfoCoirr.root";
89   gSystem->Setenv("ADD_OUTPUT_FILES",addoutput.Data());
90 #endif
91   //================================================
92   // -- data containers - input
93
94   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
95
96   //================================================
97   // -- data containers - VZERO
98   
99   TString outputFileName = AliAnalysisManager::GetCommonFileName();
100   AliAnalysisDataContainer *coutput = 
101     mgr->CreateContainer("HIMultCorr_VZERO", TList::Class(),
102                          AliAnalysisManager::kOutputContainer,
103                          outputFileName);
104
105   mgr->ConnectInput  (task,  0, cinput );
106   mgr->ConnectOutput (task,  1, coutput);
107
108   //================================================
109   // -- data containers - SPD
110   
111 #ifdef USE_SPD
112   AliAnalysisDataContainer *coutputSPD = 
113     mgr->CreateContainer("HIMultCorr_SPD", TList::Class(),
114                            AliAnalysisManager::kOutputContainer,
115                                           outputFileName);
116
117   mgr->ConnectInput  (taskSPD,  0, cinput );
118   mgr->ConnectOutput (taskSPD,  1, coutputSPD);
119 #endif
120
121   return task;
122 }