ROOT logo
AliAnalysisTaskV0ForRAA *AddTaskV0ForRAA(Bool_t anaPP=kFALSE, Bool_t wSDD=kFALSE,Int_t cent=0,Int_t centDet=1,Int_t centRange=0, Bool_t mcMode=kFALSE, Bool_t mcTruthMode=kFALSE,Bool_t usePID=kFALSE,Double_t radCut=0.0,const Char_t * addname=""){
   
  
  
   //--- get the current analysis manager ---//
   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
   if (!mgr) {
      Error("AddTask_V0ForRAA", "No analysis manager found.");
      return 0;
   }


   // -- check for ESD and MC ---//
   Bool_t hasESD=kFALSE,hasMC=kFALSE;
   AliESDInputHandler *esdH = 
      static_cast<AliESDInputHandler*>(mgr->GetInputEventHandler());
   if (esdH) hasESD=kTRUE;
   cout<<"ESD: "<<hasESD<<endl;
   if(!hasESD) return NULL;

   if(mcMode || mcTruthMode){
      AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*> 
	 (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
      if (mcH) hasMC=kTRUE;
      cout<<"MC: "<<hasMC<<endl;
      if(!hasMC) return NULL;
   }
   
  
   //========= Add task to the ANALYSIS manager =====
   TString cutsname = "AliESDtrackCutsV0ForRAA";
   TString taskname = "V0ForRAA";
   TString outname  = "V0ForRAA";

   if(mcMode) {
      cutsname +="_MCreco";
      taskname +="_MCreco";
      outname  +="_MCreco";
   }
   if(mcTruthMode){
      cutsname +="_MCTruth";
      taskname +="_MCTruth";
      outname  +="_MCTruth";
   }
   if(anaPP) {
      cutsname += "_pp";
      taskname += "_pp";
      outname  += "_pp";
   }
   else {
      cutsname +="_cent";
      cutsname += cent;

      taskname +="_cent";
      taskname += cent;

      outname  +="_cent";
      outname  += cent; 
   }

   cutsname += addname;
   taskname += addname;
   outname  += addname;
   
   
   AliAnalysisTaskV0ForRAA *task = new AliAnalysisTaskV0ForRAA(taskname);

   Double_t minPt=0.0;
   //task->SetESDTrackCuts(70,4,kTRUE);
   //task->SetESDTrackCutsCharged(70,4,kTRUE);
   //task->SetESDTrackCutsLowPt(70,4,kTRUE);
  

   //Add cuts to task
  

   //--- analysis modes ---//
   task->SetAnapp(anaPP);
   task->SetMCMode(mcMode);
   task->SetMCTruthMode(mcTruthMode);
   task->SelectWithSDD(wSDD);
   //---------- cuts -------------//
   //general cuts
   // task->SetUseOnthefly(kTRUE);
   task->SetUsePID(usePID,3.0,100.0);
   task->SetPrimVertexZCut(10.0,kTRUE);
 
   //rapidity
   task->SetRapidityCutMother(kTRUE,0.5);
   //task->SetDoEtaOfMCDaughtersCut(kFALSE,0.8);
   
   //TPC cuts
   // task->SetCutMoreNclsThanRows(kTRUE);
   // task->SetCutMoreNclsThanFindable(kTRUE);
   task->SetLowPtTPCCutAliESDTrackCut(-1.0);
   //  task->SetRatioFoundOverFindable(0.5);

   //V0 specific cuts
   //task->SetCosOfPointingAngleK(0.99,1000.0);
   //task->SetCosOfPointingAngleL(0.998,1000.0);


   //task->SetArmenterosCutQt(-1.0,6.0,kTRUE,kFALSE);
   
   //task->SetDCAV0ToVertexK0(0.4);
   //task->SetDCAV0ToVertexL(1.2);

   //task->SetDCADaughtersK0(0.23);
   //task->SetDCADaughtersL(0.35);
   //task->SetDCADaughtersAL(0.35);
   
   task->SetDecayRadiusXYMinMax(radCut,1000.0);

   
   //--- centrality ---//
   task->SetUseCentrality(centDet);        // 0=off, 1=VZERO, 2=SPD
   task->SetUseCentralityBin(cent);        // bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
   task->SetUseCentralityRange(centRange); // Add centrality bin for increasing original bin range. 
                                           // For cent 60-80%: cent = 60 and centRange = 10
   
   task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral );
   
   mgr->AddTask(task);
 
   
   //================================================
   //              data containers
   //================================================
   //            find input container
   
   AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();

   AliAnalysisDataContainer *coutput1 = 
      mgr->CreateContainer(outname, TList::Class(),
			   AliAnalysisManager::kOutputContainer,Form("%s:simones", AliAnalysisManager::GetCommonFileName()));
   
   //--- connect containers ---//
   mgr->ConnectInput  (task,  0, cinput );
   mgr->ConnectOutput (task,  1, coutput1);
   
   AliLog::SetClassDebugLevel("AliAnalysisTaskV0ForRAA",2);

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