Updating track cuts and removing functionality that is now in separate cosmics tasks
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtQAMC.C
1 //DEFINITION OF A FEW CONSTANTS
2
3 AliPWG4HighPtQAMC* AddTaskPWG4HighPtQAMC()
4 {
5   // Creates HighPtQAMC 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("AddTaskPWG4HighPtQMC", "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("AddPWG4TaskHighPtQAMC", "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=trackCuts->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
33   trackCuts->SetEtaRange(-0.9,0.9);
34   trackCuts->SetPtRange(0.15, 1e10);
35   trackCuts->SetRequireITSRefit(kFALSE);
36   
37   AliESDtrackCuts *trackCutsITS = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts with ITSrefit");
38   //Standard Cuts
39   trackCuts=trackCuts->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
40   trackCuts->SetEtaRange(-0.9,0.9);
41   trackCuts->SetPtRange(0.15, 1e10);
42   trackCuts->SetRequireITSRefit(kTRUE);
43
44   //Create the task
45   AliPWG4HighPtQAMC *taskPWG4QAMC = new AliPWG4HighPtQAMC("AliPWG4HighPtQAMC");
46   taskPWG4QAMC->SetCuts(trackCuts);
47   taskPWG4QAMC->SetCutsITS(trackCutsITS);
48   
49  
50   // E. Create ONLY the output containers for the data produced by the task.
51   // Get and connect other common input/output containers via the manager as below
52   //==============================================================================
53
54   //------ input data ------
55   //  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
56   printf("Create output containers \n");
57   TString outputfile = AliAnalysisManager::GetCommonFileName();
58   outputfile += ":PWG4_HighPtQAMC"; 
59   //char *outputfile = "outputAliPWG4HighPtQAMCTestTrain.root";
60   AliAnalysisDataContainer *cout_hist0 = mgr->CreateContainer("qa_histsMC", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
61   AliAnalysisDataContainer *cout_hist2 = mgr->CreateContainer("qa_histsMCITS", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
62
63   mgr->AddTask(taskPWG4QAMC);
64   mgr->ConnectInput(taskPWG4QAMC,0,mgr->GetCommonInputContainer());
65   mgr->ConnectOutput(taskPWG4QAMC,0,cout_hist0);
66   mgr->ConnectOutput(taskPWG4QAMC,1,cout_hist2);
67
68   // Return task pointer at the end
69   return taskPWG4QAMC;
70 }