3 AliAnalysisTask* AddTask(Bool_t AnalysisMC, const Char_t* taskname, Int_t typerun, Float_t minc[], Float_t maxc[] )
5 // Creates a pid task and adds it to the analysis manager
7 // Get the pointer to the existing analysis manager via the static
9 //=========================================================================
10 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
12 Error("AddTaskHighPtDeDx", "No analysis manager to connect to.");
16 // Check the analysis type using the event handlers connected to the
17 // analysis manager The availability of MC handler can also be
19 // =========================================================================
20 if (!mgr->GetInputEventHandler()) {
21 Error("AddTaskHighPtDeDx", "This task requires an input event handler");
28 AliAnalysisFilter* trackFilterGolden = new AliAnalysisFilter("trackFilter");
29 AliESDtrackCuts* esdTrackCutsGolden = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE,1);
30 trackFilterGolden->AddCuts(esdTrackCutsGolden);
32 AliAnalysisFilter* trackFilterTPC = new AliAnalysisFilter("trackFilterTPC");
33 AliESDtrackCuts* esdTrackCutsTPC =
34 AliESDtrackCuts::GetStandardTPCOnlyTrackCuts();
35 trackFilterTPC->AddCuts(esdTrackCutsTPC);
39 // Create the task and configure it
40 //========================================================================
41 if(typerun==2){//heavy ion analysis
44 AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx[6];
45 for( Int_t i=0; i<6; ++i ){
47 Char_t TaskName[256]={0};
48 sprintf(TaskName,"%s_%1.0f_%1.0f",taskname,minc[i],maxc[i]);
50 taskHighPtDeDx[i] = new AliAnalysisTaskQAHighPtDeDx(TaskName);
51 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
52 taskHighPtDeDx[i]->SetAnalysisType(type);
53 taskHighPtDeDx[i]->SetAnalysisMC(AnalysisMC);
54 taskHighPtDeDx[i]->SetAnalysisPbPb(kTRUE);
55 taskHighPtDeDx[i]->SetDebugLevel(0);
56 taskHighPtDeDx[i]->SetEtaCut(0.8);
57 taskHighPtDeDx[i]->SetVtxCut(10.0);
58 taskHighPtDeDx[i]->SetCentralityEstimator(centralityEstimator);
59 taskHighPtDeDx[i]->SetTrigger(kTriggerInt);
60 taskHighPtDeDx[i]->SetMinCent(minc[i]);
61 taskHighPtDeDx[i]->SetMaxCent(maxc[i]);
62 taskHighPtDeDx[i]->SetPileUpRej(ispileuprej);
64 taskHighPtDeDx[i]->SetTrackFilterGolden(trackFilterGolden);
65 taskHighPtDeDx[i]->SetTrackFilterTPC(trackFilterTPC);
66 taskHighPtDeDx[i]->SetStoreMcIn(analysisMC);
68 mgr->AddTask(taskHighPtDeDx[i]);
72 // Create ONLY the output containers for the data produced by the
73 // task. Get and connect other common input/output containers via
74 // the manager as below
75 //=======================================================================
76 AliAnalysisDataContainer *cout_hist[6];
77 for( Int_t i=0; i<6; ++i ){
80 Char_t outFileName[256]={0};
81 sprintf(outFileName,"%s_%1.0f_%1.0f.root",taskname,minc[i],maxc[i]);
82 //AliAnalysisDataContainer *cout_hist = 0;
84 cout_hist[i] = mgr->CreateContainer(Form("output_%1.0f_%1.0f",minc[i],maxc[i]), TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
85 mgr->ConnectInput (taskHighPtDeDx[i], 0, mgr->GetCommonInputContainer());
86 mgr->ConnectOutput(taskHighPtDeDx[i], 1, cout_hist[i]);
90 // Return task pointer at the end
91 return taskHighPtDeDx[0];
93 if(typerun==3){//pp analysis
96 AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx = new AliAnalysisTaskQAHighPtDeDx("taskHighPtDeDxpp");
97 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
98 taskHighPtDeDx->SetAnalysisType(type);
99 taskHighPtDeDx->SetAnalysisMC(AnalysisMC);
100 taskHighPtDeDx->SetAnalysisPbPb(kFALSE);
101 taskHighPtDeDx->SetDebugLevel(0);
102 taskHighPtDeDx->SetEtaCut(0.8);
103 taskHighPtDeDx->SetVtxCut(10.0);
104 taskHighPtDeDx->SetTrigger(kTriggerInt);
105 taskHighPtDeDx->SetPileUpRej(ispileuprej);
107 taskHighPtDeDx->SetTrackFilterGolden(trackFilterGolden);
108 taskHighPtDeDx->SetTrackFilterTPC(trackFilterTPC);
109 taskHighPtDeDx->SetStoreMcIn(analysisMC); // def: kFALSE
111 mgr->AddTask(taskHighPtDeDx);
113 // Create ONLY the output containers for the data produced by the
114 // task. Get and connect other common input/output containers via
115 // the manager as below
116 //=======================================================================
118 AliAnalysisDataContainer *cout_histdedx;
121 Char_t outFileName[256]={0};
122 sprintf(outFileName,"%s.root",taskname);
123 //AliAnalysisDataContainer *cout_hist = 0;
125 cout_histdedx = mgr->CreateContainer("outputdedx", TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
126 mgr->ConnectInput (taskHighPtDeDx, 0, mgr->GetCommonInputContainer());
127 mgr->ConnectOutput(taskHighPtDeDx, 1, cout_histdedx);
129 // Return task pointer at the end
130 return taskHighPtDeDx;
140 if(typerun==4){//pPb analysis
141 cout<<"<<<<<<<<<<<<<<<<<<<<<<<<<< Runing pPb <<<<<<<<<<<<<<"<<endl;
143 AliAnalysisTaskQAHighPtDeDx* taskHighPtDeDx = new AliAnalysisTaskQAHighPtDeDx("taskHighPtDeDxpp");
144 TString type = mgr->GetInputEventHandler()->GetDataType(); // can be "ESD" or "AOD"
145 taskHighPtDeDx->SetAnalysisType(type);
146 taskHighPtDeDx->SetAnalysisMC(AnalysisMC);
147 taskHighPtDeDx->SetAnalysisPbPb(kTRUE);
148 taskHighPtDeDx->SetMinCent(-2000);
149 taskHighPtDeDx->SetMaxCent(2000);
150 taskHighPtDeDx->SetDebugLevel(0);
151 taskHighPtDeDx->SetEtaCut(0.8);
152 taskHighPtDeDx->SetVtxCut(10.0);
153 taskHighPtDeDx->SetTrigger(kTriggerInt);
154 taskHighPtDeDx->SetPileUpRej(ispileuprej);
155 taskHighPtDeDx->SetCentralityEstimator(centralityEstimator);
156 taskHighPtDeDx->SetStoreMcIn(analysisMC); // def: kFALSE
158 taskHighPtDeDx->SetTrackFilterGolden(trackFilterGolden);
159 taskHighPtDeDx->SetTrackFilterTPC(trackFilterTPC);
161 mgr->AddTask(taskHighPtDeDx);
163 // Create ONLY the output containers for the data produced by the
164 // task. Get and connect other common input/output containers via
165 // the manager as below
166 //=======================================================================
168 AliAnalysisDataContainer *cout_histdedx;
171 Char_t outFileName[256]={0};
172 sprintf(outFileName,"%s.root",taskname);
173 //AliAnalysisDataContainer *cout_hist = 0;
175 cout_histdedx = mgr->CreateContainer("outputdedx", TList::Class(), AliAnalysisManager::kOutputContainer, outFileName);
176 mgr->ConnectInput (taskHighPtDeDx, 0, mgr->GetCommonInputContainer());
177 mgr->ConnectOutput(taskHighPtDeDx, 1, cout_histdedx);
179 // Return task pointer at the end
180 return taskHighPtDeDx;