adding the option for hybrid tracks global+global constrained as well as global+TPC...
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4CosmicCandidates.C
1 //DEFINITION OF A FEW CONSTANTS
2 const Double_t maxDeltaTheta = 0.01;
3 const Double_t ptMin = 5.;
4
5 AliPWG4CosmicCandidates* AddTaskPWG4CosmicCandidates(int cuts=1)
6 {
7   // Creates HighPtQATPConly analysis task and adds it to the analysis manager.
8   
9   // A. Get the pointer to the existing analysis manager via the static access method.
10   //==============================================================================
11   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
12   if (!mgr) {
13     Error("AddTaskPWG4CosmicCandidates", "No analysis manager to connect to.");
14     return NULL;
15   }  
16
17   // B. Check the analysis type using the event handlers connected to the analysis
18   //    manager. The availability of MC handler can also be checked here.
19   //==============================================================================
20   if (!mgr->GetInputEventHandler()) {
21     ::Error("AddTaskPWG4CosmicCandidates", "This task requires an input event handler");
22     return NULL;
23   }  
24
25   TString inputDataType = mgr->GetInputEventHandler()->GetDataType(); 
26
27   // C. Create the task, add it to manager.
28   //===========================================================================
29  
30   //CREATE THE  CUTS -----------------------------------------------
31   //Use AliESDtrackCuts
32   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
33   if(cuts==1) trackCuts=trackCuts->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
34   trackCuts->SetEtaRange(-0.9,0.9);
35   trackCuts->SetPtRange(0.15, 1e10);
36
37
38   //Create the task
39   cout << "Create the task AliPWG4CosmicCandidates" << endl;
40   AliPWG4CosmicCandidates *taskPWG4CC = new AliPWG4CosmicCandidates(Form("AliPWG4CosmicCandidates%d",cuts));
41   taskPWG4CC->SetCuts(trackCuts);
42   taskPWG4CC->SetMaxCosmicAngle(maxDeltaTheta);//0.008);
43   taskPWG4CC->SetPtMin(ptMin);
44   taskPWG4CC->SelectCollisionCandidates();
45
46   //Add task to manager
47   mgr->AddTask(taskPWG4CC);
48
49   // E. Create ONLY the output containers for the data produced by the task.
50   // Get and connect other common input/output containers via the manager as below
51   //==============================================================================
52   //  TString commonFileName = AliAnalysisManager::GetCommonFileName();
53   //  commonFileName += ":PWG4_CosmicCandidates"; 
54   AliAnalysisDataContainer *cout_hist1 = mgr->CreateContainer(Form("cosmic_hists%d",cuts), TList::Class(), AliAnalysisManager::kOutputContainer, Form("%s:PWG4_CosmicCandidates%d", AliAnalysisManager::GetCommonFileName(),cuts));
55   AliAnalysisDataContainer *cout_cuts0 = mgr->CreateContainer(Form("cosmic_cuts%d",cuts), AliESDtrackCuts::Class(), AliAnalysisManager::kParamContainer, Form("%s:PWG4_CosmicCandidates%d",AliAnalysisManager::GetCommonFileName(),cuts));
56   
57   
58   //Connect input containter to manager
59   mgr->ConnectInput(taskPWG4CC,0,mgr->GetCommonInputContainer());
60
61   //Connect output containers to manager
62   mgr->ConnectOutput(taskPWG4CC,1,cout_hist1);
63   mgr->ConnectOutput(taskPWG4CC,2,cout_cuts0);
64   
65   // Return task pointer at the end
66   return taskPWG4CC;
67 }