adding new QA tasks from Marta
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtQATPConly.C
1 //DEFINITION OF A FEW CONSTANTS
2
3 AliPWG4HighPtQATPConly* AddTaskPWG4HighPtQATPConly()//<some_parameters>)
4 {
5   // Creates a proton analysis task and adds it to the analysis manager.
6   
7   // A. Get the pointer to the existing analysis manager via the static access method.
8   //==============================================================================
9   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
10   if (!mgr) {
11     Error("AddTaskPWG4HighPtSpectra", "No analysis manager to connect to.");
12     return NULL;
13   }  
14
15   // B. Check the analysis type using the event handlers connected to the analysis
16   //    manager. The availability of MC handler can also be checked here.
17   //==============================================================================
18   if (!mgr->GetInputEventHandler()) {
19     ::Error("AddTaskPWG4HighPtTPConly", "This task requires an input event handler");
20     return NULL;
21   }  
22   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
23   const char *analysisType = "ESD";//"TPC"
24
25   // C. Create the task, add it to manager.
26   //===========================================================================
27  
28   //CREATE THE  CUTS -----------------------------------------------
29   //Use AliESDtrackCuts
30   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
31   //Standard Cuts
32   trackCuts->SetAcceptKinkDaughters(kFALSE);//
33   trackCuts->SetRequireTPCRefit(kTRUE);//
34   trackCuts->SetEtaRange(-0.9,0.9);//-0.5,0.5);//
35   trackCuts->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);//
36   trackCuts->SetPtRange(0.15, 1e10);//
37   trackCuts->SetMinNClustersTPC(50);//
38   trackCuts->SetMaxChi2PerClusterTPC(3.5);//
39   //trackCuts->SetRequireITSRefit(kTRUE);
40   trackCuts->SetMaxDCAToVertexXY(2.4);
41   trackCuts->SetMaxDCAToVertexZ(3.2);
42   trackCuts->SetDCAToVertex2D(kTRUE);
43   
44   AliESDtrackCuts *trackCutsITS = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts with ITSrefit");
45   trackCutsITS->SetAcceptKinkDaughters(kFALSE);//
46   trackCutsITS->SetRequireTPCRefit(kTRUE);//
47   trackCutsITS->SetEtaRange(-0.9,0.9);//-0.5,0.5);//
48   trackCutsITS->SetMaxCovDiagonalElements(2,2,0.5,0.5,2);//
49   trackCutsITS->SetPtRange(0.15, 1e10);//
50   trackCutsITS->SetMinNClustersTPC(50);//
51   trackCutsITS->SetMaxChi2PerClusterTPC(3.5);//
52   trackCutsITS->SetRequireITSRefit(kTRUE);
53   trackCutsITS->SetMaxDCAToVertexXY(2.4);
54   trackCutsITS->SetMaxDCAToVertexZ(3.2);
55   trackCutsITS->SetDCAToVertex2D(kTRUE); 
56
57   //Create the task
58   AliPWG4HighPtQATPConly *taskPWG4QA = new AliPWG4HighPtQATPConly("AliPWG4HighPtQATPConly");
59   taskPWG4QA->SetCuts(trackCuts);
60   taskPWG4QA->SetCutsITS(trackCutsITS);
61   
62  
63   // E. Create ONLY the output containers for the data produced by the task.
64   // Get and connect other common input/output containers via the manager as below
65   //==============================================================================
66
67   //------ input data ------
68   //  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
69   TString outputfile = AliAnalysisManager::GetCommonFileName();
70   outputfile += ":PWG4_HighPtQATPConly"; 
71   //char *outputfile = "outputAliPWG4HighPtQATPConlyTestTrain.root";
72   AliAnalysisDataContainer *cout_hist0 = mgr->CreateContainer("qa_hists", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
73   AliAnalysisDataContainer *cout_hist1 = mgr->CreateContainer("qa_histsTPC", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
74   AliAnalysisDataContainer *cout_hist2 = mgr->CreateContainer("qa_histsITS", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
75
76  
77   mgr->AddTask(taskPWG4QA);
78
79   mgr->ConnectInput(taskPWG4QA,0,mgr->GetCommonInputContainer());
80   mgr->ConnectOutput(taskPWG4QA,0,cout_hist0);
81   mgr->ConnectOutput(taskPWG4QA,1,cout_hist1);
82   mgr->ConnectOutput(taskPWG4QA,2,cout_hist2);
83
84   // Return task pointer at the end
85   return taskPWG4QA;
86 }