]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG3/vertexingHF/macros/AddTaskDplus.C
Speed up
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / macros / AddTaskDplus.C
CommitLineData
504df8ba 1AliAnalysisTaskSEDplus *AddTaskDplus(Bool_t storeNtuple=kFALSE,
2 Bool_t readMC=kFALSE,
ae39ad32 3 TString filename="DplustoKpipiCuts.root")
95e5b6b5 4{
5 //
6 // Test macro for the AliAnalysisTaskSE for D+ candidates
7
8 //Invariant mass histogram and
9 // association with MC truth (using MC info in AOD)
10 // R. Bala, bala@to.infn.it
11 // Get the pointer to the existing analysis manager via the static access method.
12 //==============================================================================
13 AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
14 if (!mgr) {
15 ::Error("AddTaskDplus", "No analysis manager to connect to.");
95e5b6b5 16 }
17
ae39ad32 18 Bool_t stdcuts=kFALSE;
fad29dfd 19 TFile* filecuts=new TFile(filename.Data());
20 if(!filecuts->IsOpen()){
ae39ad32 21 cout<<"Input file not found: using standard cuts"<<endl;
22 stdcuts=kTRUE;
95e5b6b5 23 }
fad29dfd 24
25
26 //Analysis Task
95e5b6b5 27
fad29dfd 28
ae39ad32 29 AliRDHFCutsDplustoKpipi* analysiscuts=new AliRDHFCutsDplustoKpipi();
30 if(stdcuts) analysiscuts->SetStandardCutsPP2010();
31 else analysiscuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get("AnalysisCuts");
95e5b6b5 32
fad29dfd 33 AliRDHFCutsDplustoKpipi* prodcuts=new AliRDHFCutsDplustoKpipi();
ae39ad32 34 if(stdcuts) prodcuts->SetStandardCutsPP2010();
3eea9b98 35 else prodcuts = (AliRDHFCutsDplustoKpipi*)filecuts->Get("ProdCuts");
73173a6a 36
fad29dfd 37 //AliRDHFCutsDplustoKpipi *prodcuts = (AliRDHFCutsDplustoKpipi*)fileCuts->Get("ProdCuts");
38 //AliRDHFCutsDplustoKpipi *analysiscuts = (AliRDHFCutsDplustoKpipi*)fileCuts->Get("AnalysisCuts");
95e5b6b5 39
fad29dfd 40
95e5b6b5 41 AliAnalysisTaskSEDplus *dplusTask = new AliAnalysisTaskSEDplus("DplusAnalysis",analysiscuts,prodcuts,storeNtuple);
42 dplusTask->SetReadMC(readMC);
43 dplusTask->SetDoLikeSign(kTRUE);
73173a6a 44 // dplusTask->SetUseTPCpid(kTRUE);
45 //dplusTask->SetUseTOFpid(kTRUE);
95e5b6b5 46 dplusTask->SetDebugLevel(0);
fad29dfd 47 dplusTask->SetMassLimits(0.2);
95e5b6b5 48 mgr->AddTask(dplusTask);
fad29dfd 49
50 // Create containers for input/output
51
95e5b6b5 52 AliAnalysisDataContainer *cinputDplus = mgr->CreateContainer("cinputDplus",TChain::Class(),
fad29dfd 53 AliAnalysisManager::kInputContainer);
95e5b6b5 54 TString outputfile = AliAnalysisManager::GetCommonFileName();
55 outputfile += ":PWG3_D2H_InvMassDplus";
fad29dfd 56
57 AliAnalysisDataContainer *coutputDplusCuts = mgr->CreateContainer("coutputDplusCuts",TList::Class(),
58 AliAnalysisManager::kOutputContainer,
59 outputfile.Data());
60
95e5b6b5 61 AliAnalysisDataContainer *coutputDplus = mgr->CreateContainer("coutputDplus",TList::Class(),
fad29dfd 62 AliAnalysisManager::kOutputContainer,
95e5b6b5 63 outputfile.Data());
a96083b9 64 AliAnalysisDataContainer *coutputDplusNorm = mgr->CreateContainer("coutputDplusNorm",AliNormalizationCounter::Class(),
65 AliAnalysisManager::kOutputContainer,
66 outputfile.Data());
fad29dfd 67
95e5b6b5 68 if(storeNtuple){
69 AliAnalysisDataContainer *coutputDplus2 = mgr->CreateContainer("coutputDplus2",TNtuple::Class(),
fad29dfd 70 AliAnalysisManager::kOutputContainer,
71 "InvMassDplus_nt1.root");
72
95e5b6b5 73 coutputDplus2->SetSpecialOutput();
74 }
75 mgr->ConnectInput(dplusTask,0,mgr->GetCommonInputContainer());
fad29dfd 76
95e5b6b5 77 mgr->ConnectOutput(dplusTask,1,coutputDplus);
fad29dfd 78
95e5b6b5 79 mgr->ConnectOutput(dplusTask,2,coutputDplusCuts);
a96083b9 80
81 mgr->ConnectOutput(dplusTask,3,coutputDplusNorm);
95e5b6b5 82 if(storeNtuple){
a96083b9 83 mgr->ConnectOutput(dplusTask,4,coutputDplus2);
95e5b6b5 84 }
85 return dplusTask;
86}