]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/macros/AddTaskDplus.C
Possibility to select positive and negatiev eta regions for D+
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskDplus.C
CommitLineData
2fbb7748 1AliAnalysisTaskSEDplus *AddTaskDplus(Int_t system=0/*0=pp,1=PbPb*/,
2 Float_t minC=0, Float_t maxC=100,
3 Bool_t storeNtuple=kFALSE,
aa72cb06 4 Bool_t doSparse=kFALSE,
504df8ba 5 Bool_t readMC=kFALSE,
2fbb7748 6 TString finDirname="Loose",
0c22e2ac 7 TString filename="",
cee75703 8 TString finAnObjname="AnalysisCuts",
9 Int_t etaRange=0)
95e5b6b5 10{
11 //
12 // Test macro for the AliAnalysisTaskSE for D+ candidates
13
14 //Invariant mass histogram and
15 // association with MC truth (using MC info in AOD)
16 // R. Bala, bala@to.infn.it
17 // Get the pointer to the existing analysis manager via the static access method.
18 //==============================================================================
19 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
20 if (!mgr) {
21 ::Error("AddTaskDplus", "No analysis manager to connect to.");
95e5b6b5 22 }
23
ae39ad32 24 Bool_t stdcuts=kFALSE;
0c22e2ac 25 TFile* filecuts;
26 if( filename.EqualTo("") ) {
27 stdcuts=kTRUE;
28 } else {
29 filecuts=TFile::Open(filename.Data());
30 if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
31 AliFatal("Input file not found : check your cut object");
32 }
95e5b6b5 33 }
fad29dfd 34
35
36 //Analysis Task
95e5b6b5 37
fad29dfd 38
ae39ad32 39 AliRDHFCutsDplustoKpipi* analysiscuts=new AliRDHFCutsDplustoKpipi();
2fbb7748 40 if(stdcuts) {
41 if(system==0) analysiscuts->SetStandardCutsPP2010();
42 else if(system==1){
0c22e2ac 43 analysiscuts->SetStandardCutsPbPb2011();
2fbb7748 44 analysiscuts->SetMinCentrality(minC);
45 analysiscuts->SetMaxCentrality(maxC);
46 // analysiscuts->SetUseAOD049(kTRUE);
47 analysiscuts->SetUseCentrality(AliRDHFCuts::kCentV0M);
48 }
49 }
50 else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(finAnObjname);
fad29dfd 51
9e08baa8 52 AliAnalysisTaskSEDplus *dplusTask = new AliAnalysisTaskSEDplus("DplusAnalysis",analysiscuts,storeNtuple);
95e5b6b5 53 dplusTask->SetReadMC(readMC);
5fc4893f 54 dplusTask->SetDoLikeSign(kFALSE);
73173a6a 55 // dplusTask->SetUseTPCpid(kTRUE);
56 //dplusTask->SetUseTOFpid(kTRUE);
95e5b6b5 57 dplusTask->SetDebugLevel(0);
fad29dfd 58 dplusTask->SetMassLimits(0.2);
5fc4893f 59 dplusTask->SetUseBit(kTRUE);
aa7302d4 60 dplusTask->SetSystem(system);
aa72cb06 61 if (doSparse) dplusTask->SetDoImpactParameterHistos(kTRUE);
cee75703 62 if(etaRange==1) dplusTask->SetUseOnlyPositiveEta();
63 if(etaRange==-1) dplusTask->SetUseOnlyNegativeEta();
2fbb7748 64
95e5b6b5 65 mgr->AddTask(dplusTask);
fad29dfd 66
67 // Create containers for input/output
2fbb7748 68
69 TString inname = "cinputDplus";
70 TString outname = "coutputDplus";
71 TString cutsname = "coutputDplusCuts";
72 TString normname = "coutputDplusNorm";
73 TString ntuplename = "coutputDplus2";
74 inname += finDirname.Data();
75 outname += finDirname.Data();
76 cutsname += finDirname.Data();
77 normname += finDirname.Data();
78 ntuplename += finDirname.Data();
79 TString centr=Form("%.0f%.0f",analysiscuts->GetMinCentrality(),analysiscuts->GetMaxCentrality());
80 inname += centr;
81 outname += centr;
82 cutsname += centr;
83 normname += centr;
84 ntuplename += centr;
85
86
87 AliAnalysisDataContainer *cinputDplus = mgr->CreateContainer(inname,TChain::Class(),
fad29dfd 88 AliAnalysisManager::kInputContainer);
95e5b6b5 89 TString outputfile = AliAnalysisManager::GetCommonFileName();
90 outputfile += ":PWG3_D2H_InvMassDplus";
fad29dfd 91
2fbb7748 92 AliAnalysisDataContainer *coutputDplusCuts = mgr->CreateContainer(cutsname,TList::Class(),
fad29dfd 93 AliAnalysisManager::kOutputContainer,
94 outputfile.Data());
95
2fbb7748 96 AliAnalysisDataContainer *coutputDplus = mgr->CreateContainer(outname,TList::Class(),
fad29dfd 97 AliAnalysisManager::kOutputContainer,
95e5b6b5 98 outputfile.Data());
2fbb7748 99 AliAnalysisDataContainer *coutputDplusNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),
a96083b9 100 AliAnalysisManager::kOutputContainer,
101 outputfile.Data());
fad29dfd 102
95e5b6b5 103 if(storeNtuple){
2fbb7748 104 AliAnalysisDataContainer *coutputDplus2 = mgr->CreateContainer(ntuplename,TNtuple::Class(),
fad29dfd 105 AliAnalysisManager::kOutputContainer,
45bbb192 106 outputfile.Data());
fad29dfd 107
95e5b6b5 108 coutputDplus2->SetSpecialOutput();
109 }
110 mgr->ConnectInput(dplusTask,0,mgr->GetCommonInputContainer());
fad29dfd 111
95e5b6b5 112 mgr->ConnectOutput(dplusTask,1,coutputDplus);
fad29dfd 113
95e5b6b5 114 mgr->ConnectOutput(dplusTask,2,coutputDplusCuts);
a96083b9 115
116 mgr->ConnectOutput(dplusTask,3,coutputDplusNorm);
95e5b6b5 117 if(storeNtuple){
a96083b9 118 mgr->ConnectOutput(dplusTask,4,coutputDplus2);
95e5b6b5 119 }
120 return dplusTask;
121}