]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/STRANGENESS/LambdaK0PbPb/AddTaskV0ForRAA.C
add name extention and default y range
[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,const Char_t * addname){
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    cutsname += addname;
62    taskname += addname;
63    outname  += addname;
64    
65    
66    AliAnalysisTaskV0ForRAA *task = new AliAnalysisTaskV0ForRAA(taskname);
67
68    Double_t minPt=0.0;//15;
69    
70    //--- esd track cuts V0 daughters ---//
71   
72    AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts(cutsname);
73    //    esdTrackCuts->SetMinNClustersTPC(70);
74    esdTrackCuts->SetMaxChi2PerClusterTPC(4);
75    esdTrackCuts->SetMinNCrossedRowsTPC(70);
76    esdTrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);
77    
78    esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
79    esdTrackCuts->SetRequireTPCRefit(kTRUE);
80    esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
81    
82    //esdTrackCuts->SetEtaRange(-0.9,+0.9);
83    task->SetESDTrackCuts(esdTrackCuts);
84
85
86    //--- analysis modes ---//
87    task->SetAnapp(anaPP);
88    task->SetMCMode(mcMode);
89    task->SetMCTruthMode(mcTruthMode);
90    
91    //--- general cuts ---//
92    task->SetUseOnthefly(onFly);
93    task->SetUsePID(usePID,4.0,2100.0);
94    task->SetPrimVertexZCut(10.0,kTRUE);
95    task->SetCosOfPointingAngleK(0.99,1000.0);
96    task->SetCosOfPointingAngleL(0.99,1000.0);
97    task->SetRapidityCutMother(kTRUE,0.5);
98    task->SetDoEtaOfMCDaughtersCut(mcEtaCut,etaCut);
99    
100    //--- centrality ---//
101    task->SetUseCentrality(centDet);     // 0=off, 1=VZERO, 2=SPD
102    task->SetUseCentralityBin(cent);     // Bin to be used 0,5,10,20,30,40,50,60,70,80,90,(100=SPDonly)
103    task->SetUseCentralityRange(centRange);
104    
105    task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral );
106    
107    mgr->AddTask(task);
108  
109    
110    //================================================
111    //              data containers
112    //================================================
113    //            find input container
114    
115    AliAnalysisDataContainer *cinput  = mgr->GetCommonInputContainer();
116
117    AliAnalysisDataContainer *coutput1 = 
118       mgr->CreateContainer(outname, TList::Class(),
119                            AliAnalysisManager::kOutputContainer,Form("%s:simones", AliAnalysisManager::GetCommonFileName()));
120    
121    //--- connect containers ---//
122    mgr->ConnectInput  (task,  0, cinput );
123    mgr->ConnectOutput (task,  1, coutput1);
124    
125    AliLog::SetClassDebugLevel("AliAnalysisTaskV0ForRAA",2);
126
127    return task;
128 }