ROOT logo
void AddTask_dNdPtCutAnalysisPbPb()
{
/*
CheckLoadLibrary("libPWG0base");
CheckLoadLibrary("libPWG0dep");
CheckLoadLibrary("libPWG0selectors");
*/

  gSystem->Load("libPWG0base.so");
  gSystem->Load("libPWG0dep.so");
  gSystem->Load("libPWG0selectors.so");

  AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();

  if (!mgr) {
    Error("AddTask_dNdPtCutAnalysisPbPb", "No analysis manager found.");
    return 0;
  }

  // Switch off all AliInfo (too much output!!!)
  AliLog::SetGlobalLogLevel(AliLog::kError);
  mgr->SetDebugLevel(0);

  //
  // Create physics trigger selection class
  //
  AliPhysicsSelection *physTrigSel =  new AliPhysicsSelection();

  //
  // Create event cuts
  //
  Float_t zvWindow = 20. ;

  AlidNdPtEventCuts *evtCuts = new AlidNdPtEventCuts("AlidNdPtEventCuts","Event cuts");
  evtCuts->SetZvRange(-zvWindow,zvWindow);
  evtCuts->SetMeanXYZv(0.0,0.0,0.0);
  evtCuts->SetSigmaMeanXYZv(1.0,1.0,10.0);
  evtCuts->SetTriggerRequired(kTRUE);

  //
  // Create geom. acceptance cuts
  //
  Float_t etaWindow = 1. ;
  Float_t ptMin = 0.15 ;

  AlidNdPtAcceptanceCuts *accCuts = new AlidNdPtAcceptanceCuts("AlidNdPtAcceptanceCuts","Geom. acceptance cuts");
  accCuts->SetEtaRange(-etaWindow,etaWindow);
  accCuts->SetPtRange(ptMin,1.e10);
  accCuts->SetMaxDCAr(3.0);
  accCuts->SetMaxDCAz(30.0);

  //
  // Create standard esd track cuts
  //
  Int_t cutMode = 23;

  gROOT->LoadMacro("$ALICE_ROOT/PWG0/dNdPt/macros/CreatedNdPtTrackCuts.C");
  AliESDtrackCuts* esdTrackCuts = CreatedNdPtTrackCuts(cutMode);
  if (!esdTrackCuts) {
    printf("ERROR: esdTrackCuts could not be created\n");
    return;
  } else {
    esdTrackCuts->SetHistogramsOn(kTRUE);
  }


  Bool_t hasMC=(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler()!=0x0);

  //
  // Create task
  //
  AlidNdPtTask *task = new AlidNdPtTask("AlidNdPtTask");
  task->SetUseMCInfo(hasMC);

  // trigger
  task->SelectCollisionCandidates(AliVEvent::kMB); 

 //
 // set analysis options from the Helper here !!!
 //
 AlidNdPtHelper::OutputObject outputObject = AlidNdPtHelper::kCutAnalysisPbPb;
 AlidNdPtHelper::AnalysisMode analysisMode = AlidNdPtHelper::kTPC ;
 AlidNdPtHelper::ParticleMode particleMode = AlidNdPtHelper::kAllPart ;


  //
  // Create cut analysis object
  //
  if(outputObject==AlidNdPtHelper::kCutAnalysisPbPb) {

    AlidNdPtCutAnalysisPbPb *fdNdPtAnalysisPbPb = new AlidNdPtCutAnalysisPbPb("dNdPtCutAnalysisPbPb","dN/dPt Analysis");
    fdNdPtAnalysisPbPb->SetEventCuts(evtCuts);
    fdNdPtAnalysisPbPb->SetAcceptanceCuts(accCuts);
    fdNdPtAnalysisPbPb->SetTrackCuts(esdTrackCuts);
    fdNdPtAnalysisPbPb->SetAnalysisMode(analysisMode); 
    fdNdPtAnalysisPbPb->SetParticleMode(particleMode); 


    if(hasMC) 
    {
       physTrigSel->SetAnalyzeMC();
       fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel);

       fdNdPtAnalysisPbPb->SetUseMCInfo(kTRUE);
    }else { // online trigger
    fdNdPtAnalysisPbPb->SetPhysicsTriggerSelection(physTrigSel); 
    }

    task->AddAnalysisObject( fdNdPtAnalysisPbPb );
  }
	
	
  // Centrality
  task->SetUseCentrality(1);     // 0=off, 1=VZERO, 2=SPD
  task->SetUseCentralityBin(0);  // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
                                 // 0 = most centrality  
  
 // Add task
  mgr->AddTask(task);

  // Create containers for input
  AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer();
  mgr->ConnectInput(task, 0, cinput);

  AliAnalysisDataContainer *coutput = mgr->CreateContainer("jotwinow_dNdPtCutAnalysisPbPb", TList::Class(), AliAnalysisManager::kOutputContainer, "jotwinow_dNdPtCutAnalysisPbPb.root");
  mgr->ConnectOutput(task, 1, coutput);

}

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