ROOT logo
// -*- c++ -*-
// $Id: AddTaskLongRangeCorrelations.C 407 2014-03-21 11:55:57Z cmayer $

const Double_t centMin[] = {  0,   0,  10,  20,  30,  40,  50,  60,  70,  80 };
const Double_t centMax[] = {  5,  10,  20,  30,  40,  50,  60,  70,  80, 100 };
const Int_t    nMin[]    = { -1, 120,  70,  35,  20,   5,   0,   0,   0,  -1 };
const Int_t    nMax[]    = { -1, 400, 275, 200, 145, 100,  68,  46,  30,  -1 };

const Double_t deltaEta1[] = {
  -1,
  0.0,
  0.2,
  0.4,
  0.6,
  0.8,
  1.0,
  1.2,
  1.4
};
const Double_t deltaEta2[] = {
  -1,
  0.1,
  0.3,
  0.5,
  0.7,
  0.9,
  1.1,
  1.3
};

const size_t nDeltaEta[] = {
  1,
  sizeof(deltaEta1) / sizeof(Double_t),
  sizeof(deltaEta2) / sizeof(Double_t)
};

AliAnalysisTaskLongRangeCorrelations*
AddTaskLongRangeCorrelations(Int_t    trackFilter  = 128, // TPC only
			     Bool_t   runMixing    = !kTRUE,
			     Int_t    mixingTracks = 50000,
			     Int_t    selPrimMC    = 0, Int_t selPrimMCData = 0,
			     Int_t    cutDeltaEta  = 0,
			     Double_t ptMin        = 0.2, 			     
			     Double_t phiMin       = 0, Double_t phiMax  = TMath::TwoPi()) {

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (NULL == mgr) {
    ::Error("AddTaskLongRangeCorrelations", "No analysis manager to connect to.");
    return NULL;
  }
  if (NULL == mgr->GetInputEventHandler()) {
    ::Error("AddTaskLongRangeCorrelations", "This task requires an input event handler");
    return NULL;
  }
  TString type = mgr->GetInputEventHandler()->GetDataType();
  if (type != "AOD") {
    ::Error("AddTaskLongRangeCorrelations", "This task runs only on AOD data");
    return NULL;
  }

  AliAnalysisTaskLongRangeCorrelations *taskLRC = NULL;
  AliAnalysisDataContainer             *listLRC = NULL;
  TString outputFileName = AliAnalysisManager::GetCommonFileName();
  outputFileName += ":PWGCFEbyE.outputLongRangeCorrelations.root";

  cutDeltaEta = TMath::Min(2, cutDeltaEta);
  for (Int_t i=0; i<sizeof(centMin)/sizeof(Double_t); ++i) {
    size_t jMin = (nMin[i] < 0) ? 0 : size_t(cutDeltaEta != 0);
    size_t jMax = (nMin[i] < 0) ? 1 : nDeltaEta[cutDeltaEta];
    if (cutDeltaEta==1 && nMin[i] < 0) continue;
    if (cutDeltaEta==1 && nMax[i] < 0) continue;
    for (Int_t j=jMin; j<jMax; ++j) {      
      if (cutDeltaEta==1 && deltaEta1[j] < 0) continue;
      taskLRC = new AliAnalysisTaskLongRangeCorrelations("TaskLongRangeCorrelations");
      taskLRC->SetRunMixing(runMixing);
      taskLRC->SetMixingTracks(mixingTracks);
      taskLRC->SetTrackFilter(trackFilter);
      taskLRC->SetCentralityRange(centMin[i], centMax[i]);
      taskLRC->SetPtRange(ptMin, 1e20);
      taskLRC->SetPhiRange(phiMin, phiMax);
      taskLRC->SelectCollisionCandidates(AliVEvent::kMB);
      taskLRC->SetSelectPrimaryMCParticles(selPrimMC, selPrimMCData);
      
      switch (cutDeltaEta) {
      case 1:
	taskLRC->SetRangeN(nMin[i], nMax[i], deltaEta1[j]);
	break;
      case 2:
	taskLRC->SetRangeN(nMin[i], nMax[i], deltaEta2[j]);
	break;
      default:
	taskLRC->SetRangeN(-1, -1, -1.);
	break;
      }
      Printf("%f %f %d %d %f", centMin[i], centMax[i],
	     taskLRC->GetNMin(),
	     taskLRC->GetNMax(),
	     taskLRC->GetDeltaEta());
      listLRC = mgr->CreateContainer(taskLRC->GetOutputListName(), TList::Class(),
				     AliAnalysisManager::kOutputContainer,
				     outputFileName.Data());
      mgr->AddTask(taskLRC);
      mgr->ConnectInput(taskLRC,  0, mgr->GetCommonInputContainer());
      mgr->ConnectOutput(taskLRC, 1, listLRC);
    }
  }

  return taskLRC;
}
 AddTaskLongRangeCorrelations.C:1
 AddTaskLongRangeCorrelations.C:2
 AddTaskLongRangeCorrelations.C:3
 AddTaskLongRangeCorrelations.C:4
 AddTaskLongRangeCorrelations.C:5
 AddTaskLongRangeCorrelations.C:6
 AddTaskLongRangeCorrelations.C:7
 AddTaskLongRangeCorrelations.C:8
 AddTaskLongRangeCorrelations.C:9
 AddTaskLongRangeCorrelations.C:10
 AddTaskLongRangeCorrelations.C:11
 AddTaskLongRangeCorrelations.C:12
 AddTaskLongRangeCorrelations.C:13
 AddTaskLongRangeCorrelations.C:14
 AddTaskLongRangeCorrelations.C:15
 AddTaskLongRangeCorrelations.C:16
 AddTaskLongRangeCorrelations.C:17
 AddTaskLongRangeCorrelations.C:18
 AddTaskLongRangeCorrelations.C:19
 AddTaskLongRangeCorrelations.C:20
 AddTaskLongRangeCorrelations.C:21
 AddTaskLongRangeCorrelations.C:22
 AddTaskLongRangeCorrelations.C:23
 AddTaskLongRangeCorrelations.C:24
 AddTaskLongRangeCorrelations.C:25
 AddTaskLongRangeCorrelations.C:26
 AddTaskLongRangeCorrelations.C:27
 AddTaskLongRangeCorrelations.C:28
 AddTaskLongRangeCorrelations.C:29
 AddTaskLongRangeCorrelations.C:30
 AddTaskLongRangeCorrelations.C:31
 AddTaskLongRangeCorrelations.C:32
 AddTaskLongRangeCorrelations.C:33
 AddTaskLongRangeCorrelations.C:34
 AddTaskLongRangeCorrelations.C:35
 AddTaskLongRangeCorrelations.C:36
 AddTaskLongRangeCorrelations.C:37
 AddTaskLongRangeCorrelations.C:38
 AddTaskLongRangeCorrelations.C:39
 AddTaskLongRangeCorrelations.C:40
 AddTaskLongRangeCorrelations.C:41
 AddTaskLongRangeCorrelations.C:42
 AddTaskLongRangeCorrelations.C:43
 AddTaskLongRangeCorrelations.C:44
 AddTaskLongRangeCorrelations.C:45
 AddTaskLongRangeCorrelations.C:46
 AddTaskLongRangeCorrelations.C:47
 AddTaskLongRangeCorrelations.C:48
 AddTaskLongRangeCorrelations.C:49
 AddTaskLongRangeCorrelations.C:50
 AddTaskLongRangeCorrelations.C:51
 AddTaskLongRangeCorrelations.C:52
 AddTaskLongRangeCorrelations.C:53
 AddTaskLongRangeCorrelations.C:54
 AddTaskLongRangeCorrelations.C:55
 AddTaskLongRangeCorrelations.C:56
 AddTaskLongRangeCorrelations.C:57
 AddTaskLongRangeCorrelations.C:58
 AddTaskLongRangeCorrelations.C:59
 AddTaskLongRangeCorrelations.C:60
 AddTaskLongRangeCorrelations.C:61
 AddTaskLongRangeCorrelations.C:62
 AddTaskLongRangeCorrelations.C:63
 AddTaskLongRangeCorrelations.C:64
 AddTaskLongRangeCorrelations.C:65
 AddTaskLongRangeCorrelations.C:66
 AddTaskLongRangeCorrelations.C:67
 AddTaskLongRangeCorrelations.C:68
 AddTaskLongRangeCorrelations.C:69
 AddTaskLongRangeCorrelations.C:70
 AddTaskLongRangeCorrelations.C:71
 AddTaskLongRangeCorrelations.C:72
 AddTaskLongRangeCorrelations.C:73
 AddTaskLongRangeCorrelations.C:74
 AddTaskLongRangeCorrelations.C:75
 AddTaskLongRangeCorrelations.C:76
 AddTaskLongRangeCorrelations.C:77
 AddTaskLongRangeCorrelations.C:78
 AddTaskLongRangeCorrelations.C:79
 AddTaskLongRangeCorrelations.C:80
 AddTaskLongRangeCorrelations.C:81
 AddTaskLongRangeCorrelations.C:82
 AddTaskLongRangeCorrelations.C:83
 AddTaskLongRangeCorrelations.C:84
 AddTaskLongRangeCorrelations.C:85
 AddTaskLongRangeCorrelations.C:86
 AddTaskLongRangeCorrelations.C:87
 AddTaskLongRangeCorrelations.C:88
 AddTaskLongRangeCorrelations.C:89
 AddTaskLongRangeCorrelations.C:90
 AddTaskLongRangeCorrelations.C:91
 AddTaskLongRangeCorrelations.C:92
 AddTaskLongRangeCorrelations.C:93
 AddTaskLongRangeCorrelations.C:94
 AddTaskLongRangeCorrelations.C:95
 AddTaskLongRangeCorrelations.C:96
 AddTaskLongRangeCorrelations.C:97
 AddTaskLongRangeCorrelations.C:98
 AddTaskLongRangeCorrelations.C:99
 AddTaskLongRangeCorrelations.C:100
 AddTaskLongRangeCorrelations.C:101
 AddTaskLongRangeCorrelations.C:102
 AddTaskLongRangeCorrelations.C:103
 AddTaskLongRangeCorrelations.C:104
 AddTaskLongRangeCorrelations.C:105
 AddTaskLongRangeCorrelations.C:106
 AddTaskLongRangeCorrelations.C:107
 AddTaskLongRangeCorrelations.C:108
 AddTaskLongRangeCorrelations.C:109
 AddTaskLongRangeCorrelations.C:110