]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/macros/AddTaskPWG4HighPtQATPConly.C
fix bug from last commit - Marta V.
[u/mrichter/AliRoot.git] / PWGJE / macros / AddTaskPWG4HighPtQATPConly.C
1 //DEFINITION OF A FEW CONSTANTS
2
3 AliPWG4HighPtQATPConly* AddTaskPWG4HighPtQATPConly(char *prodType = "LHC10e14",int cuts=2)//1: Standard Cuts 2009 2: GetStandardITSTPCTrackCuts2009
4 {
5   // Creates HighPtQATPConly 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("AddTaskPWG4HighPtQATPConly", "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("AddTaskPWG4HighPtQATPConly", "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   if(cuts==1) {
32     trackCuts=trackCuts->GetStandardITSTPCTrackCuts2010(kTRUE);//Primary Track Selection
33     trackCuts->SetEtaRange(-0.9,0.9);
34     trackCuts->SetPtRange(0.15, 1e10);
35
36   }
37   else if(cuts==2) {
38     trackCuts=trackCuts->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
39     trackCuts->SetEtaRange(-0.9,0.9);
40     trackCuts->SetPtRange(0.15, 1e10);
41   }
42
43   AliESDtrackCuts *trackCutsITS = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts with ITSrefit");
44   if(cuts==1) {
45     //Cuts SPD || SDD
46     // TPC  
47     trackCutsITS->SetMinNClustersTPC(70);
48     trackCutsITS->SetMaxChi2PerClusterTPC(4);
49     trackCutsITS->SetAcceptKinkDaughters(kFALSE);
50     trackCutsITS->SetRequireTPCRefit(kTRUE);
51     // ITS
52     trackCutsITS->SetRequireITSRefit(kTRUE);
53     trackCutsITS->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
54     trackCutsITS->SetClusterRequirementITS(AliESDtrackCuts::kSDD, AliESDtrackCuts::kFirst);
55     
56     trackCutsITS->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
57     trackCutsITS->SetMaxDCAToVertexZ(2);
58     trackCutsITS->SetDCAToVertex2D(kFALSE);
59     trackCutsITS->SetRequireSigmaToVertex(kFALSE);
60     
61     trackCutsITS->SetEtaRange(-0.9,0.9);
62     trackCutsITS->SetPtRange(0.15, 1e10);
63     trackCutsITS->SetRequireITSRefit(kTRUE);
64
65   }
66  else if(cuts==2) {
67    trackCutsITS=trackCutsITS->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
68    trackCutsITS->SetEtaRange(-0.9,0.9);
69    trackCutsITS->SetPtRange(0.15, 1e10);
70  }
71
72 //Create the task
73   AliPWG4HighPtQATPConly *taskPWG4QA = new AliPWG4HighPtQATPConly(Form("AliPWG4HighPtQATPConly%d",cuts));
74   taskPWG4QA->SetCuts(trackCuts);
75   taskPWG4QA->SetCutsITS(trackCutsITS);
76   taskPWG4QA->SetCutType(cuts);
77   if(!strcmp(prodType, "LHC10e14") || !strcmp(prodType, "PbPb")) taskPWG4QA->SetPtMax(500.);
78   else taskPWG4QA->SetPtMax(100.);
79
80   // E. Create ONLY the output containers for the data produced by the task.
81   // Get and connect other common input/output containers via the manager as below
82   //==============================================================================
83
84   //------ input data ------
85   TString outputfile = "";
86   outputfile = AliAnalysisManager::GetCommonFileName();
87   outputfile += Form(":PWG4_HighPtQATPConly%d",cuts);
88   
89   AliAnalysisDataContainer *cout_hist0;
90   AliAnalysisDataContainer *cout_hist1;
91   AliAnalysisDataContainer *cout_hist2;
92
93   AliAnalysisDataContainer *cout_cuts0;
94   AliAnalysisDataContainer *cout_cuts1;
95
96   cout_hist0 = mgr->CreateContainer(Form("qa_histsCuts%d",cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
97   cout_hist1 = mgr->CreateContainer(Form("qa_histsTPCCuts%d",cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);
98   cout_hist2 = mgr->CreateContainer(Form("qa_histsITSCuts%d",cuts), TList::Class(), AliAnalysisManager::kOutputContainer,outputfile);  
99
100   cout_cuts0 = mgr->CreateContainer(Form("qa_trackCuts%d",cuts), AliESDtrackCuts::Class(), AliAnalysisManager::kParamContainer,outputfile);
101   cout_cuts1 = mgr->CreateContainer(Form("qa_trackCutsITS%d",cuts), AliESDtrackCuts::Class(), AliAnalysisManager::kParamContainer,outputfile);
102
103   //Add task to manager
104   mgr->AddTask(taskPWG4QA);
105
106   //Connect input containter to manager
107   mgr->ConnectInput(taskPWG4QA,0,mgr->GetCommonInputContainer());
108
109   //Connect output containers to manager
110   mgr->ConnectOutput(taskPWG4QA,0,cout_hist0);
111   mgr->ConnectOutput(taskPWG4QA,1,cout_hist1);
112   mgr->ConnectOutput(taskPWG4QA,2,cout_hist2);
113   mgr->ConnectOutput(taskPWG4QA,3,cout_cuts0);
114   mgr->ConnectOutput(taskPWG4QA,4,cout_cuts1);
115
116   // Return task pointer at the end
117   return taskPWG4QA;
118 }