]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskPWG4HighPtQAMC.C
added option for variable binning depending on the dataset for high pt QA and spectra...
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtQAMC.C
1 //DEFINITION OF A FEW CONSTANTS
2
3 AliPWG4HighPtQAMC* AddTaskPWG4HighPtQAMC(char *prodType = "LHC10e14")
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   trackCutsITS=trackCuts->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
40   trackCutsITS->SetEtaRange(-0.9,0.9);
41   trackCutsITS->SetPtRange(0.15, 1e10);
42   trackCutsITS->SetRequireITSRefit(kTRUE);
43
44   //Create the task
45   AliPWG4HighPtQAMC *taskPWG4QAMC = new AliPWG4HighPtQAMC("AliPWG4HighPtQAMC");
46   taskPWG4QAMC->SetCuts(trackCuts);
47   taskPWG4QAMC->SetCutsITS(trackCutsITS);
48   if(!strcmp(prodType, "LHC10e14")  || !strcmp(prodType, "PbPb")) taskPWG4QAMC->SetPtMax(500.);
49   else taskPWG4QAMC->SetPtMax(100.);
50  
51   // E. Create ONLY the output containers for the data produced by the task.
52   // Get and connect other common input/output containers via the manager as below
53   //==============================================================================
54
55   //------ input data ------
56   //  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
57   printf("Create output containers \n");
58   TString outputfile = AliAnalysisManager::GetCommonFileName();
59   outputfile += ":PWG4_HighPtQAMC"; 
60   //char *outputfile = "outputAliPWG4HighPtQAMCTestTrain.root";
61   AliAnalysisDataContainer *cout_hist0 = mgr->CreateContainer("qa_histsMC", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
62   AliAnalysisDataContainer *cout_hist2 = mgr->CreateContainer("qa_histsMCITS", TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
63
64   mgr->AddTask(taskPWG4QAMC);
65   mgr->ConnectInput(taskPWG4QAMC,0,mgr->GetCommonInputContainer());
66   mgr->ConnectOutput(taskPWG4QAMC,0,cout_hist0);
67   mgr->ConnectOutput(taskPWG4QAMC,1,cout_hist2);
68
69   // Return task pointer at the end
70   return taskPWG4QAMC;
71 }