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