change order of histo and remove one from constructor
[u/mrichter/AliRoot.git] / PWGLF / STRANGENESS / LambdaK0PbPb / AddTaskV0ForRAA.C
1 AliAnalysisTaskV0ForRAA *AddTaskV0ForRAA(Bool_t anaPP=kFALSE, Int_t cent=0,Int_t centDet=1,Int_t centRange=0, Bool_t mcMode=kFALSE, Bool_t mcTruthMode=kFALSE,Bool_t onFly=kTRUE,Bool_t usePID=kFALSE,Double_t etaCut,Bool_t mcEtaCut){
2    
3   
4   
5    //--- get the current analysis manager ---//
6    AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
7    if (!mgr) {
8       Error("AddTask_V0ForRAA", "No analysis manager found.");
9       return 0;
10    }
11
12
13    // -- check for ESD and MC ---//
14    Bool_t hasESD=kFALSE,hasMC=kFALSE;
15    AliESDInputHandler *esdH = 
16       static_cast<AliESDInputHandler*>(mgr->GetInputEventHandler());
17    if (esdH) hasESD=kTRUE;
18    cout<<"ESD: "<<hasESD<<endl;
19    if(!hasESD) return NULL;
20
21    if(mcMode || mcTruthMode){
22       AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler*> 
23          (AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
24       if (mcH) hasMC=kTRUE;
25       cout<<"MC: "<<hasMC<<endl;
26       if(!hasMC) return NULL;
27    }
28    
29   
30    //========= Add task to the ANALYSIS manager =====
31    TString cutsname = "AliESDtrackCutsV0ForRAA";
32    TString taskname = "V0ForRAA";
33    TString outname  = "V0ForRAA";
34
35    if(mcMode) {
36       cutsname +="_MCreco";
37       taskname +="_MCreco";
38       outname  +="_MCreco";
39    }
40    if(mcTruthMode){
41       cutsname +="_MCTruth";
42       taskname +="_MCTruth";
43       outname  +="_MCTruth";
44    }
45    if(anaPP) {
46       cutsname += "_pp";
47       taskname += "_pp";
48       outname  += "_pp";
49    }
50    else {
51       cutsname +="_cent";
52       cutsname += cent;
53
54       taskname +="_cent";
55       taskname += cent;
56
57       outname  +="_cent";
58       outname  += cent; 
59    }
60
61    
62    
63    AliAnalysisTaskV0ForRAA *task = new AliAnalysisTaskV0ForRAA(taskname);
64
65    Double_t minPt=0.0;//15;
66    
67    //--- esd track cuts V0 daughters ---//
68   
69    AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts(cutsname);
70    //    esdTrackCuts->SetMinNClustersTPC(70);
71    esdTrackCuts->SetMaxChi2PerClusterTPC(4);
72    esdTrackCuts->SetMinNCrossedRowsTPC(70);
73    esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
74    
75    esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
76    esdTrackCuts->SetRequireTPCRefit(kTRUE);
77    esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
78    
79    //esdTrackCuts->SetEtaRange(-0.9,+0.9);
80    task->SetESDTrackCuts(esdTrackCuts);
81
82
83    //--- analysis modes ---//
84    task->SetAnapp(anaPP);
85    task->SetMCMode(mcMode);
86    task->SetMCTruthMode(mcTruthMode);
87    
88    //--- general cuts ---//
89    task->SetUseOnthefly(onFly);
90    task->SetUsePID(usePID,4.0,2100.0);
91    task->SetPrimVertexZCut(10.0,kTRUE);
92    task->SetCosOfPointingAngleK(0.99,1000.0);
93    task->SetCosOfPointingAngleL(0.99,1000.0);
94    task->SetRapidityCutMother(kTRUE,0.6);
95    task->SetDoEtaOfMCDaughtersCut(mcEtaCut,etaCut);
96    
97    //--- centrality ---//
98    task->SetUseCentrality(centDet);     // 0=off, 1=VZERO, 2=SPD
99    task->SetUseCentralityBin(cent);     // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
100    task->SetUseCentralityRange(centRange);
101    
102    task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral );
103    
104    mgr->AddTask(task);
105  
106    
107    //================================================
108    //              data containers
109    //================================================
110    //            find input container
111    
112    AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
113
114    AliAnalysisDataContainer *coutput1 = 
115       mgr->CreateContainer(outname, TList::Class(),
116                            AliAnalysisManager::kOutputContainer,Form("%s:foldername", AliAnalysisManager::GetCommonFileName()));
117    
118    //--- connect containers ---//
119    mgr->ConnectInput  (task,  0, cinput );
120    mgr->ConnectOutput (task,  1, coutput1);
121    
122    AliLog::SetClassDebugLevel("AliAnalysisTaskV0ForRAA",2);
123
124    return task;
125 }