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,
4 Bool_t doSparse=kFALSE,
6 TString finDirname="Loose",
8 TString finAnObjname="AnalysisCuts",
10 Bool_t cutsDistr=kFALSE)
13 // Test macro for the AliAnalysisTaskSE for D+ candidates
15 //Invariant mass histogram and
16 // association with MC truth (using MC info in AOD)
17 // R. Bala, bala@to.infn.it
18 // Get the pointer to the existing analysis manager via the static access method.
19 //==============================================================================
20 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
22 ::Error("AddTaskDplus", "No analysis manager to connect to.");
25 Bool_t stdcuts=kFALSE;
27 if( filename.EqualTo("") ) {
30 filecuts=TFile::Open(filename.Data());
31 if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
32 AliFatal("Input file not found : check your cut object");
40 AliRDHFCutsDplustoKpipi* analysiscuts=new AliRDHFCutsDplustoKpipi();
42 if(system==0) analysiscuts->SetStandardCutsPP2010();
44 analysiscuts->SetStandardCutsPbPb2011();
45 analysiscuts->SetMinCentrality(minC);
46 analysiscuts->SetMaxCentrality(maxC);
47 // analysiscuts->SetUseAOD049(kTRUE);
48 analysiscuts->SetUseCentrality(AliRDHFCuts::kCentV0M);
51 else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get(finAnObjname);
53 AliAnalysisTaskSEDplus *dplusTask = new AliAnalysisTaskSEDplus("DplusAnalysis",analysiscuts,storeNtuple);
54 dplusTask->SetReadMC(readMC);
55 dplusTask->SetDoLikeSign(kFALSE);
56 // dplusTask->SetUseTPCpid(kTRUE);
57 //dplusTask->SetUseTOFpid(kTRUE);
58 dplusTask->SetDebugLevel(0);
59 dplusTask->SetMassLimits(0.2);
60 dplusTask->SetUseBit(kTRUE);
61 dplusTask->SetCutsDistr(cutsDistr);
62 dplusTask->SetSystem(system);
63 if (doSparse) dplusTask->SetDoImpactParameterHistos(kTRUE);
64 if(etaRange==1) dplusTask->SetUseOnlyPositiveEta();
65 if(etaRange==-1) dplusTask->SetUseOnlyNegativeEta();
67 mgr->AddTask(dplusTask);
69 // Create containers for input/output
71 TString inname = "cinputDplus";
72 TString outname = "coutputDplus";
73 TString cutsname = "coutputDplusCuts";
74 TString normname = "coutputDplusNorm";
75 TString ntuplename = "coutputDplus2";
76 inname += finDirname.Data();
77 outname += finDirname.Data();
78 cutsname += finDirname.Data();
79 normname += finDirname.Data();
80 ntuplename += finDirname.Data();
81 TString centr=Form("%.0f%.0f",analysiscuts->GetMinCentrality(),analysiscuts->GetMaxCentrality());
89 AliAnalysisDataContainer *cinputDplus = mgr->CreateContainer(inname,TChain::Class(),
90 AliAnalysisManager::kInputContainer);
91 TString outputfile = AliAnalysisManager::GetCommonFileName();
92 outputfile += ":PWG3_D2H_InvMassDplus";
94 AliAnalysisDataContainer *coutputDplusCuts = mgr->CreateContainer(cutsname,TList::Class(),
95 AliAnalysisManager::kOutputContainer,
98 AliAnalysisDataContainer *coutputDplus = mgr->CreateContainer(outname,TList::Class(),
99 AliAnalysisManager::kOutputContainer,
101 AliAnalysisDataContainer *coutputDplusNorm = mgr->CreateContainer(normname,AliNormalizationCounter::Class(),
102 AliAnalysisManager::kOutputContainer,
106 AliAnalysisDataContainer *coutputDplus2 = mgr->CreateContainer(ntuplename,TNtuple::Class(),
107 AliAnalysisManager::kOutputContainer,
110 coutputDplus2->SetSpecialOutput();
112 mgr->ConnectInput(dplusTask,0,mgr->GetCommonInputContainer());
114 mgr->ConnectOutput(dplusTask,1,coutputDplus);
116 mgr->ConnectOutput(dplusTask,2,coutputDplusCuts);
118 mgr->ConnectOutput(dplusTask,3,coutputDplusNorm);
120 mgr->ConnectOutput(dplusTask,4,coutputDplus2);