]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/macros/AddTaskDs.C
Speedup Ds task (Gian Michele)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / macros / AddTaskDs.C
1 AliAnalysisTaskSEDs *AddTaskDs(Int_t storeNtuple=1,Bool_t readMC=kFALSE,
2                                      TString filename="DstoKKpiCuts.root")
3 {
4   //                                                                                                                                    
5   // Test macro for the AliAnalysisTaskSE for Ds candidates 
6
7   //Invariant mass histogram and                                                 
8   // association with MC truth (using MC info in AOD)                                                                                   
9   // Origin: R. Bala, bala@to.infn.it         
10   // Modified for Ds meson: G.M. Innocenti innocent@to.infn.it
11   // Get the pointer to the existing analysis manager via the static access method.                                                     
12   //==============================================================================                                                      
13
14   AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager();
15   if (!mgr) {
16     ::Error("AddTaskDs", "No analysis manager to connect to.");
17   }
18
19
20   TFile* filecuts=TFile::Open(filename.Data());
21   if(!filecuts ||(filecuts&& !filecuts->IsOpen())){
22     cout<<"Error: Input file not found!"<<endl;
23     return 0;
24   }
25   
26   
27   //Analysis Task
28
29   AliRDHFCutsDstoKKpi* analysiscuts=new AliRDHFCutsDstoKKpi();
30   analysiscuts = (AliRDHFCutsDstoKKpi*)filecuts->Get("AnalysisCuts");
31
32   AliAnalysisTaskSEDs *dsTask = new AliAnalysisTaskSEDs("DsAnalysis",analysiscuts,storeNtuple);
33
34   dsTask->SetReadMC(readMC);
35   //dsTask->SetDoLikeSign(kTRUE);
36   //  dsTask->SetUseTPCpid(kTRUE);
37   //dsTask->SetUseTOFpid(kTRUE);
38   dsTask->SetDebugLevel(10);
39   dsTask->SetUseSelectionBit(kTRUE);
40   //dsTask->SetMassLimits(0.2);
41   mgr->AddTask(dsTask);
42   
43   // Create containers for input/output 
44   
45   AliAnalysisDataContainer *cinputDs = mgr->CreateContainer("cinputDs",TChain::Class(),
46                                                                AliAnalysisManager::kInputContainer);
47   TString outputfile = AliAnalysisManager::GetCommonFileName();
48   outputfile += ":PWG3_D2H_InvMassDs";
49   
50   AliAnalysisDataContainer *coutputDsCuts = mgr->CreateContainer("coutputDsCuts",TList::Class(),
51                                                                     AliAnalysisManager::kOutputContainer,
52                                                                     outputfile.Data());
53   
54   AliAnalysisDataContainer *coutputDs = mgr->CreateContainer("coutputDs",TList::Class(),
55                                                                 AliAnalysisManager::kOutputContainer,
56                                                                 outputfile.Data());
57   AliAnalysisDataContainer *coutputDsNorm = mgr->CreateContainer("coutputDsNorm",AliNormalizationCounter::Class(),
58                                                                 AliAnalysisManager::kOutputContainer,
59                                                                 outputfile.Data());
60   
61    if(storeNtuple){
62     AliAnalysisDataContainer *coutputDs2 = mgr->CreateContainer("coutputDs2",TNtuple::Class(),
63                                                                    AliAnalysisManager::kOutputContainer,
64                                                                    outputfile.Data());
65     
66     coutputDs2->SetSpecialOutput();
67   }
68   
69   mgr->ConnectInput(dsTask,0,mgr->GetCommonInputContainer());
70   
71   mgr->ConnectOutput(dsTask,1,coutputDs);
72   
73   mgr->ConnectOutput(dsTask,2,coutputDsCuts);
74
75   mgr->ConnectOutput(dsTask,3,coutputDsNorm);  
76   
77   if(storeNtuple){
78     mgr->ConnectOutput(dsTask,4,coutputDs2);
79   }
80   
81   return dsTask;
82 }