1 //DEFINITION OF A FEW CONSTANTS
3 AliPWG4HighPtQATPConly* AddTaskPWG4HighPtQATPConly(char *prodType = "LHC10e14",int cuts=2)//1: Standard Cuts 2009 2: GetStandardITSTPCTrackCuts2009
5 // Creates HighPtQATPConly analysis task and adds it to the analysis manager.
7 // A. Get the pointer to the existing analysis manager via the static access method.
8 //==============================================================================
9 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
11 Error("AddTaskPWG4HighPtQATPConly", "No analysis manager to connect to.");
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");
22 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
23 const char *analysisType = "ESD";//"TPC"
25 // C. Create the task, add it to manager.
26 //===========================================================================
28 //CREATE THE CUTS -----------------------------------------------
30 AliESDtrackCuts *trackCuts = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts");
32 trackCuts=trackCuts->GetStandardITSTPCTrackCuts2010(kTRUE);//Primary Track Selection
33 trackCuts->SetEtaRange(-0.9,0.9);
34 trackCuts->SetPtRange(0.15, 1e10);
38 trackCuts=trackCuts->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
39 trackCuts->SetEtaRange(-0.9,0.9);
40 trackCuts->SetPtRange(0.15, 1e10);
43 AliESDtrackCuts *trackCutsITS = new AliESDtrackCuts("AliESDtrackCuts","Standard Cuts with ITSrefit");
47 trackCutsITS->SetMinNClustersTPC(70);
48 trackCutsITS->SetMaxChi2PerClusterTPC(4);
49 trackCutsITS->SetAcceptKinkDaughters(kFALSE);
50 trackCutsITS->SetRequireTPCRefit(kTRUE);
52 trackCutsITS->SetRequireITSRefit(kTRUE);
53 trackCutsITS->SetClusterRequirementITS(AliESDtrackCuts::kSPD, AliESDtrackCuts::kNone);
54 trackCutsITS->SetClusterRequirementITS(AliESDtrackCuts::kSDD, AliESDtrackCuts::kFirst);
56 trackCutsITS->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01");
57 trackCutsITS->SetMaxDCAToVertexZ(2);
58 trackCutsITS->SetDCAToVertex2D(kFALSE);
59 trackCutsITS->SetRequireSigmaToVertex(kFALSE);
61 trackCutsITS->SetEtaRange(-0.9,0.9);
62 trackCutsITS->SetPtRange(0.15, 1e10);
63 trackCutsITS->SetRequireITSRefit(kTRUE);
67 trackCutsITS=trackCutsITS->GetStandardITSTPCTrackCuts2009(kTRUE);//Primary Track Selection
68 trackCutsITS->SetEtaRange(-0.9,0.9);
69 trackCutsITS->SetPtRange(0.15, 1e10);
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.);
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 //==============================================================================
84 //------ input data ------
85 TString outputfile = "";
86 outputfile = AliAnalysisManager::GetCommonFileName();
87 outputfile += Form(":PWG4_HighPtQATPConly%d",cuts);
89 AliAnalysisDataContainer *cout_hist0;
90 AliAnalysisDataContainer *cout_hist1;
91 AliAnalysisDataContainer *cout_hist2;
93 AliAnalysisDataContainer *cout_cuts0;
94 AliAnalysisDataContainer *cout_cuts1;
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);
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);
103 //Add task to manager
104 mgr->AddTask(taskPWG4QA);
106 //Connect input containter to manager
107 mgr->ConnectInput(taskPWG4QA,0,mgr->GetCommonInputContainer());
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);
116 // Return task pointer at the end