]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/macros/AddTaskPWG4HighPtQAMC.C
570b73ff6217b1416f24b2d17ad9deb708cdbd10
[u/mrichter/AliRoot.git] / PWG4 / macros / AddTaskPWG4HighPtQAMC.C
1 void AddTaskPWG4HighPtQAMCAll(char *prodType = "LHC10e14") {
2
3   AliPWG4HighPtQAMC *taskQAMC00 = AddTaskPWG4HighPtQAMC(prodType,0,0);
4   AliPWG4HighPtQAMC *taskQAMC00 = AddTaskPWG4HighPtQAMC(prodType,0,1);
5   AliPWG4HighPtQAMC *taskQAMC00 = AddTaskPWG4HighPtQAMC(prodType,0,2);
6   AliPWG4HighPtQAMC *taskQAMC10 = AddTaskPWG4HighPtQAMC(prodType,1,0);
7   AliPWG4HighPtQAMC *taskQAMC20 = AddTaskPWG4HighPtQAMC(prodType,2,0);
8   AliPWG4HighPtQAMC *taskQAMC70 = AddTaskPWG4HighPtQAMC(prodType,7,0);
9 }
10
11 AliPWG4HighPtQAMC* AddTaskPWG4HighPtQAMC(char *prodType = "LHC10e14", Int_t trackType = 0, Int_t cuts =0)
12 {
13   // Creates HighPtQAMC analysis task and adds it to the analysis manager.
14
15   //Track types:
16   //trackType
17   //           0: global tracks
18   //           1: TPConly tracks
19   //           2: TPConly constrained tracks
20
21   //Load common track cut class
22   gROOT->LoadMacro("$ALICE_ROOT/PWG4/macros/CreateTrackCutsPWG4.C");
23   
24   // A. Get the pointer to the existing analysis manager via the static access method.
25   //==============================================================================
26   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
27   if (!mgr) {
28     Error("AddTaskPWG4HighPtQMC", "No analysis manager to connect to.");
29     return NULL;
30   }  
31
32   // B. Check the analysis type using the event handlers connected to the analysis
33   //    manager. The availability of MC handler can also be checked here.
34   //==============================================================================
35   if (!mgr->GetInputEventHandler()) {
36     ::Error("AddPWG4TaskHighPtQAMC", "This task requires an input event handler");
37     return NULL;
38   }  
39   TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
40   const char *analysisType = "ESD";
41
42   // C. Create the task, add it to manager.
43   //===========================================================================
44  
45   //CREATE THE  CUTS -----------------------------------------------
46   //Use AliESDtrackCuts
47   AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
48   //Standard Cuts
49   //Set track cuts for global tracks
50   if(trackType==0 && cuts==0) {
51     // tight global tracks - RAA analysis
52     trackCuts = CreateTrackCutsPWG4(1000);
53   }
54   if(trackType==0 && cuts==1) {
55     //Cuts global tracks with ITSrefit requirement and SPDrequirement for jet analysis
56     trackCuts = CreateTrackCutsPWG4(10001001);
57    }
58   if(trackType==0 && cuts==2) {
59     //Cuts global tracks with ITSrefit requirement but without SPD
60     trackCuts = CreateTrackCutsPWG4(10011001);
61   }
62   if(trackType==7 && cuts==0) {
63     // tight global tracks
64     trackCuts = CreateTrackCutsPWG4(10041001);
65   }
66   if(trackType==7 && cuts==1) {
67     // tight global tracks
68     trackCuts = CreateTrackCutsPWG4(10011001);
69   }
70   //Set track cuts for TPConly tracks
71   if(trackType==1 || trackType==2) { 
72     //Set track cuts for TPConly tracks
73     trackCuts = CreateTrackCutsPWG4(2001);
74   }
75   trackCuts->SetEtaRange(-0.9,0.9);
76   trackCuts->SetPtRange(0.15, 1e10);
77   
78   //Create the task
79   AliPWG4HighPtQAMC *taskPWG4QAMC = new AliPWG4HighPtQAMC(Form("AliPWG4HighPtQAMC%d",trackType));
80   taskPWG4QAMC->SetCuts(trackCuts);
81   taskPWG4QAMC->SetTrackType(trackType);
82   
83   if(!strcmp(prodType, "LHC10e14")) taskPWG4QAMC->SetPtMax(500.);
84   else taskPWG4QAMC->SetPtMax(100.);
85
86   //taskPWG4QAMC->SetSigmaConstrainedMax(5.);
87
88   // E. Create ONLY the output containers for the data produced by the task.
89   // Get and connect other common input/output containers via the manager as below
90   //==============================================================================
91
92   //------ input data ------
93   //  AliAnalysisDataContainer *cinput0  = mgr->GetCommonInputContainer();
94   printf("Create output containers \n");
95   TString outputfile = AliAnalysisManager::GetCommonFileName();
96   outputfile += Form(":PWG4_HighPtQAMC%d%d",trackType,cuts);
97   
98   AliAnalysisDataContainer *cout_hist1 = mgr->CreateContainer(Form("qa_histsMC%d%d",trackType,cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
99
100   mgr->AddTask(taskPWG4QAMC);
101   mgr->ConnectInput(taskPWG4QAMC,0,mgr->GetCommonInputContainer());
102   mgr->ConnectOutput(taskPWG4QAMC,0,cout_hist1);
103
104   // Return task pointer at the end
105   return taskPWG4QAMC;
106 }