]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskPWG4HighPtQAMC.C
Added weihting with number of trials and cross section, adapted track cuts
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtQAMC.C
1
2 //DEFINITION OF A FEW CONSTANTS
3
4 AliPWG4HighPtQAMC* AddTaskPWG4HighPtQAMC(char *prodType = "LHC10e14", int trackType = 0)
5 {
6   // Creates HighPtQAMC analysis task and adds it to the analysis manager.
7   
8   // A. Get the pointer to the existing analysis manager via the static access method.
9   //==============================================================================
10   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11   if (!mgr) {
12     Error("AddTaskPWG4HighPtQMC", "No analysis manager to connect to.");
13     return NULL;
14   }  
15
16   // B. Check the analysis type using the event handlers connected to the analysis
17   //    manager. The availability of MC handler can also be checked here.
18   //==============================================================================
19   if (!mgr->GetInputEventHandler()) {
20     ::Error("AddPWG4TaskHighPtQAMC", "This task requires an input event handler");
21     return NULL;
22   }  
23   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
24   const char *analysisType = "ESD";//"TPC"
25
26   // C. Create the task, add it to manager.
27   //===========================================================================
28  
29   //CREATE THE  CUTS -----------------------------------------------
30   //Use AliESDtrackCuts
31   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
32   //Standard Cuts
33   //Set track cuts for global tracks
34   if(trackType==0) trackCuts = trackCuts->GetStandardITSTPCTrackCuts2010(kTRUE);//Primary Track Selection
35   //Set track cuts for TPConly tracks
36   if(trackType==1) { 
37     trackCuts = trackCuts->GetStandardTPCOnlyTrackCuts(); 
38     trackCuts->SetMinNClustersTPC(70);
39   }
40   trackCuts->SetEtaRange(-0.9,0.9);
41   trackCuts->SetPtRange(0.15, 1e10);
42   
43   AliESDtrackCuts *trackCutsITS = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts with ITSrefit");
44   //Standard Cuts
45   trackCutsITS=trackCuts->GetStandardITSTPCTrackCuts2010(kTRUE);//Primary Track Selection
46   trackCutsITS->SetEtaRange(-0.9,0.9);
47   trackCutsITS->SetPtRange(0.15, 1e10);
48   trackCutsITS->SetRequireITSRefit(kTRUE);
49
50   //Create the task
51   AliPWG4HighPtQAMC *taskPWG4QAMC = new AliPWG4HighPtQAMC(Form("AliPWG4HighPtQAMC%d",trackType));
52   taskPWG4QAMC->SetCuts(trackCuts);
53   taskPWG4QAMC->SetCutsITS(trackCutsITS);
54   taskPWG4QAMC->SetTrackType(trackType);
55   
56   if(!strcmp(prodType, "LHC10e14")  || !strcmp(prodType, "PbPb")) taskPWG4QAMC->SetPtMax(500.);
57   else taskPWG4QAMC->SetPtMax(100.);
58  
59   // E. Create ONLY the output containers for the data produced by the task.
60   // Get and connect other common input/output containers via the manager as below
61   //==============================================================================
62
63   //------ input data ------
64   //  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
65   printf("Create output containers \n");
66   TString outputfile = AliAnalysisManager::GetCommonFileName();
67   outputfile += Form(":PWG4_HighPtQAMC%d",trackType);
68   
69   AliAnalysisDataContainer *cout_hist1 = mgr->CreateContainer(Form("qa_histsMC%d",trackType), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
70   AliAnalysisDataContainer *cout_hist2 = mgr->CreateContainer(Form("qa_histsMCITS%d",trackType), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
71
72   mgr->AddTask(taskPWG4QAMC);
73   mgr->ConnectInput(taskPWG4QAMC,0,mgr->GetCommonInputContainer());
74   mgr->ConnectOutput(taskPWG4QAMC,0,cout_hist1);
75   mgr->ConnectOutput(taskPWG4QAMC,1,cout_hist2);
76
77     // Return task pointer at the end
78   return taskPWG4QAMC;
79 }