]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGCF/Correlations/macros/AddTaskLongRangeCorrelations.C
new version of the LRC code (Christoph Mayer <Christoph.Mayer@cern.ch>)
[u/mrichter/AliRoot.git] / PWGCF / Correlations / macros / AddTaskLongRangeCorrelations.C
1 // -*- c++ -*-
2 // $Id: AddTaskLongRangeCorrelations.C 341 2013-09-30 15:59:19Z cmayer $
3
4 const Double_t centMin[] = {  0,  0, 10, 20, 30, 40, 50, 60, 70,  80 };
5 const Double_t centMax[] = {  5, 10, 20, 30, 40, 50, 60, 70, 80, 100 };
6
7 AliAnalysisTaskLongRangeCorrelations*
8 AddTaskLongRangeCorrelations(Int_t  trackFilter  = 128, // TPC only
9                              Bool_t runMixing    = !kTRUE,
10                              Int_t  mixingTracks = 50000,
11                              Int_t selPrimMC  = 0, Int_t selPrimMCData = 0,
12                              Double_t ptMin   = 0.2, 
13                              Double_t phiMin  = 0, Double_t phiMax  = TMath::TwoPi()) {
14
15   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
16   if (NULL == mgr) {
17     ::Error("AddTaskLongRangeCorrelations", "No analysis manager to connect to.");
18     return NULL;
19   }
20   if (NULL == mgr->GetInputEventHandler()) {
21     ::Error("AddTaskLongRangeCorrelations", "This task requires an input event handler");
22     return NULL;
23   }
24   TString type = mgr->GetInputEventHandler()->GetDataType();
25   if (type != "AOD") {
26     ::Error("AddTaskLongRangeCorrelations", "This task runs only on AOD data");
27     return NULL;
28   }
29
30   AliAnalysisTaskLongRangeCorrelations *taskLRC = NULL;
31   AliAnalysisDataContainer             *listLRC = NULL;
32   TString outputFileName = AliAnalysisManager::GetCommonFileName();
33   outputFileName += ":PWGCFEbyE.outputLongRangeCorrelations.root";
34
35   for (Int_t i=0; i<sizeof(centMin)/sizeof(Double_t); ++i) {
36     taskLRC = new AliAnalysisTaskLongRangeCorrelations("TaskLongRangeCorrelations");
37     taskLRC->SetRunMixing(runMixing);
38     taskLRC->SetMixingTracks(mixingTracks);
39     taskLRC->SetTrackFilter(trackFilter);
40     taskLRC->SetCentralityRange(centMin[i], centMax[i]);
41     taskLRC->SetPtRange(ptMin, 1e20);
42     taskLRC->SetPhiRange(phiMin, phiMax);
43     taskLRC->SelectCollisionCandidates(AliVEvent::kMB);
44     taskLRC->SetSelectPrimaryMCParticles(selPrimMC, selPrimMCData);
45
46     listLRC = mgr->CreateContainer(taskLRC->GetOutputListName(), TList::Class(),
47                                    AliAnalysisManager::kOutputContainer,
48                                    outputFileName.Data());
49     mgr->AddTask(taskLRC);
50     mgr->ConnectInput(taskLRC,  0, mgr->GetCommonInputContainer());
51     mgr->ConnectOutput(taskLRC, 1, listLRC);
52   }
53
54   return taskLRC;
55 }