]>
Commit | Line | Data |
---|---|---|
2fbb7748 | 1 | AliAnalysisTaskSEDplus *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 | } |