ROOT logo
AliAnalysisTask *AddTaskPtFlucPbPb(){
  //get the current analysis manager
  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
  if (!mgr) {
    Error("AddTask_sheckel_PtFlucPbPb", "No analysis manager found.");
    return 0;
  }


  // --- Check for MC ---
  AliMCEventHandler  *mcH = static_cast<AliMCEventHandler*>(mgr->GetMCtruthEventHandler());


  // --- For MC: Set AMPT or other MC ---
  Bool_t isAMPT = kFALSE;   // default is kFALSE, e.g. for data
  if (mcH) isAMPT = kFALSE;  // kTRUE = AMPT, kFALSE = other, e.g. HIJING ---> has to be set by the user! <---


  //============= Set Task Name ===================
  TString taskName=("AliAnalysisTaskPtFlucPbPb.cxx+");
  //===============================================
  //            Load the task
  gROOT->LoadMacro(taskName.Data());
  if (gProof){
    TString taskSO=gSystem->pwd();
    taskSO+="/";
    taskSO+=taskName(0,taskName.First('.'))+"_cxx.so";
    gProof->Exec(Form("gSystem->Load(\"%s\")",taskSO.Data()),kTRUE);
  }


  //========= Add task to the ANALYSIS manager =====
  AliAnalysisTaskPtFlucPbPb *task = new AliAnalysisTaskPtFlucPbPb("sheckelTaskPtFlucPbPb");


  // --- Set ESD track Cuts ---

  AliESDtrackCuts *esdTrackCuts = new AliESDtrackCuts("esdTrackCuts"); // My pp track cuts (ITS+TPC)
  AliESDtrackCuts *esdCuts = new AliESDtrackCuts("esdCuts"); // TPC-only track cuts

  // -- My pp track cuts (ITS+TPC)
  // TPC
  esdTrackCuts->SetRequireTPCStandAlone(kFALSE);
  esdTrackCuts->SetMinNClustersTPC(70);
  esdTrackCuts->SetMaxChi2PerClusterTPC(4.0);
  esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
  esdTrackCuts->SetRequireTPCRefit(kTRUE);
  // ITS
  esdTrackCuts->SetRequireITSRefit(kTRUE);
  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kAny);
  // DCA to vertex
  esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0182+0.0350/pt^1.01"); // 7*(0.0026+0.0050/pt^1.01)
  esdTrackCuts->SetMaxDCAToVertexZ(2.);
  esdTrackCuts->SetDCAToVertex2D(kFALSE);
  esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
  // Pt range and acceptance in eta
  esdTrackCuts->SetPtRange(0.15,2.);
  esdTrackCuts->SetEtaRange(-0.8,0.8);


  // -- TPC-only track cuts
  // TPC
  esdCuts->SetRequireTPCStandAlone(kTRUE);
  esdCuts->SetMinNClustersTPC(70);
  esdCuts->SetMaxChi2PerClusterTPC(4.0);
  esdCuts->SetAcceptKinkDaughters(kFALSE);
  esdCuts->SetRequireTPCRefit(kFALSE);
  // ITS
  esdCuts->SetRequireITSRefit(kFALSE);
  // DCA to vertex
  esdCuts->SetMaxDCAToVertexXY(2.4); // cm
  esdCuts->SetMaxDCAToVertexZ(3.2);  // cm
  esdCuts->SetDCAToVertex2D(kTRUE);
  esdCuts->SetRequireSigmaToVertex(kFALSE);
  // Pt range and acceptance in eta
  esdCuts->SetPtRange(0.15,2.);
  esdCuts->SetEtaRange(-0.8,0.8);

  // --- End track Cuts ---


//   task->SetAliESDtrackCuts(esdTrackCuts);
  task->SetAliESDtrackCuts(esdCuts);

  if (!isAMPT) task->SelectCollisionCandidates(AliVEvent::kMB);

  task->SetMaxVertexZ(10.);    // cm
  task->SetMaxVertexZDiff1(-1.);    // <= 0. -> off,    > 0. -> diff in cm
  task->SetNContributors(1);
  task->SetUseCentrality(1);   // 0=off, 1=VZERO, 2=SPD(not implemented)

  if (mcH) task->SetMC(kTRUE);
  if (mcH) task->SetMCType(0);    // 0 = ESD,  1 = MC truth with ESD,  2 = mod. MC truth with ESD,
				  // 	       3 = MC truth only,      4 = mod. MC truth only

  if (isAMPT) task->SetMCAMPT(kTRUE);
  else task->SetMCAMPT(kFALSE);


  mgr->AddTask(task);


  //================================================
  //              data containers
  //================================================

  // input container
  AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();

  // output container
  AliAnalysisDataContainer *coutput =
      mgr->CreateContainer("sheckel_PtFlucPbPb", TList::Class(),
                           AliAnalysisManager::kOutputContainer,"sheckel_PtFlucPbPb.root");

  // connect containers
  mgr->ConnectInput  (task,  0, cinput );
  mgr->ConnectOutput (task,  1, coutput );

  return task;

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